E-Rechnung erzeugen
bb_invoices_create_einvoiceCreate a finalized, numbered e-invoice in BuchhaltungsButler as a PDF plus structured EN 16931 data, for public authorities and other recipients requiring e-invoices.
Instructions
Erzeugt in BuchhaltungsButler eine E-Rechnung: endgültig, nummeriert, mit PDF und strukturiertem Datensatz nach EN 16931. Zu nehmen für Empfänger, die eine E-Rechnung verlangen, etwa öffentliche Auftraggeber; bb_invoices_create erzeugt die gewöhnliche Rechnung, bb_invoices_create_draft einen Entwurf. Strengste Feldprüfung der API: Die Käuferreferenz e_invoice_id sowie street, zip, city, country und email des Empfängers sind Pflicht, und je Position stehen item_tax_type und item_tax_amount an der Stelle von item_vat. Die API kennt keinen Pfad, eine Rechnung zu lesen; nachsehen lässt sich das Ergebnis nur in der Weboberfläche. Schreibt in die echten Buchhaltungsdaten von BuchhaltungsButler. Die API bietet keinen Endpunkt, das rückgängig zu machen.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | Postleitzahl, zum Beispiel "28195". | |
| city | Yes | Ort, zum Beispiel Bremen. | |
| date | Yes | Rechnungsdatum als YYYY-MM-DD, zum Beispiel 2026-04-26. Ein leerer String wird abgelehnt; das Feld stattdessen weglassen. Die Spezifikation nennt hier kein Format; YYYY-MM-DD gilt überall sonst in dieser API. | |
| Yes | E-Mail-Adresse des Empfängers. Hier Pflicht, an bb_invoices_create nicht. | ||
| items | Yes | Die Positionen der E-Rechnung, je Eintrag eine Zeile des Dokuments. item_amount ist die Menge und nicht der Betrag; der Preis einer Einheit steht in item_single_price. Die Steuer wird hier als Steuerart item_tax_type angegeben, nicht als item_vat. Die BuchhaltungsButler-API nimmt diese Werte als parallele Arrays entgegen (item_name, item_amount, item_unit, item_tax_type, item_tax_amount, item_single_price, item_description); dieses Werkzeug nimmt eine Positionsliste und rechnet sie um, wodurch die Arrays zwingend gleich lang sind. | |
| street | Yes | Straße und Hausnummer, zum Beispiel Hauptstraße 12. | |
| country | Yes | Land des Empfängers, deutscher Ländername oder ISO-Code, zum Beispiel DK. | |
| due_days | No | Tage bis zur Fälligkeit, Ziffernfolge, zum Beispiel 14. Ohne Angabe gilt 0, die Rechnung ist dann sofort fällig. Nur dieses Feld erzeugt ein Fälligkeitsdatum. | |
| language | No | Sprache der festen Beschriftungen: 'de_DE' oder 'en_US', ohne Angabe 'de_DE'. Positionstexte werden nicht übersetzt. | |
| company_name | Yes | Firmenname des Empfängers, wie er auf dem Dokument erscheint. | |
| e_invoice_id | Yes | Käuferreferenz des Empfängers, in der Norm die Leitweg-Identifikationsnummer. Ohne eigene Referenz '0' senden; öffentliche Auftraggeber geben sie vor. | |
| invoice_type | Yes | Art des Dokuments: 'invoice' Rechnung, 'credit' Gutschrift, 'offer' Angebot. Heißt in der API type, hier umbenannt: type ist dort siebenfach belegt. | |
| discount_type | No | Rabatt auf die gesamte Rechnung: 'percent' Prozent, 'EUR' Euro. Positionsrabatte kennt die API nicht; gemeinsam mit discount_value setzen. | |
| invoicenumber | No | Rechnungsnummer. Ohne Angabe vergibt BuchhaltungsButler sie aus dem eigenen Nummernkreis. | |
| show_bankdata | No | true zeigt die im Mandanten hinterlegte Bankverbindung auf dem Dokument. Die Bankdaten selbst stammen aus den Mandanteneinstellungen. | |
| correspondence | No | Anschreiben an den Empfänger, erscheint vor den Positionen. | |
| date_of_supply | No | Liefer- oder Leistungsdatum, freier Text oder YYYY-MM-DD. Nur im Format YYYY-MM-DD wird der Wert zusätzlich date_delivery des entstehenden Belegs. Ein Datum nach date verwirft BuchhaltungsButler wegen der DATEV-Regel stillschweigend. | |
| discount_value | No | Höhe des Rabatts mit Dezimalpunkt, zum Beispiel 10 oder 49.50. Die Bedeutung entscheidet discount_type. | |
| customer_number | No | Kunden- oder Lieferantennummer des Mandanten. | |
| final_provisions | No | Schlusstext des Dokuments, erscheint nach den Positionen. | |
| show_contactdata | No | true zeigt die im Mandanten hinterlegten Kontaktdaten auf dem Dokument. | |
| show_prices_type | Yes | Preisdarstellung: 'net' Nettopreise, 'gross' Bruttopreise. Danach werden die Werte in item_single_price gelesen. | |
| payment_reference | No | Zahlungsreferenz für die spätere Zuordnung zu einer Zahlung: Amazon-Bestellnummer oder Vorgangsnummer von PayPal oder Stripe. | |
| payment_conditions | No | Zahlungsbedingungen als Text auf dem Dokument. Erzeugt kein Fälligkeitsdatum, dafür ist due_days da. | |
| recurring_interval | No | Rhythmus eines Rechnungsplans: 'weekly', 'monthly', 'quarterly' oder 'yearly'. Es entsteht ein dauerhafter Plan, der selbsttätig weitere Rechnungen erzeugt und über die API weder lesbar noch zu beenden ist. | |
| contact_person_name | No | Name der Ansprechperson, zum Beispiel Maria Schmidt. | |
| recurring_date_next | No | Nächster Termin des Rechnungsplans als YYYY-MM-DD. Ein leerer String wird abgelehnt; das Feld stattdessen weglassen. Pflicht, sobald recurring_interval gesetzt ist. | |
| additional_addressline | No | Zusätzliche Adresszeile, zum Beispiel Gebäude B. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| created | No | ||
| message | No | ||
| success | Yes | ||
| endpoint | No | ||
| reversal | No | ||
| _contract_warnings | No | ||
| fields_not_returned | No |