Betreuung (fehlgeschlagene Rechnungen)
Endgültige Ablehnungen und wer sich darum kümmert.
- In der Sandbox
In einfachen Worten
Die Betreuungsliste enthält die Rechnungen, die ein Übermittlungsweg endgültig abgelehnt hat oder bei denen jeder Wiederholungsversuch fehlgeschlagen ist, jeweils mit der Angabe, was falsch ist und wer handelt. Mit dieser Liste arbeitet die monatliche Betreuung abgelehnter Rechnungen (Rejection Care). Wir senden eine abgelehnte Datei nie unverändert erneut: Der Kunde oder Partner korrigiert die Daten im ERP, und eine korrigierte Rechnung wird übermittelt.
Eine Rechnung landet auf der Betreuungsliste, wenn der Übermittlungsweg sie endgültig ablehnt oder wenn nach vorübergehenden Fehlern alle Wiederholungsversuche aufgebraucht sind. Die Liste nennt, was falsch ist und wer handelt. Wir senden eine abgelehnte Datei nie unverändert erneut: Korrigieren Sie die Daten im ERP und übermitteln Sie eine korrigierte Rechnung. Die Betreuung abgelehnter Rechnungen, die monatliche Pauschale, arbeitet mit diesen drei Aufrufen. Das Service-Level steht im Vertrag, nicht hier.
Ein Kundenschlüssel mit dem Scope read liest die Zeilen seines eigenen Kunden. Eine Zeile als erledigt zu markieren ist Aufgabe der Betreuung abgelehnter Rechnungen, deshalb erhält ein Kundenschlüssel bei diesem Aufruf 403.
Die Liste
GET /care liefert eine Zeile je Rechnung.
| Feld | Bedeutung |
|---|---|
invoice_id | Die ID der Rechnung. |
invoice_ref | Die eigene Referenz des Partners. |
client, route | Der Kunde und der Übermittlungsweg der Rechnung. |
catalogue_code | Der Code, der die Ablehnung erklärt (siehe Fehler). |
who_acts | Die zuständige Stelle des Codes: erp, us, business, client, buyer oder route. |
field | Eine Stelle im kanonischen Modell, etwa invoice.buyer_reference. Nie ein Wert. |
fix_hint | Was zu ändern ist, aus der Ablehnung oder dem Katalogeintrag. |
age_seconds | Wie lange die Rechnung schon auf der Liste steht. |
deadline_at | Die Richtfrist der Rechnung, wenn sie eine hat (siehe Eine Rechnung lesen). |
handled | Ob jemand sie als erledigt markiert hat. |
handled_at | Wann sie markiert wurde. Nur vorhanden, wenn handled true ist. |
Der Query-Parameter status wählt open, handled oder all (Standard). Ein Kundenschlüssel erhält höchstens die neuesten 200 Zeilen, und truncated: true zeigt an, wenn es mehr gibt. Er darf 30-mal pro Minute auflisten.
Hinweis
Die Liste enthält keinen Rechnungsinhalt, das Log auch nicht.
curl "https://api-sandbox-eu.eurinvoice.com/care" \
-H "Authorization: Bearer <your-api-key>"import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api-sandbox-eu.eurinvoice.com/care"))
.header("Authorization", "Bearer <your-api-key>")
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}const response = await fetch('https://api-sandbox-eu.eurinvoice.com/care', {
headers: {
Authorization: 'Bearer <your-api-key>',
},
});
console.log(response.status);
console.log(await response.text());{
"data": []
}Als erledigt markieren
POST /care/{id}/handled markiert eine Zeile als erledigt und antwortet mit dieser Zeile. Ein erneuter Aufruf behält das erste handled_at. Für eine Rechnung, die nicht auf der Liste steht, lautet die Antwort 404. Nur der Schlüssel des Betreibers darf ihn aufrufen.
curl -X POST "https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/handled" \
-H "Authorization: Bearer <your-api-key>"import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/handled"))
.header("Authorization", "Bearer <your-api-key>")
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}const response = await fetch('https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/handled', {
method: 'POST',
headers: {
Authorization: 'Bearer <your-api-key>',
},
});
console.log(response.status);
console.log(await response.text());{
"type": "https://eurinvoice.com/problems/not-found",
"title": "This invoice is not on the care list",
"status": 404
}Die Nachweise exportieren
GET /care/{id}/evidence liefert die für die Rechnung gespeicherten Dateien: invoice_id und eine Liste files, jeweils mit kind, sha256 und der Datei selbst als file_base64. Die Datei ist das gespeicherte Original, deshalb steht der Inhalt in dieser Antwort und nicht in der Liste. Für eine Rechnung, die nicht auf der Liste steht, lautet die Antwort 404, ebenso für die Rechnung eines anderen Kunden. Ein Kundenschlüssel mit dem Scope read darf ihn 10-mal pro Minute aufrufen. Dateien, die zusammen über 8 MiB groß sind, werden mit 413 beantwortet (evidence-too-large); lesen Sie sie einzeln mit GET /invoices/{id}/documents/{kind}.
curl "https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/evidence" \
-H "Authorization: Bearer <your-api-key>"import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/evidence"))
.header("Authorization", "Bearer <your-api-key>")
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}const response = await fetch('https://api-sandbox-eu.eurinvoice.com/care/inv_unknown/evidence', {
headers: {
Authorization: 'Bearer <your-api-key>',
},
});
console.log(response.status);
console.log(await response.text());{
"type": "https://eurinvoice.com/problems/not-found",
"title": "This invoice is not on the care list",
"status": 404
}Antworten
| Status | Bedeutung |
|---|---|
200 | Die Liste, die markierte Zeile oder die Nachweise. |
401 | Kein Schlüssel oder ein unbekannter Schlüssel. |
403 | Dem Schlüssel fehlt der Scope read, oder ein Kundenschlüssel wollte eine Zeile als erledigt markieren. |
404 | Die Rechnung steht nicht auf der Betreuungsliste. |
413 | Die Nachweise sind zusammen größer als 8 MiB (evidence-too-large). |
429 | Zu viele Anfragen für den Schlüssel. Warten Sie Retry-After Sekunden. |