Paiements
Encaisser un client et le rembourser.
ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
Idempotency-Key?stringClé d'idempotence (8 à 255 caractères). Sans elle, Pont utilise auto:<type>:<reference>.
8 <= length <= 255application/json- body
amount*integerMontant en unités entières de la devise.
1 <= valuecurrency*CurrencyDevise : le XOF et le XAF n'ont pas de décimales, les montants sont des entiers.
"XOF""XAF"country*CountryPays (ISO 3166-1 alpha-2).
"BJ""TG""CI""SN""BF""ML""NE""GN""CM""CG""CD""GA"customer*reference*stringVotre référence (commande, facture), 1 à 64 caractères. Sert aussi de clé d'idempotence par défaut.
1 <= length <= 64method?stringMoyen de paiement.
"mobile_money""card"operator?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"description?stringLibellé affiché au client, 255 caractères au plus.
length <= 255returnUrl?stringAdresse où ramener le client après un paiement hébergé.
urimetadata?Métadonnées libres, renvoyées dans les réponses et les webhooks.
preAuthorisationCode?stringCode à usage unique généré avant le paiement (Orange Burkina via PawaPay) : 1 à 36 caractères alphanumériques.
^[A-Za-z0-9]{1,36}$Paiement 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/payments' \ -H 'Content-Type: application/json' \ -d '{ "amount": 5000, "currency": "XOF", "country": "BJ", "customer": { "phone": "+2290100000001" }, "reference": "commande-42"}'{ "id": "pay_84a49a19050240ebb01077bdb806c672", "mode": "test", "status": "pending", "amount": 5000, "currency": "XOF", "country": "BJ", "provider": "sandbox", "attemptId": "466a0f26-3cde-4876-938e-1e97db9e4c17", "providerRef": "sbx_466a0f26-3cde-4876-938e-1e97db9e4c17", "operator": null, "reference": "commande-42", "nextAction": { "type": "await_customer", "message": "Validez le paiement sur votre téléphone (simulation)." }, "failureCode": null, "needsReconciliation": false, "metadata": {}, "createdAt": 1792000000000, "updatedAt": 1792000000000}ApiKeyAuthorizationBearer <token>PONT_API_KEY, pour les routes /v1.
id*stringIdentifiant Pont du paiement (pay_…).
Le paiement.
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 GET 'http://localhost:8787/v1/payments/string'{ "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.
id*stringIdentifiant Pont du paiement.
Le paiement à jour.
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/payments/string/refresh'{ "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.
id*stringIdentifiant Pont du paiement.
Idempotency-Key?stringClé d'idempotence (8 à 255 caractères). Sans elle, Pont utilise auto:<type>:<reference>.
8 <= length <= 255application/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/v1/payments/string/refunds' \ -H 'Content-Type: application/json' \ -d '{ "amount": 2000}'{ "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}