Portefeuilles
Soldes, dépôts, retraits et transferts (PostgreSQL uniquement).
ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
Le portefeuille.
application/json- response
userId*stringIdentifiant de l'utilisateur dans votre application.
^[A-Za-z0-9_-]{1,64}$currency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"available*integerSolde disponible.
held*integerMontant bloqué (retraits en cours).
tier*|nullfrozen*booleanUn compte gelé ne peut plus rien sortir.
curl -X GET 'http://localhost:8787/v1/wallets/string'{ "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
application/json- body
tier?stringPalier KYC, 1 à 32 caractères.
1 <= length <= 32frozen?booleanGèle ou dégèle le compte.
Le portefeuille.
application/json- response
userId*stringIdentifiant de l'utilisateur dans votre application.
^[A-Za-z0-9_-]{1,64}$currency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"available*integerSolde disponible.
held*integerMontant bloqué (retraits en cours).
tier*|nullfrozen*booleanUn compte gelé ne peut plus rien sortir.
curl -X PUT 'http://localhost:8787/v1/wallets/string' \ -H 'Content-Type: application/json' \ -d '{ "tier": "complet"}'{ "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "complet", "frozen": false}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
limit?integerNombre d'éléments (1 à 200, 50 par défaut).
1 <= value <= 20050Mouvements.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/v1/wallets/string/movements'{ "data": [ { "entryId": "string", "accountId": "string", "direction": "debit", "amount": 0, "createdAt": 0 } ]}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
application/json- body
amount*integerMontant à encaisser.
1 <= valuecountry*CountryPays (ISO 3166-1 alpha-2).
"BJ""TG""CI""SN""BF""ML""NE""GN""CM""CG""CD""GA"phone*stringNuméro du payeur (E.164).
6 <= length <= 20operator?OperatorOpérateur Mobile Money (<opérateur>_<pays>), indépendant des codes des agrégateurs.
"mtn_bj""moov_bj""celtiis_bj""moov_tg""tmoney_tg""mtn_ci""orange_ci""moov_ci""wave_ci""orange_sn""free_sn""wave_sn""expresso_sn""wizall_sn""orange_bf""moov_bf""orange_ml""moov_ml""mtn_cm""orange_cm""mtn_cg""airtel_cg""airtel_ga"reference*stringVotre référence, 1 à 64 caractères.
1 <= length <= 64Paiement de dépôt créé.
application/json- response
id*stringIdentifiant Pont.
mode*stringMode du serveur au moment de la création.
"test""live"country*stringPays (ISO 3166-1 alpha-2).
"BJ""TG""CI""SN""BF""ML""NE""GN""CM""CG""CD""GA"currency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"provider*stringAgrégateur choisi par Pont (fedapay, pawapay, paydunya, kkiapay, sandbox ou un agrégateur personnalisé).
attemptId*stringIdentifiant unique de la tentative, transmis à l'agrégateur quand il l'accepte.
providerRef*|nullfailureCode*|nullneedsReconciliation*booleantrue quand l'état réel chez l'agrégateur est inconnu : Pont vérifie à chaque cycle, ne réessaie jamais ailleurs.
metadata*Vos métadonnées libres (valeurs de 500 caractères au plus).
createdAt*integerDate de création, en millisecondes Unix.
updatedAt*integerDernière mise à jour, en millisecondes Unix.
status*PaymentStatusStatut normalisé d'un paiement. Seul succeeded est vérifié auprès de l'agrégateur.
"created""pending""processing""succeeded""failed""expired""cancelled""refunded""partially_refunded"amount*integerMontant en unités entières.
operator*|nullreference*stringVotre référence.
nextAction*||||nullcurl -X POST 'http://localhost:8787/v1/wallets/string/deposits' \ -H 'Content-Type: application/json' \ -d '{ "amount": 20000, "country": "BJ", "phone": "+2290100000001", "reference": "depot-1"}'{ "id": "pay_84a49a19050240ebb01077bdb806c672", "mode": "test", "country": "BJ", "currency": "XOF", "provider": "fedapay", "attemptId": "string", "providerRef": "string", "failureCode": "string", "needsReconciliation": true, "metadata": { "property1": "string", "property2": "string" }, "createdAt": 0, "updatedAt": 0, "status": "created", "amount": 0, "operator": "mtn_bj", "reference": "string", "nextAction": { "type": "redirect", "url": "http://example.com" }}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
application/json- body
amount*integerMontant reçu par le bénéficiaire (les frais s'ajoutent au débit).
1 <= valuecountry*CountryPays (ISO 3166-1 alpha-2).
"BJ""TG""CI""SN""BF""ML""NE""GN""CM""CG""CD""GA"phone*stringNuméro du bénéficiaire (E.164).
6 <= length <= 20operator*OperatorOpérateur Mobile Money (<opérateur>_<pays>), indépendant des codes des agrégateurs.
"mtn_bj""moov_bj""celtiis_bj""moov_tg""tmoney_tg""mtn_ci""orange_ci""moov_ci""wave_ci""orange_sn""free_sn""wave_sn""expresso_sn""wizall_sn""orange_bf""moov_bf""orange_ml""moov_ml""mtn_cm""orange_cm""mtn_cg""airtel_cg""airtel_ga"reference*stringVotre référence, 1 à 64 caractères.
1 <= length <= 64Retrait exécuté.
application/json- response
id*stringExécution du workflow wallet.withdraw.
status*"succeeded""succeeded"payoutId*|nullamount*integerfee*integerFrais prélevés (PONT_WITHDRAWAL_FEE_BPS).
curl -X POST 'http://localhost:8787/v1/wallets/string/withdrawals' \ -H 'Content-Type: application/json' \ -d '{ "amount": 5000, "country": "BJ", "phone": "+2290100000001", "operator": "mtn_bj", "reference": "retrait-1"}'{ "id": "wfr_93b8690f49654ceb9f594af721302033", "status": "succeeded", "payoutId": "po_f6be299eb1f44d63a8d4a588965ce39e", "amount": 5000, "fee": 0}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
application/json- body
from*stringUtilisateur débité.
^[A-Za-z0-9_-]{1,64}$to*stringUtilisateur crédité.
^[A-Za-z0-9_-]{1,64}$amount*integerMontant transféré.
1 <= valuefee?integerFrais à la charge de l'expéditeur.
0 <= valuereference*stringVotre référence, 1 à 64 caractères. Sert aussi de clé d'idempotence.
1 <= length <= 64Transfert effectué.
application/json- response
from*to*curl -X POST 'http://localhost:8787/v1/wallets/transfers' \ -H 'Content-Type: application/json' \ -d '{ "from": "awa", "to": "koffi", "amount": 3000, "reference": "transfert-1"}'{ "from": { "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true }, "to": { "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true }}