Erreurs
Format
Toutes les erreurs partagent la même structure :
{
"timestamp": "2026-06-10T12:00:00",
"status": 400,
"error": "Bad Request",
"message": "Invalid request data",
"path": "/partners/payments",
"traceId": null
}
Les erreurs de validation de schéma (champs manquants ou hors limites) renvoient 400 avec le message générique Invalid request data.
Authentification & autorisation
| HTTP | Message | Condition |
|---|---|---|
400 | unsupported_grant_type | grant_type différent de client_credentials |
401 | invalid_client | Identifiants absents, Basic invalide, client inconnu ou secret invalide |
403 | Credential is inactive | Identifiant désactivé |
403 | Credential expired | Identifiant expiré |
403 | Application is not active | Application non active |
403 | Partner is not approved | Partenaire non approuvé |
401 | NO_BEARER_PROVIDED | En-tête Authorization: Bearer absent sur /partners/payments |
401 | Invalid access token | Jeton invalide, illisible ou identifiant introuvable |
401 | Access token expired | Jeton expiré |
403 | Insufficient scope | Scope payments:create ou payments:read manquant |
Création de paiement
| HTTP | Message | Condition |
|---|---|---|
400 | currency must be EUR | Devise différente de EUR |
400 | callbackUri is required | callbackUri absent ou vide |
400 | webhookUri is required | webhookUri absent ou vide |
400 | <champ> must be a valid URL | URL invalide |
400 | <champ> must be an absolute URL | URL non absolue ou sans hôte |
400 | <champ> must use HTTPS | Schéma différent de https |
400 | <champ> cannot use localhost or private IP | Hôte localhost ou IP privée |
400 | payee iban and fullName are required | payee.iban ou payee.fullName absent |
400 | payee iban is not valid | IBAN invalide (motif ou MOD97) |
400 | description is required | Description absente ou vide |
400 | description must not exceed 140 characters | Description trop longue |
400 | description contains unsupported remittance characters | Caractères hors jeu SEPA |
400 | metadata must be valid JSON | metadata non sérialisable |
400 | stateId cannot exceed 150 characters | stateId trop long |
404 | Payment not found | paymentRequestId introuvable |
Méthode HMAC
Erreurs propres au flux signé POST /partners/rtp (voir la méthode HMAC) :
| HTTP | Message | Condition |
|---|---|---|
401 | Invalid clientId | X-Client-Id inconnu |
401 | Request expired | X-Timestamp hors de la fenêtre de 300 secondes |
401 | Invalid signature | Signature différente de celle attendue |
401 | Security validation error | Erreur technique pendant la validation de signature |
403 | Inactive credentials | Identifiant désactivé |
403 | Credential expired | Identifiant expiré |
403 | Application is not active | Application inactive |
400 | Invalid request data | Un champ du corps ne respecte pas les règles |
Erreurs serveur
| HTTP | Message | Condition |
|---|---|---|
500 | Internal server error | Exception non gérée ou erreur amont masquée |
Dans <champ>, le nom du champ concerné (par exemple callbackUri ou webhookUri) est inséré dans le message réel.