Format des erreurs API et codes courants marchands.
Les erreurs HTTP 4xx/5xx suivent l'enveloppe ApiResponse de la plateforme.
{
"success": false,
"error": {
"code": "MERCHANT_KYB_NOT_APPROVED",
"message": "Merchant cannot transact until KYB is APPROVED...",
"details": {}
}
}Sur GET /checkout/pay/:sessionId, GET /checkout/pay/:sessionId/status et le webhook payment.failed, failureCode expose un vocabulaire IZZIPAY stable — ce n'est plus un code provider brut.
Breaking change : les intégrations qui parsaient INSUFFICIENT_BALANCE (PawaPay) doivent migrer vers INSUFFICIENT_FUNDS.
failureMessage est le message payeur (FR pour l'instant). Le champ webhook reason reste un alias deprecated du code provider interne.
Les listes (charges, sessions, liens, payouts) retournent data comme tableau et meta { page, pageSize, total, totalPages }.
La taille de page par défaut est 25 (DEFAULT_PAGE_SIZE).
GET /payments/charges accepte aussi starting_after (curseur sur l'ID charge) pour parcourir de grands volumes.