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) : Afficher le formulaire

Dans votre frontend, initialisez le SDK Sangho avec votre clé publique et l’ID de l’Intention de Paiement reçu du serveur. Le formulaire de paiement s’affiche automatiquement.

É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.com/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"}
  }'

Étape 2 : Formulaire (Frontend)

javascript
import Sangho from '@sangho/sdk';


const sangho = new Sangho('pk_test_xxxx');
await sangho.checkout.open({
  paymentIntentId: '{{ intent_id_du_serveur }}',
  onSuccess: (tx) => {
    console.log('Paiement réussi', tx.id);
    globalThis.location.href = '/merci';
  },
  onError: (err) => console.error(err),
  onClose: () => console.log('Formulaire fermé'),
});

Réponse PaymentIntent

Response 200 OK
json
{
  "id": "pay_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.com/pay/pay_xxx",
  "metadata": {"order_id": "CMD-001"},
  "created_at": "2026-03-01T10:00:00Z",
  "updated_at": "2026-03-01T10:00:00Z"
}