Mehrere Rechnungsposten auf einmal verwaltenBeta
Sie können mehrere Posten auf einer Rechnung bearbeiten, indem Sie mit der Invoices API mehrere Posten auf einmal hinzufügen, aktualisieren und entfernen. Sie können auch die App für das Hochladen von Rechnungen und Kundinnen/Kunden verwenden, um neue Kundinnen/Kunden und Rechnungen aus einer CSV-Datei hochzuladen.
Sie möchten frühzeitigen Zugriff auf die Bulk Invoice Line Item API?
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_4eC39HqLyjWDarjtT1zdp7dc
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_4eC39HqLyjWDarjtT1zdp7dc
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_ITEM_1
dauerhaft und heben die Zuweisung von LINE_ITEM_2
auf. Sie können LINE_ITEM_2
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_4eC39HqLyjWDarjtT1zdp7dc
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 wirdtype: subscription
: Wird automatisch für eine Abonnementrechnung aus jedem Abonnementposten generiert.
Nachdem Sie sich für den frühzeitigen Zugriff angemeldet haben und Stripe die Funktion für Sie freigibt, können Sie die vollständige Liste der verfügbaren Felder anzeigen, die für jeden Posten aktualisiert werden können.
Während bei
invoiceitem
-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_rates
oderdiscounts
.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_4eC39HqLyjWDarjtT1zdp7dc