Gérer les sous-postes de facture groupésBêta
Vous pouvez modifier plusieurs postes de facture en ajoutant, mettant à jour et supprimant des postes de facture en masse à l’aide de l’API Invoices. Vous pouvez également utiliser l’application Invoice and Customer Uploader pour charger de nouveaux clients et factures à partir d’un fichier CSV.
Vous souhaitez obtenir un accès anticipé à l'API Bulk Invoice Line Item ?
Créer une facture
Pour modifier une facture, vous devez d’abord en créer une. Vous pouvez créer une facture dans le Dashboard ou via l’API Invoices. Vous pouvez uniquement mettre à jour une facture à l’état de brouillon.
Ajouter des postes de facture
Pour créer plusieurs postes sur la même facture, indiquez l’ID de la facture. Vous pouvez également affecter un poste de facture préexistant non affecté à une facture avec l’ID de poste de facture. Voici comment créer deux nouveaux postes et affecter un poste de facture existant à cette facture.
curl https://api.stripe.com/v1/invoices/
/add_lines \ -u{{INVOICE_ID}}: \ -d "lines[0][amount]"=7500 \ -d "lines[0][currency]"="usd" \ -d "lines[1][price]"={{PRICE_ID}} \ -d "lines[1][description]"="New line item" \ -d "lines[2][invoice_item]"={{INVOICE_ITEM_1}}sk_test_4eC39HqLyjWDarjtT1zdp7dc
Erreur fréquente
Assurez-vous d’utiliser l’ID du poste de facture. L’utilisation d’un ID de sous-poste de facture ici générera une erreur.
Mettre à jour des postes de facture
À partir de là, vous pouvez mettre à jour plusieurs postes d’une même facture en fonction de l’ID de la facture et des ID de poste, de la façon suivante :
curl https://api.stripe.com/v1/invoices/
/update_lines \ -u{{INVOICE_ID}}: \ -d "lines[0][id]"={{LINE_ITEM_1}} \ -d "lines[0][description]"="New description" \ -d "lines[0][metadata][key]"="new value" \ -d "lines[1][id]"={{LINE_ITEM_2}} \ -d "lines[1][price]"={{PRICE_ID}} \ -d "lines[2][id]"={{LINE_ITEM_3}} \ -d "lines[2][discountable]"=truesk_test_4eC39HqLyjWDarjtT1zdp7dc
L’exemple ci-dessus met à jour la description et les métadonnées du poste 1 , le tarif du poste 2 et l’existence d’une réduction pour le poste 3.
Supprimer des postes de facture
Vous pouvez supprimer ou désaffecter plusieurs postes d’une même facture en indiquant les ID de facture et des ID de poste, et en distinguant les différents types de suppression à l’aide de la clé behavior
. Voici comment supprimer définitivement LINE_ITEM_1
et LINE_ITEM_2
. Vous pouvez réaffecter LINE_ITEM_2
à une autre facture dans une autre requête.
curl https://api.stripe.com/v1/invoices/
/remove_lines \ -u{{INVOICE_ID}}: \ -d "lines[0][id]"={{LINE_ITEM_1}} \ -d "lines[0][behavior]"="delete" \ -d "lines[1][id]"={{LINE_ITEM_2}} \ -d "lines[1][behavior]"="unassign"sk_test_4eC39HqLyjWDarjtT1zdp7dc
Restrictions
L’utilisation de cette fonctionnalité est soumise à certaines restrictions.
La facture doit encore être à l’état de brouillon.
Il existe deux types de postes de facture
type: invoiceitem
: généré lorsqu’un poste de facture est ajouté à une facturetype: subscription
: généré automatiquement pour une facture d’abonnement à partir de chaque poste d’abonnement.
Une fois que vous avez demandé à bénéficier de l’accès anticipé et que Stripe vous a accordé cet accès, vous êtes libre de consulter la liste complète des champs que vous pouvez mettre à jour pour chaque poste.
Si tous les champs sont pris en charge pour les postes
invoiceitem
, vous ne pouvez mettre à jour qu’un petit nombre de postessubscription
. Les champs pris en charge pour les postessubscription
sonttax_rates
oudiscounts
.Vous pouvez mettre à jour un maximum de 50 postes de facture au cours d’un appel à l’API. Cette limite est susceptible d’évoluer à la hausse ou à la baisse.
Métadonnées de la facture
Vous pouvez définir des métadonnées de facture dans la même requête pour tous les endpoints ci-dessus. Voici un exemple d’appel update_lines.
curl https://api.stripe.com/v1/invoices/
/update_lines \ -u{{INVOICE_ID}}: \ -d "lines[0][id]"={{LINE_ITEM_1}} \ -d "lines[0][description]"="New description" \ -d "lines[1][id]"={{LINE_ITEM_1}} \ -d "lines[2][description]"="Another description" \ -d "invoice_metadata[is_processed]"="true"sk_test_4eC39HqLyjWDarjtT1zdp7dc