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
| Laukas | Tipas | Aprašymas |
|---|---|---|
id | integer | Užsakymo ID (nekinta) |
number | string | Užsakymo numeris, pvz. EP-10001 |
created_at | string | Sukūrimo laikas, UTC, ISO 8601, sekundžių tikslumu |
customer.name | string | Vardas, pavardė arba įmonės pavadinimas |
customer.email | string | El. paštas |
customer.company_code | string | Įmonės kodas. Tik kai perka įmonė: privataus asmens užsakyme šio lauko nėra |
lines[].sku, lines[].name | string | Prekės kodas ir pavadinimas |
lines[].qty | integer | Kiekis |
lines[].unit_price | number | Vieneto kaina su PVM |
total | number | Užsakymo suma su PVM (eilučių qty × unit_price suma) |
currency | string | Valiuta, EUR |
GET /api/orders
Užsakymai, sukurti nuo since imtinai (created_at >= since), nuo seniausio.
| Parametras | Aprašymas |
|---|---|
since | Nebū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. |
limit | Nebū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ūsena | Kada |
|---|---|
| 400 | invalid_json, invalid_since, invalid_limit |
| 401 | unauthorized: nėra rakto arba jis neteisingas |
| 404 | not_found |
| 405 | method_not_allowed |
| 411, 413 | Nėra Content-Length; per didelis kūnas (daugiau nei 256 KB) |
| 422 | validation_failed: details išvardija netinkamus laukus |
| 500 | internal_error |