Appearance
Autenticação (v1)
A API v1 usa tokens Bearer (JWT). Após o login, envie o token em toda chamada protegida:
Authorization: Bearer <access_token>Base URL: https://api.fastgivr.com.br · prefixo /v1.
Resposta de token (retornada por register, login e refresh):
json
{
"code": 200,
"success": true,
"data": {
"access_token": "eyJ0eXAiOiJKV1Qi...",
"token_type": "bearer",
"expires_in": 3600,
"user": { "id": 1, "name": "...", "email": "...", "phone": null, "email_verified_at": null }
}
}expires_in está em segundos — renove com refresh antes de expirar.
POST /v1/auth/register 🌐
Cria o usuário, dispara o código de verificação de e-mail e já devolve um token.
Entrada (corpo JSON):
| Campo | Tipo | Regras |
|---|---|---|
name | string | obrigatório, máx. 255 |
email | string | obrigatório, e-mail, único, máx. 255 |
password | string | obrigatório, mín. 8 caracteres |
password_confirmation | string | obrigatório, igual a password |
phone | string | opcional, máx. 20 |
Saída: 201 com o envelope de token (data.access_token, data.user), message: "Cadastro realizado com sucesso." · 422 em validação.
POST /v1/auth/login 🌐
Entrada (corpo JSON):
| Campo | Tipo | Regras |
|---|---|---|
email | string | obrigatório, e-mail |
password | string | obrigatório |
Saída: 200 com o envelope de token. 401 + message: "Credenciais inválidas." quando incorreto.
GET /v1/auth/me 🔒
Entrada: header Authorization.
Saída: 200, chave user — o usuário autenticado com as suas organizações:
json
{
"code": 200,
"success": true,
"user": {
"id": 1, "name": "...", "email": "...",
"organizations": [ { "id": 3, "uuid": "…", "name": "…", "status": "INACTIVE" } ]
}
}POST /v1/auth/logout 🔒
Entrada: header Authorization. Saída: 200, message: "Sessão encerrada com sucesso." (o token é invalidado).
POST /v1/auth/refresh 🔒
Entrada: header Authorization (token ainda válido ou dentro da janela de renovação). Saída: 200 com um envelope de token novo. 401 se não for possível renovar.
POST /v1/auth/forgot-password 🌐
Entrada (corpo JSON): email (obrigatório, e-mail, precisa existir). Saída: 200, message: "Código de recuperação enviado para o e-mail informado." Um código de 6 dígitos é enviado por e-mail (expira em 1 hora).
POST /v1/auth/reset-password 🌐
Entrada (corpo JSON):
| Campo | Tipo | Regras |
|---|---|---|
email | string | obrigatório, e-mail, precisa existir |
code | string | obrigatório, exatamente 6 caracteres |
password | string | obrigatório, mín. 8 caracteres |
password_confirmation | string | obrigatório, igual a password |
Saída: 200, message: "Senha redefinida com sucesso." · 422 + message: "Código de recuperação inválido ou expirado."
POST /v1/auth/verify-email 🌐
Entrada (corpo JSON): email (obrigatório, e-mail, precisa existir), code (obrigatório, exatamente 6 caracteres). Saída: 200, message: "E-mail verificado com sucesso." · 422 se o código for inválido/expirado.
POST /v1/auth/send-verification-code 🔒
Entrada: header Authorization (usa o e-mail do usuário autenticado). Saída: 200, message: "Código de verificação enviado com sucesso."
Fluxo recomendado
Qualquer chamada 🔒 com token ausente/expirado responde 401 — trate como sessão encerrada.