Referencia
Errores de API y códigos de error
Los errores usan códigos de estado HTTP y siempre tienen el mismo cuerpo JSON. param nombra el campo cuando un campo es la causa. Cada respuesta tiene un encabezado X-Request-Id: menciónalo en un ticket de soporte.
{
"error": {
"code": "text_too_long",
"message": "The text is longer than 10 segments (1,530 GSM-7 or 670 UCS-2 characters).",
"param": "text",
"doc_url": "https://bulksmsapi.cc/en/docs/errors#text_too_long"
}
}Códigos
| code | HTTP | Causa | Dinero |
|---|---|---|---|
| invalid_json | 400 | El cuerpo no es un objeto JSON, o Content-Type no es application/json. | Corrige el cuerpo. No se cobró nada. |
| invalid_request | 400 | Falta un campo o tiene el tipo incorrecto; el parámetro lo indica. | Corrige el campo. No se cobró nada. |
| invalid_number | 400 | Ningún número en la solicitud pudo leerse como E.164 (+ y de 7 a 15 dígitos). | Verifica los números. No se cobró nada. |
| unsupported_country | 400 / 404 | Ningún país con precio coincide con los números, o GET /v1/pricing/{country} tiene un código desconocido. | Consulta la lista de países. No se cobró nada. |
| text_too_long | 400 | El texto necesita más de 10 segmentos. | Acorta el texto. No se cobró nada. |
| too_many_recipients | 400 | Más de 10,000 destinatarios en una solicitud. | Divide la lista. No se cobró nada. |
| schedule_out_of_range | 400 | send_at no es un tiempo válido entre 2 minutos y 45 días a partir de ahora. | Elige otro horario. No se cobró nada. |
| suppressed | 400 | Todos los números en la solicitud están en tu lista de no enviar (Configuración en la consola). | No se envió ni cobró nada. |
| unauthorized | 401 | Falta el encabezado Authorization, está mal formado o la clave fue revocada. | Envía una clave activa. No se cobró nada. |
| top_up_required | 402 | El saldo es menor que el costo de la solicitud; el mensaje indica ambos montos. | Recarga y envía nuevamente. No se cobró nada. |
| not_found | 404 | El id no existe en esta cuenta, o el endpoint no existe. | Verifica el id y la ruta. |
| idempotency_conflict | 409 | La Idempotency-Key se usó con un cuerpo de solicitud diferente en las últimas 24 horas. | Usa una nueva clave para una nueva solicitud. |
| not_cancelable | 409 | Solo se puede cancelar un lote programado; este ya comenzó o terminó. | No hubo cambios. |
| rate_limited | 429 | La clave realizó más de 600 solicitudes en los últimos 60 segundos. | Espera los segundos indicados en Retry-After. No se cobró nada. |
| server_error | 500 | Algo falló en nuestro lado. | Reintentar con la misma Idempotency-Key. |
Reintentando
- Los errores 4xx, excepto el 429, requieren un cambio en la solicitud; enviar la misma solicitud nuevamente dará el mismo error.
- En caso de 429, espera el número de segundos indicado en Retry-After.
- En caso de 5xx o un tiempo de espera de red, reintenta con la misma Idempotency-Key: si la primera solicitud fue aceptada, obtendrás su respuesta en lugar de un segundo envío.