Aller au contenu

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.

VersionStatut
2026-10-11Actuelle, celle sur laquelle un nouveau compte est fixé
2026-09-01Prise en charge, celle sur laquelle est fixé tout compte créé avant le 11 octobre 2026
2026-08-01Prise en charge
2025-01-01Prise en charge

Toute version absente de cette liste est immédiatement refusée.

Réponse 400 pour une version inconnue
{
"code": 400,
"status": "Bad Request",
"message": "Unsupported API version: 2024-01-01. Supported versions: 2026-10-11, 2026-09-01, 2026-08-01, 2025-01-01."
}

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.

VersionChangementAction
2026-08-01complete remplace is_complete sur un transfertLisez complete
2026-09-01ledger_balance_before et ledger_balance_after sont retirés d'un transfertSupprimez-les
2026-10-11Le status d'un paiement affiche refunded ou partially_refunded une fois des remboursements réussis, et GET /payments?status=succeeded ne liste plus ces paiementsNe 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. 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. 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. 3

    La version par défaut de la plateforme

    Il s'agit de la version actuelle, soit 2026-10-11 aujourd'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.

Fixer une version et lire la valeur résolue
curl https://api.wajub.com/transfers/po_kZ3qP8mWvL2xR7tB \
  -H "Authorization: sk_test.xxxxxxxxxxxxxxxx…" \
  -H "X-Wajub-Version: 2026-08-01" \
  -D -

Passer à une version supérieure

  1. 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. 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. 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. 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.

Que pensez-vous de ce contenu ?