Intégration à l'aide de 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.
Note
Vous n’avez pas besoin d’intégrer l’API Payments pour intégrer l’API Invoicing.
Configurer Stripe
Utilisez nos bibliothèques officielles pour accéder à l’API Stripe :
Créer un produit
Pour créer un produit, saisissez son nom :
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).
Note
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 :
Créer un client
L’objet Customer représente le client qui achète votre produit. Il est obligatoire pour créer une facture. Pour créer un client avec un name
, email
et description
, ajoutez le code suivant en remplaçant les valeurs par les vôtres :
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.
Note
Consultez Créer un client pour accéder à des paramètres supplémentaires.
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’id
du client, le price
du produit et la invoice
de l’ID de la facture.
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 :
Note
Si vous avez créé la facture par erreur, annulez-la. Vous pouvez également marquer la facture comme irrécouvrable.
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.
Note
Les paiements de factures déclenchent les événements invoice.paid et invoice.payment_succeeded. Chacun de ces deux types d’événements contiennent les mêmes données de facturation. C’est pourquoi vous n’avez besoin que d’écouter l’un des deux pour être notifié des paiements de factures réussis. La différence est que les événements invoice.
sont envoyés pour les paiements de factures réussis, mais ne sont pas envoyés lorsque vous marquez une facture comme paid_out_of_band. Les événements invoice.
, quant à eux, sont déclenchés à la fois pour les paiements réussis et pour les paiements hors bande. Comme invoice.
couvre les deux scénarios, nous recommandons généralement 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. |