İçeriğe geç

Geliştiriciler

Mağazanızı kendi sistemlerinize bağlayın

REST API, yetkileri sınırlanabilen API anahtarları ve imzalı webhook’larla siparişleri, ürünleri ve stokları muhasebenize, ERP’nize ya da kendi uygulamanıza aktarın.

  • REST API ve OpenAPI 3.1
  • Standard Webhooks imzası
  • Yetkisi sınırlı API anahtarları
Dizüstü bilgisayar ekranında JavaScript kodu

Entegrasyon için gerekenler hazır

  • REST API

    Panelde yaptığınız işlemler aynı API üzerinden yapılır: ürünler, stok, siparişler, müşteriler, kampanyalar, sayfalar ve daha fazlası. Yanıtlar JSON’dur; tutarlar küçük birimle tamsayı olarak, para birimi koduyla gelir.

  • OpenAPI 3.1 şeması

    Uç noktalar, parametreler ve yanıtlar kodla birlikte güncellenen bir OpenAPI 3.1 şemasıyla tanımlıdır. İstemciyi tercih ettiğiniz dilde şemadan üretebilirsiniz.

  • Yetkisi sınırlı API anahtarları

    Anahtar tek bir mağazaya bağlıdır ve yalnızca verdiğiniz izinlerle çalışır; personel, faturalama ve mağaza silme yetkileri anahtara verilemez. Anahtar oluşturulduğu anda bir kez gösterilir, panelden anında iptal edilir.

  • Webhook’lar

    Sipariş, ödeme, iade, kargo, ürün, stok, müşteri, kampanya ve e-fatura gibi olayları seçtiğiniz adrese JSON olarak gönderir. Yalnızca ilgilendiğiniz olayları seçersiniz.

  • İmzalı ve güvenilir teslimat

    Standard Webhooks biçiminde imzalanır; sır döndürülürken iki sır birlikte imzalar. Başarısız teslimatlar yaklaşık bir gün boyunca artan aralıklarla yeniden denenir; teslimat günlüğü, elle yeniden deneme, yeniden oynatma ve test gönderimi vardır.

  • Modül SDK’sı

    Ödeme, kargo, SMS, e-fatura, ürün feed’i ve izleme araçları standart bir modül sözleşmesiyle yazılır: manifest, izinler, ayar formu, olaylar ve zamanlanmış işler. Modüller platformla birlikte yayımlanır; mağaza sahipleri kendi kodlarını yükleyemez.

İlk entegrasyon

Dört adımda ilk entegrasyonunuz

  1. Adım 1: 1

    Anahtar oluşturun

    Mağaza panelinde bir API anahtarı oluşturun ve yalnızca gereken izinleri seçin. Anahtar bir kez gösterilir; güvenli bir yerde saklayın. Veri değiştirebilen bir anahtar için e-postanıza gelen onay kodu istenir.

  2. Adım 2: 2

    İlk isteği gönderin

    Authorization başlığına Bearer anahtarınızı koyup siparişleri listeleyin: GET /api/v1/stores/{storeId}/orders. Yanıt, data ve meta alanlarıyla gelir; sayfalama için page ve limit kullanın.

  3. Adım 3: 3

    Webhook ekleyin

    Panelde bir webhook ekleyin: adresi ve almak istediğiniz olayları seçin. Sır oluşturulurken bir kez gösterilir. Panelden test gönderimi yaparak adresinizi deneyebilirsiniz.

  4. Adım 4: 4

    İmzayı doğrulayın

    Gelen her isteğin imzasını doğrulayın, webhook-id ile tekilleştirin ve hızlı yanıt verin. Doğrulama örneği aşağıdadır.

Webhook imzasını doğrulayın

Her webhook isteği üç başlık taşır: webhook-id, webhook-timestamp ve webhook-signature. İmza, sırrınızla kimlik.zaman.gövde metni üzerinden HMAC-SHA256 ile hesaplanır. Sır whsec_ ile başlar, oluşturulurken bir kez gösterilir ve şifreli saklanır. Aşağıdaki örnek Node.js ile doğrulamayı gösterir.

import { createHmac, timingSafeEqual } from 'node:crypto';

// rawBody: istek gövdesi, JSON'a çevrilmeden önceki ham metin
export function verifyWebhook(secret, headers, rawBody) {
  const id = headers['webhook-id'];
  const timestamp = headers['webhook-timestamp'];
  const signatures = headers['webhook-signature'];
  if (!id || !timestamp || !signatures) return false;

  // Tekrar saldırısına karşı zaman toleransı (5 dakika)
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;

  // Sır "whsec_" önekiyle başlar; gerisi base64 kodlu anahtardır
  const key = Buffer.from(secret.replace(/^whsec_/, ''), 'base64');
  const expected = createHmac('sha256', key)
    .update(`${id}.${timestamp}.${rawBody}`)
    .digest();

  // Başlıkta boşlukla ayrılmış "v1,<imza>" girdileri olabilir
  return signatures.split(' ').some((entry) => {
    const [version, signature] = entry.split(',');
    if (version !== 'v1' || !signature) return false;
    const given = Buffer.from(signature, 'base64');
    return given.length === expected.length && timingSafeEqual(given, expected);
  });
}
  • Gövdeyi JSON’a çevirmeden, ham metin olarak imzaya verin.
  • webhook-id, aynı olayın tüm yeniden denemelerinde aynıdır; işlediğiniz kimlikleri saklayıp tekrarları atlayın.
  • 2xx dışındaki her yanıt başarısız sayılır ve yönlendirmeler izlenmez; ağır işi arka plana alıp hızlı yanıt verin.
  • Sır döndürüldüğünde başlıkta iki imza gelebilir; örnek hepsini dener.

İstek sınırları, paketler ve sözleşmenin özeti

API erişimi, webhook sayısı ve istek sınırları paketinize göre belirlenir; güncel değerler fiyatlandırma sayfasındaki paket karşılaştırmasında yer alır. API anahtarı oluşturmak için paketinizde API erişimi özelliğinin açık olması gerekir. Sınıra ulaşıldığında API 429 koduyla ve RateLimit başlıklarıyla yanıt verir; kısa süre bekleyip yeniden deneyin.

KonuNasıl çalışır
Taban yol/api/v1
Kimlik doğrulamaAuthorization: Bearer ile API anahtarı (api_live_ ile başlar)
YanıtJSON; başarıda data alanı, listelerde ayrıca meta alanında sayfalama bilgisi
Hataerror nesnesi: code, message, details ve requestId; iletiler Accept-Language başlığına göre Türkçe ya da İngilizce
ParaKüçük birimle tamsayı ve para birimi kodu (12990 = 129,90)
TarihISO 8601, UTC
SürümlemeKırıcı değişiklik yeni bir ana sürüm gerektirir; v1 içinde yalnızca geriye uyumlu eklemeler yapılır

Sık sorulan sorular

API’yi kullanmak için hangi paket gerekir?

API erişimi ve webhook’lar paket özelliğidir. Hangi paketlerde açık olduğunu, istek sınırlarını ve webhook sayısını fiyatlandırma sayfasındaki karşılaştırmada görürsünüz.

API anahtarına hangi izinleri verebilirim?

Anahtar, mağaza izinlerinin bir alt kümesini taşır (örneğin ürünleri okuma ya da siparişleri yazma). Personel, faturalama, API anahtarı ve mağaza silme izinleri anahtara verilemez. Veri değiştirebilen bir anahtar oluştururken hesabınızın e-postasına bir onay kodu gelir. Sızan bir anahtarı panelden iptal edebilir, denetim kaydında kullanımını inceleyebilirsiniz.

Webhook’lar hangi olaylar için gönderilir?

Siparişler (oluşturuldu, ödendi, kargolandı, teslim edildi, iptal, iade), ödeme ve iade kayıtları, kargo ve iade talepleri, ürünler ve stok, kategoriler, müşteriler, favoriler, kampanyalar, terk edilen sepet, bülten abonelikleri, alan adı durumları ve e-fatura sonuçları. Tam liste, webhook eklerken panelde görünür.

Siparişleri muhasebe ya da ERP sistemime nasıl aktarırım?

Bir sipariş olayına (örneğin ödendi) webhook abone olun ve olay geldiğinde siparişin ayrıntısını API’den okuyun. Alternatif olarak siparişleri panelden CSV olarak dışa aktarabilirsiniz. e-Fatura ve e-Arşiv için kendi entegratör hesabınızı bağlayan modül de vardır; ayrıntı için e-Fatura ve e-Arşiv sayfasına bakın.

Kendi ödeme ya da kargo modülümü yükleyebilir miyim?

Hayır. Modüller platformla birlikte derlenen birinci taraf paketlerdir; mağaza sahiplerinin kod yüklemesi bilinçli olarak desteklenmez. Özel entegrasyonlar için API ve webhook’ları kullanın; vitrine ek bir betik gerekiyorsa özel script özelliğiyle, çerez izin kategorisini seçerek ekleyebilirsiniz.

API’yi denemeye hazır mısınız?

Hesabınızı açın, bir API anahtarı oluşturun ve ilk isteğinizi gönderin. Deneme sürecinde kredi kartı istenmez.

Çerezleri nasıl kullandığımızı seçin

Sitenin çalışması için gerekli çerezleri kullanırız. Analitik çerezler yalnızca izin verirseniz etkinleşir; tercihinizi istediğiniz zaman sayfanın altındaki bağlantıdan değiştirebilirsiniz.