API de SMS: errores, códigos de estado y límites
Qué significa cada código y cuántas peticiones puedes hacer.
Última actualización
Los errores tienen siempre la misma forma. Programa contra code, nunca contra message: el texto puede cambiar, el código no.
{
"error": {
"code": "device_not_found",
"message": "Device dev_oppo_cph2577 not found.",
"requestId": "req_01H8X2K9"
}
}Estados HTTP
| Estado | Significado | Qué hacer |
|---|---|---|
| 200 | aceptada | nada |
| 400 | la petición está mal formada | corrige el cuerpo; reintentar no servirá |
| 401 | clave no válida o revocada | crea una clave nueva |
| 402 | no quedan mensajes en el plan | espera a la renovación o cambia de plan |
| 403 | la cuenta está bloqueada, o el destinatario se ha dado de baja | revisa el código; reintentar no servirá |
| 404 | el dispositivo, el mensaje o la conversación no existe | revisa el id |
| 409 | la Idempotency-Key se usó con un cuerpo distinto | usa una clave nueva para una petición nueva |
| 429 | demasiadas peticiones | ve más despacio; el límite se reinicia cada minuto |
| 5xx | fallo por nuestra parte | reintenta con la misma Idempotency-Key |
Códigos de error
| Código | Cuándo ocurre |
|---|---|
| validation_error | falta un campo o está mal formado |
| invalid_number | el número no es válido |
| message_too_long | más de 10.000 caracteres |
| device_not_found | el deviceId no pertenece a la cuenta |
| not_found | el mensaje o la conversación no existe, en GET /messages/:id y /conversations/:id (404) |
| quota_exceeded | se han agotado los mensajes de este ciclo |
| account_blocked | la cuenta se ha bloqueado (403); si crees que es un error, escribe a hello@droidsender.com |
| recipient_opted_out | el destinatario respondió STOP; no reintentes (403) |
| idempotency_conflict | la Idempotency-Key ya se usó con un cuerpo distinto (409) |
| rate_limited | se ha superado el límite de peticiones de esta cuenta |
| invalid_key | la clave se revocó o nunca existió |
Límites
| Límite | Valor |
|---|---|
| Peticiones a la API | 60 por minuto por clave, multiplicadas por los móviles conectados a la cuenta (hasta 3000) |
| Envío por móvil | unos 30 mensajes de una parte por minuto; en la mayoría de los móviles, Android permite unas 30 partes de SMS por minuto, así que un mensaje de 3 partes cuenta como 3 |
| Mensajes por ciclo | la cuota de tu plan; cada respuesta te indica cuánto te queda |
| Longitud del mensaje | hasta 10.000 caracteres (unos 66 SMS en GSM-7) |
| Campo reference | 200 caracteres |