Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
Billing
PrésentationÀ propos des API Billing
Abonnements
Invoicing
    Présentation
    Fonctionnement de la facturation
    Guide de démarrage rapide sur l'API
    Intégration via l'API
    Facturation sans code
    Cycle de vie des factures
    Prévisualisation des factures
    Modifier des factures
    Programmer la finalisation des factures
    Changements et finalisation des états
    Envoyer des e-mails aux clients
    Générer des avoirs
    Facturer les clients
    Clients
    Solde créditeur du client
    Numéros fiscaux des clients
    Paiements sur facture
    Page de facture hébergée
    Créer des échéanciers pour les factures
    Accepter les paiements partiels
    Application de paiement
    Moyens de paiement pour les factures
    Encaissements automatisés
    Personnalisation des factures
    Personnaliser des factures
    Modèles de rendu pour les factures
    Grouper des sous-postes de facture
    Récapituler les postes
    Facturation mondiale
    Bonnes pratiques
    Clients multi-devises
    Autres fonctionnalités de facturation
    Produits et tarifs
    Gérer les sous-postes de facture groupés
    Taxes
Facturation à l’usage
Devis
Gestion des clients
Facturation avec d'autres produits
Recouvrement de revenus
Automatisations
Scripts
Tester votre intégration
Tax
Présentation
Utiliser Stripe Tax
Taux de taxe
Gérer la conformité
Rapports
Présentation
Sélectionner un rapport
Configurer des rapports
Rapports sur plusieurs comptes
API de rapport
Comptabilisation des revenus
Données
Présentation
Requête sur les données de l'entreprise
API analytique
Sigma
Data Pipeline
Data Pipeline nouvelle générationBase de données
Importer des données externes
France
Français (France)
  1. Accueil/
  2. Revenus/
  3. Invoicing

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.

Configurer Stripe

Utilisez nos bibliothèques officielles pour accéder à l’API Stripe :

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Créer un produit

Pour créer un produit, saisissez son nom :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d "name=Gold Special"

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 :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d "product=
{{PRODUCT_ID}}
" \ -d unit_amount=1000 \ -d currency=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_name et un contact_email, comme dans l’exemple suivant :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer
sk_test_VePHdqKTYQjKNInc7u56JBrQ
"
\ -H "Stripe-Version: 2026-06-24.preview" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "configuration": { "customer": { "capabilities": {} } }, "include": [ "configuration.customer" ] }'

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_invoice. 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.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/invoices \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d "customer_account=
{{CUSTOMER_ACCOUNT_ID}}
" \ -d collection_method=send_invoice \ -d days_until_due=30

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.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/invoiceitems \ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"
\ -d "customer_account=
{{CUSTOMER_ACCOUNT_ID}}
" \ -d "pricing[price]=
{{PRICE_ID}}
" \ -d "invoice=
{{INVOICE_ID}}
"

Lorsque vous définissez auto_advance 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 :

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
/finalize
\ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"

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.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
/send
\ -u "
sk_test_VePHdqKTYQjKNInc7u56JBrQ
:"

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.payment_succeeded 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.paid sont déclenchés à la fois pour les paiements réussis et les paiements hors flux standard. Étant donné que invoice.paid couvre les deux scénarios, il est généralement recommandé d’écouter invoice.paid plutôt que invoice.payment_succeeded.

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.paid, nous vous recommandons de gérer deux autres événements lorsque vous encaissez des paiements à l’aide de l’Element Payment :

ÉvénementDescriptiondu client
payment_intent.processingEnvoyé 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.paid ou invoice.payment_failed.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_failedEnvoyé 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_failed, proposez au client de retenter le paiement.

FacultatifPersonnaliser une facture

Voir aussi

  • Post-finalisation
  • Utiliser les webhooks entrants pour être informé des mises à jour en temps réel
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Discutez par chat sur Discord avec les développeurs de Stripe.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc
Code quickstart
Sur cette page
Guides connexes
Fonctionnement de la facturation
API Invoicing
Page de facture hébergée