Documentation Index
Fetch the complete documentation index at: https://docs.yabetoopay.com/llms.txt
Use this file to discover all available pages before exploring further.
Qu’est-ce qu’une Checkout Session ?
Une Checkout Session représente la session de paiement de votre client. Elle contrôle ce que le client voit sur la page de paiement : les produits, le montant, la devise, et les options disponibles.Format de l’identifiant :
cs_ suivi de 24 caractères alphanumériques.Exemple : cs_abc123def456ghi789jkl012Modes de la session
payment
Paiement uniquePour les achats ponctuels de produits ou services.
subscription
AbonnementPour créer un abonnement récurrent avec facturation automatique.
setup
ConfigurationPour enregistrer un moyen de paiement sans effectuer de paiement immédiat.
Créer une Checkout Session
Requête de base
Paramètres requis
| Paramètre | Type | Description |
|---|---|---|
success_url | string | URL de redirection après paiement réussi |
line_items | array | Liste des articles à acheter |
Paramètres optionnels
| Paramètre | Type | Description |
|---|---|---|
cancel_url | string | URL de redirection si le client annule |
mode | string | payment, subscription, ou setup (défaut: payment) |
customer | string | ID d’un client existant (cus_xxx) |
customer_email | string | Email du client (pré-remplit le formulaire) |
client_reference_id | string | Votre référence interne (ex: ID commande) |
allow_promotion_codes | boolean | Autoriser les codes promo |
locale | string | Langue de la page (fr, en, etc.) |
expires_at | number | Timestamp Unix d’expiration |
metadata | object | Données personnalisées |
Définir les articles (line_items)
Vous avez deux options pour définir les articles :- Prix inline (price_data)
- Prix existant (price)
Définissez le prix directement dans la requête :
Structure du line_item
| Champ | Type | Description |
|---|---|---|
price_data | object | Prix défini inline (voir ci-dessous) |
price | string | ID d’un prix existant (price_xxx) |
quantity | number | Quantité (minimum 1) |
adjustable_quantity | object | Permet au client de modifier la quantité |
Structure de price_data
| Champ | Type | Description |
|---|---|---|
currency | string | Code devise (XOF, EUR, USD) |
unit_amount | number | Prix unitaire |
product_data | object | Informations sur le produit |
recurring | object | Pour les abonnements uniquement |
Structure de product_data
| Champ | Type | Description |
|---|---|---|
name | string | Nom du produit (requis) |
description | string | Description |
images | array | URLs des images |
metadata | object | Données personnalisées |
Abonnements récurrents
Pour créer un abonnement, utilisezmode: "subscription" et ajoutez recurring dans price_data :
Intervalles disponibles
| Interval | Description |
|---|---|
day | Facturation quotidienne |
week | Facturation hebdomadaire |
month | Facturation mensuelle |
year | Facturation annuelle |
Options avancées
Collecter les adresses
Collecter le numéro de téléphone
Autoriser les codes promo
Appliquer un code promo automatiquement
Personnaliser le bouton de paiement
| Valeur | Texte du bouton |
|---|---|
auto | Automatique selon le contexte |
pay | ”Payer” |
book | ”Réserver” |
donate | ”Faire un don” |
Quantité ajustable
Permettez au client de modifier la quantité sur la page de paiement :Exemple complet
Réponse
Champs de la réponse
| Champ | Description |
|---|---|
id | Identifiant unique de la session |
url | URL de la page de paiement |
status | open, complete, ou expired |
payment_status | unpaid, paid, ou no_payment_required |
amount_subtotal | Sous-total avant réductions |
amount_total | Montant total à payer |
amount_discount | Montant des réductions appliquées |
Rediriger le client
Une fois la session créée, redirigez le client vers l’URL de paiement :Après le paiement
Redirection
Après le paiement, le client est redirigé verssuccess_url avec l’ID de session :
Vérifier le statut
Webhooks
Pour une intégration robuste, utilisez les webhooks pour recevoir les notifications de paiement :Statuts de la session
| Statut | Description |
|---|---|
open | Session active, en attente de paiement |
complete | Paiement réussi |
expired | Session expirée (non payée dans le délai) |
Bonnes pratiques
Sécurité
Sécurité
- Créez toujours les sessions côté serveur
- Ne stockez jamais les clés API côté client
- Vérifiez le statut via l’API ou les webhooks
Expérience utilisateur
Expérience utilisateur
- Pré-remplissez l’email si vous le connaissez
- Utilisez
client_reference_idpour lier à votre commande - Personnalisez le
submit_typeselon le contexte
Gestion des erreurs
Gestion des erreurs
- Gérez le cas où le client annule
- Prévoyez l’expiration de la session
- Utilisez les webhooks pour les cas edge
Prochaines étapes
Webhooks
Recevez des notifications en temps réel
Codes promo
Appliquez des réductions à vos sessions