Skip to content
Log in

Empfang, Integration und Verwaltung eingehender Rechnungen

Diese Anleitung erklärt, wie Sie:

  • Rechnungen über verschiedene Kanäle empfangen (Peppol, E-Mail, B2Brouter, Uploads).
  • Empfangene Rechnungen in Ihr System integrieren (JSON, PDF, Originaldatei).
  • Den Lebenszyklus von Rechnungen verwalten (bestätigen, akzeptieren/ablehnen/bezahlen usw.).
  • Ein Unternehmen mit einer gültigen Taxcode Identifier (TIN) oder Company Identifier (CIN).
  • Ein registriertes Konto in der Testumgebung von B2Brouter: Hier registrieren
  • API-Berechtigungen (über ein Support-Ticket anfordern: Ticket eröffnen)
  • Falls Unsicherheiten beim Registrierungsprozess bestehen, lesen Sie bitte den Benutzerleitfaden.

Falls Sie das Konto noch erstellen oder Empfangstransporte aktivieren müssen, folgen Sie diesen Anleitungen:

Wichtige Konzepte (Verwechslung von IDs vermeiden)

Section titled “Wichtige Konzepte (Verwechslung von IDs vermeiden)”
  • ACCOUNT_ID wird nur in Endpunkten vom Typ /accounts/{ACCOUNT_ID}/... verwendet.
  • INVOICE_ID ist die Rechnungskennung, die in Endpunkten vom Typ /invoices/{INVOICE_ID}... verwendet wird.
  • Bei einer eingehenden Rechnung ist invoice.contact der Aussteller/Lieferant (nicht Ihr eigenes Konto).

1.1 Eine eingehende Rechnungsdatei (XML) importieren (optional)

Section titled “1.1 Eine eingehende Rechnungsdatei (XML) importieren (optional)”

Wenn Sie bereits über die empfangene Rechnungsdatei verfügen (z. B. für Tests, Migrationen oder Datenimporte), können Sie diese mit Import an invoice from a file importieren. Verwenden Sie den Query-Parameter issued=false, um die Rechnung als ReceivedInvoice zu importieren.

Es ist auch möglich, eine eingehende Rechnung per JSON mit dem Aufruf Create an invoice zu erzeugen. Denken Sie daran, dabei "type": "ReceivedInvoice" anzugeben.

Sobald Transporte für das Konto aktiviert sind, werden Rechnungen automatisch empfangen (zum Beispiel über Peppol oder E-Mail).

Beispielanfrage:

Terminal window
curl --request GET \
--url 'https://api-staging.b2brouter.net/accounts/{ACCOUNT_ID}/invoices?type=ReceivedInvoice' \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json'

Beispielantwort (Auszug):

{
"invoices": [
{
"id": 105337,
"number": "2",
"state": "new",
"total": 107.1,
"currency": "EUR"
},
{
"id": 105332,
"number": "1",
"state": "received",
"total": 178.5,
"currency": "EUR"
}
],
"total_count": 2,
"offset": 0,
"limit": 25
}

Empfangene Rechnungen können unterschiedliche Status haben: importierte Rechnungen erscheinen im Status "new" und Rechnungen, die über Transporte empfangen wurden, normalerweise im Status "received". Sie können auch den Status "invalid" haben, wenn Validierungsprobleme vorliegen.

Um alle verfügbaren Rechnungsstatus anzuzeigen, verwenden Sie den Endpunkt List of available invoice status.

Um die Rechnung im JSON-Format abzurufen, verwenden Sie den Endpunkt Get an invoice. Fügen Sie einen Query Param hinzu, um die Positionsinformationen einzuschließen:

Beispielanfrage:

Terminal window
curl --request GET \
--url 'https://api-staging.b2brouter.net/invoices/{INVOICE_ID}?include=lines' \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json'

4) Die ursprüngliche Rechnungsdatei herunterladen

Section titled “4) Die ursprüngliche Rechnungsdatei herunterladen”

Um die ursprünglich empfangene rechtsgültige Rechnung herunterzuladen:

Beispielanfrage:

Terminal window
curl --request GET \
--url https://api-staging.b2brouter.net/invoices/{INVOICE_ID}/as/original \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}'

Sie können auch document_type_code als pdf.invoice verwenden, um eine PDF-Ansicht zu generieren, oder einen anderen document_type_code aus Get document types, um die Rechnung in einem beliebigen elektronischen Rechnungsformat zu erhalten.

Verwenden Sie den Endpunkt Mark an invoice as acknowledged, um zu verhindern, dass die Rechnung weiterhin in der Liste der empfangenen Rechnungen erscheint.

Ändern Sie den Rechnungsstatus, um dem Absender mitzuteilen, dass Sie die Rechnung „akzeptiert“, „abgelehnt“ oder „bezahlt“ haben. Sie können die Rechnung auch als „annotated“ markieren, um sie intern nachzuverfolgen.

Verwenden Sie den Endpunkt Switch invoice state. Sie können den Body-Parameter reason hinzufügen, um den Grund der Ablehnung anzugeben. Wenn die Rechnung per E-Mail eingegangen ist, fügen Sie den Body-Parameter "commit": "with_mail" hinzu, um den Absender zu informieren.

Beispielanfrage:

Terminal window
curl --request POST \
--url https://api-staging.b2brouter.net/invoices/{INVOICE_ID}/mark_as \
--header 'X-B2B-API-Key: {YOUR_API_KEY}' \
--header 'X-B2B-API-Version: {YOUR_API_VERSION}' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"state": "refused",
"reason": "Missing PO number"
}'

Beispielantwort:

204 No Content

Weitere Informationen finden Sie in der API-Referenz.