Skip to Content
🔐 Closed Beta – Jetzt auf die Warteliste eintragen! Limitierte Plätze für Early Adopters →
De AtAPIEndpointsRechnungen API

Rechnungen API

💬

Hallo, ich bin Sophie! 👋 Mit der Rechnungen-API kannst Sie UStG-konforme Rechnungen erstellen, versenden und verwalten. Ich erkläre Ihnen alle Endpunkte und zeige Ihnen, wie Sie schnell loslegen kannst.

Die Rechnungen-API ermöglicht Ihnen die vollständige Verwaltung Ihrer Ausgangsrechnungen. Alle Rechnungen werden automatisch gemäß österreichischem UStG §11 erstellt und enthalten alle Pflichtangaben.


Endpunkte

MethodeEndpunktBeschreibung
GET/v1/invoicesAlle Rechnungen auflisten
GET/v1/invoices/:idEinzelne Rechnung abrufen
POST/v1/invoicesNeue Rechnung erstellen
PATCH/v1/invoices/:idRechnung aktualisieren
DELETE/v1/invoices/:idRechnung stornieren
POST/v1/invoices/:id/sendRechnung per E-Mail versenden
GET/v1/invoices/:id/pdfPDF herunterladen

Rechnung - JSON Schema

{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Invoice", "type": "object", "properties": { "id": { "type": "string", "description": "Eindeutige Rechnungs-ID", "example": "inv_abc123" }, "number": { "type": "string", "description": "Fortlaufende Rechnungsnummer", "example": "RE-2026-0001" }, "status": { "type": "string", "enum": ["draft", "sent", "paid", "overdue", "cancelled"], "description": "Aktueller Status der Rechnung" }, "customer_id": { "type": "string", "description": "ID des Kunden" }, "items": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string" }, "quantity": { "type": "number" }, "unit_price": { "type": "number" }, "vat_rate": { "type": "number", "enum": [20, 13, 10, 0] } }, "required": ["description", "quantity", "unit_price", "vat_rate"] } }, "subtotal": { "type": "number" }, "vat_amount": { "type": "number" }, "total": { "type": "number" }, "currency": { "type": "string", "default": "EUR" }, "issue_date": { "type": "string", "format": "date" }, "due_date": { "type": "string", "format": "date" }, "notes": { "type": "string" }, "payment_terms": { "type": "string" }, "reverse_charge": { "type": "boolean", "default": false }, "created_at": { "type": "string", "format": "date-time" }, "updated_at": { "type": "string", "format": "date-time" } } }

Rechnungen auflisten

GET /v1/invoices

Ruft eine paginierte Liste aller Rechnungen ab.

Query-Parameter

ParameterTypBeschreibung
statusstringFilter: draft, sent, paid, overdue, cancelled
customer_idstringFilter nach Kunden-ID
from_datestringStartdatum (ISO 8601)
to_datestringEnddatum (ISO 8601)
pagenumberSeitennummer (Standard: 1)
per_pagenumberEinträge pro Seite (Standard: 20, Max: 100)

Beispiel

curl -X GET "https://buchhaltgenie.at/api/v1/invoices?status=sent&per_page=10" \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json"

Antwort

{ "data": [ { "id": "inv_abc123", "number": "RE-2026-0001", "status": "sent", "customer": { "id": "cus_xyz789", "name": "Musterfirma GmbH" }, "items": [ { "description": "Beratungsleistung", "quantity": 5, "unit_price": 150.00, "vat_rate": 20, "total": 900.00 } ], "subtotal": 750.00, "vat_amount": 150.00, "total": 900.00, "currency": "EUR", "issue_date": "2026-01-09", "due_date": "2026-01-23", "created_at": "2026-01-09T10:30:00Z" } ], "pagination": { "page": 1, "per_page": 10, "total_pages": 5, "total_count": 48 } }

Einzelne Rechnung abrufen

GET /v1/invoices/:id

Ruft die vollständigen Details einer einzelnen Rechnung ab.

Beispiel

curl -X GET "https://buchhaltgenie.at/api/v1/invoices/inv_abc123" \ -H "Authorization: Bearer sk_live_xxxx"

Rechnung erstellen

POST /v1/invoices

Erstellt eine neue UStG-konforme Rechnung.

Request Body Schema

FeldTypPflichtBeschreibung
customer_idstringJaID des Kunden
itemsarrayJaMindestens eine Rechnungsposition
items[].descriptionstringJaBeschreibung der Leistung
items[].quantitynumberJaMenge
items[].unit_pricenumberJaEinzelpreis in EUR
items[].vat_ratenumberJaMwSt-Satz (20, 13, 10, oder 0)
numberstringNeinEigene Rechnungsnummer (sonst automatisch)
issue_datestringNeinRechnungsdatum (Standard: heute)
due_daysnumberNeinZahlungsziel in Tagen (Standard: 14)
notesstringNeinAnmerkungen auf der Rechnung
payment_termsstringNeinZahlungsbedingungen
reverse_chargebooleanNeinReverse-Charge-Verfahren (EU-Kunden)

Beispiel

curl -X POST "https://buchhaltgenie.at/api/v1/invoices" \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{ "customer_id": "cus_xyz789", "items": [ { "description": "Steuerberatung Q1 2026", "quantity": 1, "unit_price": 500.00, "vat_rate": 20 }, { "description": "Buchhaltung Jänner 2026", "quantity": 10, "unit_price": 80.00, "vat_rate": 20 } ], "due_days": 14, "notes": "Vielen Dank für Ihr Vertrauen!", "payment_terms": "Zahlbar innerhalb von 14 Tagen ohne Abzug." }'

Antwort (201 Created)

{ "data": { "id": "inv_def456", "number": "RE-2026-0002", "status": "draft", "customer": { "id": "cus_xyz789", "name": "Musterfirma GmbH" }, "items": [ { "description": "Steuerberatung Q1 2026", "quantity": 1, "unit_price": 500.00, "vat_rate": 20, "total": 600.00 }, { "description": "Buchhaltung Jänner 2026", "quantity": 10, "unit_price": 80.00, "vat_rate": 20, "total": 960.00 } ], "subtotal": 1300.00, "vat_amount": 260.00, "total": 1560.00, "currency": "EUR", "issue_date": "2026-01-09", "due_date": "2026-01-23", "notes": "Vielen Dank für Ihr Vertrauen!", "payment_terms": "Zahlbar innerhalb von 14 Tagen ohne Abzug.", "created_at": "2026-01-09T14:22:00Z" } }

Rechnung aktualisieren

PATCH /v1/invoices/:id

Aktualisiert eine bestehende Rechnung. Nur Rechnungen im Status draft können bearbeitet werden.

Beispiel

curl -X PATCH "https://buchhaltgenie.at/api/v1/invoices/inv_def456" \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{ "notes": "Aktualisierte Anmerkung", "due_days": 21 }'

Rechnung versenden

POST /v1/invoices/:id/send

Versendet die Rechnung per E-Mail an den Kunden. Der Status wird automatisch auf sent gesetzt.

Request Body

FeldTypPflichtBeschreibung
toarrayNeinE-Mail-Adressen (Standard: Kunden-E-Mail)
ccarrayNeinCC-Empfänger
subjectstringNeinE-Mail-Betreff
messagestringNeinNachricht im E-Mail-Body
attach_pdfbooleanNeinPDF anhängen (Standard: true)

Beispiel

curl -X POST "https://buchhaltgenie.at/api/v1/invoices/inv_def456/send" \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{ "to": ["rechnung@musterfirma.at"], "cc": ["buchhaltung@musterfirma.at"], "message": "Guten Tag,\n\nanbei erhältst Sie unsere Rechnung.\n\nMit freundlichen Grüßen" }'

Antwort

{ "data": { "id": "inv_def456", "status": "sent", "sent_at": "2026-01-09T15:00:00Z", "sent_to": ["rechnung@musterfirma.at"], "email_id": "eml_abc123" } }

PDF herunterladen

GET /v1/invoices/:id/pdf

Lädt die Rechnung als PDF herunter.

Beispiel

curl -X GET "https://buchhaltgenie.at/api/v1/invoices/inv_def456/pdf" \ -H "Authorization: Bearer sk_live_xxxx" \ -o rechnung.pdf

Rechnung stornieren

DELETE /v1/invoices/:id

Storniert eine Rechnung. Stornierte Rechnungen werden nicht gelöscht, sondern mit Status cancelled markiert (BAO §132 konform).

Beispiel

curl -X DELETE "https://buchhaltgenie.at/api/v1/invoices/inv_def456" \ -H "Authorization: Bearer sk_live_xxxx" \ -H "Content-Type: application/json" \ -d '{"reason": "Fehlerhafte Rechnungsstellung"}'

Antwort

{ "data": { "id": "inv_def456", "number": "RE-2026-0002", "status": "cancelled", "cancelled_at": "2026-01-09T16:00:00Z", "cancellation_reason": "Fehlerhafte Rechnungsstellung" } }

UStG §11 Pflichtangaben

Alle über die API erstellten Rechnungen enthalten automatisch die nach UStG §11 erforderlichen Angaben:

PflichtangabeBeschreibung
Fortlaufende NummerAutomatisch generiert (RE-YYYY-NNNN)
LeistungserbringerName, Anschrift, UID-Nummer
LeistungsempfängerName, Anschrift (UID bei B2B >400 EUR)
AusstellungsdatumRechnungsdatum
LeistungszeitraumZeitraum der erbrachten Leistung
LeistungsbeschreibungMenge und handelsübliche Bezeichnung
EntgeltNettobetrag und Steuerbetrag getrennt
Steuersatz20%, 13%, 10% oder 0% (mit Befreiungsgrund)
💡

Sophie’s Tipp: Bei Reverse-Charge (innergemeinschaftliche Leistungen) wird automatisch der Hinweis “Steuerschuldnerschaft des Leistungsempfängers” ergänzt.


Fehler-Codes

CodeHTTP StatusBeschreibung
INVOICE_NOT_FOUND404Rechnung wurde nicht gefunden
INVALID_CUSTOMER400Ungültige oder nicht existierende Kunden-ID
INVALID_VAT_RATE400Ungültiger MwSt-Satz (erlaubt: 20, 13, 10, 0)
INVOICE_ALREADY_SENT400Rechnung wurde bereits versendet
INVOICE_CANCELLED400Rechnung ist bereits storniert
INVOICE_NOT_DRAFT400Nur Entwürfe können bearbeitet werden
MISSING_ITEMS400Mindestens eine Rechnungsposition erforderlich
INVALID_DATE400Ungültiges Datumsformat

Nächste Schritte