Enterprise Invoice API

E-Rechnungen.
Automatisch. Rechtssicher.
Per API.

Eine API-Anfrage genügt:
Ihr System übermittelt die Rechnungsdaten, unsere API erstellt daraus ein vollständiges ZUGFeRD-PDF oder eine XRechnung-XML. Kompatibel mit jeder Programmiersprache, jeder Plattform und jedem ERP-System.

EN 16931 konform
XRechnung 3.0
ZUGFeRD 2.3
PEPPOL BIS 3.0 Format
DSGVO-konform
POST /api/v1/invoices.php
{ "core_data": { "document": { "invoice_number": "RE-2026-0042", "issue_date": "2026-05-17" }, "items": [ { "title": "Software-Lizenz Pro", "quantity": 3, "unit_price": 199.00 } ] } }
API
ZUGFeRD 2.3 ✓
Rechnung
Rechnungs-Nr.RE-2026-0042 Datum17.05.2026 Fällig bis31.05.2026 Kunden-Nr.CUST-1042
LeistungMengeGesamt
Software-Lizenz Pro3×597,00 €
Server-Hosting Mai1×350,00 €
Mengenrabatt 5%-47,35 €
Netto
899,65 €
zzgl. 19% MwSt.
170,93 €
Gesamt
1.070,58 €
</CrossIndustryInvoice>
4
Ausgabeformate
8
Zahlungsmethoden
0
Validator-Fehler
1
API-Aufruf genügt
100%
EN 16931 konform
Was Sie bekommen

Alles, was eine professionelle Rechnung braucht.

Kein Vorwissen nötig — Sie liefern die Daten, wir liefern das fertige, validierungskonforme Dokument.

4 Ausgabeformate

Von der rein visuellen PDF-Rechnung bis zum maschinenlesbaren XML für Bundesbehörden — ein Endpoint, alle Formate.

zugferd xrechnung zugferddual pdf
Typische API-Anfrage
POST /api/v1/invoices.php?format=zugferd&output=json
// Response:
{ "status": "success", "file_data": "JVBERi0x..." }

Alle Steuerarten & Währungen

Automatische Erkennung aus Länder- und Steuerkonfiguration. Seller und Buyer können aus beliebigen Ländern sein — keine Einschränkungen.

  • Standard-MwSt (S) — beliebiger Steuersatz
  • Steuerbefreit (E) — z.B. § 19 UStG
  • Reverse Charge (AE) — grenzüberschreitendes B2B
  • Alle ISO 4217 Währungen

Rabatte & Gutschriften

Rabatt-Positionen einfach als negativen Einzelpreis übergeben.

  • Mengenrabatt, Treuerabatt
  • Automatische Arithmetik-Prüfung
  • Mustang-Validator konform

Anteilige Abrechnung — Pro-Rata

Automatische 4-Dezimalstellen-Berechnung verhindert Rundungsfehler bei monatlich anteiligen Preisen. Mustang-Warning-10 wird strukturell vermieden.

// Einheit: 2,90 € × 12 = 34,84 € (kein Rundungsfehler)
"unit_price": 2.90, "total_net": 34.84

Vollständig anpassbares Layout

Logo, Farben, Schriftart, Spaltenbreiten, Fußzeile — alles per JSON konfigurierbar.

  • Themes: Classic & Modern
  • Eigenes Logo (URL) & CI-Farben
  • Globale Währungen (Alle ISO 4217 Codes)
  • Mehrsprachige Labels & freie Fußzeilen

Direkte Stripe-Integration

Übergeben Sie einfach payment_type_code und den Rest übernimmt die API — inklusive automatischer Mandatsverwaltung für SEPA-Lastschrift.

  • Kreditkarte, SEPA, PayPal-Link
  • Automatisches TypeCode-Mapping

Zahlungs-QR-Code (GiroCode)

Der Kunde scannt mit der Banking-App — IBAN, Empfänger, Betrag und Verwendungszweck werden automatisch übernommen, kein Abtippen mehr nötig.

  • EPC069-12-Standard — von allen SEPA-Banking-Apps erkannt
  • Alle Felder automatisch aus Ihren Rechnungsdaten
  • Alternative: eigener Bezahl-Link (PayPal, Stripe)

Data-Matrix-Code

Ein zweiter, unabhängiger 2D-Code für eigene Zwecke — Belegverfolgung, Dokumentenmanagement oder ein Verweis Ihrer Wahl. Inhalt frei bestimmbar.

  • Beliebiger Text, Link oder Referenz
  • Kompakt, dezent im Seitenrand platzierbar
  • Unabhängig vom Zahlungs-QR-Code kombinierbar
So einfach geht's

Integration in 3 Schritten.

Keine komplexe Einrichtung. Kein neues System lernen. Einfach API-Key holen und loslegen.

1

API-Key holen

Unter Lizenz → API finden Sie Ihren persönlichen API-Key. Kein Antrag, keine Wartezeit.

2

Daten als JSON senden

Rechnungsnummer, Käufer, Positionen, Summen — einfach als JSON-Objekt an unsere API senden.

3

Fertige Rechnung empfangen

Die API antwortet mit einer vollständigen, validierten PDF- oder XML-Rechnung — bereit zum Versand.

Beispiel — PHP cURL Aufruf
$ch = curl_init('https://hyptime.com/api/v1/invoices.php?format=zugferd&output=json');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-API-Key: IHR_API_KEY'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'core_data' => [
        'document' => ['invoice_number' => 'RE-2026-0042', 'issue_date' => '2026-05-17', 'currency' => 'EUR'],
        'seller'   => ['name' => 'Muster GmbH', 'iban' => 'DE89370400440532013000', /* ... */],
        'buyer'    => ['name' => 'Kunde AG', /* ... */],
        'items'    => [['position_nr' => 1, 'title' => 'Software-Lizenz', 'quantity' => 1, 'unit_price' => 499.00, 'total_net' => 499.00]],
        'totals'   => ['total_net' => 499.00, 'tax_amount' => 94.81, 'total_gross' => 593.81]
    ]
]));

$response = json_decode(curl_exec($ch), true);
$pdfData  = base64_decode($response['file_data']); // ← fertige PDF-Bytes
Zahlungsmethoden

8 Zahlungsarten. Alle abgedeckt.

Von SEPA-Überweisung bis PayPal-Link — jede Zahlungsart erzeugt das korrekte XML mit allen Pflichtfeldern.

30

Banküberweisung

Allgemeiner Fallback ohne IBAN

B2B / B2C
42

non-SEPA Überweisung

Schweiz, UK, USA — mit IBAN + BIC

B2B International
49

SEPA-Lastschrift

Stripe SEPA mit Mandatsreferenz

B2B / B2C
54

Kreditkarte

Karteninhaber + letzte 4 Stellen

B2C
57

Dauerauftrag

Für Abonnements und SaaS

B2B Abos
58

SEPA-Überweisung

Standard-Zahlung mit IBAN

B2B Standard
59

Zahlungslink

PayPal, Stripe-Link, Online-Pay

B2C Online
97

Aufrechnung

Verrechnung und Gutschriften

B2B / B2C
Zahlungs-QR-Code direkt auf der Rechnung. Bei SEPA-Überweisung (TypeCode 58) kann zusätzlich ein GiroCode gedruckt werden, den Ihre Kunden mit der Banking-App scannen — IBAN und Betrag werden automatisch übernommen. Alle Details im Tab „Scan-Codes" weiter unten.
Rechtssicherheit

Validiert. Zertifiziert. Zukunftssicher.

Alle generierten Rechnungen bestehen sämtliche Prüfebenen des KoSIT-Validators (XRechnung 3.0) und des Mustang-Validators (ZUGFeRD 2.3) ohne Fehler.

✅

EN 16931

Europäische Kernrechnungs-Norm — Basis für alle E-Rechnungsstandards in der EU

✅

XRechnung 3.0

Pflichtformat für Rechnungen an deutsche Bundesbehörden

✅

ZUGFeRD 2.3

Hybrides Format: sichtbares PDF + maschinenlesbares XML in einer Datei

✅

PEPPOL BIS 3.0 Format

Internationales Netzwerk für elektronischen Rechnungsaustausch in Europa

✅

PDF/A-3

Archivierungsfähiges PDF-Format nach ISO-Standard — revisionssicher

✅

§ 14 UStG konform

Alle umsatzsteuerrechtlich relevanten Pflichtangaben nach deutschem Steuerrecht

Für Entwickler

Vollständige API-Dokumentation.

Alles was Sie brauchen, um in wenigen Minuten live zu gehen.

🚀 In 5 Minuten live

Hier sind die minimalen Pflichtfelder für eine gültige Rechnung. Für Produktivrechnungen sollten Sie das vollständige Payload-Modell nutzen.

POST /api/v1/invoices.php?format=zugferd&output=json
{
  "core_data": {
    "document": {
      "invoice_number": "RE-2026-0001",
      "issue_date":     "2026-05-17",
      "currency":       "EUR"
    },
    "tax": { "rate": 19 },
    "seller": {
      "name": "Muster GmbH", "street": "Musterstr. 1",
      "zip":  "12345",         "city":   "Berlin",
      "country": "DE",            "email":  "info@muster.de"
    },
    "buyer": {
      "name": "Kunde AG", "street": "Kundenstr. 5",
      "zip":  "10115",     "city":   "Berlin",
      "country": "Deutschland"
    },
    "items": [{
      "position_nr": 1, "title": "Beratungsleistung",
      "quantity": 1,    "unit_price": 1000.00, "total_net": 1000.00
    }],
    "totals": {
      "total_net": 1000.00, "tax_amount": 190.00, "total_gross": 1190.00
    }
  }
}
✅ Dieser Mindest-Payload generiert eine vollständige, validierungskonforme ZUGFeRD-Rechnung mit 19% MwSt, SEPA-Überweisung (TypeCode 58) und automatischen Fallbacks für alle optionalen Felder.

Endpoint & Query-Parameter

POST /api/v1/invoices.php?format={format}&output={output}
ParameterWerteStandardBeschreibung
format optionalzugferd | xrechnung | zugferddual | pdfzugferdAusgabeformat des Dokuments
output optionalbinary | jsonbinarybinary: Direkter Datei-Download. json: Base64-Antwort für API-zu-API-Integration.
formatMIME-TypeEnthält XML?Ideal für
zugferdapplication/pdf✅ Eingebettet (PDF/A-3)Standard-Rechnungsversand
xrechnungapplication/xml✅ Ist XMLBehörden, Peppol-Netzwerk
zugferddualapplication/zip✅ Separat im ZIPBuchhaltungssoftware + Archiv
pdfapplication/pdf❌ NeinAngebote, Lieferscheine

document — Rechnungsmetadaten

FeldTypStatusBeschreibung
invoice_numberstringPflichtEindeutige Rechnungsnummer. Bsp: RE-2026-0042
issue_datestringPflichtRechnungsdatum: YYYY-MM-DD
currencystringPflichtISO 4217: EUR, CHF, USD
due_datestringOptionalFälligkeitsdatum. Standard: +14 Tage
delivery_datestringOptionalLieferdatum. Standard: = issue_date
custom_filenamestringOptionalDateiname ohne Endung. Standard: invoice_{nummer}
payment_type_codeintOptionalZahlungsart-Code. Standard: 58 (SEPA)

seller — Verkäufer

FeldStatusBeschreibung
name, street, zip, city, country, emailPflichtVollständige Adresse des Rechnungsstellers
vat_idOptionalUSt-IdNr. Bsp: DE123456789
ibanBedingtIBAN des Verkäufers. Erforderlich bei TypeCode 57, 58.
bicOptionalBIC — wird bei TypeCode 42 ins XML geschrieben

buyer — Käufer

FeldStatusBeschreibung
name, street, zip, city, countryPflichtVollständige Adresse des Käufers
country_isoOptionalISO Alpha-2 Code. Standard: DE. Wichtig für Steuerlogik.
customer_idOptionalKäuferreferenz. Standard: CUST-{id}

items — Rechnungspositionen (Array)

FeldStatusBeschreibung
position_nr, title, quantityPflichtPositionsnummer, Titel, Menge
unit_pricePflichtEinzelpreis netto. Negativ für Rabatte: -50.00
total_netPflichtGesamtbetrag der Position — immer positiv, auch bei Rabatten
descriptionOptionalAusführliche Beschreibung unter dem Titel

totals — Rechnungssummen

⚠ Wichtig: total_gross muss exakt total_net + tax_amount sein. Abweichungen führen zu Validator-Warnungen.
FeldStatusBeschreibung
total_netPflichtNettosumme aller Positionen inkl. Rabatte
tax_amountPflichtSteuergesamtbetrag
total_grossPflichtBruttosumme = total_net + tax_amount

Enterprise-Felder (Optional für Mixed-Tax & Skonto)

Für komplexe Rechnungen mit globalen Rabatten, Versandkosten und Skonto-Bedingungen nutzen Sie diese Felder im document und totals Objekt:

FeldTypBeschreibung
document.payment_termsstringFreitext für Skonto-Bedingungen (z.B. "2% Skonto innerhalb 3 Tagen"). Wird maschinenlesbar in die XML-PaymentTerms geschrieben.
totals.allowancesarrayGlobale Rabatte. Array aus: amount (Betrag), reason, tax_rate und tax_category.
totals.chargesarrayGlobale Zuschläge (z. B. Versand). Gleicher Aufbau wie allowances.
totals.tax_breakdownarrayPflicht bei Rechnungen mit mehreren Steuersätzen (z. B. 19% & 7%). Enthält pro Steuersatz: rate, category, net_amount und tax_amount.

Zahlungsarten — TypeCodes

Über document.payment_type_code steuern Sie welche XML-Elemente die API generiert. Standard ist 58 (SEPA-Überweisung).

CodeZahlungsartPflichtfelderBereich
30Banküberweisung (Fallback)—B2B / B2C
42Non-SEPA (CH, UK, USA)seller.iban + seller.bicB2B International
49SEPA-Lastschrift (Stripe)doc.sepa_mandate_id empfohlenB2B / B2C
54Kreditkartedoc.payment_card_panB2C
57Dauerauftrag / Standing Orderseller.ibanB2B Abos
58SEPA-Überweisungseller.ibanB2B Standard
59Zahlungslink / PayPaldoc.payment_url empfohlenB2C Online
97Aufrechnung / Verrechnung—Gutschriften
💡 TypeCode 49 (SEPA-Lastschrift): Wird intern auf TypeCode 58 gemappt, um einen bekannten Konflikt zwischen CII-XSD und PEPPOL-Schematron zu umgehen. Die Mandatsreferenz aus sepa_mandate_id erscheint lesbar im XML Information-Feld.

payment_qr — Zahlungs-QR-Code (GiroCode)

Fügt einen scanbaren QR-Code nach EPC069-12-Standard (GiroCode) hinzu. Banking-Apps im SEPA-Raum lesen daraus automatisch IBAN, Empfänger, Betrag und Verwendungszweck aus. Der Block steht als eigenes Top-Level-Feld neben core_data.

⚠ Nur SEPA / EUR: GiroCode ist ein europäischer Bankenstandard für SEPA-Überweisungen in Euro — das ist eine Eigenschaft des Standards, keine Einschränkung unserer API. Bei anderer Währung oder fehlender/ungültiger IBAN wird der Code automatisch weggelassen, die Rechnung wird trotzdem normal erstellt.
FeldTypStatusBeschreibung
enabledbooleanPflichtSchaltet den Code frei. Standard ohne Angabe: false
iban, bic, recipient_name, amount, referencestring / numberOptionalnull oder weggelassen = automatisch aus seller.iban, seller.bic, seller.name, totals.total_gross, document.invoice_number
labelstringOptionalText direkt unter dem Code. null/weggelassen = kein Text
positionobjectOptional{x, y, size} in mm — jedes Feld einzeln überschreibbar, siehe unten
typestringOptional"epc" (Standard, GiroCode) oder "url" für einen beliebigen Bezahl-Link
urlstringBedingtNur bei type: "url": kompletter Link (z.B. PayPal.me, Stripe-/Mollie-Payment-Link), wird 1:1 als QR-Code codiert

Positionierung

Ohne position wird der Code automatisch direkt unter dem Rechnungstext platziert — ohne zusätzlichen Seitenumbruch. Sobald mindestens ein Feld (x, y oder size) gesetzt ist, gilt das als bewusste Positionierung: der Code wird dann auf Seite 1 an exakt dieser Stelle gedruckt, fehlende Einzelfelder werden automatisch ergänzt.

// Minimalbeispiel — alles automatisch aus den Rechnungsdaten
"payment_qr": { "enabled": true }

// Mit eigenem Label und fester X-Position (Y bleibt automatisch)
"payment_qr": {
  "enabled": true,
  "label": "Scan to Pay",
  "position": { "x": 140, "size": 18 }
}

// Alternative: eigener Bezahl-Link statt GiroCode
"payment_qr": {
  "enabled": true,
  "type": "url",
  "url": "https://paypal.me/ihrunternehmen/1273.30",
  "label": "Mit PayPal bezahlen"
}

data_matrix — Frei konfigurierbarer 2D-Code

Ein zweiter, unabhängiger 2D-Code für eigene Zwecke — z.B. interne Belegnummern, ein Link oder eine Referenz für Ihr Dokumentenmanagement. Anders als beim GiroCode gibt es hier keinen festen Inhalts-Standard: Sie codieren exakt den String aus content, 1:1.

FeldTypStatusBeschreibung
enabledbooleanPflichtSchaltet den Code frei. Standard: false
contentstringPflichtBeliebiger Text/Link/Referenz. Leer = Code wird weggelassen
positionobjectOptionalWie bei payment_qr. Automatischer Default: schmaler linker Rand, vertikal mittig
💡 Kein Ersatz für DV-Freimachung: Deutsche Post nutzt für die digitale Briefporto-Frankierung (DV-Freimachung, seit 01.01.2026 Pflicht für Dialogpost/Postwurfspezial) ebenfalls einen Data-Matrix-Code — allerdings mit einem eigenen, proprietären 42-Byte-Format (feste Frankier-ID, EKP-Kundennummer, Portobetrag nach Post-Spezifikation) und einer vorgeschriebenen Position in der Frankierzone, die eine Registrierung bei der Deutschen Post voraussetzt. Unser data_matrix-Feld erzeugt einen technisch korrekten, aber inhaltlich frei belegbaren Data-Matrix-Code — keinen gültigen Post-Freimachungsvermerk. Benötigen Sie DV-Freimachung für Ihren Versand? Sprechen Sie unser Entwicklungsteam an — wir prüfen gerne gemeinsam, ob sich eine Post-Zertifizierung für Ihren Anwendungsfall lohnt.

Steuerarten — Automatische Erkennung

Die Steuerkategorie wird automatisch aus tax.rate, tax.is_small_business, tax.is_reverse_charge sowie den Länder-Codes abgeleitet. Manuelles Setzen ist nicht nötig.

KategorieCodeWann aktivFreistellungstext
Standard-MwStStax.rate > 0, kein Sonderfall—
SteuerbefreitEis_small_business = true oder steuerfreies InlandsgeschäftFallback: "Gemäß § 19 UStG..."
Reverse ChargeAEis_reverse_charge = trueFallback: "§ 13b UStG..."
Export / DrittlandGrate = 0, Käufer-Land ≠ Verkäufer-Land (z.B. CH, UK, USA)Fallback: "Tax-free export..."

Beispiele

// Standard 19% Deutschland
"tax": { "rate": 19 }

// Kleinunternehmer (§ 19 UStG)
"tax": { "rate": 0, "is_small_business": true }

// EU Reverse Charge B2B
"tax": { "rate": 0, "is_reverse_charge": true }

// Export Schweiz (automatisch erkannt über buyer.country_iso = "CH")
"tax": { "rate": 0 }  // → Kategorie G wird automatisch gesetzt

// Schweizer MwSt 8.1%
"tax": { "rate": 8.1 }, "currency": "CHF"

Response-Formate

output=binary (Standard)

Direkter Datei-Download. Kein JSON-Wrapper. Ideal für Browser-Downloads.

// HTTP Response Headers
Content-Type: application/pdf
Content-Disposition: attachment; filename="invoice_RE-2026-0042.pdf"

output=json

Base64-kodierte Datei als JSON. Ideal für API-zu-API-Integrationen und serverseitige Verarbeitung.

// Erfolg (format=zugferd)
{
  "status":    "success",
  "filename":  "invoice_RE-2026-0042.pdf",
  "mime_type": "application/pdf",
  "file_data": "JVBERi0xLjMK..."  // Base64-PDF
}

// format=zugferddual → zusätzlich xml_data
{
  "status":   "success",
  "file_data": "JVBERi0x...",  // PDF
  "xml_data":  "PD94bWwg..."   // XML separat
}

// Mit optionaler Warnung (kein Fehler, Rechnung wurde generiert)
{
  "status": "success",
  "file_data": "...",
  "payment_warnings": ["SEPA (TypeCode 49): Mandatsreferenz fehlt..."]
}

Fehlerbehandlung

Alle Fehler werden als JSON mit HTTP-Statuscode zurückgegeben.

{ "status": "error", "message": "Fehlerbeschreibung" }
HTTP-CodeBedeutungTypische Ursache
200✅ ErfolgDatei wurde erfolgreich generiert
400❌ Ungültige AnfrageUngültiges JSON, unbekannter format-Parameter
401🔒 Nicht autorisiertAPI-Key fehlt oder ungültig
422⚠ ValidierungsfehlerPflichtfelder fehlen (invoice_number, seller.name, etc.)
500💥 ServerfehlerInterner Fehler beim Aufbau des Dokuments
💡 Warnungen ≠ Fehler: Wenn optionale Felder wie sepa_mandate_id fehlen, wird die Rechnung trotzdem generiert. Die Warnung erscheint im Response als payment_warnings-Array — kein Abbruch.
Häufige Fragen

Alles, was Sie wissen müssen.

Was ist der Unterschied zwischen ZUGFeRD und XRechnung? +
ZUGFeRD (Format: zugferd) ist ein hybrides Format — ein normales PDF mit einem unsichtbar eingebetteten XML. Der Empfänger kann es lesen wie eine normale Rechnung, und seine Buchhaltungssoftware kann das XML automatisch einlesen. XRechnung (xrechnung) ist ein reines XML ohne PDF-Teil und Pflichtformat für Rechnungen an deutsche Bundesbehörden gemäß E-Rechnungsverordnung. Für normale B2B-Rechnungen empfehlen wir ZUGFeRD.
Muss ich als Kleinunternehmer etwas Besonderes angeben? +
Setzen Sie einfach tax.rate = 0 und tax.is_small_business = true. Die API setzt automatisch die Steuerkategorie E (Exempt) und fügt den gesetzlich erforderlichen Freistellungshinweis "Gemäß § 19 UStG wird keine Umsatzsteuer berechnet." ins XML ein. Sie können den Text mit tax.note_reverse_charge überschreiben.
Funktioniert die API für Rechnungen an Schweizer Kunden? +
Ja. Setzen Sie buyer.country_iso = "CH" und tax.rate = 0. Die API erkennt automatisch, dass es sich um einen steuerfreien Export ins Drittland handelt, setzt die Steuerkategorie G und schreibt den Exporthinweis ins XML. Für internationale Zahlungen empfehlen wir TypeCode 42 mit IBAN und BIC.
Wie integriere ich Stripe SEPA-Lastschrift? +
Übergeben Sie payment_type_code: 49 und sepa_mandate_id: "mandate_xxx" (die Stripe Mandate-ID aus dem PaymentIntent). Die API baut die Mandatsreferenz automatisch in das XML ein. Für die Kreditkarte nutzen Sie TypeCode 54 und übergeben die letzten 4 Stellen als payment_card_pan.
Können mehrere Rechnungen parallel generiert werden? +
Ja. Die API ist zustandslos — jede Anfrage ist völlig unabhängig. Sie können beliebig viele parallele Requests senden. Achten Sie auf die Rate-Limits Ihres API-Plans, die Sie unter Lizenz → API einsehen können.
Werden die Rechnungsdaten auf Ihren Servern gespeichert? +
Nein. Die API generiert das Dokument im Arbeitsspeicher und gibt es direkt zurück. Es wird nichts dauerhaft gespeichert. Die Datenhaltung liegt vollständig bei Ihnen.
Wie übergebe ich Skonto-Bedingungen korrekt? +
Skonto ist kein normaler Rechnungsrabatt, sondern eine Zahlungsbedingung. Übergeben Sie den Text (z.B. "2% Skonto bei Zahlung bis 30.06.") einfach im Feld document.payment_terms für das XML und im Feld visual_layout.texts.closing für den Andruck auf dem PDF. Die Rechnungssumme bleibt dadurch normgerecht unangetastet.
Wie erzeuge ich Stornorechnungen oder Gutschriften? +
Übergeben Sie die Beträge im Payload einfach als Minuswerte (z. B. -100.00). Unsere API nutzt den hochkompatiblen Handelsrechnungs-Code 380 (Negativrechnung). Sie müssen keine Vorzeichen-Mathematik im XML beachten — die API verhindert automatisch, dass durch Doppel-Minus-Fehler der Validator abbricht.
Kann ich einen Zahlungs-QR-Code (GiroCode) auf der Rechnung anzeigen lassen? +
Ja. Setzen Sie payment_qr.enabled = true — IBAN, Empfänger und Betrag werden automatisch aus Ihren Rechnungsdaten übernommen, kein weiteres Feld nötig. Der Code folgt dem EPC069-12-Standard (GiroCode) und funktioniert mit SEPA-fähigen Banking-Apps. Für Zahlungswege außerhalb von SEPA (PayPal, Stripe-Link etc.) nutzen Sie type: "url" mit Ihrem eigenen Bezahl-Link. Details im Tab „Scan-Codes" der Dokumentation.

Bereit für rechtssichere
E-Rechnungen?

Sie haben noch Fragen zur Integration, zu Sonderfällen oder zum passenden Paket? Unser Team berät Sie gerne persönlich unverbindlich und kostenfrei.