CODFamiliaAPI v1.3

Erreurs & limites

Chaque erreur dit quoi faire. Une intégration qui traite correctement ces six cas ne demande plus de support.

Codes renvoyés

CodeSignificationConduite à tenir
400 invalid_jsonLe corps n'est pas du JSON valide.Vérifiez l'en-tête Content-Type: application/json et la virgule de trop.
401 unauthorizedClé absente, invalide ou révoquée.Envoyez « Authorization: Bearer cfk_… ». Une clé révoquée ne redevient jamais valide : créez-en une autre.
404 not_foundRessource inexistante — ou appartenant à un autre vendeur.Les deux cas donnent la même réponse, volontairement.
422 validationChamp obligatoire manquant ou invalide.La réponse nomme le champ fautif.
429 rate_limitedTrop d'appels sur la dernière minute.Attendez le délai indiqué par l'en-tête Retry-After, puis reprenez.
500 server_errorIncident de notre côté.Réessayez ; si cela persiste, écrivez au support avec l'heure exacte de l'appel.

Le corps d'une erreur a toujours la même forme :

{"error":"unauthorized","message":"Clé API absente, invalide ou révoquée."}

Le cas particulier du 202

202 n'est pas une erreur : la commande est enregistrée, mais comme « lead endommagé », en attente d'une correction dans l'espace du vendeur. Vous recevez la liste des anomalies, champ par champ.

{"data":{"damaged_id":87,"status":"damaged","issues":[
  {"field":"city","level":"warning","message":"Ville non reconnue : « Casa Blanca »."}
]}}

Traitez-le comme un succès partiel : ne rejouez pas l'appel (vous créeriez un second lead), corrigez plutôt la donnée à la source. Le plus souvent, c'est un nom de ville ou un SKU qui a changé chez vous.

Limite de débit

120 appels par minute et par clé. Au-delà, la réponse est 429 avec un en-tête Retry-After en secondes.

Voir vos propres appels

Dans Applications → API, le vendeur retrouve ses derniers appels avec le code renvoyé et la durée. C'est le moyen le plus court de répondre à « pourquoi mon intégration ne marche pas » : l'appel y figure, ou il n'est jamais arrivé.

Compatibilité

Nous ajoutons des champs, nous n'en retirons pas sans changer de version. Écrivez donc votre code pour ignorer les champs inconnus plutôt que pour refuser une réponse enrichie. Les valeurs de statut, en revanche, peuvent s'allonger : prévoyez un cas « autre » dans vos correspondances.