Invalidar Verificación (OTP)
/v2/otpEste endpoint no envía ningún mensaje. Invalida el código vigente y borra el estado de verificación del número, dejándolo en none. El siguiente POST /v2/otp inicia un ciclo limpio.
Casos típicos: cancelar un flujo a petición del usuario, limpiar el estado tras un cambio de número, o resetear escenarios en tus pruebas automatizadas.
Cuerpo de la petición
application/json
52.Respuesta
Slug estable del error, para manejo programático:
| Slug | HTTP | Significado |
|---|---|---|
otp_missing_param |
400 |
Falta un parámetro obligatorio. |
otp_invalid_param |
400 |
Un parámetro es inválido o no aplica a este endpoint. |
otp_invalid_channel |
400 |
channel debe ser sms, whatsapp o voice. |
otp_message_invalid |
400 |
El message personalizado no cumple las reglas (placeholders, GSM-7, 160). |
otp_incorrect_code |
401 |
El código no coincide. |
otp_insufficient_credits |
402 |
Saldo insuficiente para enviar. |
otp_not_found |
404 |
No hay verificación activa para el número. |
otp_already_verified |
409 |
El número ya está verificado. |
otp_code_expired |
410 |
El código expiró. |
otp_throttled |
429 |
Cooldown de reenvío activo (espera resend_available_in). |
otp_max_attempts |
429 |
Se agotaron los 7 intentos de verificación de la ronda. |
otp_internal |
500 |
Error inesperado. |
otp_send_failed |
502 |
El mensaje no pudo enviarse. |
otp_throttled).otp_insufficient_credits: siempre sms_07, el código estándar de saldo insuficiente de toda la API.Slug estable del error, para manejo programático:
| Slug | HTTP | Significado |
|---|---|---|
otp_missing_param |
400 |
Falta un parámetro obligatorio. |
otp_invalid_param |
400 |
Un parámetro es inválido o no aplica a este endpoint. |
otp_invalid_channel |
400 |
channel debe ser sms, whatsapp o voice. |
otp_message_invalid |
400 |
El message personalizado no cumple las reglas (placeholders, GSM-7, 160). |
otp_incorrect_code |
401 |
El código no coincide. |
otp_insufficient_credits |
402 |
Saldo insuficiente para enviar. |
otp_not_found |
404 |
No hay verificación activa para el número. |
otp_already_verified |
409 |
El número ya está verificado. |
otp_code_expired |
410 |
El código expiró. |
otp_throttled |
429 |
Cooldown de reenvío activo (espera resend_available_in). |
otp_max_attempts |
429 |
Se agotaron los 7 intentos de verificación de la ronda. |
otp_internal |
500 |
Error inesperado. |
otp_send_failed |
502 |
El mensaje no pudo enviarse. |
otp_throttled).otp_insufficient_credits: siempre sms_07, el código estándar de saldo insuficiente de toda la API.Si no había verificación activa, la respuesta sigue siendo 200 con action: deleted — la operación es idempotente desde el punto de vista de tu integración: después de llamarla, el estado del número siempre es none.
Los errores de autenticación (auth_*) vienen de la capa común de la API y llegan con HTTP 200 y el detalle en el body — consulta Errores y límites.