Erreurs
Chaque erreur a un code stable : appuyez votre code dessus, pas sur le message (qui peut évoluer).
{
"erreur": {
"code": "cle_invalide",
"message": "Clé API invalide ou révoquée.",
"documentation": "https://docs.coveraf.com/erreurs#cle_invalide"
},
"requete_id": "req_7cdce0bcc7c153b71b407252"
}Le requete_id
Toujours renvoyé (aussi dans l'en-tête X-Request-Id). Donnez-le au support : il permet de retrouver l'appel exact.
Réessayer ou non ?
Codes 5xx et 429 : réessayez plus tard, avec la même Idempotency-Key. Codes 4xx : la requête ne passera pas telle quelle, corrigez-la.
| Code | HTTP | Message | Que faire |
|---|---|---|---|
authentification_manquante | 401 | En-tête Authorization manquant. Envoyez « Authorization: Bearer <votre clé API> ». | Ajoutez l'en-tête Authorization: Bearer <clé>. |
cle_invalide | 401 | Clé API invalide ou révoquée. | Vérifiez la clé (copiée en entier, bon environnement). Une clé révoquée est définitivement refusée : demandez-en une nouvelle. |
compte_suspendu | 403 | Votre compte partenaire est suspendu. Contactez COVERAF. | Contactez COVERAF. |
production_non_autorisee | 403 | Votre compte n'est pas encore autorisé en production. Terminez la certification dans la sandbox. | Terminez vos tests et la convention : COVERAF active alors la production. |
ip_non_autorisee | 403 | Cette adresse IP n'est pas dans la liste des adresses autorisées pour votre compte. | Appelez depuis un serveur dont l'adresse a été déclarée, ou faites ajouter la nouvelle adresse. |
signature_manquante | 401 | Requête d'écriture non signée. Envoyez X-Coveraf-Timestamp et X-Coveraf-Signature. | Ajoutez X-Coveraf-Timestamp et X-Coveraf-Signature sur toute requête POST. |
signature_invalide | 401 | Signature invalide. Vérifiez votre secret de signature et la chaîne signée. | Signez exactement : <timestamp>.<MÉTHODE>.<chemin avec ?requête>.<corps envoyé, octet pour octet>, avec le secret de CETTE clé. |
signature_expiree | 401 | Horodatage trop ancien ou dans le futur (plus de 5 minutes). Vérifiez l'horloge de votre serveur. | Synchronisez l'horloge de votre serveur (NTP) et générez l'horodatage juste avant l'envoi. |
trop_de_requetes | 429 | Trop de requêtes. Réessayez dans quelques secondes. | Patientez quelques secondes puis réessayez, en espaçant les appels. |
idempotence_requise | 400 | En-tête Idempotency-Key obligatoire pour cette opération. | Ajoutez un en-tête Idempotency-Key unique (UUID) pour cette opération. |
idempotence_conflit | 422 | Cette clé d'idempotence a déjà servi pour une requête différente. | Une clé d'idempotence = une opération. Générez-en une nouvelle pour une requête différente. |
idempotence_en_cours | 409 | Une requête avec cette clé d'idempotence est encore en cours de traitement. | La première requête est encore en traitement : réessayez dans une seconde avec la même clé. |
requete_invalide | 400 | Requête invalide. | Voir le message. |
json_invalide | 400 | Le corps de la requête n'est pas du JSON valide. | Envoyez un JSON valide encodé en UTF-8. |
validation | 422 | Certaines données sont manquantes ou incorrectes. Voir erreur.details. | Corrigez chaque champ listé dans erreur.details. |
non_eligible | 422 | Une personne ne remplit pas les conditions de cette offre. | Le message indique la personne et la règle (âge...). Cette offre ne peut pas la couvrir. |
etude_particuliere | 422 | Ce risque dépasse ce que l'offre couvre en ligne : il demande une étude particulière par COVERAF. | Orientez le client vers COVERAF pour une étude. |
offre_inconnue | 404 | Cette offre n'existe pas. Liste des offres : GET /v1/produits. | Utilisez un code renvoyé par GET /v1/produits. |
offre_non_autorisee | 403 | Cette offre n'est pas ouverte à votre compte. | Cette offre n'est pas ouverte à votre compte : contactez COVERAF. |
offre_indisponible | 409 | Cette offre est momentanément indisponible à la vente. | Offre momentanément retirée de la vente (disponible: false dans le catalogue). |
souscription_expiree | 410 | Cette demande de souscription a expiré (son devis n'est plus valable). Demandez un nouveau devis. | Demandez un nouveau devis puis une nouvelle souscription. |
emission_en_cours | 409 | Ce paiement est déjà en cours de traitement. Consultez GET /v1/souscriptions/{id} dans quelques secondes. | Le paiement est en cours d'enregistrement : consultez la souscription dans quelques secondes. |
souscription_deja_payee | 409 | Cette souscription est déjà payée : son contrat est émis. | Rien à faire : le contrat est émis (contrat.numero dans la souscription). |
devis_deja_souscrit | 409 | Ce devis fait déjà l'objet d'une souscription en cours ou payée. | Consultez la souscription existante, ou demandez un nouveau devis. |
mode_paiement_incompatible | 403 | Ce mode de paiement n'est pas celui prévu pour votre compte. | Mode A : confirmer-paiement. Mode B : paiement. Votre mode est indiqué dans chaque souscription (mode_paiement). |
montant_incorrect | 422 | Le montant encaissé ne correspond pas au montant de la souscription. | Le montant doit être exactement montant_a_payer.montant. |
plafond_encours_atteint | 403 | Plafond de primes encaissées non reversées atteint. Effectuez un reversement à OPTIMUS AFRICA pour continuer. | Reversez les primes encaissées à OPTIMUS AFRICA pour débloquer de nouvelles ventes. |
reference_deja_utilisee | 409 | Cette référence de transaction a déjà servi pour une autre souscription. | Chaque encaissement a sa propre référence de transaction. |
paiement_deja_en_cours | 409 | Un paiement est déjà en cours pour cette souscription. Attendez son résultat (notification ou GET /v1/souscriptions/{id}). | Attendez le résultat (notification ou GET /v1/souscriptions/{id}), puis relancez si besoin. |
webhook_non_configure | 409 | Aucune adresse de notification n'est configurée pour cet environnement. Demandez-la à COVERAF. | Communiquez votre adresse de notification à COVERAF. |
document_indisponible | 409 | Ce document est disponible une fois le contrat émis (après paiement). | Le contrat n'est plus actif. |
devis_expire | 410 | Ce devis a expiré. Demandez un nouveau devis. | Demandez un nouveau devis. |
introuvable | 404 | Ressource introuvable. | Identifiant inexact, ou ressource d'un autre partenaire (même réponse, par sécurité). |
methode_non_autorisee | 405 | Méthode non autorisée sur cette adresse. | Vérifiez la méthode HTTP de l'appel. |
service_indisponible | 503 | Service momentanément indisponible. Réessayez dans un instant. | Réessayez avec la même clé d'idempotence (rien n'a été enregistré). |
erreur_interne | 500 | Erreur interne. Si le problème persiste, contactez le support avec le requete_id. | Réessayez ; si cela persiste, écrivez au support avec le requete_id. |