Pont · Documentation
RéférenceAPI

Administration

Routes du dashboard.

Vue d'ensemble

GET
/admin/overview

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Response Body

Vue d'ensemble.

application/json
  1. response
sandbox*boolean

Le sandbox est actif : aucun agrégateur n'est contacté.

mode*string
Value in"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  }}

Lister les paiements

GET
/admin/payments

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Query Parameters

limit?integer

Nombre d'éléments (1 à 200, 50 par défaut).

Range1 <= value <= 200
Default50

Response Body

Paiements.

application/json
  1. 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"      }    }  ]}

Détail d'un paiement

GET
/admin/payments/{id}

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Path Parameters

id*string

Identifiant Pont du paiement.

Response Body

Détail.

application/json
  1. 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"    }  ]}

Rembourser depuis le dashboard

POST
/admin/payments/{id}/refund

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Path Parameters

id*string

Identifiant Pont du paiement.

Request Body

application/json
  1. body
amount?integer

Montant à rembourser. Sans montant : remboursement du restant.

Range1 <= value

Response Body

Remboursement créé.

application/json
  1. response
id*string
mode*string
Value in"test""live"
paymentId*string

Paiement remboursé.

status*TransferStatus

Statut d'un retrait ou d'un remboursement.

Value in"pending""processing""succeeded""failed""cancelled"
amount*integer
currency*Currency

Devise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.

Value in"XOF""XAF"
provider*string
attemptId*string
providerRef*string|null
failureCode*string|null
needsReconciliation*boolean
createdAt*integer
updatedAt*integer
curl -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}

Lister les retraits

GET
/admin/payouts

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Query Parameters

limit?integer

Nombre d'éléments (1 à 200, 50 par défaut).

Range1 <= value <= 200
Default50

Response Body

Retraits.

application/json
  1. 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"    }  ]}

Couverture par pays

GET
/admin/coverage

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Response Body

Couverture.

application/json
  1. response
data*array<>
curl -X GET 'http://localhost:8787/admin/coverage'
{  "data": [    {      "country": "BJ",      "operators": [        "mtn_bj"      ],      "deposit": [        "string"      ],      "payout": [        "string"      ],      "refund": [        "string"      ]    }  ]}

Santé des agrégateurs

GET
/admin/providers-health

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Response Body

Santé.

application/json
  1. 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    }  ]}

Lancer un paiement de test

POST
/admin/test-payment

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Request Body

application/json
  1. body
scenario?string
Match^\d{7}$

Response Body

Paiement de test.

application/json
  1. response
id*string

Identifiant Pont.

mode*string

Mode du serveur au moment de la création.

Value in"test""live"
country*string

Pays (ISO 3166-1 alpha-2).

Value in"BJ""TG""CI""SN""BF""ML""NE""GN""CM""CG""CD""GA"
currency*Currency

Devise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.

Value in"XOF""XAF"
provider*string

Agrégateur choisi par Pont (fedapay, pawapay, paydunya, kkiapay, sandbox ou un agrégateur personnalisé).

attemptId*string

Identifiant unique de la tentative, transmis à l'agrégateur quand il l'accepte.

providerRef*|null
failureCode*|null
needsReconciliation*boolean

true 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*integer

Date de création, en millisecondes Unix.

updatedAt*integer

Dernière mise à jour, en millisecondes Unix.

status*PaymentStatus

Statut normalisé d'un paiement. Seul succeeded est vérifié auprès de l'agrégateur.

Value in"created""pending""processing""succeeded""failed""expired""cancelled""refunded""partially_refunded"
amount*integer

Montant en unités entières.

operator*|null
reference*string

Votre référence.

nextAction*||||null
curl -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"  }}

Lister les portefeuilles

GET
/admin/wallets

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Query Parameters

limit?integer

Nombre d'éléments (1 à 200, 50 par défaut).

Range1 <= value <= 200
Default50

Response Body

Portefeuilles.

application/json
  1. response
data*array<>
curl -X GET 'http://localhost:8787/admin/wallets'
{  "data": [    {      "userId": "awa",      "currency": "XOF",      "available": 0,      "held": 0,      "tier": "string",      "frozen": true    }  ]}

Lire un portefeuille

GET
/admin/wallets/{user}

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Path Parameters

user*string

Identifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).

Response Body

Portefeuille.

application/json
  1. response
userId*string

Identifiant de l'utilisateur dans votre application.

Match^[A-Za-z0-9_-]{1,64}$
currency*Currency

Devise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.

Value in"XOF""XAF"
available*integer

Solde disponible.

held*integer

Montant bloqué (retraits en cours).

tier*|null
frozen*boolean

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

Geler ou dégeler un portefeuille

POST
/admin/wallets/{user}/freeze

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Path Parameters

user*string

Identifiant de l'utilisateur (A-Z a-z 0-9 _ -, 64 caractères au plus).

Request Body

application/json
  1. body
frozen*boolean

Response Body

Portefeuille mis à jour.

application/json
  1. response
userId*string

Identifiant de l'utilisateur dans votre application.

Match^[A-Za-z0-9_-]{1,64}$
currency*Currency

Devise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.

Value in"XOF""XAF"
available*integer

Solde disponible.

held*integer

Montant bloqué (retraits en cours).

tier*|null
frozen*boolean

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

Lire le registre

GET
/admin/ledger

Authorization

AdminToken
headerAuthorizationBearer <token>

PONT_ADMIN_TOKEN, pour les routes /admin.

Query Parameters

limit?integer

Nombre d'éléments (1 à 200, 50 par défaut).

Range1 <= value <= 200
Default50

Response Body

Registre.

application/json
  1. response
currency*Currency

Devise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.

Value in"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        }      ]    }  ]}