Mehrere Rechnungsposten auf einmal verwaltenÖffentliche Vorschau
Mit der Invoices API können Sie mehrere Rechnungsposten auf einmal hinzufügen, aktualisieren und entfernen.
Sie können mehrere Einzelposten auf einer Rechnung bearbeiten, indem Sie Einzelposten mit der Invoices API hinzufügen, aktualisieren und entfernen.
Rechnung erstellen
Um eine Rechnung zu aktualisieren, müssen Sie zunächst eine erstellen. Rechnungen erstellen Sie im Dashboard oder über die Invoices API. Sie können nur Rechnungen aktualisieren, die sich im Entwurfsstatus befinden.
Posten hinzufügen
Um mehrere Posten auf derselben Rechnung zu erstellen, verweisen Sie auf die Rechnungs-ID. Sie können auch einen bereits vorhandenen, nicht zugewiesenen Rechnungsposten mit der Rechnungsposten-ID zuweisen. So erstellen Sie zwei neue Posten und weisen dieser Rechnung einen vorhandenen Rechnungsposten zu.
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_BQokikJOvBiI2HlWgH4olfQ2
Häufiger Fehler
Achten Sie unbedingt darauf, die Rechnungsartikel-ID zu verwenden. Die Verwendung einer Posten-ID führt hier zu einem Fehler.
Posten aktualisieren
Von hier aus können Sie mehrere Posten derselben Rechnung basierend auf der Rechnungs-ID und Posten-IDs wie den folgenden aktualisieren:
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_BQokikJOvBiI2HlWgH4olfQ2
Im obigen Beispiel werden die Beschreibung und die Metadaten für Posten 1, der Preis für Posten 2 und die Angabe, ob für Posten 3 ein Rabatt möglich ist, aktualisiert.
Posten entfernen
Sie können mehrere Posten auf derselben Rechnung löschen oder deren Zuweisung aufheben, indem Sie auf die Rechnungs-ID und die Posten-IDs verweisen und mit dem Schlüssel behavior
zwischen verschiedenen Arten der Löschung unterscheiden. So löschen Sie LINE_
dauerhaft und heben die Zuweisung von LINE_
auf. Sie können LINE_
in einer anderen Anfrage einer anderen Rechnung zuweisen.
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_BQokikJOvBiI2HlWgH4olfQ2
Einschränkungen
Bei der Verwendung dieser Funktion gibt es einige Einschränkungen
- Die Rechnung muss sich noch im Entwurfsstatus befinden
- Es gibt zwei Arten von Rechnungsposten
type: invoiceitem
: Wird generiert, wenn ein Rechnungsposten zu einer Rechnung hinzugefügt wird.type: subscription
: Wird automatisch für eine Abonnementrechnung aus jedem Abonnementartikel generiert. Dies ist die vollständige Liste der verfügbaren Felder, die für jeden Posten aktualisiert werden soll. Während beiinvoiceitem
-Posten alle Felder unterstützt werden, können Sie beisubscription
-Posten nur eine kleine Teilmenge aktualisieren. Felder, die fürsubscription
-Posten unterstützt werden, sindtax_
oderrates discounts
.
- Sie können maximal 50 Posten in einem API-Aufruf aktualisieren. Dieses Limit kann sich ändern und erhöht oder verringert werden.
Rechnungs-Metadaten
Sie können Rechnungsmetadaten in derselben Anfrage für einen der oben genannten Endpoints festlegen. Hier ist ein Beispiel, das update_lines abruft.
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_BQokikJOvBiI2HlWgH4olfQ2