Checkout hébergé

Encaisser en redirigeant le payeur vers la page de paiement Izzi — aucune UI à développer.

Quand l'utiliser

Idéal si vous voulez encaisser rapidement sans développer de formulaire de paiement.

Votre backend crée la session ; Izzi gère l'affichage, la saisie et la finalisation du paiement.

1. Créer une session

Depuis votre serveur, appelez POST /checkout/sessions avec votre clé API.

La réponse contient id (sessionId) et url — redirigez le payeur vers url.

bash
curl -X POST https://api.dev.izzi-finance.com/api/v1/checkout/sessions \
  -H "Authorization: Bearer izzi_mk_sandbox_…" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "2500",
    "currency": "USD",
    "title": "Commande #1234",
    "successUrl": "https://merchant.example/success",
    "cancelUrl": "https://merchant.example/cancel"
  }'

2. Rediriger le payeur

Utilisez data.url de la réponse (ex. https://checkout.example/session/cs_…).

Le payeur voit le montant, les méthodes autorisées et le branding de votre marchand.

Vous n'appelez pas /complete vous-même — la page hébergée s'en charge.

3. Ce que fait la page Izzi

GET /checkout/pay/:sessionId — charge les données publiques de la session.

POST /checkout/pay/:sessionId/complete — finalise le paiement choisi par le payeur.

GET /checkout/pay/:sessionId/status — polling si le paiement est asynchrone.

4. Webhooks

À la finalisation, vous recevez payment.succeeded et checkout.session.completed.

Configurez vos endpoints dans Développeurs → Webhooks (voir guide Webhooks).

5. URLs de retour

successUrl et cancelUrl sont optionnelles à la création de session.

Après paiement, Izzi redirige automatiquement le payeur (écran de confirmation, compte à rebours 3 s) vers l'URL configurée.

Les paramètres session_id, charge_id (si disponible), amount, currency et status sont ajoutés en query string — fusionnés avec les paramètres déjà présents dans votre URL.

Exemple : https://merchant.example/success?order_id=42 devient https://merchant.example/success?order_id=42&session_id=cs_…&amount=2500&currency=USD&status=SUCCEEDED&charge_id=…

Liens de paiement

Variante sans créer de session à chaque commande : POST /payments/links pour un lien réutilisable.

Le payeur ouvre GET /checkout/links/:slug/open qui crée une session enfant et retourne url.