Aller au contenu
Chargement des API keys…

Vue d'ensemble de la référence API

URL de base, enveloppe de réponse, conventions et liste complète des ressources.

L'API Wajub est une API REST : une seule URL de base, des corps en JSON, des codes de statut HTTP standard et un unique en-tête Authorization qui porte votre API key. Il n'existe ni hôte séparé pour la sandbox, ni segment de version dans le chemin.

Playground intégré

Renseignez vos API keys dans la barre supérieure, puis utilisez Tester cet endpoint sur n'importe quelle page de ressource pour envoyer une vraie requête depuis la documentation.

URL de base

Toutes les requêtes partent vers le même hôte, en HTTPS :

https://api.wajub.com

L'environnement est déterminé par le préfixe de l'API key que vous envoyez, pas par l'URL. Une clé qui commence par sk_test., pk_test. ou rk_test. lit et écrit dans la base de données de la sandbox ; une clé qui commence par sk., pk. ou rk. lit et écrit les données live. Même hôte, mêmes chemins, mêmes payloads.

Votre premier appel

GET / ne coûte rien, ne touche à aucune ressource et répond aux deux questions à se poser en premier : cette clé est-elle valide, et quel environnement ouvre-t-elle ?

curl https://api.wajub.com/ \
-H "Authorization: $WAJUB_API_KEY"

La réponse indique le nom de votre équipe et l'environnement auquel la clé appartient :

Réponse · 200 OK
{
"status": "OK",
"code": 200,
"message": "Hello from Wajub",
"business": "Acme Retail",
"env": "sandbox"
}

Enveloppe de réponse

Chaque réponse porte les trois mêmes champs, suivis du payload.

statusstringfacultatif
Libellé HTTP : OK, Created, Not Found, Unprocessable Content.
codeintegerfacultatif
Le code de statut HTTP, répété dans le corps.
messagestringfacultatif
Une phrase lisible par un humain. À journaliser, jamais à utiliser pour aiguiller votre code.

Une ressource unique est renvoyée sous une clé JSON qui porte son nom. Un paiement revient sous transaction, et non payment, car l'enregistrement sous-jacent est une transaction :

Ressource unique · 200 OK
{
"status": "OK",
"code": 200,
"message": "Payment retrieved",
"transaction": {
"id": "trx_01JXXXXXXXXXXXXX",
"reference": "trx.PVrU8x2kQ1",
"amount": 25000,
"currency": "XAF",
"status": "succeeded"
}
}

Les listes renvoient un tableau items et un objet meta :

Liste · 200 OK
{
"status": "OK",
"code": 200,
"message": "Payments retrieved",
"items": [
],
"meta": {
"current_page": 1,
"last_page": 3,
"per_page": 25,
"total": 68
}
}

Voici la clé à lire pour chaque ressource. GET /events est la seule liste qui n'utilise pas items :

RessourceUniqueListe
Paiementstransactionitems
Remboursementsrefunditems
Transfertstransferitems
Clientscustomeritems
Bénéficiairesbeneficiaryitems
Liens de paiementlinkitems
Facturesinvoiceitems
Comptesaccountitems
Endpoints de webhookendpointitems
Événementseventevents
Soldebalancesans objet

Chaque réponse porte un identifiant de requête

X-Request-Id est renvoyé sur chaque réponse, en cas de succès comme d'échec. Journalisez-le, et communiquez-le au support en cas de problème. Vous pouvez aussi envoyer le vôtre (64 caractères maximum) : Wajub vous le renvoie au lieu d'en générer un, ce qui aligne vos logs sur les nôtres.

En-têtes de réponse
X-Request-Id: 9f1c0f2a-3f5e-4f1b-9a1e-2c8d6b0e7a41
X-Wajub-Version: 2026-09-01
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117

Conventions

SujetCe qui est couvert
AuthentificationClés publiques, privées et restreintes, scopes, règles d'IP
ErreursCodes de statut et objet errors
Motifs d'échecfailure_reason sur les paiements, transferts et remboursements échoués
Paginationper_page, page et cursor
Limites de requêtesLes cinq limiteurs et les en-têtes X-RateLimit-*
IdempotenceRejouer une création sans débiter deux fois
Gestion des versionsVersions datées et ce qui a changé

Ressources

RessourceEndpoints principaux
PaiementsPOST /payments, GET /payments/{id}
PrestatairesGET /providers
RemboursementsPOST /refunds, GET /refunds/{id}
TransfertsPOST /transfers, GET /transfers/{id}
ClientsPOST /customers, GET /customers/{id}
Sous-comptesPOST /accounts
SoldeGET /balance
ÉvénementsGET /events, POST /events/{id}/resend
BénéficiairesPOST /beneficiaries
Endpoints de webhookPOST /webhooks
Liens de paiementPOST /links
FacturesPOST /invoices
LitigesGET /disputes

Trois modules complémentaires se situent en dehors des ressources principales et sont documentés à part : Identité, Taxes et Shield.

Essayer maintenant

GET /balance exige une clé privée, c'est donc aussi un bon moyen de vérifier que votre clé côté serveur fonctionne :

Que pensez-vous de ce contenu ?