EN

Catalog d'erreurs

Tous les codes d'erreur retournés par l'API v1, avec un hint d'action concret.

Enveloppe d'erreur

Toutes les erreurs respectent ce format JSON :

{
  "error": {
    "type": "authorization_error",
    "code": "insufficient_scope",
    "message": "Cette clé API ne contient pas le scope requis pour cet endpoint.",
    "hint": "Ajoute le scope 'leads:capture' à ta clé via le dashboard.",
    "doc_url": "https://capturia.io/fr/developers/api/v1/authentication#scopes",
    "dashboard_url": "https://app.capturia.io/platform/dashboard/admin/integrations/api-keys/ak_xxx",
    "request_id": "req_01J9X8Z3F4K2M5N7P9Q1R3S5T7",
    "details": {"required_scope": "leads:capture"}
  }
}

Tous les codes

HTTPCodeTypeDoc
400invalid_encodingvalidation_errorencoding
400invalid_requestvalidation_errorinvalid_request
400validation_errorvalidation_errorvalidation_error
401expired_api_keyauthentication_errorexpired_api_key
401invalid_api_keyauthentication_errorinvalid_api_key
401missing_api_keyauthentication_errormissing_api_key
401revoked_api_keyauthentication_errorrevoked_api_key
403feature_not_availableauthorization_errorplan
403insufficient_scopeauthorization_errorscopes
403terms_acceptance_requiredauthorization_errorterms
404resource_not_foundnot_found_errorresource_not_found
409confirmation_token_invalidconflict_errorconfirmation_token_invalid
409duplicate_resourceconflict_errorduplicate_resource
409idempotency_conflictidempotency_erroridempotency
413payload_too_largevalidation_errorbody-size
415invalid_content_typevalidation_errorcontent-type
422business_rule_violationbusiness_rule_errorbusiness_rule_violation
422system_not_foundbusiness_rule_errorsystem_not_found
429rate_limit_exceededrate_limit_errorVoir
429too_many_attemptsrate_limit_errorbrute-force
500internal_errorserver_errorinternal_error
501not_implementedserver_errornot_implemented
503service_unavailableserver_errorservice_unavailable

Détail des codes hébergés ici

Erreur de validation validation_error

Payload mal formé ou champ manquant. Le champ details.validation_errors[] liste les paths JSON Pointer fautifs.

Hint Vérifie chaque path dans `details.validation_errors[]` et corrige le payload.

Requête invalide invalid_request

Headers manquants, body trop gros, JSON invalide, ou paramètre query mal formé.

Hint Vérifie Content-Type, taille body < 1MB, syntaxe JSON, et les params query.

Ressource introuvable resource_not_found

L'ID fourni n'existe pas, ou n'est pas accessible avec cette clé.

Hint Vérifie l'ID et que la ressource appartient bien à ton client.

Ressource dupliquée duplicate_resource

Conflit d'unicité métier (ex. email déjà utilisé pour un contact).

Hint Utilise PATCH/PUT pour mettre à jour la ressource existante au lieu de POST.

Règle métier violée business_rule_violation

L'opération est bloquée par une règle métier (ex. pipeline fermé, contact archivé).

Hint Le champ `details` précise la règle. Voir la référence de l'endpoint pour les contraintes spécifiques.

Système introuvable system_not_found

Le system_id fourni à un endpoint de capture ne correspond à aucun Système actif de ce compte (UUID inconnu ou appartenant à un autre compte — la réponse est identique dans les deux cas). Aucun contact n'est créé.

Hint Utilise l'UUID d'un de tes Systèmes, ou omets `system_id` pour cibler ton Système principal.

Erreur serveur internal_error

Bug Capturia. Le request_id permet à notre support de retrouver l'incident dans Sentry.

Hint Réessaye après quelques secondes. Si ça persiste, contacte [email protected] avec le `request_id`.

Service indisponible service_unavailable

Maintenance ou dégradation temporaire d'un service amont.

Hint Respecte le header `Retry-After` (secondes) avant de réessayer.

Non implémenté not_implemented

Endpoint réservé pour usage futur (ex. clé cap_test_* sandbox).

Hint Voir la référence pour les alternatives disponibles aujourd'hui.

Jeton de confirmation invalide confirmation_token_invalid

Le jeton retourné par preview_campaign est invalide, expiré (10 minutes), déjà utilisé, lié à une autre clé API, ou les paramètres de la campagne ont changé depuis la prévisualisation.

Hint Refais un `preview_campaign` pour obtenir un nouveau jeton, présente le résumé à l'humain, et lance seulement après sa confirmation explicite.