Commandes API et ressources
Une même grammaire pour toutes les ressources, plus une requête brute lorsque vous en avez besoin.
La plupart des quatre-vingt-onze commandes appliquent les cinq mêmes verbes à onze ressources. Apprenez cette grammaire une fois pour piloter toute l'API sans ouvrir la référence.
wajub <resource> list
wajub <resource> retrieve <id>
wajub <resource> create -d field=value
wajub <resource> update <id> -d field=value
wajub <resource> delete <id>payments, customers, refunds, transfers, beneficiaries, links, invoices, events,
disputes, accounts et webhooks suivent cette structure, sans les verbes qui n'ont aucun sens
pour eux. refunds update n'existe pas, car un remboursement ne peut pas être modifié. shield,
identity et skills possèdent leur propre structure, présentée à la fin de cette page.
Envoyer un corps de requête
Deux méthodes sont disponibles et ne se mélangent pas. Utilisez -d dans le cas courant et
--data-raw dans tous les autres.
# Repeatable key=value. Dots build nested objects.
wajub payments create \
-d amount=25000 \
-d currency=XAF \
-d channel=cm.mtn \
-d customer.email=amina@example.com \
-d customer.phone=+237670000000
# Anything with arrays, or a body you already have
wajub webhooks create --data-raw '{
"url": "https://example.com/webhooks/wajub",
"events": ["payment.succeeded", "payment.failed"]
}'Les tableaux nécessitent `--data-raw`
-d construit des objets avec des points, pas des listes. events[0]=payment.succeeded est envoyé
comme un champ littéralement nommé events[0], que l'API refuse. Utilisez --data-raw pour tout
corps qui contient un tableau.
Répertorier des ressources
Toutes les commandes list proposent les neuf mêmes options.
| Option | Effet |
|---|---|
--limit | Nombre maximal d'éléments. Avec --all, limite le total plutôt que la page |
--page | Une page précise |
--all | Suit la pagination jusqu'à la fin ou jusqu'à --limit |
-q, --search | Recherche en texte intégral |
-f, --filter | key=value, répétable et envoyé comme paramètre d'URL |
--status | Filtre selon le statut |
--since | Créé à cette date ou après, au format YYYY-MM-DD |
--until | Créé à cette date ou avant, au format YYYY-MM-DD |
--expand | Développe une ressource imbriquée, répétable |
wajub payments list --limit 5
wajub payments list --status failed --since 2026-01-01
wajub payments list -q amina@example.com
wajub transfers list --all --limit 500 --json > transfers.json--since et --until représentent des journées entières. L'API filtre les paiements selon la date
civile. Vous ne pouvez pas demander uniquement les deux dernières heures. Pour une période plus
courte, répertoriez la journée et filtrez vous-même le JSON.
Requêtes brutes
Lorsqu'une route ne possède aucune commande dédiée, ou si vous voulez voir la réponse exacte de l'API, trois commandes acceptent n'importe quel chemin.
wajub get /balance
wajub get "/payments?per_page=5&status=succeeded"
wajub get /tax/settings
wajub post /customers -d email=amina@example.com -d name="Amina Nkem"
wajub post /transfers --data-raw '{"amount":100000,"currency":"XAF","beneficiary":"ben_…"}'
wajub delete /payments/trx_CSUGajfv9xh0XQ5wu2lxLe chemin est relatif à la base de l'API et la clé provient de votre profil. Vous n'avez donc aucun
en-tête à retenir et aucune clé dans votre historique. Placez entre guillemets tout chemin contenant
&, sinon votre shell l'interprétera.
Deux options qui changent le sens de la requête
--idempotency-key définit l'en-tête Idempotency-Key. La CLI en génère déjà un nouveau pour
chaque appel create. Indiquez-le seulement pour que deux exécutions soient traitées comme une même
tentative. Il s'applique aux paiements, transferts et remboursements.
--sync définit l'en-tête X-Sync et exécute l'appel au nom d'un compte connecté. Cette option
est disponible sur toutes les commandes d'écriture pour lesquelles elle a un sens.
# Run this twice: the second call returns the first result, it does not charge twice
wajub payments create -d amount=25000 -d currency=XAF --idempotency-key order-4172
# Create the payment on a connected merchant's account
wajub payments create -d amount=25000 -d currency=XAF --sync acc_7Yh2MpL4tRb3nP8sZcXvSortie
La sortie destinée aux humains est un tableau. --json affiche l'enveloppe de réponse de l'API sans
modification. Les listes se trouvent donc sous items et le solde sous balance. Utilisez cette
sortie dans vos pipelines.
wajub payments list --status failed --json \
| jq -r '.items[] | [.id, .amount, .failure_reason] | @tsv'
wajub balance --json | jq '.balance.available'
# Every failed payout of the month, as CSV
wajub transfers list --status failed --since 2026-01-01 --json \
| jq -r '.items[] | [.id, .amount, .currency, .failure_reason] | @csv'Commandes qui demandent une confirmation
Toute opération qui déplace de l'argent ou détruit un enregistrement demande une confirmation.
--yes, -y ou son alias --force ignore cette demande. Utilisez cette option dans un script et
nulle part ailleurs.
| Commande | Motif de la confirmation |
|---|---|
transfers create | Envoie de l'argent |
refunds create | Rembourse de l'argent |
payments process | Débite le payeur |
webhooks rotate-secret | Invalide le secret utilisé par votre serveur |
accounts token | Renouvelle le jeton d'un compte connecté |
Toutes les commandes delete | Suppriment l'enregistrement |
Commandes en lecture seule
Quatre commandes sans argument répondent à des questions que vous devriez autrement rechercher.
wajub balance # your balance, per currency
wajub channels # every channel slug you may use
wajub countries # supported countries
wajub currencies # supported currenciesUtilisez wajub channels lorsqu'un paiement échoue à cause d'un canal inconnu. La commande présente
exactement les slugs utilisables par votre compte, qui ne correspondent pas toujours au catalogue
complet.
Dans la sandbox, wajub balance renvoie un objet simplifié où available est égal à total et les
autres valeurs sont nulles. Le détail complet existe uniquement en live.
Identity et Shield
Deux thèmes ne suivent pas la grammaire CRUD, car les produits sous-jacents ne la suivent pas.
# Who owns this wallet, before you send money to it
wajub identity resolve -d phone=+237670000000 -d channel=cm.mtn
wajub identity validate -d account=00012345678 -d bank=afriland
# Shield
wajub shield stats
wajub shield settings
wajub shield blocklist
wajub shield block +237670000000 --type phone --reason "chargeback ring"
wajub shield unblock blk_9mWvL2xR7tB5nY4hC6dF--type accepte email, phone, ip, country et card_bin. La liste de blocage de Shield
s'applique au trafic live. Un profil de sandbox ne permet donc pas de tester un blocage.
Pages associées
- Utilisation avancéeLa CI, l'autocomplétion, les exemples et le raccourci vers le Dashboard.
- Déclencher des événementsProduire un paiement au lieu d'en décrire un.
- IdempotenceCe contre quoi l'en-tête vous protège réellement.
- Vue d'ensemble de la référence APIToutes les routes, tous les paramètres et toutes les réponses.