Skip to content
Dil: Türkçe

Geliştiriciler için API

Satışları ve kendi verilerini LinkHarbor’a gönder

Güncellendi: 1 Kasım 2026 5 dk okuma

Mağazandaki satışları bağlantı tıklamalarıyla eşleştirmek için satış callback’lerini, kendi araçlarından canlı veri göndermek için “Custom (API)” kullan.

LinkHarbor dışarıdan da veri kabul eder. İki durum için kendi gizli anahtarlarına sahip özel uç noktalar vardır – bunlar için bir API anahtarına ihtiyacın yok: satış callback’leri mağazandaki satışları bildirir, böylece istatistiklerinde hangi bağlantının gelir getirdiğini görebilirsin. “Custom (API)” entegrasyonu kendi araçlarından canlı verileri bir widget olarak sayfana getirir ve anlık bildirimleri tetikleyebilir.

Satış callback’leri: satışları eşleştirme

Tıklama kimliğinin (lt_click_id), eşleştirmenin ve raporlamanın nasıl bir araya geldiği Dönüşümleri ve satışları ilişkilendirme bölümünde anlatılıyor; burada geliştiriciler için tüm alanları ve yanıtları bulursun. Kısaca: LinkHarbor sayılan bir tıklamayı bir http veya https hedefine yönlendirdiğinde lt_click_id parametresini ekler; mağazan onu hatırlar ve satın almadan sonra geri gönderir.

Callback gizli anahtarı oluştur

“Callback gizli anahtarları” kartıyla “Callback ve API” sayfası
Callback gizli anahtarlarını “Callback ve API” sayfasında oluşturursun
  1. “Callback ve API”yi aç
  2. “Callback gizli anahtarları” kartında “+ Yeni gizli anahtar oluştur”a tıkla
  3. İstersen ona bir ad ver, örneğin “Mağaza callback’i”, ve “Gizli anahtar oluştur”a tıkla
  4. Gizli anahtarı hemen kopyala – yalnızca bir kez gösterilir
Kim
Sahipler ve yöneticiler, Creator Pro’dan itibaren. Creator Free’de “Callback gizli anahtarları Creator Pro’dan itibaren kullanılabilir.” yazar.
Kaç tane
Çalışma alanı başına en fazla 5 gizli anahtar, örneğin mağaza başına bir tane.
“Düzenle”
Adı değiştir ve durumu “Aktif” veya “Pasif” olarak ayarla. Pasif bir gizli anahtarla API callback’leri reddeder.
“↺ Yenile”
Yeni bir gizli anahtar oluşturur; eskisi hemen çalışmayı bırakır.
“Son callback:”
Gizli anahtarın en son ne zaman başarıyla kullanıldığını gösterir.

Bir callback gönder

POST /v1/callbacks/sale
curl -X POST https://dock.at-harbor.com/v1/callbacks/sale \
  -H "Content-Type: application/json" \
  -H "X-Callback-Secret: $LH_CALLBACK_SECRET" \
  -d '{
    "click_id": "3f1c2a9e-8d4b-4a51-9f0e-6b7c1d2e3f40",
    "order_id": "A-10023",
    "amount": "49.90",
    "currency": "EUR",
    "occurred_at": "2026-11-01T10:15:00Z"
  }'
# → {"ok":true,"conversion_id":123}
AlanZorunluAnlamı
click_idEvetlt_click_id’nin değeri (10–36 karakter)
order_idEvetSipariş numaran (1–128 karakter); her sipariş numarası çalışma alanı başına yalnızca bir kez sayılır
amountEvetOndalık sayı olarak tutar, örneğin "49.90"; negatif değer yok
currencyEvetÜç harfli kod olarak para birimi, örneğin EUR; API küçük harfleri dönüştürür
occurred_atHayırSatın alma zamanı (ISO 8601)
amount_base_minor, base_currency, fx_rateHayırBirden fazla para biriminde satış yapıyorsan en küçük birimde dönüştürülmüş tutar, temel para birimi ve döviz kuru
metaHayırDüz bir nesne olarak kendi ek verilerin: 1–64 karakterlik en fazla 50 anahtar; değerler metin (en fazla 500 karakter), sayı, true/false veya null; iç içe nesneler ve listeler reddedilir
workspace_idHayırÇalışma alanı kimliğin; bununla API bilinmeyen bir click_id’yi 403 yerine 404 olarak bildirir
YanıtAnlamı
200 {"ok":true,"conversion_id":…}Satış kaydedildi – ya da bu order_id zaten kaydedilmişti (o zaman mevcut dönüşümün kimliği)
403 forbiddenYanlış gizli anahtar veya imza ya da bilinmeyen click_id (workspace_id olmadan)
403 secret_inactiveGizli anahtar “Pasif” olarak ayarlı
404 not_foundBilinmeyen click_id (yalnızca workspace_id ve geçerli bir gizli anahtarla)
413 request_too_largeGövde 1 MB’tan büyük
422 validation_failedBir alan eksik veya geçersiz, örneğin meta içinde çok uzun veya iç içe bir değer
429 rate_limitedIP adresinden dakikada 120’den fazla callback

İsteğe bağlı imza

Gizli anahtara ek olarak X-Callback-Signature başlığını gönderebilirsin. sha256= ve ham gövdenin hex olarak HMAC-SHA256 imzasını içerir. Anahtar gizli anahtarın kendisi değil, ikili biçimdeki SHA-256 hash’idir. Başlığı gönderirsen doğru olmalıdır – aksi halde callback reddedilir.

İmzayı hesapla (PHP)
<?php
$body = json_encode($payload);
$key  = hash('sha256', getenv('LH_CALLBACK_SECRET'), true); // gizli anahtarın ikili hash’i
$sig  = 'sha256=' . hash_hmac('sha256', $body, $key);
// Başlıklar: X-Callback-Secret ve X-Callback-Signature: $sig, gövde: $body

Satışları nerede görürsün

Bildirilen satışlar istatistiklerinde dönüşüm olarak görünür, bkz. Dönüşümleri ve satışları ilişkilendirme. API üzerinden bunları read:stats ile /v1/stats/…/conversions/breakdown altında okursun.

Custom (API): kendi canlı verilerin

“Custom (API)” entegrasyonuyla HTTP isteği gönderebilen her program – bir oyun sunucusu eklentisi, bir bot, bir cron betiği – LinkHarbor’a veri gönderebilir. Bu veriler sayfanda canlı bir widget’a dönüşür ve bildirim kuralları takipçilerini bilgilendirebilir.

Bağla

  1. Çalışma alanında “Entegrasyonlar”ı aç
  2. “Custom (API)”yi seç ve bir ad gir
  3. Bağlandıktan sonra pencere “Ingest URL'si”ni ve “Gizli anahtar”ı (“Gizli anahtarı göster” ile) gösterir
  4. İkisini de aracında sakla

Entegrasyonlar Creator Pro’dan itibaren kullanılabilir. Ingest URL’sini ve gizli anahtarı, daha sonra entegrasyonun ayrıntı görünümünde de dahil, yalnızca sahipler ve yöneticiler görebilir. Bağlantıyı kesip yeniden bağlamak yeni bir gizli anahtar oluşturur. Entegrasyonların genel olarak nasıl bağlandığı Bir entegrasyon bağla bölümünde anlatılıyor.

Veri gönder

Bir olay ve widget durumunu gönder
curl -X POST "$INGEST_URL" \
  -H "Authorization: Bearer $INGEST_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "player.joined",
    "event_id": "join-2026-11-01T20:01:02Z-steve",
    "data": { "player": "Steve" },
    "state": {
      "type": "game_server",
      "name": "Survival SMP",
      "online": true,
      "players_online": 3,
      "players_max": 20
    }
  }'
# → {"ok":true,"event_id":4711,"duplicate":false,"event_type":"player.joined"}
event
Serbest olay adı, örneğin player.joined. Küçük harfe dönüştürülür ve bildirim kurallarının tepki verdiği addır. event olmadan olayın adı state.updated olur.
event_id
Çift işlemeyi önleyen isteğe bağlı anahtar. Aynı event_id yeniden gönderilirse LinkHarbor duplicate: true ile yanıt verir ve hiçbir şey yapmaz.
data
Bildirim metinlerindeki yer tutucular için değerler, örneğin {player}. En fazla 40 anahtar, yalnızca basit değerler.
state
Widget’ın tam durumu. Öncekinin tamamen yerini alır. type game_server (oyun sunucusu kartı) veya status (durum kartı) olur.

Authorization: Bearer yerine gizli anahtarı X-LinkHarbor-Secret başlığında da gönderebilirsin. IP adresi başına dakikada 120 çağrıya izin verilir. İsteğe bağlı olarak gövdeyi imzalarsın: X-LinkHarbor-Signature başlığı sha256= ve anahtar olarak gizli anahtarla ham gövdenin HMAC-SHA256 imzasını içerir. Gönderirsen doğru olmalıdır.

YanıtAnlamı
200 {"ok":true,…}Olay kaydedildi, bilinen bir event_id için duplicate: true ile
400 invalid_jsonGövde bir JSON nesnesi değil
401 invalid_secretYanlış gizli anahtar veya bilinmeyen ingest URL’si
401 signature_invalidX-LinkHarbor-Signature gövdeyle eşleşmiyor
413 request_too_largeGövde 64 KB’tan büyük
422 validation_failedGövdede ne event ne de state var
429 rate_limitedIP adresinden dakikada 120’den fazla çağrı

Bir şey bulamadın mı?

Neye ihtiyacın olduğunu bize anlat, destek ekibimiz sana kişisel olarak yardımcı olsun.

Destekle iletişime geç