Effectuer l'intégration avec l'API Invoicing
Apprenez à coder pour créer et envoyer une facture au client.
Le Dashboard est le moyen le plus courant de créer des factures. Si vous souhaitez automatiser la création des factures, vous pouvez intégrer l’API. Créez une intégration Invoicing complète et fonctionnelle à l’aide de notre exemple d’intégration.
Créer un tarif
L’API Prices définit le montant et la fréquence de facturation des produits. Dans le cadre d’un abonnement, elle détermine notamment le coût du produit, la devise à utiliser et la période de facturation. De même que pour les produits, si vous n’avez défini que quelques tarifs, il est préférable de les gérer dans le Dashboard. Utilisez le montant unitaire pour exprimer les tarifs dans l’unité la plus faible de la devise, en l’occurrence les centimes (10 USD correspondant à 1 000 centimes, le montant unitaire est 1 000).
Si vous n’avez pas besoin de créer un tarif pour votre produit, vous pouvez également utiliser le paramètre amount lors de la création du poste de facture.
Pour créer un tarif et l’associer au produit, transmettez l’ID du produit, le montant unitaire et la devise. Dans l’exemple suivant, le tarif du produit « Gold Special » est fixé à 10 USD :
Tarification localisée
Lorsque vous créez des postes de facture ou des paiements via l’API, Stripe traite le montant et la devise que vous fournissez explicitement. Le prix localisé n’est pas calculé automatiquement, et vous êtes responsable de la transmission du montant et de la devise corrects pour la région de votre client. Nous recommandons d’utiliser le paramètre pricing.price pour transmettre l’identifiant du prix.
Créer un client
Lorsque vous créez une facture, vous avez besoin d’un objet pour représenter le client qui achète votre produit. Cet objet peut être soit un Account configuré par le client, soit un Customer.
Utiliser l’API Accounts v2 pour représenter les clients
L’API Accounts v2 est généralement disponible pour les utilisateurs de Connect et en aperçu public pour les autres utilisateurs de Stripe. Si vous avez accès à l’aperçu Accounts v2, vous devez spécifier une version d’aperçu dans votre code.
Pour accéder à l’aperçu Accounts v2, rendez-vous sur aperçus et fonctionnalités de Account dans votre Dashboard et activez Moyens de paiement réutilisables pour les virements internationaux.
Dans la plupart des cas d’usage, nous vous recommandons de modéliser vos clients en tant qu’objets Account configurés par le client, plutôt que d’utiliser des objets Customer.
Pour créer un Account configuré par le client avec un display_ et un contact_, comme dans l’exemple suivant :
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer" \ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "configuration": { "customer": { "capabilities": {} } }, "include": [ "configuration.customer" ] }'sk_test_VePHdqKTYQjKNInc7u56JBrQ
Après avoir créé le client, enregistrez la valeur id du client dans votre base de données pour pouvoir la réutiliser ultérieurement. Par exemple, l’étape suivante utilise l’ID du client pour créer une facture.
Créer une facture
Définissez l’attribut collection_method sur send_. Pour que Stripe soit en mesure de marquer une facture comme étant en retard, renseignez le paramètre days_until_due. Stripe envoie au client la facture et des instructions de paiement par e-mail.
Ensuite, créez un poste de facture en transmettant l’identifiant du client, le price du produit et l’ID de la Invoice.
Le nombre maximal de postes de facture est de 250.
Lorsque vous définissez auto_ sur false, vous pouvez continuer à modifier la facture jusqu’à sa finalisation. Pour finaliser un brouillon de facture, utilisez le Dashboard, envoyez la facture au client ou déclenchez son règlement. Vous pouvez également utiliser l’API Finalize :
Si vous créez une facture par erreur, annulez-la. Vous pouvez également marquer une facture comme irrécouvrable.
Accepter le paiement de la facture
Envoyez la facture à l’adresse e-mail associée au client. Stripe finalise la facture dès que vous l’envoyez. De nombreuses juridictions considèrent les factures finalisées comme des documents juridiques, ce qui rend impossible la modification de certains champs. Si vous envoyez des factures qui ont déjà été payées, l’e-mail ne fait pas référence au paiement.
Remarque
L’e-mail ne contient pas de référence au paiement lorsque vous envoyez une facture qui a déjà été payée. Stripe envoie les factures à l’adresse e-mail associée au client.
Gérer les événements post-paiement
Stripe envoie un événement invoice.paid à chaque règlement de facture. Écoutez cet événement pour garantir le bon traitement de la commande. Si votre intégration s’appuie sur un rappel côté client, il est possible que l’utilisateur perde la connexion avant l’exécution du rappel. Le client serait client alors facturé sans que votre serveur n’en soit informé. Le fait de configurer votre intégration de manière à ce qu’elle écoute les événements asynchrones vous permet également d’accepter différents types de méthodes de paiement avec une seule intégration.
Les paiements de facture réussis déclenchent à la fois un événement invoice.paid et invoice.payment_succeeded. Les deux types d’événements contiennent les mêmes données de facture, il suffit donc d’en écouter un pour être notifié des paiements réussis. La différence est la suivante : les événements invoice. sont envoyés pour les paiements de facture réussis, mais ne sont pas envoyés lorsque vous marquez une facture comme paid_out_of_band. Cependant, les événements invoice. sont déclenchés à la fois pour les paiements réussis et les paiements hors flux standard. Étant donné que invoice. couvre les deux scénarios, il est généralement recommandé d’écouter invoice. plutôt que invoice..
Utilisez l’outil de webhook du Dashboard ou suivez le Quickstart consacré aux webhooks pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un flux de livraison.
En plus de l’événement invoice., nous vous recommandons de gérer deux autres événements lorsque vous encaissez des paiements à l’aide de l’Element Payment :
| Événement | Description | du client |
|---|---|---|
| payment_intent.processing | Envoyé lorsqu’un client a initié un paiement, mais qu’il ne l’a pas encore finalisé. Dans la plupart des cas, cet événement est envoyé lorsqu’un prélèvement a été effectué. Il est suivi par un événement invoice. ou invoice.. | Envoyez au client une confirmation de commande qui indique que son paiement est en attente. Pour des marchandises dématérialisées, vous pourrez traiter la commande sans attendre que le paiement soit effectué. |
| invoice.payment_failed | Envoyé lorsqu’un client a tenté de régler une facture, mais que le paiement a échoué. | Si un paiement passe de l’état processing à payment_, proposez au client de retenter le paiement. |