← Sąskaitos

UAB Testas apskaita: API

Demonstracinė sistema per48h integracijos bandymams: duomenys netikri.

Bazinis adresas: https://p48demo-apskaita.per48h.lt. Mašinai skaitoma specifikacija: /openapi.json (OpenAPI 3.1).

Autentifikacija

Kiekviena /api/* užklausa siunčia API raktą antraštėje:

X-Api-Key: <API raktas>

Raktą išduoda apskaitos administratorius. Be rakto arba su neteisingu raktu: 401.

POST /api/invoices

Išrašo pardavimo sąskaitą faktūrą ir suteikia jai serijos numerį (TST-000001, ...). Suma apskaičiuojama: eilučių quantity × price suma.

LaukasTipasAprašymas
external_idstring, privalomasUnikalus jūsų sistemos įrašo ID (iki 100 simbolių), pvz. užsakymo numeris
buyer.namestring, privalomasPirkėjo pavadinimas arba vardas, pavardė
buyer.emailstring, privalomasEl. paštas
buyer.codestring arba nullĮmonės kodas; privačiam asmeniui null arba nenurodoma
lines[].descriptionstring, privalomasEilutės aprašymas
lines[].quantitynumber, privalomasKiekis > 0, iki 3 skaitmenų po kablelio
lines[].pricenumber, privalomasVieneto kaina su PVM, iki 2 skaitmenų po kablelio
currencystring, privalomasValiuta, pvz. EUR
curl -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  https://p48demo-apskaita.per48h.lt/api/invoices -d '{
  "external_id": "EP-10001",
  "buyer": { "name": "UAB Medis", "email": "buhalterija@medis.lt", "code": "304123456" },
  "lines": [ { "description": "Kavos pupelės „Rytas“, 250 g", "quantity": 4, "price": 6.90 } ],
  "currency": "EUR"
}'

Atsakymas 201:

{
  "id": 7,
  "series_number": "TST-000007",
  "external_id": "EP-10001",
  "created_at": "2026-10-05T08:20:11Z",
  "buyer": { "name": "UAB Medis", "email": "buhalterija@medis.lt", "code": "304123456" },
  "lines": [ { "description": "Kavos pupelės „Rytas“, 250 g", "quantity": 4, "price": 6.9 } ],
  "total": 27.6,
  "currency": "EUR"
}

Pakartotinis siuntimas. Jei sąskaita su tokiu external_id jau yra, nauja nesukuriama: atsakymas 409 su esama sąskaita.

{
  "error": "duplicate_external_id",
  "message": "An invoice with this external_id already exists.",
  "invoice": { "id": 7, "series_number": "TST-000007", ... }
}

GET /api/invoices?external_id=...

Sąskaitos paieška pagal jūsų ID: {"invoices": [ ... ]} su viena sąskaita arba tuščias sąrašas. Be external_id: naujausios sąskaitos (limit 1-500, numatyta 100).

curl -H "X-Api-Key: $KEY" "https://p48demo-apskaita.per48h.lt/api/invoices?external_id=EP-10001"

GET /api/invoices/{id}

Viena sąskaita. Nėra tokios: 404.

Klaidos

Klaidos grąžinamos JSON: {"error": "kodas", "message": "aprašymas", "details": [...]}.

BūsenaKada
400invalid_json, invalid_limit
401unauthorized: nėra rakto arba jis neteisingas
404not_found
405method_not_allowed
409duplicate_external_id: lauke invoice esama sąskaita
411, 413Nėra Content-Length; per didelis kūnas (daugiau nei 256 KB)
422validation_failed: details išvardija netinkamus laukus
500internal_error