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.