Partner API v1

Credentials & Permissions

BaZaaRDan Partner API erişimi Client ID, Client Secret ve izin modeli ile çalışır. Her partner uygulaması sadece kendisine verilen izinler kapsamında veri okuyabilir veya işlem yapabilir.

Security Model

Client ID + HMAC + Permission

API erişiminde Client ID partner uygulamasını tanımlar, Client Secret HMAC imzası üretir, permission sistemi ise uygulamanın hangi endpointleri kullanabileceğini belirler.

Client ID

Client ID, partner uygulamanızı tanımlayan public kimlik değeridir. Her API isteğinde X-BZ-CLIENT-ID headerı ile gönderilir.

Client ID Header
X-BZ-CLIENT-ID: YOUR_CLIENT_ID

Client Secret

Client Secret, HMAC SHA256 imzası üretmek için kullanılır. Bu değer gizlidir; frontend, mobil uygulama veya public repository içine konulmamalıdır.

Environment
BAZAARDAN_CLIENT_ID=YOUR_CLIENT_ID
BAZAARDAN_CLIENT_SECRET=YOUR_CLIENT_SECRET

HMAC İmza

Her request için timestamp ve request path kullanılarak imza üretilir. BaZaaRDan backend bu imzayı doğrulamazsa istek reddedilir.

Signature Base String
METHOD + "\n" + PATH + "\n" + TIMESTAMP + "\n" + RAW_BODY

Permission Listesi

orders:read Sipariş listesini okumak için gereklidir. Endpoint: GET /orders.php
orders:detail Tek sipariş kalemi detayını okumak için gereklidir. Endpoint: GET /order_detail.php
stock:write SKU veya product_id bazlı stok güncellemek için gereklidir. Endpoint: POST /stock_update.php
webhooks Partner sistemine olay bildirimleri göndermek için webhook endpoint tanımı gerekir.

Webhook Secret

Webhook Secret, BaZaaRDan tarafından gönderilen webhook isteklerinin gerçekten BaZaaRDan’dan gelip gelmediğini doğrulamak için kullanılır.

Webhook Headers
X-BZ-WEBHOOK-ID
X-BZ-WEBHOOK-TIMESTAMP
X-BZ-WEBHOOK-SIGNATURE
X-BZ-WEBHOOK-EVENT
Webhook Signature
hash_hmac("sha256", timestamp + "." + raw_body, webhook_secret)

Canlıya Alma Güvenlik Kuralları

  • Client Secret sadece backend ortam değişkenlerinde tutulmalıdır.
  • Client Secret frontend veya mobil uygulamaya konulmamalıdır.
  • Public GitHub/GitLab repository içine secret yazılmamalıdır.
  • Webhook endpointlerinde signature doğrulaması zorunlu yapılmalıdır.
  • Gereksiz permission verilmemelidir; uygulamaya sadece ihtiyacı olan izinler tanımlanmalıdır.
  • Şüpheli durumda client pasife alınmalı ve secret rotate edilmelidir.