Ana içeriğe geç

Sipariş İptali API (cancel-order)

cancel-order endpoint'i, send-sms ile sendDateTime parametresi kullanılarak ileri bir tarihe planlanmış siparişi, operatöre teslim edilmeden önce iptal eder. Yalnızca henüz gönderim akışına girmemiş siparişler iptal edilebilir; gönderimi başlamış sipariş iptal edilmez ve 455 döner.

Önemli ön koşul: Panel'de API erişimi

Bu endpoint'i çağırmadan önce panelinizde API kullanımına izin ver seçeneğinin aktif olması gerekir.

Ayar yeri: panel.iletimerkezi.comAyarlar → Güvenlik → Erişim İzinleri

Aktif değilse istek 401 — Üyelik bilgileri hatalı ile döner. Detay: authentication.md

Endpoint

| Alan | Değer | |---|---| | Method | POST | | URL | https://api.iletimerkezi.com/v1/cancel-order/json | | Content-Type | application/json | | Auth | API Key + Hash (request.authentication) |

Request

Şema

request
├─ authentication
│  ├─ key (string, zorunlu)
│  └─ hash (string, zorunlu)
└─ order
   └─ id (string|integer, zorunlu) — send-sms yanıtından dönen orderId

Tam örnek

{
  "request": {
    "authentication": {
      "key": "API_KEY",
      "hash": "API_HASH"
    },
    "order": {
      "id": "312891245"
    }
  }
}

Response

Başarılı (200)

{
  "response": {
    "status": {
      "code": 200,
      "message": "İşlem başarılı"
    }
  }
}

İptal başarılı olduğunda gövdede yalnızca status döner; sipariş bilgisi tekrar yansıtılmaz. Aynı order.id için sonradan get-report çağırırsanız sipariş status: 115 (gönderilemedi) durumunda olabilir veya 455 — Sipariş bulunamadı döner.

Hata yanıtları

401 — Üyelik bilgileri hatalı

API Anahtar/Hash doğrulanamadı veya panel toggle kapalı. Detay: authentication.md.

455 — Sipariş bulunamadı

Üç olası neden:

  1. Verilen order.id bu hesaba ait değil veya silinmiş.
  2. Sipariş zaten gönderim akışına girmiş (operatör kuyruğunda) — bu durumda iptal edilemez.
  3. Sipariş çoktan tamamlanmış.

İptal etmeden önce siparişin durumunu get-report ile kontrol edin: order.status: 113 (devam ediyor) veya 114 (tamamlandı) ise iptal pencereniz kapanmış demektir.

Diğer hata kodları

400, 404 için tablo: error-codes.md.

Kod örnekleri

cURL

curl -X POST 'https://api.iletimerkezi.com/v1/cancel-order/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "request": {
      "authentication": {
        "key": "'"$ILETIMERKEZI_API_KEY"'",
        "hash": "'"$ILETIMERKEZI_API_HASH"'"
      },
      "order": { "id": "312891245" }
    }
  }'

Common Pitfalls

  • İptal penceresi dar. sendDateTime ile ileri tarihli planlanmış sipariş, planlanan tarihe yaklaştıkça operatör kuyruğuna alınır. Operatöre verildikten sonra geri alınamaz; iptal isteği 455 döner.
  • 455 her zaman "yok" demek değildir. "Bulunamadı" mesajı hem geçersiz ID hem de "geçerli ama artık iptal edilemez" durumunu kapsar. Belirsizlikten kaçınmak için iptal denemesinden önce get-report çağırıp order.status'u kontrol edin: 113 veya 114 ise iptal mümkün değil.
  • Yanıt minimaldir. Başarılı iptalde response.order döndürülmez; yalnızca response.status gelir. Tekrar doğrulama gerekiyorsa get-report ile sipariş durumunu yeniden çekin.
  • Idempotent değil. Aynı order.id için iki kez iptal çağrısı atılırsa ikincisi 455 ile döner. İstemci kodunda iptal başarısını local state'e yazıp tekrar denemeyi engelleyin.
  • Anlık (immediate) gönderim iptali yok. sendDateTime parametresi olmadan gönderilmiş bir sipariş zaten kuyruğa hemen düşer; pratik olarak iptal penceresi yoktur. Bu endpoint sadece ileri tarihli siparişler için anlamlıdır.

Related

Son güncelleme: 2026-04-30 · English version