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.

Mode sandbox

Les sessions créées avec une clé izzi_mk_sandbox_… héritent de l'environnement SANDBOX.

La page hébergée affiche un bandeau « Mode test ». Seuls les PSP test (Stripe test, Pawapay sandbox, etc.) sont autorisés: pas de wallet institutionnel ni de ledger INTERNAL.

Les charges sandbox sont enregistrées pour vos tests mais exclues du règlement production et des payouts live.

Pour des sessions PRODUCTION, utilisez une clé izzi_mk_live_… ; le portail JWT ne peut pas créer de session production sans clé live.

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.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 le menu Développeurs, section Webhooks (voir le 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.