Izdajanje računov prek API

POST /invoices z Idempotency-Key, DDV v odstotkih, poleg tega seznam, storno in oznaka plačano.

POST /invoices z Idempotency-Key, DDV v odstotkih, poleg tega seznam, storno in oznaka plačano.

← Nazaj na dokumentacijo API

Prvi račun v 6 korakih

  1. Pošljite POST /v1/invoices z objektom buyer in vsaj eno postavko v lines.
  2. Dodajte glavo Idempotency-Key — je obvezna, en ključ na logično operacijo.
  3. vat_rate pošljite kot odstotek (21), unit_price pa kot NETO ceno na enoto.
  4. Odgovor 201 vsebuje id, number, series, zneske net/vat/gross in metadata, ki ste jih poslali.
  5. Dokument prenesite z GET /v1/invoices/{id}/pdf, XML UBL pa z GET /v1/invoices/{id}/xml.

Vse končne točke

MetodaKončna točkaScopeIdempotency-KeyZahtev / minuto
POST/invoices
Izdaj račun ali predračun
invoices:writeobvezno30
GET/invoices
Seznam računov (paginacija s kazalcem)
invoices:read—120
POST/invoices/preview-totals
Izračunaj vsote, ne da bi kaj ustvaril
invoices:read—120
GET/invoices/{invoice_id}
Pridobi en račun
invoices:read—120
GET/invoices/{invoice_id}/pdf
Prenesi PDF računa
invoices:read—120
POST/invoices/{invoice_id}/storno
Izdaj dobropis, ki razveljavi ta račun
invoices:writeobvezno30
POST/invoices/{invoice_id}/payments
Označi račun kot plačan
invoices:write—30
DELETE/invoices/{invoice_id}/payments
Označi račun kot neplačan
invoices:write—30

Kaj je API 4invoices

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
# Paginacija s kazalcem: sledite next_cursor, dokler has_more ni 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'

# Dobropis dobi LASTNO fiskalno številko; številka izvirnika se nikoli ne uporabi znova.
bash
# Označi kot plačano
curl -sS -X POST https://api.4invoices.net/v1/invoices/inv_01J7ABC/payments \
  -H "Authorization: Bearer $ACCESS_TOKEN"

# Razveljavi
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

Napake

StanjeTipKoda
422invalid_request_errorissuer_profile_incomplete
422invalid_request_errorcannot_storno_draft
422invalid_request_errornothing_to_storno

Pogoste napake

  • Seznam uporablja ostranjevanje s kazalcem: sledite next_cursor, dokler has_more ni false. Filtri vključujejo status, document_kind, buyer_tax_id, issued_from, issued_to in q.
  • Storno je POST /v1/invoices/{id}/storno in dobi lastno davčno številko — prvotna številka se nikoli ne uporabi znova.
  • Predračun (document_kind proforma) ne porabi davčne številke in ga ni mogoče oddati v nacionalni sistem e-računov.
  • metadata se vrne pri branju: vanj vpišite ID svojega naročila in ne potrebujete več ločene tabele preslikav.
  • POST /v1/invoices/preview-totals izvede enak izračun brez stranskih učinkov — priročno za prikaz zneskov v vaši lastni košarici.

Vprašanja in odgovori za razvijalce

Koliko postavk ima lahko en račun?

Od 1 do 400. description je omejen na 1024 znakov, quantity pa mora biti strogo pozitiven.

Kaj se zgodi, če isto zahtevo po preteku časovne omejitve pošljem znova?

Z istim Idempotency-Key dobite prvotni račun in glavo Idempotency-Replayed: true. Drug dokument se ne izda.

Kako račun označim kot plačan?

POST /v1/invoices/{id}/payments ga označi kot plačanega, DELETE na isti poti pa to razveljavi. Oba potrebujeta obseg invoices:write.