Basit Kargo API
Tek entegrasyonla Aras, MNG, Yurtiçi, Sürat, PTT ve diğer tüm kargo firmalarına bağlanın. RESTful, JSON, hızlı.
Base URL
https://basitkargo.com/api
Kimlik Doğrulama
Her istekte Authorization header'ında Bearer token gönderilmelidir. Token'ınızı hesap ayarlarından oluşturabilirsiniz.
curl -X GET "https://basitkargo.com/api/handlers" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json"
const res = await fetch("https://basitkargo.com/api/handlers", { headers: { "Authorization": `Bearer ${TOKEN}`, "Content-Type": "application/json" } }); const data = await res.json();
import requests res = requests.get( "https://basitkargo.com/api/handlers", headers={"Authorization": f"Bearer {TOKEN}"} ) data = res.json()
İstek Limiti
API, her token için dakikada 120 istek ile sınırlıdır. Limit aşıldığında istek işlenmez ve
429 Too Many Requests durum koduyla reddedilir; yanıttaki Retry-After header'ı,
limitin sıfırlanmasına kaç saniye kaldığını belirtir.
HTTP/1.1 429 Too Many Requests Retry-After: 34 İstek limiti aşıldı. Lütfen kısa bir süre sonra tekrar deneyin.
429 yanıtı aldığınızda isteği hemen tekrarlamak yerine Retry-After süresi kadar
bekleyip yeniden deneyin. Toplu aktarımlarda (ör. çok sayıda siparişin tek seferde gönderilmesi) istekleri
dakikaya yayarak göndermenizi öneririz. Limitiniz yeterli gelmiyorsa destek ekibimizle iletişime geçebilirsiniz.Kargo Firmaları
Hesabınıza açık kargo firmalarının listesini döndürür. Hesabınıza kapalı firmalar listede yer almaz; dönen her code değeri kargo kodu üretim uçlarında kullanılabilir.
[
{
"name": "Aras Kargo",
"code": "ARAS",
"logo": "https://...logo/aras.png"
},
{
"name": "Yurtiçi Kargo",
"code": "YURTICI",
"logo": "https://...logo/yurtici.png"
}
]
SELF_ ekleyin. Örn: SELF_SURAT. Panelden kendi anlaşmanızı tanımladığınız firmalar listede SELF_ kodlarıyla da yer alır.Desi/Kg ile Fiyat Sorgulama
Desi/Kg bilgisi ile tüm firmaların fiyat listesini döndürür. Fiyat "Şehir Dışı - Tüm Türkiye" tarifesidir; gönderici ve alıcı aynı ildeyse geçerli olan şehir içi fiyat için Fiyat Teklifi ucunu kullanın.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| desiKg | number | Evet | Desi/Kg değeri (path); ondalık değer bir üst tam desiye yuvarlanır (2.5 → 3) |
| codAmount | number | Hayır | Kapıda tahsilat tutarı (query) |
| codType | string | Hayır | Kapıda ödeme tipi: CASH (Nakit) veya CREDIT_CARD (Kredi Kartı). Belirtilmezse firmanın desteklediği tip kullanılır (query) |
[
{ "desiKg": 5, "handlerCode": "MNG", "price": 25.54, "codFee": 10.00 },
{ "desiKg": 5, "handlerCode": "YURTICI", "price": 25.54, "codFee": null }
]
Paket Bilgileri ile Fiyat Sorgulama
Paket ölçüleri ile fiyat listesini döndürür. Hesabınıza açık olan ve paketleri taşıyabilecek (desi kapasitesi uygun) firmalar listelenir; fiyatı hesaplanamayan firmalar listede yer almaz. En az bir paket gönderilmesi zorunludur. Kapıda ödeme tutarı verilirse her satırda tahsilat hizmet bedeli (codFee) de hesaplanır. Fiyat "Şehir Dışı - Tüm Türkiye" tarifesidir; gönderici ve alıcı aynı ildeyse geçerli olan şehir içi fiyat için Fiyat Teklifi ucunu kullanın.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| codAmount | number | Hayır | Kapıda tahsilat tutarı (query) |
| codType | string | Hayır | CASH veya CREDIT_CARD (query). Belirtilmezse firmanın desteklediği tip kullanılır; firmanın desteklemediği tip için codFee boş döner |
[
{ "height": "10", "width": "15", "depth": "5", "weight": "1" }
]
[
{
"desiKg": 1,
"handlerCode": "SURAT",
"price": 87.93,
"minDesiKg": null,
"maxDesiKg": null,
"cashOnDelivery": false,
"creditCardOnDelivery": false,
"codFee": null
}
]
Fiyat Teklifi (Adres Bazlı)
Bir gönderi için hesabınıza açık kargo firmalarını ve ücretlerini tek çağrıda verir. Paneldeki "Kargo Kodu Oluştur" listesi ve kargo kodu üretimiyle aynı kuralı çalıştırır: gönderici ve alıcı aynı ildeyse şehir içi, değilse şehir dışı tarife uygulanır; desi sınırları, kapıda ödeme desteği ve tutar limiti, ödeme yöntemi ve bölge kapsamı dikkate alınır. Listelenen firma kod üretiminde kabul edilen firma, price.total tahsil edilecek ücrettir.
- Gönderici adresi:
sender.addressId(kayıtlı adres) → yoksasender.city/town→ yoksa API anahtarınıza tanımlı varsayılan adres → o da yoksa hesabınızın varsayılan adresi (sipariş oluşturma ile aynı sıra).addressIdilecitybirlikte gönderilemez. Hangisinin kullanıldığıbasis.firmAddressSourcealanında döner (bkz. Fiyat Teklifi Kodları). Gelen kargoda (cargoType=INCOMING) bu kural alıcı tarafı için geçerlidir. - Alıcı adresi:
recipient.cityzorunlu değildir; verilmezse şehir dışı tarife varsayılır (basis.pricingBasis=INTERCITY_ASSUMED) ve o taraf için bölge kapsamı denetlenmez; il verilip ilçe verilmezse kapsam il düzeyinde denetlenir. - Mevcut sipariş:
orderIdverilirse adres, paket, ödeme ve kapıda ödeme bilgileri siparişten okunur; diğer gönderi alanları birlikte gönderilemez. includeUnavailable=trueile bu gönderiyi taşıyamayan firmalar daavailable=falsevereasonsile listelenir. Hesabınıza kapalı firmalar hiçbir durumda listelenmez.price.paymentMethodFee: kargo ücreti şubede (CASH) veya alıcı tarafından (RECIPIENT) ödendiğinde bakiyenizden düşülen platform hizmet bedeli; bu yöntemlerde taşıma ücretinin kendisi bakiyenizden düşülmez.totalher durumda toplam maliyettir.- Fiyatlar KDV dahildir ve hesabınızın indirimi uygulanmıştır. Teklif kimliği ve fiyat kilidi yoktur; kod üretiminde ücret güncel tarifeyle yeniden hesaplanır, beyan edilen desi ile tartılan desi farkı sonradan yansıtılabilir.
contract=SELFsatırları kendi anlaşmanızdır (handlerCodeSELF_ile başlar);shipmentFee0'dır, taşıma ücretini kargo firması size faturalandırır.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| packages | array | Evet | Paket ölçüleri: height, width, depth (cm) ve weight (kg); en az bir paket. orderId verildiğinde gönderilmez |
| orderId | string | Hayır | Mevcut siparişin ID'si; verilirse gönderi bilgileri siparişten okunur |
| sender.addressId | string | Hayır | Kayıtlı gönderici adres ID'si (bkz. Adres Listesi) |
| sender.city / sender.town | string | Hayır | Gönderici il / ilçe (resmî adlar). addressId ile birlikte gönderilemez |
| recipient.city / recipient.town | string | Hayır | Alıcı il / ilçe |
| cargoType | string | Hayır | OUTGOING (varsayılan) veya INCOMING |
| paymentMethod | string | Hayır | Kargo ücreti ödeme yöntemi: ADVANCE (varsayılan), CASH, RECIPIENT |
| cod.amount | number | Hayır | Kapıda tahsilat tutarı; verilirse kapıda ödemeli gönderi olarak fiyatlanır |
| cod.type | string | Hayır | CASH (varsayılan) veya CREDIT_CARD. Belirtilmezse nakit tahsilat varsayılır (kargo kodu üretimiyle aynı); yalnız kartla tahsilat yapan firmalar için CREDIT_CARD gönderin |
| extraServices | array | Hayır | Ek hizmet kodları, örn. SEND_SMS_TO_SENDER, KT. Alan hiç gönderilmezse siparişte olduğu gibi markanın varsayılanları (örn. teslimde satıcıya bildirim) fiyata dahil edilir; boş dizi [] "ek hizmet yok" demektir |
| brandId | string | Hayır | Ek hizmet varsayılanlarının alınacağı marka ID'si; belirtilmezse varsayılan marka. Yalnız extraServices gönderilmediğinde anlamlıdır |
| handlerCodes | array | Hayır | Yalnız bu firmalar, örn. ["ARAS","SURAT"] |
| includeUnavailable | boolean | Hayır | Taşıyamayan firmaları sebepleriyle de listele (varsayılan false) |
{
"sender": { "addressId": "adr-1" },
"recipient": { "city": "İstanbul", "town": "Ataşehir" },
"packages": [ { "height": 10, "width": 15, "depth": 5, "weight": 1 } ],
"paymentMethod": "ADVANCE",
"cod": { "amount": 6000.00, "type": "CASH" },
"includeUnavailable": true
}
curl -X POST "https://basitkargo.com/api/v2/quotes" \ -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" \ -d '{"recipient":{"city":"İstanbul"},"packages":[{"weight":1}]}'
{
"calculatedAt": "2026-09-18T14:05:00",
"currency": "TRY",
"taxIncluded": true,
"basis": {
"totalDesiKg": 1,
"pricingBasis": "IN_CITY", // IN_CITY | INTERCITY | INTERCITY_ASSUMED
"senderCity": "İstanbul",
"recipientCity": "İstanbul",
"firmAddressSource": "ADDRESS_ID", // ORDER | ADDRESS_ID | CITY | DEFAULT_ADDRESS | NONE
"orderId": null
},
"quotes": [
{
"handlerCode": "ARAS",
"handler": "Aras Kargo",
"logo": "https://...logo/aras.png",
"available": true,
"contract": "BASIT_KARGO", // BASIT_KARGO | SELF
"price": { "shipmentFee": 103.00, "codFee": 140.00, "extraServicesFee": 0, "paymentMethodFee": 0, "total": 243.00 },
"estimatedDeliveryDays": 1,
"pickupAddress": null, // yalnız adresten toplama yapan firmalarda dolu
"capabilities": { "cashOnDelivery": true, "creditCardOnDelivery": true, "maxCodAmount": 7000, "minDesiKg": 0, "maxDesiKg": 100 },
"reasons": []
},
{
"handlerCode": "PTT",
"handler": "PTT Kargo",
"logo": "https://...logo/ptt.png",
"available": false,
"contract": "BASIT_KARGO",
"price": null,
"capabilities": { "cashOnDelivery": true, "creditCardOnDelivery": true, "maxCodAmount": 5000, "minDesiKg": 0, "maxDesiKg": 30 },
"reasons": [ { "code": "COD_AMOUNT_EXCEEDS_LIMIT", "message": "Kapıda ödeme tutarı kargo firmasının limitini aşıyor." } ]
}
]
}
Tarife Tabloları
Hesabınıza açık kargo firmalarının tam fiyat tablolarını döndürür: firmanın üst desi sınırına kadar desi başına şehir içi ve şehir dışı ücret, kapıda ödeme hizmet bedeli bantları ve kart komisyonu, ücretli ek hizmetler ve firma yetenekleri. Panelin "Kargo Firmaları" sayfasında gördüğünüz rakamların aynısıdır: KDV dahil, hesabınızın indirimi uygulanmış. Toplu fiyat hesabını kendi tarafınızda yapmak için kullanın; tek bir gönderinin kesin fiyatı için Fiyat Teklifi ucunu kullanın.
- Önbellek: yanıt
ETagveCache-Control: private, max-age=3600başlıklarıyla döner.If-None-Matchile aynı etiketi gönderirseniz tarife değişmemişse304 Not Modifiedalırsınız. Etiket yalnız tarife satırlarından türetilir; bir tarife veya hesabınızın indirimi değişince değişir. Yanıt hesaba özeldir (Vary: Authorization, Cookie); paylaşılan önbelleklerde saklanmaz. - Desi aralığı:
pricesfirmanın taşıdığı en yüksek desiye kadar her desi için tam fiyatı içerir (tablo dışı desiler firmanın ekstra desi kuralıyla hesaplanıp aynı yuvarlamayla verilir); şehir içi/dışı sütunu gönderinin illerine göre seçilir. contract=SELFsatırları kendi anlaşmanızdır; fiyat tablosu taşımaz.- Kapıda ödeme bandında
feesabit ücret,baseFee + ratebant alt sınırını aşan tutarın oranı,baseFee + ratePerHundredaşan her 100 TL için ek ücret demektir;feeTextokunur halidir.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| handlerCodes | string | Hayır | Virgülle ayrılmış firma kodları (query), örn. ARAS,SURAT; verilmezse hesabınıza açık tüm firmalar |
| If-None-Match | header | Hayır | Önceki yanıtın ETag değeri; eşleşirse 304 döner |
curl "https://basitkargo.com/api/v2/tariffs?handlerCodes=ARAS" \ -H "Authorization: Bearer TOKEN" -H 'If-None-Match: "3f2a..."'
{
"generatedAt": "2026-09-18T14:05:00",
"currency": "TRY",
"taxIncluded": true,
"tariffs": [
{
"handlerCode": "ARAS",
"handler": "Aras Kargo",
"logo": "https://...logo/aras.png",
"contract": "BASIT_KARGO",
"capabilities": { "outgoing": true, "incoming": true, "paymentMethods": ["ADVANCE", "CASH", "RECIPIENT"], "cashOnDelivery": true, "creditCardOnDelivery": true, "maxCodAmount": 7000, "minDesiKg": 0, "maxDesiKg": 100 },
"prices": [
{ "desi": 1, "inCityFee": 84.30, "fee": 98.80 },
{ "desi": 30, "inCityFee": 300.00, "fee": 360.00 },
{ "desi": 100, "inCityFee": 1414.50, "fee": 1490.50 } // firmanın üst desi sınırına kadar tam fiyatlar
],
"codFees": {
"bands": [ { "min": 0, "max": 400, "fee": 20, "rangeText": "0 - 400 TL", "feeText": "20 TL" }, { "min": 6250, "max": 6999, "baseFee": 140, "rate": 0.015, "feeText": "140 TL + %1.5" } ],
"creditCardCommissionPercent": 4.5
},
"extraServices": [ { "code": "SEND_SMS_TO_SENDER", "name": "Teslim Olunca Bana Bildirim Gelsin", "fee": 1 } ]
},
{
"handlerCode": "SELF_ARAS",
"handler": "Aras Kargo - KA",
"contract": "SELF", // kendi anlaşmanız: fiyat tablosu yok, ücreti kargo firması faturalandırır
"prices": [],
"codFees": null
}
]
}
Sipariş İşlemleri
Yeni sipariş oluşturur (NEW durumunda). Firmaları ve fiyatları GET /v2/order/{id}/fee ile listeleyip kargo kodunu POST /v2/order/{id}/barcode ile üretebilirsiniz.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| type | string | Hayır | Kargo tipi: OUTGOING (giden) veya INCOMING (gelen). Varsayılan: OUTGOING |
| orderTotal | number | Hayır | Sipariş tutarı (TL). Kapıda ödeme tutarından bağımsızdır; otomasyondaki "Sipariş Tutarı" koşulu ve raporlar için kullanılır |
| orderPaymentType | string | Hayır | Siparişin ödeme tipi (bkz. Sipariş Ödeme Tipleri). COLLECT_ON_DELIVERY gönderilip collect verilmezse kapıda ödeme orderTotal tutarıyla açılır; ikisi de yoksa hata döner |
| orderPaymentStatus | string | Hayır | Ödeme durumu (bkz. Sipariş Ödeme Durumları). Yalnız ön ödemeli tiplerde saklanır; kapıda ödemede yok sayılır, tahsilat durumu yanıtta codInfo.collectionStatus ile döner |
| addressId | string | Hayır | Kayıtlı gönderici adres ID'si. Belirtilmezse varsayılan adres kullanılır |
| brandId | string | Hayır | Mağaza marka/profil ID'si. Belirtilmezse varsayılan profil kullanılır |
{
"type": "OUTGOING", // OUTGOING veya INCOMING (varsayılan: OUTGOING)
"content": {
"name": "Test Sipariş",
"code": "#123456",
"items": [
{ "name": "Ürün Adı", "code": "STK32", "quantity": "1" }
],
"packages": [
{ "height": 10, "width": 15, "depth": 5, "weight": 1 }
]
},
"client": {
"name": "Test Alıcı",
"phone": "5555555555",
"email": "musteri@ornek.com", // opsiyonel — müşteri e-posta adresi
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah."
},
"collect": 100, // kapıda ödeme tutarı
"collectOnDeliveryType": "CASH", // CASH veya CREDIT_CARD
"orderTotal": 349.90, // opsiyonel, sipariş tutarı
"orderPaymentType": "COLLECT_ON_DELIVERY", // opsiyonel: CREDIT_CARD, BANK_TRANSFER, COLLECT_ON_DELIVERY, OTHER
"addressId": "adres-id", // opsiyonel, kayıtlı gönderici adres ID
"brandId": "brand-id" // opsiyonel, mağaza marka/profil ID
}curl -X POST "https://basitkargo.com/api/v2/order" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"content":{"name":"Test","packages":[{"height":10,"width":15,"depth":5,"weight":1}]},"client":{"name":"Alıcı","phone":"555","city":"İstanbul","town":"Kadıköy","address":"..."}}'
{
"id": "888-6AR-OUP",
"barcode": null,
"type": "OUTGOING",
"status": "NEW",
"validationFailed": false,
"createdTime": "2023-01-01T15:41:47.755"
}
Sipariş Oluştur + Kargo Kodu Üret
Sipariş oluşturur ve anında kargo kodu üretir.
- Kendi anlaşmanız:
handlerCode=SELF_SURAT - En ucuz firma:
handlerCode=ECONOMIC - En hızlı firma:
handlerCode=FAST
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| handlerCode | string | Evet | Kargo firması kodu |
| type | string | Hayır | Kargo tipi: OUTGOING (giden) veya INCOMING (gelen). Varsayılan: OUTGOING |
| orderTotal | number | Hayır | Sipariş tutarı (TL). Kapıda ödeme tutarından bağımsızdır; otomasyondaki "Sipariş Tutarı" koşulu ve raporlar için kullanılır |
| orderPaymentType | string | Hayır | Siparişin ödeme tipi (bkz. Sipariş Ödeme Tipleri). COLLECT_ON_DELIVERY gönderilip collect verilmezse kapıda ödeme orderTotal tutarıyla açılır; ikisi de yoksa hata döner |
| orderPaymentStatus | string | Hayır | Ödeme durumu (bkz. Sipariş Ödeme Durumları). Yalnız ön ödemeli tiplerde saklanır; kapıda ödemede yok sayılır, tahsilat durumu yanıtta codInfo.collectionStatus ile döner |
| addressId | string | Hayır | Kayıtlı gönderici adres ID'si. Belirtilmezse varsayılan adres kullanılır |
| brandId | string | Hayır | Mağaza marka/profil ID'si. Belirtilmezse varsayılan profil kullanılır |
{
"handlerCode": "SURAT",
"type": "OUTGOING", // OUTGOING veya INCOMING (varsayılan: OUTGOING)
"content": {
"name": "Test Sipariş",
"code": "#123456",
"packages": [{ "height": 10, "width": 15, "depth": 5, "weight": 1 }]
},
"client": {
"name": "Test Alıcı",
"phone": "5555555555",
"email": "musteri@ornek.com", // opsiyonel — müşteri e-posta adresi
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah."
},
"collect": 100,
"addressId": "adres-id", // opsiyonel, kayıtlı gönderici adres ID
"brandId": "brand-id" // opsiyonel, mağaza marka/profil ID
}
Sipariş için Firma ve Fiyat Listesi
Mevcut bir siparişi taşıyabilecek kargo firmalarını hesaplanmış fiyatlarıyla listeler. Paneldeki "Kargo Kodu Oluştur" ekranında görünen listenin API karşılığıdır: desi limitleri, ödeme yöntemi, kapıda ödeme desteği ve hesabınıza açık firmalar dikkate alınır; liste fiyata göre artan sıralıdır. Dönen handlerCode değeri POST /v2/order/{id}/barcode çağrısında kullanılır.
- Fiyatlar bilgilendirme amaçlıdır; teklif/fiyat ID kavramı yoktur. Kargo kodu üretiminde ücret güncel olarak yeniden hesaplanır ve bakiyeden düşülür.
duration: gönderici-alıcı şehir çiftine göre tahmini teslim süresi (gün).codFeeyalnızca kapıda ödemeli siparişlerde hesaplanır; diğer siparişlerde 0 döner.- Kendi anlaşmanız tanımlıysa
SELF_ile başlayan firmalar da listelenir; bu satırlardafee0'dır (taşıma ücreti kargo firmanızca kendi anlaşmanıza göre faturalandırılır). - Teslimat adresinin bölge uygunluğu taşıyıcı tarafında kargo kodu üretimi sırasında denetlenir; listede görünen bir firma nadiren "bu adrese teslimat yapmıyor" hatası verebilir — bu durumda başka bir firma deneyin.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string (path) | Evet | Fiyatları listelenecek siparişin ID'si |
curl "https://basitkargo.com/api/v2/order/888-6AR-OUP/fee" \ -H "Authorization: Bearer TOKEN"
[
{
"handlerCode": "HEPSIJET",
"handler": "HepsiJET",
"handlerLogo": "hepsijet.png",
"pickupAddress": "Koşuyolu Mah. No:1 Kadıköy/İstanbul", // sadece adresten toplama yapan firmalarda
"fee": 84.90,
"codFee": 12.50, // kapıda ödemeli değilse 0 döner
"duration": 2, // tahmini teslim süresi (gün)
"disabled": false // her zaman false (kapalı firmalar listelenmez)
},
{
"handlerCode": "SURAT",
"handler": "Sürat Kargo",
"handlerLogo": "surat.png",
"pickupAddress": null, // adresten toplama yapmayan firmalarda null
"fee": 89.90,
"codFee": 8.50,
"duration": 2,
"disabled": false
}
]
Mevcut Siparişe Kargo Kodu Üret
Daha önce POST /v2/order ile oluşturulmuş, NEW durumundaki bir siparişe kargo firması seçip kargo kodu üretir. Paneldeki "Kargo Kodu Oluştur" adımının API karşılığıdır: barkod atanır, kargo ücreti bakiyeden düşülür ve sipariş READY_TO_SHIP durumuna geçer. Yeni sipariş oluşturmaz.
- Firmaları ve güncel fiyatları görmek için:
GET /v2/order/{id}/fee - Kendi anlaşmanız:
handlerCode=SELF_SURAT - En ucuz firma:
handlerCode=ECONOMIC - En hızlı firma:
handlerCode=FAST
- Sadece
NEWdurumundaki siparişler için çalışır; kargo kodu zaten üretilmiş siparişte hata döner. - İşlem başarısız olursa (bölge dışı adres, yetersiz bakiye vb.) sipariş
NEWdurumunda kalır; başka bir firma ile tekrar deneyebilirsiniz. shipmentInfo.handlerShipmentCodebazı firmalarda kargo fiziksel olarak teslim alındıktan sonra dolar;nullgelebilir. Eşleştirme içinidveyabarcodekullanın.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string (path) | Evet | Kargo kodu üretilecek siparişin ID'si |
| handlerCode | string | Evet | Kargo firması kodu |
{
"handlerCode": "SURAT"
}curl -X POST "https://basitkargo.com/api/v2/order/888-6AR-OUP/barcode" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"handlerCode":"SURAT"}'
{
"id": "888-6AR-OUP",
"barcode": "1234567890",
"type": "OUTGOING",
"status": "READY_TO_SHIP",
"shipmentInfo": {
"handler": { "name": "Sürat Kargo", "code": "SURAT" },
"handlerShipmentCode": null
},
"priceInfo": { "paymentMethod": "ADVANCE", "shipmentFee": 89.90, "totalCost": 89.90 },
"orderTotal": 349.90,
"orderPaymentType": "COLLECT_ON_DELIVERY",
"orderPaymentStatus": null, // kapıda ödemede daima null
"codInfo": { "collectOnDelivery": true, "type": "CASH", "amount": 349.90, "collectionStatus": "COLLECTION_PENDING", "collectionStatusText": "Tahsilat Bekleniyor", "releaseDate": null }
}
Sipariş Güncelle
Mevcut siparişi günceller. Sadece NEW durumundaki (henüz kargo kodu üretilmemiş) siparişler düzenlenebilir.
idalanı zorunludur — güncellenecek siparişin ID'si.contentalanı zorunludur.- Kargo kodu üretilmiş veya teslim aşamasındaki siparişler güncellenemez.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Güncellenecek siparişin ID'si |
| content | object | Evet | Sipariş içeriği (ürün, paket bilgileri) |
| type | string | Hayır | Kargo tipi: OUTGOING veya INCOMING |
| orderTotal | number | Hayır | Sipariş tutarı (TL). Kapıda ödeme tutarından bağımsızdır; otomasyondaki "Sipariş Tutarı" koşulu ve raporlar için kullanılır |
| orderPaymentType | string | Hayır | Siparişin ödeme tipi (bkz. Sipariş Ödeme Tipleri). COLLECT_ON_DELIVERY gönderilip collect verilmezse kapıda ödeme orderTotal tutarıyla açılır; ikisi de yoksa hata döner |
| orderPaymentStatus | string | Hayır | Ödeme durumu (bkz. Sipariş Ödeme Durumları). Yalnız ön ödemeli tiplerde saklanır; kapıda ödemede yok sayılır, tahsilat durumu yanıtta codInfo.collectionStatus ile döner |
| addressId | string | Hayır | Kayıtlı gönderici adres ID'si. Belirtilmezse varsayılan adres kullanılır |
| brandId | string | Hayır | Mağaza marka/profil ID'si. Belirtilmezse varsayılan profil kullanılır |
{
"id": "888-6AR-OUP", // zorunlu — güncellenecek sipariş ID
"type": "OUTGOING",
"content": {
"name": "Güncellenmiş Sipariş",
"code": "#123456",
"items": [
{ "name": "Ürün Adı", "code": "STK32", "quantity": "2" }
],
"packages": [
{ "height": 12, "width": 18, "depth": 6, "weight": 2 }
]
},
"client": {
"name": "Test Alıcı",
"phone": "5555555555",
"email": "musteri@ornek.com", // opsiyonel — müşteri e-posta adresi
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah."
},
"collect": 150,
"collectOnDeliveryType": "CASH",
"orderTotal": 349.90,
"orderPaymentType": "COLLECT_ON_DELIVERY",
"addressId": "adres-id", // opsiyonel
"brandId": "brand-id" // opsiyonel
}curl -X PUT "https://basitkargo.com/api/v2/order" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"id":"888-6AR-OUP","content":{"name":"Güncel","packages":[{"height":12,"width":18,"depth":6,"weight":2}]},"client":{"name":"Alıcı","phone":"555","city":"İstanbul","town":"Kadıköy","address":"..."}}'
Sipariş Listele / Filtrele
Siparişleri filtreler. Tüm parametreler opsiyoneldir. Yanıt gövdesi sipariş dizisidir; sayfalama bilgisi yanıt başlıklarında gelir: X-Total-Count (toplam kayıt), X-Total-Pages, X-Page, X-Page-Size.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| startDate | string | Hayır | Başlangıç tarihi (YYYY-MM-DDTHH:mm:ss) |
| endDate | string | Hayır | Bitiş tarihi |
| keyword | string | Hayır | Serbest metin arama: alıcı adı/telefonu, sipariş no, barkod, kargo takip kodu veya ürün adı. Diğer filtrelerle birlikte (VE) uygulanır |
| statusList | string[] | Hayır | Durum kodları listesi |
| handlerCode | string | Hayır | Kargo firması kodu |
| orderPaymentType | string | Hayır | Sipariş ödeme yöntemi (bkz. Sipariş Ödeme Tipleri); COLLECT_ON_DELIVERY tüm kapıda ödemeli siparişleri getirir |
| orderPaymentStatus | string | Hayır | Sipariş ödeme durumu (bkz. Sipariş Ödeme Durumları); yalnız ön ödemeli siparişlerde eşleşir |
| sortBy | string | Hayır | Sıralama kriteri |
| page | int | Hayır | Sayfa no (varsayılan: 0) |
| size | int | Hayır | Sayfa boyutu (varsayılan: 20, max: 100) |
{
"startDate": "2024-01-01T00:00:00",
"endDate": "2024-12-31T23:59:59",
"statusList": ["READY_TO_SHIP", "SHIPPED"],
"handlerCode": "MNG",
"sortBy": "CREATED_TIME",
"page": 0,
"size": 50
}
Sipariş Sorgula (ID)
Sipariş ID ile detay bilgilerini getirir.
Sipariş Sorgula (Barkod)
Barkod numarası ile sipariş bilgilerini getirir.
Sipariş Sorgula (Takip No)
Kargo firması takip numarası ile sipariş bilgilerini getirir.
Kargo Kodu İptal
Şubeye teslim edilmemiş (gönderime hazır durumdaki) siparişin kargo kodunu iptal eder. Sipariş silinmez; taslak (NEW) durumuna döner — yeniden kod alabilir veya Sipariş Sil ile silebilirsiniz.
Sipariş Sil
Taslak (NEW) durumdaki siparişi siler. Yalnızca henüz kargo kodu üretilmemiş siparişler silinebilir; kodlu gönderi için önce kodu iptal edin — sipariş taslağa döner, sonra silebilirsiniz.
İade Oluştur
Teslim edilmiş sipariş için iade kodu oluşturur.
Etiket İndir
Sipariş etiketini SVG formatında indirir.
Konum Bilgileri
Türkiye şehir listesini döndürür.
[
{ "id": 1, "name": "Adana" },
{ "id": 2, "name": "Adıyaman" }
]
İlçeler
Şehre ait ilçe listesi. Örn: GET /city/32/towns
Mahalleler
İlçeye ait mahalle listesi. Örn: GET /city/Isparta/town/Yalvaç/neigborhoods
Kullanıcı
Kullanıcı bakiyesini sorgular.
95
Hesap Durumu
Üyelik durumunu döner: hesap tipi (bireysel / kurumsal) ve esnaf vergi muafiyeti, hesap onaylı mı, hangi onay aşamasında, son hatalı belge nedeni ve aşamanın ne anlama geldiğini anlatan Türkçe özet. Onay bekleyen hesaplar da bu ucu çağırabilir.
{
"accountType": "CORPORATE",
"accountTypeLabel": "Kurumsal Hesap",
"taxExempt": false,
"taxExemptionExpiresAt": null,
"status": "WRONG_DOCUMENT",
"statusLabel": "Hatalı Belge",
"approved": false,
"approvedAt": null,
"lastDocumentUploadedAt": "2026-09-04T14:12:00",
"wrongDocumentReason": "TAX_CERTIFICATE_OUTDATED",
"wrongDocumentReasonLabel": "Vergi Levhası Güncel Değil",
"wrongDocumentAt": "2026-09-05T10:30:00",
"summary": "Hatalı belge: yüklenen belge kabul edilmedi; bildirilen neden: Vergi Levhası Güncel Değil (05.09.2026). Düzeltilmiş belgenin panelden veya mobil uygulamadan yeniden yüklenmesi gerekiyor."
}
status değerleri: APPROVED, DOCUMENT_WAITING, DOCUMENT_UPLOADED, WRONG_DOCUMENT, NOT_APPROVED, DISABLED, BANNED. Hatalı belge alanları yalnız WRONG_DOCUMENT durumunda dolar. accountType: INDIVIDUAL veya CORPORATE; taxExempt esnaf vergi muafiyet belgesiyle kayıtlı hesaplarda true.
Marka Listesi
Kayıtlı marka/profil listesini getirir. Sipariş oluştururken brandId alanında kullanılır.
[
{
"id": "abc-123",
"name": "Marka Adı",
"status": "APPROVED",
"logo": "https://...",
"website": "https://...",
"instagram": "@marka",
"createdAt": "2024-01-15T10:30:00"
}
]
Marka Ekle
Yeni marka/profil oluşturur. Yeni markalar WAITING_APPROVAL (Onay Bekliyor) durumunda açılır; ekibimiz inceleyip onayladıktan sonra APPROVED olur.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| name | string | Evet | Marka adı |
| website | string | Hayır | Web sitesi adresi |
| string | Hayır | Instagram kullanıcı adı |
{
"name": "Marka Adı",
"website": "https://www.ornek.com", // opsiyonel
"instagram": "@marka" // opsiyonel
}curl -X POST "https://basitkargo.com/api/firm/brand" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"Marka Adı","website":"https://www.ornek.com","instagram":"@marka"}'
{
"id": "abc-123",
"status": "WAITING_APPROVAL",
"name": "Marka Adı",
"logo": null,
"website": "https://www.ornek.com",
"instagram": "@marka",
"createdAt": "2026-08-17T10:30:00"
}
brandId alanında yalnızca APPROVED durumundaki markalar kullanılabilir; onay bekleyen marka gönderilirse varsayılan marka kullanılır. Durumlar: APPROVED (Onaylı), WAITING_APPROVAL (Onay Bekliyor), REJECTED (Reddedildi).Adres Listesi
Kayıtlı gönderici adres listesini getirir. Sipariş oluştururken addressId alanında kullanılır.
[
{
"id": "xyz-456",
"name": "Depo Adresi",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah.",
"type": "SHIPPING",
"createdTime": "2024-01-15T10:30:00"
}
]
Adres Ekle
Yeni gönderici adresi oluşturur. Oluşturulan adres, sipariş oluştururken addressId alanında hemen kullanılabilir.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| name | string | Evet | Adres başlığı (örn: Depo, Merkez Ofis) |
| phone | string | Evet | İletişim telefonu (5XXXXXXXXX) |
| city | string | Evet | Şehir adı — resmî kayıtlarla eşleşmeli (bkz. Şehirler) |
| town | string | Evet | İlçe adı — resmî kayıtlarla eşleşmeli (bkz. İlçeler) |
| address | string | Evet | Mahalle adı dahil açık adres (en az 11 karakter) |
| senderName | string | Hayır | Gönderici ad soyad — senderNationalId ile birlikte verilmelidir. İkisi de boş bırakılırsa firma yetkilisinin bilgileri kullanılır |
| senderNationalId | string | Hayır | Gönderici TC kimlik / vergi numarası (10 veya 11 hane) — senderName ile birlikte verilmelidir |
{
"name": "Depo Adresi",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah. Örnek Sok. No:1",
"senderName": "Ad Soyad", // opsiyonel
"senderNationalId": "12345678901" // opsiyonel
}curl -X POST "https://basitkargo.com/api/firm/address" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"Depo Adresi","phone":"5551234567","city":"İstanbul","town":"Kadıköy","address":"Koşuyolu Mah. Örnek Sok. No:1"}'
{
"id": "xyz-456",
"name": "Depo Adresi",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah. Örnek Sok. No:1",
"type": "SHIPPING",
"createdTime": "2026-08-17T10:30:00"
}
city ve town resmî isimlerle eşleşmeli, address metni geçerli bir mahalle adı içermelidir. Aksi halde "Şehir bilgisi yanlış veya eksik", "İlçe bilgisi yanlış veya eksik" ya da "Mahalle/Köy Eksik Veya Hatalı" hatası döner. Bir hesapta en fazla 100 adres bulunabilir.Yardım Makaleleri
Basit Kargo'nun nasıl çalıştığına dair onaylı yardım makalelerini arar (ücretler, kapıda ödeme tahsilatı, iade, entegrasyonlar, destek saatleri). Yapay zeka asistanlarının doğru bilgi vermesi için tasarlanmıştır; en iyi eşleşen makaleleri başlık ve tam metinle döndürür. limit isteğe bağlıdır, varsayılan 3. Tek makale için GET /help/{slug} kullanılır.
[
{
"slug": "kapida-odeme",
"title": "Kapıda ödeme nasıl çalışır?",
"summary": "Kapıda Ödeme ayarlarından IBAN ile aktif edilir; ...",
"body": "Kapıda ödemeyi panelde ..."
}
]
Müşteriler
Müşteri havuzunuz: bugüne kadar kargo gönderdiğiniz alıcılar ve elle eklediğiniz müşteriler, sipariş sayısı ve harcama toplamlarıyla birlikte. Tekrar gönderi oluştururken alıcı bilgilerini buradan çekebilir, paneldeki Müşterilerim sayfasında olduğu gibi kayıt ekleyip düzeltebilirsiniz.
Müşterilerinizi arar/listeler. Tüm alanlar opsiyoneldir; boş gövde {} tüm müşterileri son sipariş tarihine göre listeler.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| search | string | Hayır | Ad veya telefonda arama (içeren eşleşme). |
| city | string | Hayır | Şehir filtresi (tam eşleşme), örn. İstanbul. |
| minOrders / maxOrders | number | Hayır | Sipariş sayısı aralığı. |
| minSpending / maxSpending | number | Hayır | Toplam harcama aralığı (TL). |
| startDate / endDate | string | Hayır | YYYY-AA-GG biçiminde; sipariş istatistiklerinin hesaplandığı tarih penceresini belirler. |
| sortBy | string | Hayır | name, city, town, orderCount, totalSpending, lastOrderDate (varsayılan). |
| ascending | boolean | Hayır | Artan sıralama, varsayılan false. |
| page / size | number | Hayır | Sayfa (1'den başlar) ve sayfa boyutu (varsayılan 20, en fazla 100). |
curl -X POST "https://basitkargo.com/api/customer/search" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"search":"Ahmet"}'
{
"currentPage": 1,
"pageSize": 20,
"totalPage": 1,
"totalNumberOfItems": 2,
"items": [
{
"id": 1234,
"name": "Ahmet Yılmaz",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah. Örnek Sok. No:1 D:3",
"orderCount": 7,
"totalSpending": 2340.00,
"lastOrderDate": "2026-08-12T16:41:09"
}
]
}
id bu yanıttan alınır). startDate/endDate müşteri listesini daraltmaz, yalnızca orderCount/totalSpending istatistiklerinin penceresini belirler — belirli dönemde sipariş verenleri bulmak için tarih aralığını minOrders: 1 ile birlikte kullanın. Geçersiz tarih biçiminde hata döner.Müşteri Ekle
Müşteri havuzuna elle kayıt ekler; paneldeki Müşterilerim → Müşteri Ekle ile aynı kurallar geçerlidir, tüm alanlar zorunludur. Mevcut kaydın üzerine yazmaz: aynı ad ve telefonla kayıt zaten varsa, il/ilçe/adres aynıysa o kayıt olduğu gibi döner (zaman aşımı sonrası isteği tekrarlamak güvenlidir), farklıysa kayıt numarasını içeren bir hata döner ve bilgileri Müşteri Güncelle ile değiştirmeniz istenir.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| name | string | Evet | Ad soyad |
| phone | string | Evet | Telefon (5XXXXXXXXX). +90 / 0 öneki ve boşluklar kaydedilirken temizlenir |
| city | string | Evet | İl |
| town | string | Evet | İlçe |
| address | string | Evet | Açık adres |
{
"name": "Ahmet Yılmaz",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah. Örnek Sok. No:1 D:3"
}curl -X POST "https://basitkargo.com/api/customer" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"Ahmet Yılmaz","phone":"5551234567","city":"İstanbul","town":"Kadıköy","address":"Koşuyolu Mah. Örnek Sok. No:1 D:3"}'
{
"id": 1234,
"name": "Ahmet Yılmaz",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Koşuyolu Mah. Örnek Sok. No:1 D:3"
}
Müşteri Güncelle
Kayıtlı bir müşteriyi günceller. id, Müşteri Ara yanıtındaki id alanıdır. Yalnızca gövdede gönderdiğiniz alanlar değişir; göndermediğiniz alanlar korunur, boş gönderilen alan hata verir, en az bir alan gönderilmelidir.
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| currentPhone | string | Hayır | Güvenlik kontrolü: kaydın Müşteri Ara yanıtındaki telefonu. Verilirse kayıtlı telefonla eşleşmeli, aksi halde işlem reddedilir — yanlış id ile başka bir müşteriyi değiştirmemek için önerilir |
| name | string | Hayır | Yeni ad soyad |
| phone | string | Hayır | Yeni telefon (5XXXXXXXXX) |
| city | string | Hayır | Yeni il |
| town | string | Hayır | Yeni ilçe |
| address | string | Hayır | Yeni açık adres |
{
"currentPhone": "5551234567", // opsiyonel güvenlik kontrolü
"address": "Fenerbahçe Mah. Yeni Sok. No:5" // yalnızca değişen alanlar
}curl -X PUT "https://basitkargo.com/api/customer/1234" \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"currentPhone":"5551234567","address":"Fenerbahçe Mah. Yeni Sok. No:5"}'
{
"id": 1234,
"name": "Ahmet Yılmaz",
"phone": "5551234567",
"city": "İstanbul",
"town": "Kadıköy",
"address": "Fenerbahçe Mah. Yeni Sok. No:5"
}
currentPhone uyuşmazsa "Verilen mevcut telefon bu müşteri kaydıyla eşleşmiyor…" döner. Ad ve telefon, havuzda müşterinin kimliğidir: yeni ad + telefon ikilisi başka bir kayda aitse "Bu ad ve telefonla kayıtlı başka bir müşteri zaten var." hatası döner ve kayıt değişmez. Telefonu değiştirdiğinizde o numaraya bağlı notlar, etiketler ve pazarlama izni eski numarada kalır; mevcut siparişlerin alıcı bilgileri de değişmez.Webhook
Webhook'lar, kargo durumundaki değişikliklerde belirlediğiniz URL'e otomatik HTTP POST isteği gönderir.
Durum Değişikliği
Ana durum değiştiğinde tetiklenir. NEW → SHIPPED → DELIVERED
Kargo Hareketi
Her hareket/taşımada tetiklenir. Transfer, şubeye varış, dağıtım.
Durum Değişikliği Webhook'u
Kargo durumu değiştiğinde gönderilir.
{
"id": "XXX-XXX-XXX",
"orderNumber": "#123456",
"orderId": "987654321",
"barcode": "1234567890",
"status": "SHIPPED",
"handler": { "name": "Aras Kargo", "code": "ARAS" },
"handlerShipmentCode": "1234567890"
}
Kargo Hareketi Webhook'u
Her kargo hareketi/taşımasında gönderilir.
{
"id": "101-DM2-XYD",
"barcode": "1234567890",
"status": "DELIVERED",
"content": {
"name": "Ekran Kartı",
"packages": [{ "height": 25, "width": 10, "depth": 20, "weight": 1 }],
"totalDesiKg": 2.00
},
"sender": { "name": "Gönderici", "phone": "444" },
"recipient": { "name": "Alıcı", "city": "Yalova", "town": "Merkez" },
"shipmentInfo": {
"handler": { "name": "MNG Kargo", "code": "MNG" },
"handlerShipmentCode": "1234567890",
"lastState": "Teslim Edildi"
},
"priceInfo": { "shipmentFee": 29.93, "totalCost": 29.93 },
"orderTotal": 349.90,
"orderPaymentType": "COLLECT_ON_DELIVERY",
"orderPaymentStatus": null,
"codInfo": { "collectOnDelivery": true, "type": "CASH", "amount": 349.90, "fee": 12.50, "collectionStatus": "COLLECTED", "collectionStatusText": "Tahsil Edildi, Bakiyenize Aktarılacak", "releaseDate": "2022-08-24" },
"traces": [
{ "status": "Teslim Edildi", "time": "2022-08-17T18:10:10", "location": "YALOVA" },
{ "status": "Dağıtıma Çıktı", "time": "2022-08-17T12:37:35", "location": "YALOVA" }
]
}
Referans Tabloları
Kargo Durum Akışı
NEWREADY_TO_SHIPSHIPPEDOUT_FOR_DELIVERYDELIVERED| Kod | Açıklama |
|---|---|
NEW | Yeni |
READY_TO_SHIP | Gönderime Hazır |
SHIPPED | Yolda |
OUT_FOR_DELIVERY | Dağıtıma Çıkarıldı |
DELIVERED | Teslim Edildi |
NEEDS_SUPPORT | Destek Gerekiyor |
DELAYED | Gecikmeli |
RETURNING | Geri Dönüyor |
RETURNED | Geri Döndü |
LOST | Kayıp |
Kargo Firması Kodları
| Kod | Firma | Anlaşma |
|---|---|---|
PTT | PTT Kargo | Basit Kargo |
MNG | MNG Kargo | Basit Kargo |
YURTICI | Yurtiçi Kargo | Basit Kargo |
ARAS | Aras Kargo | Basit Kargo |
SURAT | Sürat Kargo | Basit Kargo |
HEPSIJET | HepsiJET Kargo | Basit Kargo |
KOLAYGELSIN | KolayGelsin Kargo | Basit Kargo |
BIRGUNDEKARGO | Birgünde Kargo (bölgesel; yalnız hizmet bölgesindeki adreslerde sunulur) | Basit Kargo |
ECONOMIC | En Ekonomik | Otomatik |
FAST | En Hızlı | Otomatik |
SELF_PTT | PTT Kargo | Kendi Anlaşmanız |
SELF_MNG | MNG Kargo | Kendi Anlaşmanız |
SELF_YURTICI | Yurtiçi Kargo | Kendi Anlaşmanız |
SELF_ARAS | Aras Kargo | Kendi Anlaşmanız |
SELF_SURAT | Sürat Kargo | Kendi Anlaşmanız |
Kargo Ücreti Ödeme Yöntemleri
| Kod | Açıklama |
|---|---|
ADVANCE | Bakiye ile Öde |
CASH | Nakit (Şubede Ödeme) |
RECIPIENT | Alıcı Öder |
Kargo Tipleri
| Kod | Açıklama |
|---|---|
OUTGOING | Giden Kargo |
INCOMING | Gelen Kargo |
Kapıda Ödeme Türleri
| Kod | Açıklama |
|---|---|
CASH | Nakit |
CREDIT_CARD | Kredi Kartı (POS) |
Sipariş Ödeme Tipleri
Alıcının siparişi nasıl ödediğini/ödeyeceğini belirtir (orderPaymentType). Kapıdaki nakit/kart ayrımı burada değil, collectOnDeliveryType alanındadır.
| Kod | Açıklama |
|---|---|
COLLECT_ON_DELIVERY | Kapıda Ödeme (kargo firması tahsil eder) |
BANK_TRANSFER | Havale/EFT |
CREDIT_CARD | Online Ödeme / Sanal POS (kapıdaki kart tahsilatı değil — o COLLECT_ON_DELIVERY + collectOnDeliveryType=CREDIT_CARD) |
OTHER | Diğer |
Sipariş Ödeme Durumları
Yalnız ön ödemeli tiplerde (orderPaymentStatus). Kapıda ödemeli siparişlerde bu alan daima null döner; tahsilatın durumu codInfo.collectionStatus ile verilir.
| Kod | Açıklama |
|---|---|
PAID | Ödendi |
PENDING | Ödeme Bekleniyor (örn. gelmemiş havale) |
UNPAID | Ödenmedi (başarısız / iptal / iade) |
Fiyat Teklifi Kodları
Fiyat Teklifi yanıtındaki kodlar. reasons[].code: firmanın bu gönderiyi neden taşıyamadığı (yalnız available=false satırlarda; hesabınıza kapalı firmalar sebep almaz, hiç listelenmez).
| Sebep Kodu | Açıklama |
|---|---|
MAX_DESI_EXCEEDED | Paket desisi kargo firmasının üst sınırını aşıyor. |
MIN_DESI_NOT_MET | Toplam desi kargo firmasının alt sınırının altında. |
CARGO_TYPE_NOT_SUPPORTED | Kargo firması bu kargo yönünü (giden/gelen) desteklemiyor. |
PAYMENT_METHOD_NOT_SUPPORTED | Kargo firması seçilen kargo ücreti ödeme yöntemini desteklemiyor. |
COD_NOT_SUPPORTED | Kargo firması seçilen kapıda ödeme tipini desteklemiyor. |
COD_AMOUNT_EXCEEDS_LIMIT | Kapıda ödeme tutarı kargo firmasının limitini aşıyor. |
COD_NOT_AVAILABLE_WITH_RECIPIENT_PAYMENT | Alıcı Öder seçeneği ile kapıda ödeme hizmeti kullanılamaz. |
NO_COVERAGE_FOR_SENDER | Kargo firması gönderici adresinin bulunduğu il/ilçeden kargo alımı yapmıyor. |
NO_COVERAGE_FOR_RECIPIENT | Kargo firması alıcı adresinin bulunduğu il/ilçeye teslimat yapmıyor. |
COVERAGE_UNAVAILABLE | Kargo firmasının hizmet bölgesi bilgisi henüz yüklenmedi. |
TARIFF_NOT_DEFINED | Bu desi için kargo firmasının fiyatı tanımlı değil. |
COD_FEE_NOT_DEFINED | Bu tutar için kargo firmasının kapıda ödeme hizmet bedeli tanımlı değil. |
basis.pricingBasis: hangi tarife sütununun uygulandığı.
| Kod | Açıklama |
|---|---|
IN_CITY | Gönderici ve alıcı aynı ilde: şehir içi tarife uygulandı. |
INTERCITY | Gönderici ve alıcı farklı illerde: şehir dışı (Tüm Türkiye) tarife uygulandı. |
INTERCITY_ASSUMED | İl bilgisi eksik: şehir dışı tarife varsayıldı; aynı il çıkarsa gerçek fiyat daha düşük olabilir. |
basis.firmAddressSource: hesabınıza ait tarafın (giden kargoda gönderici, gelen kargoda alıcı) adresinin nasıl belirlendiği.
| Kod | Açıklama |
|---|---|
ORDER | Adresler orderId ile verilen siparişten alındı. |
ADDRESS_ID | addressId ile verilen kayıtlı adres kullanıldı. |
TOKEN_ADDRESS | İstekte adres yok; API anahtarına tanımlı varsayılan adres kullanıldı. |
CITY | İstekte verilen il/ilçe kullanıldı. |
DEFAULT_ADDRESS | Adres verilmedi; hesabın varsayılan gönderici adresi kullanıldı. |
NONE | Adres verilmedi ve kayıtlı adres yok; il bilinmiyor. |
Kapıda Tahsilat Durumları
Kapıda ödemeli siparişlerde tahsilatın ve bakiye aktarımının durumu (codInfo.collectionStatus). Kargo durumu ve tahsilat işleminden anlık türetilir; releaseDate aktarımın planlandığı/yapıldığı tarihtir.
| Kod | Açıklama |
|---|---|
TO_BE_COLLECTED | Ödeme Kapıda Tahsil Edilecek — kargo henüz yola çıkmadı (NEW / READY_TO_SHIP) |
COLLECTION_PENDING | Tahsilat Bekleniyor — kargo yolda, henüz teslim edilmedi |
COLLECTED | Tahsil Edildi, Bakiyenize Aktarılacak — releaseDate tarihinde bakiyeye geçer |
TRANSFERRED | Bakiyeye Aktarıldı |
COLLECTED_DIRECT | Tahsil Edildi, Kargo Firması Öder — kendi sözleşmenizle gönderilen kargolarda ödeme kargo firmasından gelir |
NOT_COLLECTED | Tahsil Edilmedi — iade, kayıp veya iptal |
Sıralama Seçenekleri
| Kod | Açıklama |
|---|---|
CREATED_TIME | Oluşturulma zamanı |
UPDATED_TIME | Güncellenme zamanı |
CODE_GENERATED_TIME | Kargo kodu üretim zamanı |
SHIPPED_TIME | Kargoya verilme zamanı |
DELIVERED_TIME | Teslim edilme zamanı |