Erreurs

SIP Caller utilise les codes de statut HTTP standard pour indiquer si une requête a réussi. Les codes de la plage 2xx indiquent un succès, les codes de la plage 4xx indiquent un problème dans la requête (par exemple, un champ manquant ou un enregistrement qui n’existe pas), et les codes de la plage 5xx indiquent un problème du côté de SIP Caller.

Format des réponses d’erreur

Les réponses d’erreur ont un corps JSON conforme à la norme Problem Details :

{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.4", "title": "One or more errors occurred.", "status": 404, "detail": "Campaign with id '01a0dedd-b9a2-729d-8e0a-4e3ad9197aea' not found", "instance": "/v1/accounts/ACCOUNT_ID/campaigns/01a0dedd-b9a2-729d-8e0a-4e3ad9197aea", "traceId": "0HN6QKQ1B2F3G:00000001" }
ChampDescription
typeUne URL identifiant le type d’erreur, basée sur le code de statut HTTP.
titleUn résumé court et générique de l’erreur.
statusLe code de statut HTTP.
detailUne explication lisible de cette erreur spécifique. Absent dans les erreurs de validation.
instanceLe chemin de la requête à l’origine de l’erreur.
traceIdUn identifiant unique de la requête. Incluez-le lorsque vous contactez le support au sujet d’une erreur.
errorsUniquement dans les erreurs 400 et 409 : la liste des messages pour chaque champ invalide, comme décrit ci-dessous.

Les messages detail et errors sont destinés à aider les développeurs à comprendre le problème. Ne les analysez pas dans votre code, car leur texte peut changer : utilisez plutôt le code de statut HTTP.

Erreurs de validation

Lorsqu’un ou plusieurs champs de la requête sont invalides, l’API renvoie une erreur 400 Bad Request avec un objet errors. Chaque clé est le nom d’un champ invalide (avec des points pour les champs imbriqués), et chaque valeur est la liste des problèmes détectés :

{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "instance": "/v1/accounts/ACCOUNT_ID/campaigns", "errors": { "name": ["Value must not be empty."], "maxAttempts": ["Value must be between 1 and 9."] }, "traceId": "0HN6QKQ1B2F3G:00000002" }

Tous les champs invalides sont signalés en une seule fois, ce qui vous permet de les corriger en une seule étape. Les erreurs dans les paramètres de requête filter, sort et range sont signalées de la même manière, sous ces clés.

Codes de statut HTTP

CodeSignification
200 OKLa requête a réussi.
201 CreatedLa ressource a été créée. La réponse contient la nouvelle ressource.
400 Bad RequestLa requête est invalide : un champ obligatoire est manquant, une valeur a un format incorrect ou est hors limites, ou le JSON est mal formé. Consultez le champ errors ou detail.
401 UnauthorizedAucune clé API valide n’a été fournie. Consultez Authentification.
403 ForbiddenLa clé API n’a pas l’autorisation d’effectuer l’opération.
404 Not FoundLa ressource n’existe pas, ou n’appartient pas au compte.
408 Request TimeoutLe corps de la requête a été envoyé trop lentement.
409 ConflictLa requête entre en conflit avec l’état actuel de la ressource. Par exemple, un nom qui doit être unique est déjà utilisé, ou une ressource ne peut pas être supprimée car elle est en cours d’utilisation.
412 Precondition FailedLa ressource a été modifiée par quelqu’un d’autre depuis votre dernière lecture. Consultez Modifications simultanées ci-dessous.
413 Payload Too LargeLe corps de la requête dépasse la taille maximale de 20 Mo.
429 Too Many RequestsTrop de requêtes ont été envoyées en peu de temps. Consultez Limites de débit.
500 Internal Server ErrorUn problème est survenu du côté de SIP Caller. Notre équipe est notifiée automatiquement. Vous pouvez réessayer la requête plus tard.

Modifications simultanées

Pour éviter que des modifications ne soient perdues lorsque la même ressource est modifiée en même temps par différents utilisateurs ou applications, les requêtes de modification (par exemple Modifier une campagne) exigent un champ lastUpdatedAt. Il doit contenir la valeur updatedAt de la ressource, telle que renvoyée la dernière fois que vous l’avez récupérée, créée ou modifiée.

Si la ressource a été modifiée entre-temps, sa valeur updatedAt ne correspond plus, et la modification est rejetée avec une erreur 412 Precondition Failed :

{ "type": "https://tools.ietf.org/html/rfc9110#section-15.5.13", "title": "One or more errors occurred.", "status": 412, "detail": "Update aborted to prevent 'lost update' problem; retry with correct 'lastUpdatedAt' value", "instance": "/v1/accounts/ACCOUNT_ID/blackLists/BLACK_LIST_ID", "traceId": "0HN6QKQ1B2F3G:00000003" }

Lorsque vous recevez cette erreur, récupérez à nouveau la ressource, appliquez vos modifications à la dernière version, et renvoyez la modification avec la nouvelle valeur lastUpdatedAt.

Gérer les erreurs

Nous vous recommandons l’approche suivante dans votre intégration :

  • Erreurs 4xx (sauf 429) : ne réessayez pas la même requête, car elle échouera à nouveau. Journalisez la réponse, y compris le traceId, et corrigez la requête.
  • Erreurs 429 : attendez le nombre de secondes indiqué dans l’en-tête Retry-After, puis réessayez.
  • Erreurs 5xx et erreurs réseau : réessayez avec un délai exponentiel (par exemple, après 1, 2, 4 et 8 secondes). Soyez prudent lorsque vous réessayez des requêtes qui créent des ressources ou ajoutent des numéros, car la première tentative a pu réussir avant l’erreur : vérifiez l’état actuel avant de réessayer.

Réponse d’erreur

{ "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "instance": "/v1/accounts/ACCOUNT_ID/blackLists", "errors": { "name": [ "Value must not be empty." ] }, "traceId": "0HN6QKQ1B2F3G:00000002" }


SIP Caller
© 2026 Easy Caller LLC Tous droits réservés
LinkedinYou Tube
Trustpilot