Ana içeriğe geç

Sipariş Raporu API (get-report)

get-report endpoint'i, send-sms ile oluşturulan bir siparişin teslimat raporunu döner. Sipariş genel durumu, sayaçlar (toplam / teslim edilen / edilemeyen / bekleyen), zaman damgaları, sipariş bedeli ve her bir mesajın alıcı bazında durumu tek yanıtta gelir. Büyük siparişler page + rowCount ile sayfalanır.

Ö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/get-report/json | | Content-Type | application/json | | Auth | API Key + Hash (request.authentication) |

Request

Şema

request
├─ authentication
│  ├─ key (string, zorunlu)
│  └─ hash (string, zorunlu)
└─ order
   ├─ id (string, zorunlu)         — send-sms yanıtından dönen orderId
   ├─ page (string, opsiyonel)     — varsayılan "1"
   └─ rowCount (string, opsiyonel) — bir sayfadaki mesaj adedi, varsayılan "1000", maks "1000"

1000'in üzerinde mesaj içeren siparişlerde tüm raporu çekmek için page değerini arttırarak ardışık çağrı yapın.

Tam örnek

{
  "request": {
    "authentication": {
      "key": "API_KEY",
      "hash": "API_HASH"
    },
    "order": {
      "id": "312891245",
      "page": "1",
      "rowCount": "1000"
    }
  }
}

Response

Başarılı (200)

{
  "response": {
    "status": {
      "code": 200,
      "message": "İşlem başarılı"
    },
    "order": {
      "id": "312891245",
      "status": 114,
      "total": 1,
      "delivered": 1,
      "undelivered": 0,
      "waiting": 0,
      "submitAt": "2026-04-29 04:32:24",
      "sendAt": "2026-04-29 04:32:24",
      "sender": "eMarka Test",
      "price": 1,
      "message": [
        {
          "number": "+905333128320",
          "status": 111
        }
      ]
    }
  }
}

Alanlar:

  • response.order.id (string): Sipariş ID'si.
  • response.order.status (integer): Sipariş genel durumu (aşağıdaki tabloya bakın).
  • response.order.total (integer): Siparişteki toplam mesaj sayısı.
  • response.order.delivered (integer): Operatör tarafından alıcıya teslim edilen mesaj sayısı.
  • response.order.undelivered (integer): Teslim edilemeyen mesaj sayısı (kara liste, kapalı hat, yanlış numara vb.).
  • response.order.waiting (integer): Hâlâ kuyrukta bekleyen mesaj sayısı.
  • response.order.submitAt (string): API'ye istek geldiği zaman damgası, format YYYY-MM-DD HH:MM:SS.
  • response.order.sendAt (string): Operatöre verildiği zaman damgası. İleri tarihli sipariş değilse submitAt ile aynıdır.
  • response.order.sender (string): Sipariş için kullanılan sender ID.
  • response.order.price (integer): Siparişin tükettiği toplam kontör adedi. Mesaj başına 1 ya da daha fazla olabilir (uzun mesaj, UCS-2 vb.).
  • response.order.message[] (array): Her bir alıcıya ait teslim durumu.
    • number (string): Alıcı numara, dönüşte +90 prefix'i ile gelir.
    • status (integer): Mesaj durumu (aşağıdaki tabloya bakın).

total, delivered, undelivered, waiting, submitAt, sendAt, sender, price alanları canlı API'de mevcuttur ve canlı testle doğrulanmıştır. Eski apidocs-website şartnamesinde bu alanlar listelenmemiş olabilir; canlı API ground truth alınır (drift: apidocs-website#3).

Sipariş durum kodları (order.status)

| Kod | Anlam | |---|---| | 113 | Sipariş gönderimi devam ediyor | | 114 | Sipariş gönderimi tamamlandı | | 115 | Sipariş gönderilemedi |

Mesaj durum kodları (message[].status)

| Kod | Anlam | |---|---| | 110 | Mesaj gönderiliyor | | 111 | Mesaj gönderildi | | 112 | Mesaj gönderilemedi |

Hata yanıtları

401 — Üyelik bilgileri hatalı

Detay: authentication.md.

455 — Sipariş bulunamadı

Verilen order.id bu hesaba ait değil veya silinmiş. ID'yi send-sms yanıtından kontrol edin.

Diğer hata kodları

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

Kod örnekleri

cURL

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

Common Pitfalls

  • Numara format dönüşte değişir. Gönderirken 905XXXXXXXXX verseniz bile rapor yanıtında numara +905XXXXXXXXX olarak gelir. Numara karşılaştırma yapan kodlarda iki formatı da normalize edin.
  • Hemen sorgulamayın, kuyrukta bekleyebilir. send-sms'in hemen ardından çağırırsanız sipariş status: 113 (devam) ve waiting > 0 olabilir. Operatör onayları saniyeler içinde gelir; webhook tabanlı raporlama daha verimli.
  • Sayfalama 1000'le sınırlı. rowCount üst sınır 1000. 1000'den fazla mesaj içeren siparişler için page arttırılarak ardışık çağrı yapılır.
  • Yanıt eski şartnameden zengin. Canlı API total, delivered, undelivered, waiting, sender, price, submitAt, sendAt alanlarını da döner. Bunları dashboard ve analitik için kullanabilirsiniz; eski şartname temelli SDK'lar bu alanları parse etmiyor olabilir.
  • order.status: 114 "her şey teslim edildi" demek değil. Sadece "siparişin gönderim akışı tamamlandı" demek. Detaylı kontrol için delivered ve undelivered sayaçlarına bakın.

Related

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