Paiements
Page de paiement
Rediriger le client vers une page où il choisit son moyen de paiement.
Sans opérateur ni numéro, l'API renvoie une checkout_url vers laquelle rediriger le client : la page de paiement Loov. Le client y choisit lui-même comment payer, parmi ce qui est activé sur votre compte dans la devise du paiement.
- Mobile money : le client choisit son pays et son opérateur, saisit son numéro, puis valide la demande sur son téléphone. Tout se passe sur la page, qui affiche le résultat dès qu'il est connu.
- Carte bancaire : le client est redirigé vers la page sécurisée de notre partenaire carte. Proposée seulement si les paiements par carte sont activés sur votre compte.
Une fois le paiement terminé, le client est renvoyé vers return_url (réussi) ou cancel_url (échoué ou expiré), avec reference et status dans l'adresse. Tant qu'aucun débit n'a réellement commencé, le client peut changer de moyen de paiement : un numéro erroné ne fait pas échouer le paiement.
curl -X POST https://api.secure.payment.loov-solutions.com/v2/payments \
-H "Authorization: Bearer $LOOV_API_KEY" \
-H "Idempotency-Key: 6f1c2b9e-order-42" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "XOF",
"return_url": "https://example.com/merci",
"cancel_url": "https://example.com/panier",
"customer": {
"name": "Awa Diop",
"email": "awa@example.com"
},
"merchant_reference": "order-43"
}'| Champ | Type | Description |
|---|---|---|
return_url | string | Où le client revient après avoir payé. |
cancel_url | string | Où le client revient s'il abandonne. |
method | string | Facultatif : mobile_money, card ou any. |
provider | string | Facultatif : paydunya, kkiapay, feexpay ou dohone, selon ce qui est ouvert pour la devise. Avec ce champ, le client est envoyé directement sur la page de ce prestataire, sans passer par la page Loov. |
La page de paiement expire après 15 minutes ; le paiement passe alors en expired.
La page s'affiche en français ou en anglais selon le navigateur du client ; ajoutez ?lang=fr ou ?lang=en à checkout_url pour imposer une langue. Avec une clé de test, la même page s'affiche et propose de simuler un paiement réussi ou échoué.
Carte bancaire via FeexPay
Avec provider: "feexpay", le client saisit sa carte et valide le 3-D Secure sur la page de FeexPay. FeexPay exige des informations supplémentaires sur le client :
curl -X POST https://api.secure.payment.loov-solutions.com/v2/payments \
-H "Authorization: Bearer $LOOV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "XOF",
"provider": "feexpay",
"return_url": "https://example.com/merci",
"cancel_url": "https://example.com/panier",
"customer": {
"name": "Awa Diop",
"email": "awa@example.com",
"phone": "2290160000000",
"city": "Cotonou",
"zip": "00229",
"country": "BJ"
}
}'| Champ | Type | Description |
|---|---|---|
customer.phone | string | Numéro du client avec l'indicatif du pays. |
customer.city | string | Ville de résidence du client. |
customer.zip | string | Code postal du client. |
customer.country | string | Code pays ISO à deux lettres : BJ, CI, SN, TG… |
S'il en manque, l'API répond 422 customer_details_required et indique lesquels dans error.details.missing. Après le paiement, le client reste sur la page de FeexPay, qui lui envoie un reçu par e-mail : il n'est pas renvoyé vers return_url. Fiez-vous au webhook.