Gönderileri izleme: durumlar, liste ve takip hareketleri
Gönderi durumları, updated_since ve cursor ile değişen gönderileri çekme, tekil gönderi ve takip hareketleri. V1'de webhook yok, polling kullanılır.
Güncelleme:
Bir gönderinin iki durum alanı vardır:
state: SiparişTakip'teki işlem durumu (kargo firmasına iletildi mi, hata var mı).tracking_status: kargo firmasındaki taşıma durumu. Göndericreatedolduktan sonra dolar.
V1'de webhook yoktur. Değişiklikleri listeleme ucuyla düzenli aralıklarla çekersiniz (aşağıda).
İşlem durumları (state)
state | Anlamı |
|---|---|
pending | Kabul edildi, kargo firmasına iletilmeyi bekliyor. |
awaiting_quota | Paketinizin gönderi hakkı dolu. Hak açılınca (yenileme ya da ek kredi) kendiliğinden pending'e döner. |
address_review | Adres incelemesinde: ilçe seçimi bekleniyor (neden ve adaylar address_review alanında). |
submitting | Kargo firmasına iletiliyor. |
retry_scheduled | Geçici bir hata oldu, yeniden denenecek (last_error). |
created | Kargo firmasında oluştu. Bundan sonra takip başlar. |
failed | Kargo firmasında oluşmadı ya da firma reddetti (last_error). Düzeltip yeniden gönderebilirsiniz. |
needs_reconciliation | Kargo firmasından kesin yanıt alınamadı; sonuç doğrulanıyor. Bir şey yapmanız gerekmez. |
canceled | İptal edildi. |
API yalnız eklemeyle değişir: yeni bir değer eklenebilir, var olan değerin anlamı değişmez. Tanımadığınız bir değer gelirse hata vermeyin.
needs_reconciliation'da SiparişTakip sonucu kargo firmasıyla kendisi netleştirir; gönderi created ya da failed olur. Bu durumda yeniden deneme ya da yeni gönderi açmayın. 24 saati aşarsa destekle görüşün.
Hesap kapatılırsa kargo firmasına henüz gönderilmemiş gönderiler failed olur, last_error.code tenant_closed.
Taşıma durumları (tracking_status)
Gönderi created olduktan sonra dolar. Bütün kargo firmalarında aynı değer kümesi kullanılır:
tracking_status | Anlamı |
|---|---|
info_received | Gönderi bilgisi kargo firmasına ulaştı. |
picked_up | Kargo firması paketi teslim aldı. |
in_transit | Yolda. |
at_destination_branch | Varış şubesinde. |
out_for_delivery | Dağıtımda. |
delivery_failed | Teslim denendi, edilemedi. |
delivered | Teslim edildi. |
returning | Göndericiye geri dönüyor. |
returned | Göndericiye geri döndü. |
canceled_by_carrier | Kargo firması gönderiyi iptal etti. |
lost_or_damaged | Kayıp ya da hasarlı. |
exception | Kargo firması bir sorun bildirdi (raw_text'e bakın). |
unknown | Kargo firmasının durumu ortak bir değere eşlenemedi. |
Teslim alınma zamanı (picked_up_at)
picked_up_at, kargo firmasının paketi fiziksel olarak teslim aldığı andır (firmanın bildirdiği hareket zamanı). İlk teslim alma hareketinde bir kez dolar, sonradan değişmez.
Mağazanızda "Kargoya verildi" bilgisini göstermek istiyorsanız ölçüt picked_up_at'in dolmasıdır, tracking_status değil. Gönderi ilk sorguda doğrudan in_transit görünebilir; picked_up değerini hiç görmeyebilirsiniz.
- Takip numarasının ya da barkodun atanması paketin teslim alındığı anlamına gelmez.
- Teslim alma bilgisi takip aralığına bağlı olarak gecikmeli gelir. Gece kargo firmasına sorgu yapılmaz; gece teslim alınan paket sabah yansır.
- Takip yapılamayan gönderide (
tracking.stop_reason: untrackable)picked_up_athiç dolmayabilir (Takibi durdurma).
Değişen gönderileri çekme
GET /api/v3/shipments (scope shipments:read)
| Parametre | Anlamı |
|---|---|
updated_since | Bu zamandan sonra değişen gönderiler (ISO 8601). |
cursor | Önceki yanıttaki meta.next_cursor. Opaktır; içeriğini yorumlamayın. |
limit | Sayfa boyutu, en çok 100, varsayılan 50. |
reference | Sipariş numarası. |
carrier | Kargo firması kodu. |
state | İşlem durumu. |
sandbox | true yalnız test gönderileri, false yalnız gerçek gönderiler; verilmezse hepsi (Test ortamı). |
Sonuçlar updated_at, ardından id sırasıyla eskiden yeniye döner. Bu sıra eşzamanlamayı güvenli kılar: araya giren bir değişiklik kaybolmaz.
{
"data": [
{
"id": "01JB…",
"reference": "SIP-1001",
"carrier": "yurtici",
"state": "created",
"tracking_status": "info_received",
"tracking_number": "…",
"channel": "api",
"capabilities": { "cancel": true, "retry": false, "correct": false, "choose_district": false },
"recipient_city": "Ankara",
"recipient_district": "Çankaya",
"updated_at": "2026-11-03T09:20:11Z"
}
],
"meta": { "next_cursor": "eyJ1IjoiMjAy…", "has_more": false }
}Önerilen döngü:
- İlk çağrıda
updated_sinceile başlayın (ör. entegrasyonu açtığınız an). - Yanıttaki gönderileri işleyin,
meta.next_cursor'ı saklayın.next_cursorson sayfada da doludur: kaldığınız yerin imlecidir. meta.has_moretrueise hemen sonraki sayfayıcursorile isteyin.falseise bekleyin; sonraki çağrıda aynıcursor'la yeni değişiklikleri alırsınız.- Bekleme aralığı olarak 5 dakika önerilir; en sık dakikada bir çağırın.
Liste yanıtında alıcının kişisel bilgileri yoktur; yalnız il ve ilçe (recipient_city, recipient_district) döner. Alıcı bilgisi gerekirse tekil getirmeyi kullanın.
Tekil gönderi
GET /api/v3/shipments/{id} (scope shipments:read) gönderinin tamamını, alıcı bilgileriyle birlikte döner. Başka bir API istemcisinin gönderisi 404 not_found döner.
Gönderide (listede de) iki yardımcı alan vardır:
channel: gönderinin geldiği kanal:api,panel,legacy_v2,woocommerce,opencart.capabilities: şu an hangi işlemi gösterebileceğiniz:cancel,retry,correct,choose_district,stop_tracking(İptal ve düzeltme). Bunu sunucu hesaplar; düğmelerinizistate'ten kendiniz türetmeyin, bu alana bakın.
Takip hareketleri
GET /api/v3/shipments/{id}/events (scope shipments:read): kargo firmasından gelen hareketler, eskiden yeniye. Sayfalama yoktur. Takibi durdurulan gönderiye (tracking.stopped_at dolu) yeni hareket eklenmez (Takibi durdurma).
{
"data": [
{
"status": "info_received",
"occurred_at": "2026-11-03T10:02:00Z",
"precision": "datetime",
"location": "Ankara",
"raw_text": "…",
"source": "carrier"
}
]
}| Alan | Anlamı |
|---|---|
status | Ortak durum (tracking_status ile aynı değer kümesi). |
occurred_at | Hareketin zamanı (UTC). |
precision | datetime: saatli. date: firma yalnız günü bildirdi, saat kısmını kullanmayın. observed: firma zaman vermedi, occurred_at hareketi gördüğümüz andır. |
location | Firmanın bildirdiği yer (varsa). |
raw_text | Kargo firmasının kendi metni, olduğu gibi. |
source | carrier: kargo firmasından. manual: elle girildi. import: eski sistemden taşınan kayıt. |
