Delivio

API

Delivio Entegrasyon API

Kendi sipariş sisteminizden Delivio'ya sipariş açın, durumunu okuyun, iptal edin.

Kimlik

Anahtarı panelden işletme sayfasında üretirsiniz. Anahtar bir işletmeye bağlıdır; hangi işletme adına sipariş açılacağı gövdede değil anahtarda yazar.

Authorization: Bearer dlv_live_xxxxxxxxxxxx_…

Sipariş oluştur

Adres ve tutar yeter. Koordinat gönderirseniz kurye eşleştirme ve varış tahmini daha isabetli olur.

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
  }'

Tutarlar kuruş/sent cinsinden TAM SAYI (24000 = 240,00). Kayan nokta kabul edilmez.

Idempotency-Key gönderin: bağlantı koptuğunda aynı isteği tekrarlamak ikinci bir sipariş açmaz.

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

Durum sorgula ve iptal et

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'

Kurye siparişi üstlendikten sonra API iptali kapanır (409): yolda olan kuryeyi bir POS isteği geri çeviremez, iptal panelden yapılır.

Hatalar

HTTP code Anlamı
401 invalid_key Anahtar geçersiz ya da iptal edilmiş.
402 api_not_in_plan API erişimi planda yok.
404 Sipariş bu anahtarın işletmesine ait değil.
409 already_assigned Kurye üstlendi; iptal panelden.
422 Alan doğrulaması ya da sipariş durumu uygun değil.
429 Hız sınırı: dakikada 120 istek.

Webhook

Uç adresinizi panelde işletme sayfasında tanımlarsınız. Sipariş kabul edildiğinde, alındığında, teslim edildiğinde ve iptal olduğunda POST gönderilir.

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, "…": "…" }
}

Her istekte `X-Delivio-Signature: t=<unix>,v1=<hmac>` başlığı gelir. Doğrulama: `hmac_sha256(sırrınız, "<t>." + ham_gövde)` sonucunu `v1` ile karşılaştırın ve `t` 5 dakikadan eskiyse reddedin (tekrar saldırısı).

// 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;
}

Uç 2xx dönmezse 10 sn, 1 dk, 5 dk ve 30 dk sonra yeniden denenir. Art arda 20 hatadan sonra uç kapanır ve panelde neden kapandığı yazar.

Sıra GARANTİ EDİLMEZ: yeniden denemeler yüzünden "teslim edildi", "alındı"dan önce ulaşabilir. Gövdedeki `status` alanını esas alın.