Docs

Predaj račun koji je klijent zaprimio putem kanala

  • U sandboxu
POST
/received

Od 0.35.0 (17. listopada 2026.). Tijelo je XML točno onako kako ga je kanal isporučio (UBL, CII ili FA(3)); ništa se ne mijenja i ništa se ne šalje. Datoteka se prvo pohranjuje, zapečaćena ključem podataka klijenta, jer je po zakonu već zaprimljena; zatim je provjeravaju validatori samog kanala, kao kod slanja prosljeđivanjem, a rezultat stiže kao statusni događaj (received, zatim validated ili validation_failed, s direction: in) na webhook klijenta i na GET /received/{id}/events. Datoteka koja ne prođe pravila čuva se i ima stanje validation_failed s pogreškama; nikad se ne odbacuje. Datoteka koja nije račun za čuvanje odbija se s 422 i ništa se ne pohranjuje, kao na POST /invoices/xml: DOCTYPE (EI-XML-DTD, nikad se ne parsira), XML koji nije ispravno oblikovan (EI-XML-SYNTAX) ili dokument koji nije račun poznat kanalu (EI-XML-TYPE). Provjera koja se nije mogla pokrenuti (validator nije dostupan) ponavlja se, a nakon zadnjeg ponavljanja račun ide na popis za obradu i ostaje u stanju received. Klijent predaje najviše 120 dokumenata u minuti i 2.000 na dan, bez obzira na ključ koji koristi (429, ne čuva se pod Idempotency-Key). Datoteka se vraća kao preuzimanje (Content-Disposition: attachment).

Jedan dokument kanala jedan je zaprimljeni račun klijenta: po rail_id kada je naveden, po SHA-256 datoteke kada nije. Isti dokument ponovno vraća 202 s duplicate_of; isti rail_id s drugim bajtovima vraća 409 received-id-conflict i ništa se ne pohranjuje. Zaprimljeni računi čuvaju se odvojeno od računa koje klijent šalje: nisu u GET /invoices, nizu, metrikama ni mjesečnom izvješću i nikad ne blokiraju slanje iste datoteke. Zaprimljeni račun briše se s razdobljem čuvanja klijenta kada na njemu više ništa nije otvoreno (njegova provjera je završena ili je osoba obradila njegov redak za obradu) i nalazi se u izvozu klijenta pod received/. Opseg submit; ključ klijenta djeluje samo za vlastitog klijenta.

Autorizacija

apiKey
headerAuthorizationBearer <token>

Ključ pošaljite kao bearer token: Authorization: Bearer <your-api-key>. Poziv za stanje usluge jedini je poziv za koji nije potreban ključ.

Parametri upita

route*string

Kanal kroz koji je dokument stigao.

Vrijednost iz"PEPPOL""PL-KSEF""RO-EFACTURA""FR-PA""DE-XRECHNUNG"
rail_id?string

Vlastiti id dokumenta u kanalu (id dokumenta pristupne točke, KSeF broj, ANAF-ov id preuzimanja). 1 do 200 slova, znamenki i znakova . _ : / @ + = # -.

Uzorak^[A-Za-z0-9._:/@+=#-]{1,200}$
client?string

Klijent koji ga je zaprimio. Ključ operatera ga imenuje (ako je izostavljen, operaterov vlastiti klijent local); ključ klijenta može ga izostaviti ili navesti vlastitog klijenta, a bilo koji drugi vraća 403.

Uzorak^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$

Parametri zaglavlja

Idempotency-Key*string

Jedinstveni ključ po logičkom zahtjevu (UUID je u redu). Ključ koji počinje s erp: (erp:{connector}:{scope}:{entity}:{id} prijenosnog recepta ERP-a, s operaterovim ključem ili klijentovim) nema prozor; čuva se s prvim odgovorom dok se ne obriše klijent ili račun koji je nastao, pa promijenjen dokument predan ponovno nakon tjedana i dalje dobiva 409 idempotency-conflict. Takav se ključ prihvaća samo na izvozu ERP konektora (POST /invoices s connector koji ova inačica čita, export koji je neprazan JSON objekt, a s operaterovim ključem client); na svakom drugom zahtjevu, kanonskom dokumentu, POST /invoices/xml ili otkazivanju, odgovara 400 idempotency-key-not-allowed i ništa se ne čuva, a izvoz s brojem duljim od 40 znakova dobiva 422 EI-SCHEMA koji dobiva pod svakim drugim ključem, također pohranjen pod nikakvim ključem. Kada operater oslobodi dead letter (otkaže ga), raniji odgovori o tom računu nestaju s njim, predaje i, od 0.35.0, ranijeg odbijenog otkazivanja, pa ponovni pokušaj tog otkazivanja ponovno radi i odgovara 200 s otkazanim računom. Od 0.32.0 odgovor 5xx i 422 connector-settings-missing ne čuvaju se, pa se isti zahtjev s istim ključem može poslati ponovno. S operaterovim ključem ne smije početi s client: (400), oblikom pod kojim se čuvaju ključevi klijenata.

Duljina8 <= length <= 100

Tijelo zahtjeva

body*stringapplication/xml

Tijelo odgovora

Pohranjeno i stavljeno u red za provjeru kanala, osim ako već nije prošlo neuspješno; ili već pohranjeno (duplicate_of).

application/json
  1. response

Od 0.35.0. Račun koji je klijent zaprimio putem kanala, onako kako ga je primio POST /received. Kao Invoice, ne nosi sadržaj računa: nema prodavatelja, kupca ni iznosa.

id*string
Uzorak^rcv_[0-9a-f]{24}$
invoice_ref*string

Vlastiti broj računa iz datoteke (BT-1; FA(3) Fa/P_2), inače rail_id, inače id.

invoice_number?string
route*Route

Kanal slanja za zemlju. Iste vrijednosti kao country_route u statusnim događajima.

Vrijednost iz"PEPPOL""PL-KSEF""RO-EFACTURA""FR-PA""DE-XRECHNUNG"
client*string
environment*string
Vrijednost iz"sandbox""production"
state*string
Vrijednost iz"received""validated""validation_failed"
direction*"in"
Vrijednost iz"in"
rail_id?string

Vlastiti id dokumenta u kanalu, kako je naveden na POST /received.

document_sha256*string
Uzorak^[a-f0-9]{64}$
duplicate_of?string

Samo na POST /received, kada je dokument već bio pohranjen za klijenta i kanal.

links?
errors?array<>
documents?array<>
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
curl -X POST "https://example.com/received?route=PEPPOL" \  -H "Authorization: Bearer <your-api-key>" \  -H "Idempotency-Key: order-2026-0001" \  -H "Content-Type: application/xml" \  -d 'string'
{  "id": "string",  "invoice_ref": "string",  "invoice_number": "string",  "route": "PEPPOL",  "client": "string",  "environment": "sandbox",  "state": "received",  "direction": "in",  "rail_id": "string",  "document_sha256": "string",  "duplicate_of": "string",  "links": {    "self": "string",    "events": "string"  },  "errors": [    {      "code": "string"    }  ],  "documents": [    {      "kind": "received-xml",      "sha256": "string",      "href": "string"    }  ],  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}