Müşteri · Ayarlar

Entegrasyon API'si

Kendi yazılımınızdan fiyat alma, sipariş açma ve durumu izleme; API dokümanı, ilk istekler, toplu sipariş, tekrar deneme, webhook imzası ve sınırlar.

Entegrasyon API'si, sipariş, ERP ya da depo yazılımınızın Courino'ya doğrudan bağlanmasını sağlar. Portalda elle yaptığınız sipariş işlerinin hepsini yazılımınız da yapabilir: fiyat alır, sipariş açar, düzenler, iptal eder, durumu ve canlı konumu izler. Bu yazı yazılım geliştiriciniz için bir başlangıç rehberidir.

Fiyat, kurye firmanızın size tanımladığı fiyat listesinden portaldakiyle aynı hesapla çıkar. API ile açılan sipariş, firmanın ekranına elle girilmiş sipariş gibi düşer.

Neye ihtiyacınız var?

İlk sipariş adım adım

  1. Bilgilerim sayfasındaki Entegrasyon (API anahtarları) kartında anahtar oluşturun.
  2. Aynı kartın sağ üstündeki API dokümanı düğmesine basın. Doküman yeni sekmede, portalı hangi dilde kullanıyorsanız o dilde (Türkçe ya da İngilizce) açılır.
  3. Dokümanda Authorize'a basın, anahtarı yapıştırıp onaylayın. Artık her ucu Try it out ile tarayıcıdan, gerçek hesabınızla deneyebilirsiniz.
  4. GET /me/order-options ile semtleri ve gidiş tiplerini alın. Siparişteki her adreste semt kimliği (districtId) ve bir gidiş tipi (deliveryTypeId) gerekir.
  5. POST /pricing/quote ile fiyatı görün. Bu istek hiçbir şey kaydetmez.
  6. POST /orders ile siparişi açın. Yanıtta siparişin kimliği (id) ve numarası (number) döner.
  7. Durumu GET /me/orders/{id} ile okuyun ya da webhook ile dinleyin.
Gönderen her zaman anahtarın bağlı olduğu müşteri hesabıdır. İstekte gönderen bilgisini boş ({}) bırakabilirsiniz.

Sık kullanılan uçlar

Adreslerin hepsi /api/v1 altındadır (ör. https://client.courino.com/api/v1/orders).

UçNe yapar
GET /me/order-optionsSemtler, gidiş tipleri ve çalışma saatleri
POST /pricing/quoteFiyat teklifi (kaydetmez)
POST /ordersSipariş açar
POST /me/orders/batchToplu sipariş (en çok 1000 satır)
GET /me/ordersSiparişlerim; referans no, barkod, durum ve tarihle süzme, q ile metin araması, minAmount/maxAmount ile tutar aralığı, sort ile sıralama (ör. sort=-total)
GET /me/orders/{id}Sipariş ayrıntısı
PUT /me/orders/{id}Henüz havuzdaki siparişi düzenler
POST /me/orders/{id}/cancelSiparişi iptal eder
GET /me/orders/{id}/trackingKurye yoldayken canlı konum
POST /me/orders/{id}/tracking-linkAlıcıya iletilecek takip bağlantısı
POST /me/orders/importsExcel/CSV gönderi dosyasını önizler; .../confirm ile siparişler açılır
GET /me/ecommerce/ordersBağlı mağazalarınızdan gelen siparişler; eşleşme bekleyeni düzeltme, yeniden deneme, atlama
GET /me/customer/statementDönem hesap ekstresi (PDF)
GET /me/customer/paymentsOnline ödemeleriniz (yalnız okuma)
GET /me/customer/messagesSize ve yetkililerinize gönderilen SMS ve e-postalar

Bu tablo yalnız sık kullanılanlardır; ödeme ve fatura, kapıda ödeme, yetkililer ve özel günler uçlarının tamamı dokümanda.

Güvenle tekrar deneme

Ağ koptuğunda isteğin ulaşıp ulaşmadığını bilemezsiniz. Sipariş açarken ve iptal ederken Idempotency-Key başlığına o işe özgü bir değer (ör. kendi sipariş numaranız) yazın. Aynı değerle tekrar gönderdiğinizde ikinci sipariş açılmaz, ilk yanıt döner. Aynı değerle farklı içerik gönderirseniz 409 hatası alırsınız. Değer 24 saat saklanır.

Toplu siparişte her satırın referans no'su (reference) aynı işi görür: aynı referanslı sipariş ikinci kez açılmaz. Toplu isteği önce dryRun: true ile gönderip yalnız denetleyebilirsiniz. Ayrıntılar Toplu gönderi yazısında.

Webhook imzasını doğrulama

Her webhook isteğinde şu başlıklar gelir:

İmzayı doğrulamak için t değerini, bir nokta ve isteğin ham gövdesini yan yana koyup imza sırrıyla (whsec_ dahil tamamı) HMAC-SHA256 hesaplayın; sonucu v1 ile karşılaştırın. Zamanı 5 dakikadan eski istekleri reddedin. Yanıt olarak hızlıca 2xx dönün; 410 dönerseniz o haber için deneme durur. Kod örneği dokümanda ve courino.com/gelistiriciler sayfasında.

Kurallar ve sınırlar

Sorun mu var?