Aller au contenu principal

Payment Intents

Use fee quotes to calculate and display processing fees before confirming a PaymentIntent.

Un PaymentIntent représente un flux de paiement. Il suit le cycle de vie depuis la création jusqu’à la finalisation.

Famille de routes actuellement implémentée : api/v1/payment-intents

Objet PaymentIntent

{
"id": "pi_1a2b3c4d5e",
"object": "payment_intent",
"created": 1708300800,
"livemode": false,
"amount": 10000,
"currency": "XOF",
"status": "requires_payment_method",
"description": "Order #1234",
"metadata": {
"order_id": "order_123"
},
"next_action": null,
"customer": "cus_123"
}

Créer un PaymentIntent

POST /api/v1/payment-intents
ParamètreTypeRequisDescription
amountinteger:int64OuiMontant dans la plus petite unité monétaire.
currencystringOuiCode devise ISO à trois lettres, par exemple XOF.
transaction_countrystringOuiCode pays ISO 3166-1 alpha-2 de la transaction, par exemple SN, CI ou BJ.
payer_countrystringNonCode pays ISO 3166-1 alpha-2 du payeur si différent ou connu.
rail_countrystringNonCode pays ISO 3166-1 alpha-2 du rail/opérateur à utiliser.
descriptionstringNonDescription lisible du paiement.
metadataobject<string,string>NonMétadonnées métier. Les clés et valeurs doivent être des chaînes.
customerstringNonIdentifiant public d’un client existant.
customer_emailstringNonEmail client utilisé pour retrouver ou créer un client.
customer_phonestringNonTéléphone client utilisé pour retrouver ou créer un client.
{
"amount": 10000,
"currency": "XOF",
"transaction_country": "SN",
"description": "Order #1234",
"metadata": {
"order_id": "order_123",
"checkout_session_id": "cs_123"
},
"customer_email": "customer@example.com"
}

Paramètres pays

transaction_country est requis. Il détermine le contexte pays principal utilisé par les règles d’éligibilité pays/devise et par la sélection des rails.

payer_country et rail_country sont optionnels. Utilisez-les uniquement lorsque le pays du payeur ou du rail de paiement doit être explicite. Les trois valeurs sont des codes ISO 3166-1 alpha-2 de deux caractères.

Metadata

metadata est un objet object&lt;string,string&gt; destiné aux références métier comme order_id, cart_id, checkout_session_id ou source.

Les valeurs non-string ne sont pas renvoyées dans l’objet PaymentIntent. N’utilisez pas les clés réservées Description, FailureReason, Environment, ni les prefixes country_context., internal. et technical. : ils sont réservés à la plateforme et filtrés dans les réponses.

Récupérer un PaymentIntent

GET /api/v1/payment-intents/{id}
ParamètreTypeRequisDescription
idstringOuiIdentifiant public du PaymentIntent.

Mettre à jour un PaymentIntent

PATCH /api/v1/payment-intents/{id}
ParamètreTypeRequisDescription
idstringOuiIdentifiant public du PaymentIntent.
descriptionstringNonNouvelle description.
metadataobject<string,string>NonMétadonnées à ajouter ou remplacer.

Confirmer un PaymentIntent

POST /api/v1/payment-intents/{id}/confirm
ParamètreTypeRequisDescription
idstringOuiIdentifiant public du PaymentIntent.
payment_method.typestringOuiType de méthode, par exemple mobile_money ou card.
payment_method.mobile_money.countrystringMobile moneyCode pays ISO 3166-1 alpha-2. Doit correspondre au transaction_country du PaymentIntent.
payment_method.mobile_money.operatorstringMobile moneyOpérateur mobile money, par exemple orange_money, wave ou mtn.
payment_method.mobile_money.msisdnstringMobile moneyNuméro mobile money du payeur.
payment_method.mobile_money.preferred_flowstringNonFlux préféré lorsque le provider le supporte.
payment_method.card.tokenstringCarteToken de carte.
return_urlstringNonURL de retour pour les flux redirigés.
{
"payment_method": {
"type": "mobile_money",
"mobile_money": {
"country": "SN",
"operator": "orange_money",
"msisdn": "+221770000000"
}
}
}

Annuler un PaymentIntent

POST /api/v1/payment-intents/{id}/cancel
ParamètreTypeRequisDescription
idstringOuiIdentifiant public du PaymentIntent.

Lister les PaymentIntents

GET /api/v1/payment-intents
ParamètreTypeRequisDescription
limitinteger:int32NonNombre de résultats demandés.