Gestionare (facturi eșuate)
Respingerile definitive și cine acționează asupra lor.
- În sandbox
În cuvinte simple
Lista de gestionare conține facturile respinse definitiv de canalul unei țări sau eșuate după toate reîncercările și arată ce este greșit și cine acționează. Pe această listă lucrează serviciul lunar Gestionarea respingerilor (Rejection Care). Nu retrimitem niciodată un fișier respins așa cum este: clientul sau partenerul corectează datele în ERP și se transmite o factură corectată.
O factură ajunge pe lista de gestionare când canalul o respinge definitiv sau când erorile temporare își epuizează reîncercările. Lista arată ce este greșit și cine acționează. Nu retrimitem niciodată un fișier respins așa cum este: corectați datele în ERP și transmiteți o factură corectată. Gestionarea respingerilor, abonamentul lunar, se bazează pe aceste trei apeluri. Nivelul de serviciu este stabilit în contract, nu aici.
Cheia unui client cu domeniul read citește rândurile propriului client. Marcarea unui rând ca tratat ține de munca din cadrul Gestionării respingerilor, așa că cheia unui client primește 403 la acel apel.
Lista
GET /care returnează câte un rând pentru fiecare factură.
| Câmp | Semnificație |
|---|---|
invoice_id | ID-ul facturii. |
invoice_ref | Referința proprie a partenerului. |
client, route | Clientul și canalul facturii. |
catalogue_code | Codul care explică respingerea (consultați erorile). |
who_acts | Responsabilul codului: erp, us, business, client, buyer sau route. |
field | Un loc din modelul canonic, de exemplu invoice.buyer_reference. Niciodată o valoare. |
fix_hint | Ce trebuie schimbat, din respingere sau din intrarea din catalog. |
age_seconds | De cât timp se află factura pe listă. |
deadline_at | Termenul orientativ al facturii, când are unul (consultați citirea unei facturi). |
handled | Dacă cineva a marcat-o ca tratată. |
handled_at | Când a fost marcată. Apare doar când handled este true. |
Parametrul de interogare status alege open, handled sau all (implicit). Cheia unui client primește cel mult cele mai noi 200 de rânduri, iar truncated: true arată când există mai multe. Poate lista de 30 de ori pe minut.
Notă
Lista nu conține corpul facturii și nici jurnalul nu îl conține.
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": []
}Marcarea ca tratată
POST /care/{id}/handled marchează un rând ca tratat și răspunde cu acel rând. Un nou apel păstrează primul handled_at. Pentru o factură care nu este pe listă, răspunsul este 404. Doar cheia operatorului îl poate apela.
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
}Exportul dovezilor
GET /care/{id}/evidence returnează fișierele stocate pentru factură: invoice_id și o listă files, fiecare cu kind, sha256 și fișierul propriu-zis ca file_base64. Fișierul este originalul stocat, așa că acest răspuns conține corpul facturii, iar lista nu. Pentru o factură care nu este pe listă, răspunsul este 404, la fel și pentru factura altui client. Cheia unui client cu domeniul read îl poate apela de 10 ori pe minut. Fișierele care depășesc 8 MiB în total primesc 413 (evidence-too-large); citiți-le pe rând cu 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
}Răspunsuri
| Cod | Semnificație |
|---|---|
200 | Lista, rândul marcat sau dovezile. |
401 | Lipsește cheia sau cheia este necunoscută. |
403 | Cheia nu are domeniul read sau cheia unui client a încercat să marcheze un rând ca tratat. |
404 | Factura nu este pe lista de gestionare. |
413 | Dovezile depășesc 8 MiB în total (evidence-too-large). |
429 | Prea multe cereri pentru cheie. Așteptați numărul de secunde din Retry-After. |