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.

Un seul montant de votre solde permet de payer quelqu'un, available : le reste correspond à de l'argent que vous détenez sans pouvoir encore le dépenser. Cette page explique chaque montant et le moment où les fonds encaissés deviennent disponibles.

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 contient les montants suivants.

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

Les cinq premiers répondent à des questions différentes sur les mêmes fonds. Les deux derniers indiquent comment les montants sont exprimés. Ignorez tout autre champ.

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

GET /balance additionne ce que vous détenez dans chaque devise, converti dans une seule.

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

currency accepte la devise de votre compte, ou une devise pour laquelle Wajub a un taux de change, en majuscules ou en minuscules. Tout autre code, une faute de frappe ou une devise vers laquelle Wajub ne peut pas convertir, renvoie un 422 sur currency.

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.

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.

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 n'est pas en temps réel

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 n'a ni rétention, ni réservation, ni règlement : total et available contiennent le même montant.

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

Revenus, Financements 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 Revenus 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 ?