Mise à niveau de l'API
Les versions datées, leurs changements et la méthode pour fixer une version.
Les versions de l'API sont identifiées par date. Quatre versions sont actives en même temps et un nouveau compte est fixé sur la plus récente. Pour passer de l'une à l'autre, modifiez un en-tête et appliquez les changements indiqués ci-dessous.
| Version | Statut |
|---|---|
2026-10-11 | Actuelle, celle sur laquelle un nouveau compte est fixé |
2026-09-01 | Prise en charge, celle sur laquelle est fixé tout compte créé avant le 11 octobre 2026 |
2026-08-01 | Prise en charge |
2025-01-01 | Prise en charge |
Toute version absente de cette liste est immédiatement refusée.
Changements réels
Les changements cassants publiés sous une version figurent ci-dessous, deux sur les transferts et un
sur les paiements. Les changements additifs ne créent pas de nouvelle version. Quelques changements
qui cassent une intégration sont aussi sortis sans version, comme l'objet transfert remanié, des
événements renommés, /accounts réservé aux clés privées et le statut de transfert review :
épingler une ancienne version ne les annule pas. Le journal des modifications
les liste avec leur date et l'action à mener.
| Version | Changement | Action |
|---|---|---|
2026-08-01 | complete remplace is_complete sur un transfert | Lisez complete |
2026-09-01 | ledger_balance_before et ledger_balance_after sont retirés d'un transfert | Supprimez-les |
2026-10-11 | Le status d'un paiement affiche refunded ou partially_refunded une fois des remboursements réussis, et GET /payments?status=succeeded ne liste plus ces paiements | Ne traitez plus succeeded comme le seul état d'une commande payée : gérez les deux valeurs partout où vous lisez ou filtrez le statut d'un paiement |
Ces changements ne cassent pas les anciens clients. Si vous fixez 2025-01-01, un transfert renvoie
toujours is_complete et les deux champs du registre, car la réponse est adaptée à votre version.
Si vous envoyez is_complete avec une version plus récente, il est converti à l'entrée.
Un nouveau champ ne crée pas une nouvelle version
L'ajout de champs à une réponse, de nouveaux endpoints et de nouvelles valeurs d'énumération ne change pas la version. Analysez les réponses de façon à ignorer un champ inconnu. Traitez un statut inconnu comme non définitif au lieu de provoquer une erreur.
Sélection de votre version
Trois sources sont examinées. La première correspondance l'emporte.
- 1
L'en-tête X-Wajub-Version
Il s'applique à une requête et remplace toutes les autres valeurs. Son format doit être exactement identique à
2026-09-01. - 2
La version fixée sur votre compte
Elle est définie à la création du compte ou par le support. Elle s'applique aux appels qui ne contiennent pas l'en-tête.
- 3
La version par défaut de la plateforme
Il s'agit de la version actuelle, soit
2026-10-11aujourd'hui. Elle ne décide que pour un appel qui n'atteint aucun compte : tous les comptes sont fixés.
Quelle que soit la source retenue, la version résolue apparaît dans le même en-tête de chaque réponse. C'est le seul moyen fiable de connaître la version réellement utilisée.
curl https://api.wajub.com/transfers/po_kZ3qP8mWvL2xR7tB \
-H "Authorization: sk_test.xxxxxxxxxxxxxxxx…" \
-H "X-Wajub-Version: 2026-08-01" \
-D -Un en-tête mal formé est ignoré, pas refusé
L'en-tête est lu uniquement s'il respecte exactement le format YYYY-MM-DD. 2026-8-1, v2 ou
une valeur suivie d'une espace est ignoré sans erreur. La version du compte ou celle de la
plateforme s'applique alors. Vous recevez une réponse 200 avec une version différente de celle
demandée. Vérifiez l'en-tête de réponse au lieu de supposer que celui de la requête a été accepté.
Passer à une version supérieure
- 1
Lisez les différences
Le tableau ci-dessus contient les changements cassants versionnés ; consultez le journal des modifications pour les autres. Recherchez dans votre code les noms de champs qu'il présente, dans les deux directions.
- 2
Fixez la nouvelle version dans la sandbox
Envoyez l'en-tête avec une clé de test et exécutez vos scénarios : initialisation, réussite, échec, remboursement, transfert, traitement des webhooks et pagination.
- 3
Pilotez l'en-tête depuis la configuration
Utilisez une variable d'environnement plutôt qu'une valeur littérale. Un retour arrière demande alors un redémarrage plutôt qu'un déploiement.
- 4
Activez-la en production
Surveillez les mêmes signaux que pour tout autre déploiement, puis retirez les branches de compatibilité lorsque les mesures restent stables.
Dans le SDK Node, les headers propres à une requête se placent dans les options avec
idempotencyKey. Ajoutez-y l'en-tête de version pendant vos tests.
Comparez les payloads au lieu de deviner
Konsole enregistre la version résolue avec le corps de la requête. Vous pouvez ainsi comparer deux appels utilisant deux versions dans API Logs.
Politique de fin de prise en charge
La dépréciation d'une version est annoncée six mois avant son retrait de la liste des versions prises
en charge. Cette annonce paraît dans le Journal des modifications. Après le
retrait, les appels fixés sur cette version reçoivent la réponse 400 ci-dessus au lieu d'une
rétrogradation silencieuse. Ce choix évite de modifier vos payloads sans vous prévenir.
Pages associées
- Journal des modificationsLes nouveautés publiées et les éléments en cours de retrait.
- Migrer depuis un prestataireL'autre migration, qui consiste à quitter un prestataire pour Wajub.
- Transferts et payoutsLa ressource concernée par les deux changements de version.
- Gestion des erreursAnalysez les réponses sans qu'un champ ajouté ne casse votre intégration.