e-Invoice REST API

Für Entwickler · Dienst auf invoicePress.de

E-Rechnungen prüfen, ohne selbst etwas zu betreiben.

Die e-Invoice REST API von invoicePress ist eine Schnittstelle, die Ihr eigenes Programm über das Internet aufruft. Sie prüft E-Rechnungen, prüft Kennungen wie USt-IdNr., LEI oder Peppol-ID bei den zuständigen Registern und liefert die Codelisten der EN 16931 zum Nachschlagen. Sie rufen sie aus Ihrem Skript, Ihrem ERP-System oder einem anderen Programm auf und müssen dafür nichts installieren. Zum Ausprobieren brauchen Sie nicht einmal einen Schlüssel: Die Prüfung antwortet auch ohne Schlüssel in einem freien Kontingent, und die Referenzdaten sind immer frei.

Kurz erklärt: Eine E-Rechnung ist eine Rechnung als strukturierte XML-Datei. Die EN 16931 ist die europäische Norm, die festlegt, welche Angaben eine E-Rechnung enthält. Eine Codeliste ist eine festgelegte Liste erlaubter Werte, zum Beispiel die Währungscodes. Die API läuft auf invoicePress.de unter dem Namensraum einvoice-api/v1.

Die Routen

Vier Aufgaben, ein Dienst.

Eine Route ist eine Adresse der API, die eine bestimmte Aufgabe erledigt.

POST /validate — Diese Route prüft eine E-Rechnung. Sie nimmt XRechnung, Peppol BIS sowie ZUGFeRD und Factur-X als XML oder PDF an. Zurück kommen das Ergebnis (angenommen oder abgelehnt), das erkannte Prüfszenario, also das passende Regelpaket, die Befunde mit Erklärung und der Prüfbericht im Format des KoSIT-Validators.

POST /validate/multi — Diese Route prüft eine Rechnung gegen jede Fassung des Regelwerks, die in Frage kommt. Bei XRechnung ist das die Fassung, die zum Rechnungsdatum galt. Bei ZUGFeRD und Factur-X beginnt die Prüfung mit der neuesten Fassung und geht dann zu den älteren. Das hilft, wenn Sie nicht wissen, nach welcher Fassung eine Rechnung erstellt wurde.

POST /check und /check/batch — Diese Routen prüfen Kennungen bei ihren Registern: USt-IdNr. (über VIES, das Abfragesystem der EU), SIREN und SIRET, LEI, ABN, NIP, Peppol-ID und EORI. Im Stapel prüfen sie bis zu 1.000 Kennungen auf einmal.

GET /codelists, /fields, /rules, /identifiers — Diese Routen liefern die Referenzdaten der EN 16931 zum Lesen, also Codelisten, Felder, Regeln und Kennungen. Sie sind frei und brauchen keinen Schlüssel.

Alle Routen liegen unter https://invoicepress.de/wp-json/einvoice-api/v1/. Die vollständige Beschreibung im OpenAPI-Format, dem üblichen Standard zur Beschreibung solcher Schnittstellen, finden Sie unter /openapi.json. Im Abschnitt „Alle Routen, direkt im Browser“ weiter unten auf dieser Seite können Sie jede Route ausprobieren.

Schlüssel und Kontingent

Die Routen /validate und /validate/multi antworten auch ohne Schlüssel. Dann teilen sich beide ein freies Kontingent von 5 Aufrufen je Netzadresse und Tag. Die Leserouten für Codelisten, Felder, Regeln und Kennungen sind immer frei. Mit einem Schlüssel zählen die beiden Prüfrouten gegen das Kontingent Ihres Kontos oder Ihres Tarifs. Für Kennungsprüfungen und die übrigen Dienste senden Sie Ihren API-Schlüssel in der Kopfzeile Authorization: Bearer … mit.

Ohne Schlüssel Mit Schlüssel
Codelisten, Felder, Regeln und Kennungen lesen ✓ frei ✓ frei
E-Rechnungen prüfen (/validate, /validate/multi) 5 Aufrufe je Netzadresse und Tag mit kostenlosem Konto: Monatskontingent; mit Abonnement: Kontingent des Tarifs
Kennungen prüfen (/check, /check/batch) – ✓ mit Abonnement
Was ohne Schlüssel frei ist und was ein Schlüssel mit Abonnement zusätzlich möglich macht.

Den Schlüssel erhalten Sie über Ihr Kundenkonto auf invoicePress.de. Das Konto ist kostenlos und bringt Ihnen ein höheres Monatskontingent für die Prüfung von E-Rechnungen. Für die Prüfung von Kennungen und für Prüfungen darüber hinaus gibt es Abonnements. Sie sehen den Schlüssel in Ihrem Kundenkonto unter API-Schlüssel und können ihn dort jederzeit neu erzeugen. Jede Antwort sagt Ihnen in ihren Kopfzeilen, wie viel von Ihrem Tageskontingent noch übrig ist.

Ihre Daten

Rechnungen und Berichte werden nur im Arbeitsspeicher verarbeitet und nicht gespeichert. Im Nutzungsprotokoll steht nur ein Fingerabdruck der Anfrage, nie ihr Inhalt.

Referenzdaten

Die Codelisten der EN 16931, frei und ohne Schlüssel.

Die europäische Norm EN 16931-1 legt fest, welche Codelisten für jedes Feld mit dem Datentyp „Code“ zulässig sind. Diese Tabellen heißen UN/EDIFACT-UNTDID, ISO 3166-1, ISO 4217, UN/ECE Rec. 20 und 21, ICD, EAS, MIME und VATEX. Über die API erhalten Sie jede Tabelle vollständig oder einen einzelnen Eintrag daraus, ohne Schlüssel. Jede Antwort nennt den Datenstand der Liste, damit Sie wissen, wie aktuell sie ist.

Jede Liste hat auf invoicePress.de außerdem eine eigene Seite mit einer durchsuchbaren Tabelle und den passenden Routen zum Ausprobieren.

Erste Schritte

Eine Rechnung prüfen mit einem einzigen Befehl.

Sie schicken die Rechnungsdatei selbst als Inhalt der Anfrage. Lassen Sie die Zeile Authorization weg, zählt der Aufruf gegen das freie Kontingent Ihrer Netzadresse. So können Sie sofort loslegen, auch ohne Konto.

curl -X POST https://invoicepress.de/wp-json/einvoice-api/v1/validate \
     -H "Authorization: Bearer <Schlüssel>" \
     --data-binary @rechnung.xml

Die Antwort kommt im Format JSON. Das Feld accepted sagt, ob die Rechnung angenommen ist. Dazu kommen das erkannte Prüfszenario, die Befunde mit Erklärung und der vollständige Prüfbericht.

1 · Rechnung senden
POST /validate, XML oder PDF
2 · Prüfung
im Arbeitsspeicher, ohne Speicherung
3 · Antwort lesen
JSON mit accepted, Befunden und Bericht
So läuft ein Aufruf ab: Sie senden die Rechnung, die API prüft sie, und Sie erhalten das Ergebnis als JSON.

Ausprobieren

Alle Routen, direkt im Browser.

Klappen Sie eine Route auf, wählen Sie „Try it out“ und senden Sie die Anfrage. Für Routen mit Schlüssel tragen Sie den Schlüssel vorher über „Authorize“ ein. Er bleibt nur in diesem Browserfenster.

Erst ansehen, dann automatisieren.

Probieren Sie die Prüfung oben direkt im Browser aus, ganz ohne Schlüssel. Am schnellsten bekommen Sie ein Gefühl für die Prüfung und ihre Befunde, wenn Sie eine eigene Rechnung im Abschnitt „Alle Routen, direkt im Browser“ weiter oben auf dieser Seite prüfen lassen. Zum Lesen einer E-Rechnung nehmen Sie den kostenlosen eInvoice Viewer.