Skip to main content

Lire un code d’erreur Connect

Deux conventions coexistent dans les corps d’erreur, et il faut le savoir avant d’écrire un switch :
Branchez toujours sur la valeur littérale du champ code du corps de la réponse.
Certains refus n’ont aucun code : les refus de cible portent seulement {"message": "Forbidden"} ou {"message": "Unauthorized"}. C’est délibéré : ils ne doivent rien révéler sur les comptes d’autrui.

Refus de cible (401 / 403)

Quatre causes, deux réponses seulement.
Les trois premiers sont byte-identiques : l’API ne dira jamais si un acct_ existe. Sinon elle deviendrait un moyen d’énumérer les comptes des autres marketplaces.

Refus de validation (400 / 422)

Fonds insuffisants (402)

Les deux corps portent required, seller_available, shortfall, currency. Le refus de remboursement porte en plus available et marketplace_balance.
402 et non 422 : la requête est bien formée, ce sont les fonds qui manquent.

Conflits d’idempotence (409)

Sur POST /v1/connect/accounts/{acct}/withdrawals, un rejeu rend le 201 d’origine pendant 24 h, puis 409 E_DUPLICATE_OPERATION. Le retrait a bien eu lieu dans les deux cas.

Limitation de débit (429)

E_TOO_MANY_REQUESTS sur POST /v1/connect/accounts : 20 requêtes par minute. Aucune autre route Connect n’est limitée.

Indisponibilité (502 / 503)

Connect échoue fermé sur la tarification. Un 503 E_CONNECT_PRICING_UNAVAILABLE signifie que l’opération a été refusée plutôt que facturée à zéro. C’est délibéré : une commission silencieusement nulle serait une perte invisible.

Surface (400)

L’en-tête Yabetoo-Account est réservé et n’est consommé par aucune route Connect aujourd’hui. Ne l’envoyez pas.