Aller au contenu principal

Créer votre premier paiement

Une seule requête POST /payments : Passerelle choisit le partenaire de paiement le plus adapté, gère la bascule en cas d'échec, et vous renvoie un lien à transmettre à votre client.

curl -X POST https://api.passerelle.abecedaire.tg/payments \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 1000,
"customerName": "Jane Doe",
"customerPhone": "+22890123456",
"returnUrl": "https://votre-site.example/retour"
}'
{
"reference": "pay_0d9ace5b-62eb-4a5b-8869-b66c9b62eb6c",
"status": "pending",
"redirectUrl": "https://exemple-de-paiement.example/page?token=..."
}

Redirigez votre client vers redirectUrl pour qu'il complète le paiement — ce lien pointe vers une page Passerelle (pas directement vers le partenaire de paiement), qui affiche ensuite un statut de paiement à vos couleurs (réussi/échoué/expiré) une fois la transaction résolue, pratique à renvoyer à votre client comme preuve de paiement.

:::info Compte en sandbox Un compte tout juste créé est en mode sandbox — ce paiement d'exemple ne débite personne. Voir Mode sandbox pour résoudre la transaction (réussi/échoué/expiré) sans attendre un vrai paiement. :::

Le pays est déduit du numéro de téléphone​

Si vous ne fournissez pas country explicitement, Passerelle le déduit de customerPhone — qui doit donc inclure l'indicatif international (+228..., +229..., etc.). Deux cas d'erreur explicites en 400 :

  • Numéro non reconnu : customerPhone ne permet pas de déduire un pays sans ambiguïté (indicatif manquant ou numéro trop court) — le message indique le format attendu.
  • Pays hors périmètre : le numéro est valide mais correspond à un pays hors zone UEMOA/FCFA couverte par Passerelle — fournissez country explicitement si le numéro est correct.

Fournir country directement dans la requête évite ces deux cas et prime toujours sur la déduction.

Champs optionnels​

ChampValeursEffet
countryTG, BJ, CI, SN, BF, GW, ML, NESinon, déduit de customerPhone (voir ci-dessus)
paymentMethodCARD, MOBILE_MONEYSinon, tous les moyens acceptés par votre compte sont considérés — stocké et renvoyé comme null (statut, webhook) tant qu'aucun moyen réel n'a été déterminé
currencyXOFSeule devise supportée aujourd'hui
descriptiontexte libreAffiché à votre client sur la page de paiement et la page de statut (ex. "Abonnement annuel")
webhookUrlURLNotification de statut pour cette transaction — voir Configurer vos webhooks
metadataobjet libreRenvoyé tel quel dans le détail de la transaction
sandboxtrueForce cette transaction en sandbox même si votre compte est en production — voir Mode sandbox

503 si aucun partenaire éligible n'a réussi (tous indisponibles ou mal configurés pour votre compte).

Et ensuite ?​