← Užsakymai

UAB Testas e-parduotuvė: API

Demonstracinė sistema per48h integracijos bandymams: duomenys netikri.

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

Autentifikacija

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

Authorization: Bearer <API raktas>

Raktą išduoda parduotuvės administratorius. Be rakto arba su neteisingu raktu: 401.

Užsakymo laukai

LaukasTipasAprašymas
idintegerUžsakymo ID (nekinta)
numberstringUžsakymo numeris, pvz. EP-10001
created_atstringSukūrimo laikas, UTC, ISO 8601, sekundžių tikslumu
customer.namestringVardas, pavardė arba įmonės pavadinimas
customer.emailstringEl. paštas
customer.company_codestringĮmonės kodas. Tik kai perka įmonė: privataus asmens užsakyme šio lauko nėra
lines[].sku, lines[].namestringPrekės kodas ir pavadinimas
lines[].qtyintegerKiekis
lines[].unit_pricenumberVieneto kaina su PVM
totalnumberUžsakymo suma su PVM (eilučių qty × unit_price suma)
currencystringValiuta, EUR

GET /api/orders

Užsakymai, sukurti nuo since imtinai (created_at >= since), nuo seniausio.

ParametrasAprašymas
sinceNebūtinas. ISO 8601 data ir laikas, pvz. 2026-10-05T08:00:00Z arba 2026-10-05T11:00:00%2B03:00. Be laiko juostos laikoma UTC.
limitNebūtinas. 1-500, numatyta 100.

Jei has_more yra true, kartokite užklausą su since = paskutinio gauto užsakymo created_at. Riboje tas pats užsakymas gali grįžti dar kartą: atpažinkite jį pagal id.

curl -H "Authorization: Bearer $KEY" \
  "https://p48demo-shop.per48h.lt/api/orders?since=2026-10-05T08:00:00Z"
{
  "orders": [
    {
      "id": 1,
      "number": "EP-10001",
      "created_at": "2026-10-05T08:15:02Z",
      "customer": { "name": "UAB Medis", "email": "buhalterija@medis.lt", "company_code": "304123456" },
      "lines": [ { "sku": "KAV-250", "name": "Kavos pupelės „Rytas“, 250 g", "qty": 4, "unit_price": 6.9 } ],
      "total": 27.6,
      "currency": "EUR"
    }
  ],
  "has_more": false
}

GET /api/orders/{id}

Vienas užsakymas. Nėra tokio: 404.

POST /api/orders

Sukuria užsakymą (bandymams: tarsi jį būtų pateikęs pirkėjas). Atsakymas 201 su visu užsakymu.

curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  https://p48demo-shop.per48h.lt/api/orders -d '{
  "customer": { "name": "Ona Onaitė", "email": "ona@example.com" },
  "lines": [ { "sku": "PUO-01", "name": "Keraminis puodelis", "qty": 2, "unit_price": 8.00 } ],
  "currency": "EUR"
}'

Klaidos

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

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