Administration
Routes du dashboard.
AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
Vue d'ensemble.
application/json- response
sandbox*booleanLe sandbox est actif : aucun agrégateur n'est contacté.
mode*string"test""live"features*payments*payouts*curl -X GET 'http://localhost:8787/admin/overview'{ "sandbox": true, "mode": "test", "features": { "wallet": true }, "payments": { "recent": [ { "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" } } ], "count": 0, "succeeded": 0, "volume": 0 }, "payouts": { "recent": [ { "id": "po_f6be299eb1f44d63a8d4a588965ce39e", "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": "pending", "amount": 0, "operator": "mtn_bj", "recipientPhone": "string", "reference": "string" } ], "count": 0 }}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
limit?integerNombre d'éléments (1 à 200, 50 par défaut).
1 <= value <= 20050Paiements.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/admin/payments'{ "data": [ { "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" } } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
id*stringIdentifiant Pont du paiement.
Détail.
application/json- response
payment*refunds*array<>timeline*array<>Chronologie construite uniquement à partir de ce que Pont a enregistré.
curl -X GET 'http://localhost:8787/admin/payments/string'{ "payment": { "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" } }, "refunds": [ { "id": "re_3c1f0a9e2b7d4e56a8f1c0d2e4b69a77", "mode": "test", "paymentId": "string", "status": "pending", "amount": 0, "currency": "XOF", "provider": "string", "attemptId": "string", "providerRef": "string", "failureCode": "string", "needsReconciliation": true, "createdAt": 0, "updatedAt": 0 } ], "timeline": [ { "at": 0, "kind": "created", "title": "string", "detail": "string", "tone": "neutral" } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
id*stringIdentifiant Pont du paiement.
application/json- body
amount?integerMontant à rembourser. Sans montant : remboursement du restant.
1 <= valueRemboursement créé.
application/json- response
id*stringmode*string"test""live"paymentId*stringPaiement remboursé.
status*TransferStatusStatut d'un retrait ou d'un remboursement.
"pending""processing""succeeded""failed""cancelled"amount*integercurrency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"provider*stringattemptId*stringproviderRef*string|nullfailureCode*string|nullneedsReconciliation*booleancreatedAt*integerupdatedAt*integercurl -X POST 'http://localhost:8787/admin/payments/string/refund' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "re_3c1f0a9e2b7d4e56a8f1c0d2e4b69a77", "mode": "test", "paymentId": "string", "status": "pending", "amount": 0, "currency": "XOF", "provider": "string", "attemptId": "string", "providerRef": "string", "failureCode": "string", "needsReconciliation": true, "createdAt": 0, "updatedAt": 0}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
limit?integerNombre d'éléments (1 à 200, 50 par défaut).
1 <= value <= 20050Retraits.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/admin/payouts'{ "data": [ { "id": "po_f6be299eb1f44d63a8d4a588965ce39e", "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": "pending", "amount": 0, "operator": "mtn_bj", "recipientPhone": "string", "reference": "string" } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
Couverture.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/admin/coverage'{ "data": [ { "country": "BJ", "operators": [ "mtn_bj" ], "deposit": [ "string" ], "payout": [ "string" ], "refund": [ "string" ] } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
Santé.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/admin/providers-health'{ "data": [ { "provider": "string", "capabilities": [ "deposit" ], "countries": 0, "lastHour": { "settled": 0, "succeeded": 0, "rate": 0 }, "needsReconciliation": 0 } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
application/json- body
scenario?string^\d{7}$Paiement de test.
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/admin/test-payment' \ -H 'Content-Type: application/json' \ -d '{}'{ "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" }}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
limit?integerNombre d'éléments (1 à 200, 50 par défaut).
1 <= value <= 20050Portefeuilles.
application/json- response
data*array<>curl -X GET 'http://localhost:8787/admin/wallets'{ "data": [ { "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true } ]}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
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/admin/wallets/string'{ "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
user*stringIdentifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).
application/json- body
frozen*booleanPortefeuille mis à jour.
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 POST 'http://localhost:8787/admin/wallets/string/freeze' \ -H 'Content-Type: application/json' \ -d '{ "frozen": true}'{ "userId": "awa", "currency": "XOF", "available": 0, "held": 0, "tier": "string", "frozen": true}AdminTokenAuthorizationBearer <token>PONT_ADMIN_TOKEN, pour les routes /admin.
limit?integerNombre d'éléments (1 à 200, 50 par défaut).
1 <= value <= 20050Registre.
application/json- response
currency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"system*array<>Comptes système.
entries*array<>Dernières écritures, la plus récente d'abord.
curl -X GET 'http://localhost:8787/admin/ledger'{ "currency": "XOF", "system": [ { "code": "string", "balance": 0, "currency": "XOF" } ], "entries": [ { "id": "string", "description": "string", "createdAt": 0, "reverses": "string", "lines": [ { "account": "string", "direction": "debit", "amount": 0 } ] } ]}