Delivio

API

Delivio integratsiooni API

Loo tellimusi oma süsteemist, loe nende olekut, tühista neid.

Autentimine

Loo võti paneelis kliendi lehel. Võti kuulub ühele kliendile; millise kliendi jaoks tellimus on, tuleb võtmest, mitte päringu kehast.

Authorization: Bearer dlv_live_xxxxxxxxxxxx_…

Loo tellimus

Aadressist ja summast piisab. Koordinaatide saatmine muudab kulleri sobitamise ja saabumisaja täpsemaks.

curl -X POST https://delivio.talivio.com/api/v1/integration/orders \
  -H "Authorization: Bearer $DELIVIO_KEY" \
  -H "Idempotency-Key: siparis-1042" \
  -H "Content-Type: application/json" \
  -d '{
    "address": "Moda Cad. 12/3",
    "customer_name": "Ada",
    "customer_phone": "+90 555 000 00 00",
    "total": 24000,
    "is_prepaid": true
  }'

Summad on TÄISARVUD sentides (24000 = 240,00). Ujukomaarve ei aktsepteerita.

Saada Idempotency-Key: katkenud ühenduse järel sama päringu kordamine ei loo teist tellimust.

{
  "data": { "id": 1042, "code": "S-1042", "status": 15, "…": "…" },
  "tracking_url": "https://delivio.talivio.com/t/…"
}

Loe olekut ja tühista

curl https://delivio.talivio.com/api/v1/integration/orders/1042 -H "Authorization: Bearer $DELIVIO_KEY"

curl -X POST https://delivio.talivio.com/api/v1/integration/orders/1042/cancel \
  -H "Authorization: Bearer $DELIVIO_KEY" \
  -d 'reason=Müşteri vazgeçti'

Kui kuller on tellimuse võtnud, sulgub API kaudu tühistamine (409): POS-i päring ei saa teel olevat kullerit tagasi pöörata — tühista paneelist.

Vead

HTTP code Tähendus
401 invalid_key Võti on vigane või tühistatud.
402 api_not_in_plan API-juurdepääs ei kuulu paketti.
404 Tellimus ei kuulu selle võtme kliendile.
409 already_assigned Kuller võttis selle; tühista paneelist.
422 Välja valideerimine ebaõnnestus või tellimuse olek ei luba.
429 Päringupiirang: 120 päringut minutis.

Veebihaagid

Määra oma lõpp-punkt paneelis kliendi lehel. Saadame POST-i, kui tellimus võetakse vastu, võetakse peale, tarnitakse ja tühistatakse.

POST /sizin-ucunuz
X-Delivio-Event: order.delivered
X-Delivio-Signature: t=1755680000,v1=9f2c…

{
  "event": "order.delivered",
  "sent_at": "2026-08-20T12:00:00+00:00",
  "order": { "id": 1042, "code": "S-1042", "status": 20, "…": "…" }
}

Iga päring kannab päist `X-Delivio-Signature: t=<unix>,v1=<hmac>`. Kontrollimiseks arvuta `hmac_sha256(sinu_saladus, "<t>." + toorkeha)` ja võrdle `v1`-ga; lükka tagasi, kui `t` on vanem kui 5 minutit.

// PHP
[$t, $v1] = sscanf($_SERVER['HTTP_X_DELIVIO_SIGNATURE'], 't=%d,v1=%s');
$expected = hash_hmac('sha256', $t.'.'.file_get_contents('php://input'), $secret);

if (! hash_equals($expected, $v1) || abs(time() - $t) > 300) {
    http_response_code(400);
    exit;
}

Kui lõpp-punkt ei vasta 2xx-ga, proovime uuesti 10 s, 1 min, 5 min ja 30 min pärast. 20 järjestikuse vea järel lõpp-punkt suletakse.

Järjekord EI OLE garanteeritud: korduskatsete tõttu võib "tarnitud" saabuda enne "peale võetud". Usalda keha `status` välja.