Recuperação de senha
Pede o e-mail de redefinição e define a senha nova com o token recebido.
A recuperação tem dois passos. Primeiro o usuário informa quem é e a loja envia um e-mail com um link. O link contém um token de uso único, que vale 24 horas; o segundo passo troca esse token pela senha nova. Redefinir a senha derruba todas as sessões da conta (todos os aparelhos precisam logar de novo).
Pedir o e-mail
/api/v1/auth/forgot-passwordPúblicaPedir o e-mail de redefinição de senha
A resposta é sempre a mesma (200), exista a conta ou não, para ninguém descobrir quais e-mails estão cadastrados. Aceita e-mail, CPF ou CNPJ; um CNPJ compartilhado por mais de uma conta é ignorado em silêncio. O e-mail só sai se a loja tem o envio de e-mails ativo.
Corpo da requisição
identifierstringemail.emailstringidentifier.panelstringadminvendorcurl -X POST "$BASE_URL/api/v1/auth/forgot-password" \
-H "Content-Type: application/json" \
-d '{"identifier":"maria.souza@example.com"}'{ "message": "if the email exists, a reset link has been sent" }Erros do pedido
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON | {"error":"invalid request body","detail":"..."} |
| 403 | reCAPTCHA ausente ou reprovado (se ativo na loja) | {"error":"captcha_required","detail":"reCAPTCHA token is required"} |
| 429 | Mais de 3 pedidos por minuto do mesmo IP | {"error":"rate limit exceeded",...} |
Definir a senha nova
/api/v1/auth/reset-passwordPúblicaDefinir a senha nova com o token do e-mail
O token é o do link recebido por e-mail (parâmetro do endereço). Cada token só funciona uma vez.
Corpo da requisição
tokenstringobrigatórionew_passwordstringobrigatóriocurl -X POST "$BASE_URL/api/v1/auth/reset-password" \
-H "Content-Type: application/json" \
-d '{"token":"'"$RESET_TOKEN"'","new_password":"NovaSenha#2026"}'{ "message": "password reset successful" }Erros da redefinição
| Status | Quando | Corpo |
|---|---|---|
| 400 | Faltou token ou new_password | {"error":"token and new_password are required"} |
| 400 | Token desconhecido ou já usado | {"error":"invalid or expired reset token"} |
| 400 | Token vencido (mais de 24 horas) | {"error":"reset token has expired"} |
| 400 | Senha fraca | {"error":"password_too_weak"} |
| 429 | Mais de 3 chamadas por minuto do mesmo IP | {"error":"rate limit exceeded",...} |