Référence
Erreurs API et codes d'erreur
Les erreurs utilisent les codes de statut HTTP et ont toujours le même corps JSON. param nomme le champ lorsqu'un champ est la cause. Chaque réponse a un en-tête X-Request-Id : citez-le dans un ticket de support.
{
"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"
}
}Codes
| code | HTTP | Cause | Argent |
|---|---|---|---|
| invalid_json | 400 | Le corps n'est pas un objet JSON, ou Content-Type n'est pas application/json. | Corrigez le corps. Aucun frais n'a été appliqué. |
| invalid_request | 400 | Un champ est manquant ou a un type incorrect ; le paramètre le nomme. | Corrigez le champ. Aucun frais n'a été appliqué. |
| invalid_number | 400 | Aucun numéro dans la requête ne peut être lu au format E.164 (+ et 7 à 15 chiffres). | Vérifiez les numéros. Aucun frais n'a été appliqué. |
| unsupported_country | 400 / 404 | Aucun pays tarifé ne correspond aux numéros, ou GET /v1/pricing/{country} a un code inconnu. | Vérifiez la liste des pays. Aucun frais n'a été appliqué. |
| text_too_long | 400 | Le texte nécessite plus de 10 segments. | Raccourcissez le texte. Aucun frais n'a été appliqué. |
| too_many_recipients | 400 | Plus de 10 000 destinataires dans une seule requête. | Divisez la liste. Aucun frais n'a été appliqué. |
| schedule_out_of_range | 400 | send_at n'est pas une heure valide entre 2 minutes et 45 jours à partir de maintenant. | Choisissez une autre heure. Aucun frais n'a été appliqué. |
| suppressed | 400 | Tous les numéros de la requête sont sur votre liste de non-envoi (Paramètres dans la console). | Rien n'a été envoyé ou facturé. |
| unauthorized | 401 | L'en-tête Authorization est manquant, mal formé, ou la clé a été révoquée. | Envoyez une clé active. Aucun frais n'a été appliqué. |
| top_up_required | 402 | Le solde est inférieur au coût de la requête ; le message indique les deux montants. | Rechargez et renvoyez. Aucun frais n'a été appliqué. |
| not_found | 404 | L'id n'existe pas dans ce compte, ou l'endpoint n'existe pas. | Vérifiez l'id et le chemin. |
| idempotency_conflict | 409 | L'Idempotency-Key a été utilisée avec un corps de requête différent dans les dernières 24 heures. | Utilisez une nouvelle clé pour une nouvelle requête. |
| not_cancelable | 409 | Seul un lot programmé peut être annulé ; celui-ci a commencé ou est terminé. | Rien n'a changé. |
| rate_limited | 429 | La clé a fait plus de 600 requêtes dans les dernières 60 secondes. | Attendez Retry-After secondes. Aucun frais n'a été appliqué. |
| server_error | 500 | Quelque chose a échoué de notre côté. | Réessayez avec la même Idempotency-Key. |
Nouvelle tentative
- Les erreurs 4xx autres que 429 nécessitent une modification de la requête ; envoyer la même requête à nouveau donne la même erreur.
- Sur 429, attendez le nombre de secondes indiqué dans Retry-After.
- Sur 5xx ou un timeout réseau, réessayez avec la même Idempotency-Key : si la première requête a été acceptée, vous recevez sa réponse au lieu d'un second envoi.