Gérer les sous-postes de facture groupésBêta
Ajoutez, modifiez et supprimez plusieurs sous-postes de facture avec l'API Invoices.
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.
Create an invoice
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.
Add line items
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.
Update line items
À 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.
Remove line items
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_
et LINE_
. Vous pouvez réaffecter LINE_
à 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 facture.type: subscription
: généré automatiquement pour une facture d’abonnement à partir de chaque poste d’abonnement. Il s’agit de la liste complète des champs pouvant être mis à jour pour chaque poste. Si tous les champs sont pris en charge pour les postesinvoiceitem
, vous ne pouvez mettre à jour qu’un petit nombre de postessubscription
. Les champs pris en charge pour les postessubscription
sonttax_
ourates discounts
.
- 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.
Invoice metadata
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