Verificação por código
Confirma que o visitante controla um e-mail ou telefone antes do checkout, do cadastro ou do login.
A verificação por código é o mecanismo genérico da loja para provar posse de um e-mail ou telefone, sem criar conta. O fluxo mais comum é no checkout do visitante: a loja exige que o e-mail tenha sido confirmado antes de aceitar o pedido de visitante. Você envia o código, o cliente o digita, você confere, e a plataforma passa a lembrar que aquele identificador está verificado.
O recurso depende do módulo otp-verification da loja. Com o módulo desligado, as três rotas respondem 403 module_disabled. Para entrar na conta com código, use o Login por código, que é outro fluxo.
/api/v1/storefront/otp/sendPúblicaEnviar o código
Corpo da requisição
identifierstringobrigatórioidentifier_typestringobrigatórioemailphonepurposestringpadrão: checkoutcheckoutregistrationlogincurl -X POST "$BASE_URL/api/v1/storefront/otp/send" \
-H "Content-Type: application/json" \
-d '{
"identifier": "maria.souza@example.com",
"identifier_type": "email",
"purpose": "checkout"
}'{
"message": "verification code sent",
"expires_at": "2026-10-11T20:51:07Z"
}Campos da resposta
messagestringexpires_atstring/api/v1/storefront/otp/verifyPúblicaConferir o código
Corpo da requisição
identifierstringobrigatóriocodestringobrigatóriopurposestringpadrão: checkoutcurl -X POST "$BASE_URL/api/v1/storefront/otp/verify" \
-H "Content-Type: application/json" \
-d '{
"identifier": "maria.souza@example.com",
"code": "482915",
"purpose": "checkout"
}'{
"verified": true,
"message": "verification successful"
}{
"verified": false,
"message": "verification code has expired"
}Campos da resposta
verifiedbooleantrue se o código confere.messagestringverification successful, incorrect verification code, verification code has expired, maximum verification attempts exceeded ou no pending verification found. Use para depurar; mostre ao cliente uma mensagem sua./api/v1/storefront/otp/statusPúblicaConsultar se o identificador está verificado
Parâmetros de consulta
identifierstringobrigatóriopurposestringpadrão: checkoutcurl "$BASE_URL/api/v1/storefront/otp/status?identifier=maria.souza@example.com&purpose=checkout"{
"verified": false,
"identifier": "maria.souza@example.com",
"purpose": "checkout"
}Campos da resposta
verifiedbooleantrue se houve verificação bem-sucedida recente (30 minutos) para o identificador e a finalidade.identifierstringpurposestringErros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 400 | Falta identifier, identifier_type inválido, e-mail mal formado ou purpose fora da lista. | {"detail":"must be checkout, registration, or login","error":"invalid purpose"} |
| 400 | verify sem code. | {"error":"code is required"} |
| 403 | Módulo de OTP desligado. | {"error":"module_disabled","module":"otp-verification"} |
| 429 | Mais de 3 envios em 10 minutos. | {"error":"too many verification requests","detail":"please wait before requesting another code"} |
| 500 | Falha ao entregar o e-mail ou SMS. | {"error":"failed to send verification email","detail":"the mail service is temporarily unavailable, please try again shortly"} |