Aller au contenu

Solde et règlements

Ce que vous détenez, ce que vous pouvez envoyer aujourd'hui et quand le reste devient disponible.

Wajub ne détient pas votre argent. Les encaissements sont réglés par un partenaire de paiement agréé qui conserve les fonds pour votre compte. Le solde représente cette position consultée via l'API.

Un seul montant permet de payer quelqu'un : available. Tout le reste correspond à de l'argent que vous détenez, mais ne pouvez pas encore dépenser. La plupart des questions des marchands sur les payouts concernent en réalité l'écart entre ces deux montants.

Un seul appel

GEThttps://api.wajub.com/balance

La clé secrète est obligatoire. Comme toutes les autres routes de payout, une clé publique renvoie 406 Private Key Required. Il n'existe aucun autre endpoint de solde : aucun historique, aucune consultation par portefeuille et aucun ajustement.

curl https://api.wajub.com/balance \
  -H "Authorization: sk.xxxxxxxxxxxxxxxx…"

La réponse live contient dix champs. Sept décrivent votre argent. Les trois autres existent pour des raisons sans rapport avec celui-ci.

Réponse · 200 OK
{
"code": 200,
"status": "OK",
"message": "Balance retrieved",
"balance": {
"total": 1325000,
"available": 1250000,
"pending": 75000,
"reserved": 0,
"in.transit": 0,
"hold": 0,
"disputed": 0,
"credit": 0,
"currency": "XAF",
"environment": "live"
}
}

Voici les sept champs à lire. Les cinq premiers répondent à des questions différentes sur les mêmes fonds. Les deux derniers indiquent comment les montants sont exprimés.

totalnumberfacultatif
Tout ce que vous détenez. Somme de available, pending, reserved et disputed.
availablenumberfacultatif
Fonds réglés, sortis de la période de rétention et utilisables. Le seul montant disponible pour un payout. Il passe sous zéro lorsqu'un remboursement, une rétrofacturation ou des frais arrivent après le versement des fonds, et aucun payout ne part tant que de nouveaux encaissements ne l'ont pas couvert.
pendingnumberfacultatif
Fonds encaissés et réglés, encore dans leur période de rétention. Ils deviennent disponibles après un délai expliqué ci-dessous.
reservednumberfacultatif
Fonds engagés dans des payouts en cours. Vous ne pouvez pas les dépenser deux fois.
disputednumberfacultatif
Fonds retenus pour les litiges ouverts, pris sur available à l'ouverture d'un litige. Ils reviennent dans available si vous gagnez, et sortent si vous perdez.
currencystringfacultatif
Devise dans laquelle tous les montants précédents sont exprimés. Il s’agit d’une unité, pas d’un portefeuille.
environmentstringfacultatif
live ou sandbox.

Les trois champs absents de ce tableau le sont volontairement.

Les montants utilisent l'unité principale, comme pour un transfert. 1250000 en XAF signifie un million deux cent cinquante mille francs, et non douze mille cinq cents.

Il ne s'agit pas d'un portefeuille, mais de leur ensemble

Wajub conserve un portefeuille par devise. GET /balance n'en renvoie pas un seul. Il lit tous vos portefeuilles, convertit chacun dans une même devise, puis les additionne.

currency est donc une unité d'affichage, pas un filtre. ?currency=XOF n'affiche pas votre portefeuille XOF, mais tous vos fonds exprimés en XOF. Les fonds sous-jacents ne bougent pas et aucun portefeuille n'est exclu.

Les mêmes fonds exprimés dans une autre devise
curl "https://api.wajub.com/balance?currency=USD" \
  -H "Authorization: sk.xxxxxxxxxxxxxxxx…"

Seul cURL est présenté, car les SDK n'acceptent ici aucun argument. balance.retrieve() ne possède aucun paramètre dans les différents SDK. Omettez le paramètre d'URL pour obtenir la devise définie sur votre compte. Il s'agit de XAF jusqu'à sa modification, quel que soit votre pays d'activité.

Pourquoi available est inférieur à total

Un encaissement n'arrive pas sous forme de fonds utilisables. Il est crédité dans pending et y reste pendant une durée fixe avant son transfert. Cette rétention protège la plateforme contre un paiement contesté après que vous l'avez déjà retiré.

La durée est calculée pour chaque paiement selon son canal d'origine.

CanalRétention de base
Mobile Money, y compris cm.mtn, cm.orange et cm.eu24 heures
Banque48 heures
Carte72 heures
Cryptomonnaie72 heures

La rétention peut être plus courte ou plus longue que cette base selon le profil de risque de votre compte, et elle ne dépasse jamais sept jours. Votre plan ou un accord avec Wajub peut remplacer directement cette durée de base.

À l'expiration d'une rétention, les fonds peuvent mettre quelques minutes de plus à devenir disponibles. Ce décalage est normal et ne signifie pas que le solde est bloqué.

Signification de reserved

reserved correspond aux fonds engagés dans des payouts qui ne sont pas terminés. La création d'un transfert retire le montant et une estimation des frais de available, puis les place dans reserved avant même de contacter l'opérateur.

Ces fonds quittent reserved au résultat du transfert. Ce résultat détermine leur destination. Avec transfer.succeeded, ils sont réellement débités et total diminue. Avec transfer.failed, ils reviennent dans available et aucuns frais ne sont prélevés. Un payout retenu pour examen conserve ses fonds réservés pendant toute la rétention. C'est le seul cas où reserved peut rester inchangé pendant des heures.

Le montant consulté peut dater de trois minutes

Le montant peut avoir jusqu'à trois minutes de retard. Un payout créé il y a une minute peut ne pas avoir encore modifié available.

Le solde ne convient donc pas au suivi d'une boucle. Consultez-le une fois avant un lot pour estimer votre position, puis laissez les appels de transfert faire foi. Un payout impossible à financer est refusé à la création avec sa propre erreur 422, sans créer de découvert.

Ne conditionnez pas chaque payout à une lecture du solde

Consulter le solde avant chacun des cinquante payouts d'une boucle produit cinquante réponses obsolètes et consomme votre limite de requêtes. Vérifiez une fois, envoyez les payouts, puis gérez l'erreur de financement si elle survient.

Solde simplifié dans la sandbox

La sandbox répète un seul montant. total et available contiennent la même valeur. pending, reserved et les autres restent à zéro. Il n'existe aucune rétention, réservation ou règlement à reproduire.

Le solde commence aussi à zéro. Il n'existe aucun endpoint de recharge ni aucun bouton dans la Konsole. Seul un paiement sandbox réussi crédite ce solde. C'est pourquoi le Démarrage rapide Transferts commence par encaisser des fonds avant d'en envoyer.

Suivre les changements

Au lieu d'utiliser le polling, abonnez-vous à balance.updated. Cet événement est émis à chaque mouvement. Son payload décrit le mouvement lui-même, et non le nouvel objet solde.

balance.updated
{
"currency": "XAF",
"amount": 20000,
"direction": "credit",
"balance_type": "pending",
"balance_before": 1305000,
"balance_after": 1325000,
"reason": "succeeded",
"sandbox": false
}

balance_type indique le solde modifié, pending ou available. Vous pouvez ainsi distinguer un nouvel encaissement d'une rétention qui vient d'expirer. direction vaut credit ou debit.

Les frais ne produisent pas balance.updated

Le débit des frais est volontairement exclu de cet événement et publié sous fee.charged. Un rapprochement fondé uniquement sur balance.updated trouvera donc des fonds manquants. Abonnez-vous aux deux événements.

Règlement vers votre compte de versement

Chaque jour à 02:00 UTC, Wajub verse ce que vous avez encaissé sur le rail Wajub vers votre compte de versement, avec un payout par devise. Le montant correspond à ce que ces paiements ont crédité, moins les remboursements, les frais et les litiges perdus déjà prélevés sur eux. Rien n'est envoyé sous 1 000 dans la devise créditée, et les paiements encaissés via votre propre prestataire n'en font jamais partie. Si vous avez plusieurs comptes de versement et qu'aucun n'est choisi pour le règlement, la journée est ignorée : Wajub ne devine jamais où va votre argent.

Ajouter des fonds et lire vos revenus

Revenue, Funding alimente votre solde live, par Mobile Money sur cm.mtn, cm.orange ou cm.eu, ou par virement bancaire lorsqu'il est proposé : vous envoyez le virement, puis vous déposez le justificatif sur la même page. Le reste de Revenue présente vos paiements encaissés par canal et par devise, les frais de traitement facturés par Wajub, ce qui a été rendu aux clients, et un rapport de solde qui montre ce qui est retenu pour les litiges et la date de règlement prévue des encaissements récents. Il est réservé au mode live et s'exporte en PDF ou en Excel.

Aucun endpoint de registre

Aucun endpoint de l'API ne renvoie la liste des mouvements d'un solde. Pour rapprocher une période, listez les ressources à l'origine des mouvements avec GET /payments, GET /transfers et GET /refunds, puis ajoutez les frais provenant de vos événements fee.charged. La Konsole exporte les mêmes données pour la comptabilité.

Que pensez-vous de ce contenu ?