POST /invoices ar Idempotency-Key, PVN procentos, kā arī saraksts, storno un atzīmēšana kā apmaksāts.
← Atpakaļ uz API dokumentāciju
Pirmais rēķins 6 soļos
- Nosūtiet POST /v1/invoices ar buyer objektu un vismaz vienu ierakstu lines.
- Pievienojiet Idempotency-Key galveni — tā ir obligāta, viena atslēga vienai loģiskai darbībai.
- Sūtiet vat_rate procentos (21) un unit_price kā NETO vienības cenu.
- 201 atbildē ir id, number, series, summas net/vat/gross un jūsu nosūtītie metadati.
- Iegūstiet dokumentu ar GET /v1/invoices/{id}/pdf vai UBL XML ar GET /v1/invoices/{id}/xml.
Visi galapunkti
| Metode | Galapunkts | Scope | Idempotency-Key | Pieprasījumi / minūtē |
|---|---|---|---|---|
| POST | /invoices Izrakstīt rēķinu vai proforma rēķinu | invoices:write | obligāts | 30 |
| GET | /invoices Uzskaitīt rēķinus (lapošana ar kursoru) | invoices:read | — | 120 |
| POST | /invoices/preview-totals Aprēķināt summas, neko neveidojot | invoices:read | — | 120 |
| GET | /invoices/{invoice_id} Iegūt vienu rēķinu | invoices:read | — | 120 |
| GET | /invoices/{invoice_id}/pdf Lejupielādēt rēķina PDF | invoices:read | — | 120 |
| POST | /invoices/{invoice_id}/storno Izrakstīt kredītrēķinu, kas anulē šo rēķinu | invoices:write | obligāts | 30 |
| POST | /invoices/{invoice_id}/payments Atzīmēt rēķinu kā apmaksātu | invoices:write | — | 30 |
| DELETE | /invoices/{invoice_id}/payments Atzīmēt rēķinu kā neapmaksātu | invoices:write | — | 30 |
Kas ir 4invoices API
bash
curl -sS -X POST https://api.4invoices.net/v1/invoices \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: order-10457-invoice' \
-d '{
"buyer": {
"name": "Exemplu Comert SRL",
"tax_id": "RO12345678",
"address": "Str. Fabricii 12",
"city": "Cluj-Napoca",
"county": "Cluj",
"country": "RO",
"email": "[email protected]"
},
"lines": [
{ "description": "Abonament SaaS, iulie", "quantity": 1, "unit_price": 400, "vat_rate": 21, "unit": "buc" },
{ "description": "Implementare", "quantity": 6, "unit_price": 250, "vat_rate": 21, "unit": "ora" }
],
"currency": "RON",
"document_kind": "factura",
"due_date": "2026-08-15",
"metadata": { "order_id": "10457" }
}'bash
# Lapošana ar kursoru: sekojiet next_cursor, līdz has_more ir false.
curl -sS "https://api.4invoices.net/v1/invoices?limit=50&status=issued&issued_from=2026-07-01" \
-H "Authorization: Bearer $ACCESS_TOKEN"
# → {"object":"list","data":[...],"has_more":true,"next_cursor":"inv_01J..."}
curl -sS "https://api.4invoices.net/v1/invoices?limit=50&cursor=inv_01J..." \
-H "Authorization: Bearer $ACCESS_TOKEN"bash
curl -sS -X POST https://api.4invoices.net/v1/invoices/inv_01J7ABC/storno \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Idempotency-Key: storno-inv_01J7ABC-1'
# Kredītrēķins saņem SAVU fiskālo numuru; sākotnējais numurs nekad netiek izmantots atkārtoti.bash
# Atzīmēt kā apmaksātu
curl -sS -X POST https://api.4invoices.net/v1/invoices/inv_01J7ABC/payments \
-H "Authorization: Bearer $ACCESS_TOKEN"
# Atsaukt
curl -sS -X DELETE https://api.4invoices.net/v1/invoices/inv_01J7ABC/payments \
-H "Authorization: Bearer $ACCESS_TOKEN"https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json
Kļūdas
| Statuss | Tips | Kods |
|---|---|---|
| 422 | invalid_request_error | issuer_profile_incomplete |
| 422 | invalid_request_error | cannot_storno_draft |
| 422 | invalid_request_error | nothing_to_storno |
Biežākās kļūdas
- Saraksts balstās uz kursoru: sekojiet next_cursor, līdz has_more ir false. Filtri: status, document_kind, buyer_tax_id, issued_from, issued_to un q.
- Storno ir POST /v1/invoices/{id}/storno un saņem savu fiskālo numuru — sākotnējais numurs nekad netiek izmantots atkārtoti.
- Proforma rēķins (document_kind proforma) neizlieto fiskālo numuru un nevar tikt iesniegts valsts e-rēķinu sistēmā.
- metadata tiek atgriezti lasījumos: ievietojiet tur savu pasūtījuma ID, un atsevišķa atbilstības tabula nebūs vajadzīga.
- POST /v1/invoices/preview-totals veic to pašu aprēķinu bez blakusefektiem — ērti summu rādīšanai jūsu grozā.
Izstrādātāju jautājumi un atbildes
Cik rindu var būt vienā rēķinā?
No 1 līdz 400. description ir ierobežots līdz 1024 rakstzīmēm, un quantity jābūt stingri pozitīvam.
Kas notiek, ja pēc noildzes nosūtu to pašu pieprasījumu vēlreiz?
Ar to pašu Idempotency-Key saņemsiet sākotnējo rēķinu un galveni Idempotency-Replayed: true. Otrs dokuments netiek izveidots.
Kā atzīmēt rēķinu kā apmaksātu?
POST /v1/invoices/{id}/payments atzīmē to kā apmaksātu, un DELETE pa to pašu ceļu to atceļ. Abiem nepieciešams scope invoices:write.