Aller au contenu

Créer une Intention de Paiement

Une Intention de Paiement représente l’intention de collecter un paiement. C’est la ressource centrale du cycle de paiement Sangho. Voici le flux complet en 3 étapes.

Étape 1 (Serveur) : Créer l’Intention de Paiement

Depuis votre serveur backend, créez une Intention de Paiement avec le montant, la devise et les méthodes de paiement souhaitées. L’ID de l’Intention de Paiement sera utilisé pour confirmer le paiement.

Étape 2 (Client) : Rediriger vers la page de paiement

Le SDK @sanghosdk/js est un client serveur (Node.js) — il n’y a pas de widget de paiement embarqué côté navigateur. Renvoyez simplement le champ url de l’Intention de Paiement à votre frontend et redirigez le client vers cette page hébergée par Sangho, qui gère l’affichage du formulaire.

Étape 3 (Serveur) : Confirmer via Webhook

Écoutez l’événement payment_intent.succeeded pour confirmer le paiement côté serveur. Ne jamais faire confiance au frontend seul pour confirmer un paiement.

Attention

L’Intention de Paiement contient des données sensibles : ne jamais exposer les détails complets côté client. Envoyez uniquement l’ID au frontend.

Étape 1 : Créer (Serveur)

bash
curl -X POST https://api.sangho.ga/v1/payment-intents/ \
  -H "Authorization: Bearer sk_test_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "XAF",
    "payment_method_types": ["mobile_money", "bank_card"],
    "metadata": {"order_id": "CMD-001"}
  }'
# → { "id": "pi_xxx", "url": "https://checkout.sangho.ga/pay/pi_xxx", ... }

Étape 2 : Rediriger (Frontend)

javascript
// Le serveur a renvoyé { paymentIntentId, checkoutUrl } à l'étape 1.
// Il suffit de rediriger le navigateur vers l'URL hébergée par Sangho :
globalThis.location.href = checkoutUrl; // ex. https://checkout.sangho.ga/pay/pi_xxx

Réponse PaymentIntent

Response200 OK
json
{
  "id": "pi_xxxxxxxxxxxx",
  "object": "PaymentIntent",
  "reference": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "amount": 5000,
  "currency": "XAF",
  "status": "requires_payment_method",
  "payment_method_types": ["mobile_money", "bank_card"],
  "customer": "cust_xxxx",
  "url": "https://checkout.sangho.ga/pay/pi_xxx",
  "metadata": {"order_id": "CMD-001"},
  "created_at": "2026-03-01T10:00:00Z",
  "updated_at": "2026-03-01T10:00:00Z"
}