Payment Orchestrator
Pazaryeri
Başlarken

Başlarken

Bir ödemeyi bölmeden önce iki şeye ihtiyacınız var: pazaryerinize kayıtlı satıcılar (alt bayiler) ve her satıcı bacağının ne kadarının size ait olduğunu Lunixi'ye söyleyen komisyon kuralları. Bu sayfa ikisini de adım adım anlatır; ayrıca günlük yöneteceğiniz dealer yaşam döngüsünü de kapsar.

Buradaki tüm endpoint'ler sunucu tarafı erişim token'ınızı kullanır (Authorization: Bearer at_live_…) — bkz. Authentication. Base URL: https://api-gateway.lunixi.com/api/v1.

Nasıl çalışır

Satıcıları oluşturun

Her satıcıyı POST /marketplace/dealers ile kaydedin — ya da mevcut tabanınızı POST /marketplace/dealers/bulk ile tek çağrıda içe aktarın.

Komisyon kurallarını kurun

Bir DEFAULT kural tanımlayın; sonra kategori veya satıcı bazında ezin. POST /marketplace/commission-rules/preview ile kuru çalıştırma yapın, herhangi bir satıcı için geçerli oranı GET /marketplace/commission/resolve ile inceleyin.

Satıcıları onboard edin

Her satıcı, onboarding portalı veya SDK üzerinden KYC'sini tamamlar ve sözleşmeyi imzalar. Split ödeme yalnızca ACTIVE satıcılara yapılabilir.

Tahsilata başlayın

Ödeme isteğine sellers[] ekleyin — bkz. Split 2D Ödeme.

Satıcı kaydetme

Alt bayiyi yasal profiliyle oluşturun. Satıcı APPLICATION onboarding aşamasında başlar (kaba durum DRAFT).

curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/dealers \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{
    "dealerType": "LEGAL_ENTITY",
    "verificationMode": "LUNIXI_KYC",
    "country": "TR",
    "externalRef": "seller-1042",
    "profile": {
      "legalName": "Aksoy Elektronik Ticaret A.Ş.",
      "displayName": "Aksoy Elektronik",
      "taxIdType": "VKN",
      "taxId": "1234567890",
      "categoryCode": "electronics",
      "email": "[email protected]",
      "phone": "+905550001122"
    },
    "authorizedPersons": [
      { "fullName": "Ayşe Aksoy", "email": "[email protected]", "hasSignatureAuthority": true, "isPrimary": true }
    ]
  }'

Önemli alanlar:

AlanNot
dealerTypeLEGAL_ENTITY veya INDIVIDUAL
verificationModeLUNIXI_KYC (KYC'yi onboarding portalında Lunixi yürütür), EXTERNAL veya NONE
profile.taxIdTypeVKN, TCKN veya VAT_NO
profile.categoryCodeKategori kapsamlı komisyon kuralları bu alanı kullanır
externalRefKendi satıcı id'niz — okuma yanıtlarında geri döner

Toplu içe aktarım (CSV satırları)

Mevcut bir satıcı tabanını mı taşıyorsunuz? Ayrıştırılmış CSV satırlarını tek istekte gönderin:

curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/dealers/bulk \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{
    "rows": [
      { "firmaAdi": "Aksoy Elektronik A.Ş.", "vkn": "1234567890", "kategori": "electronics", "email": "[email protected]", "komisyon": "8.5" },
      { "firmaAdi": "Yıldız Moda Ltd.",      "vkn": "9876543210", "kategori": "fashion",     "email": "[email protected]" }
    ]
  }'

Her satırda firmaAdi ve vkn zorunludur; kategori, email ve komisyon (içe aktarım sırasında uygulanan satıcı bazlı komisyon oranı) opsiyoneldir.

Dealer yaşam döngüsü

Her satıcı, onboarding akışındaki ince taneli ve kaldığı yerden devam edilebilir konumunu gösteren bir onboarding stage taşır:

Satıcı kayıt yolculuğuDurum makinesi: satıcı başvurusunu doldurur, kimlik doğrulamasından geçer, komisyon ve ödeme şartlarını sizden bekler, sözleşmeyi imzalar ve aktifleşir.APPLICATIONbaşvuru formuKYC_PENDINGkimlik doğrulamaAWAITING_TERMSşartlar sizdeCONTRACT_PENDINGimza bekleniyorCOMPLETEDaktifAÇIKLAMASİZİ BEKLİYORSPLIT ÖDEME ALABİLİR
Zincirin tek sizde duran adımı AWAITING_TERMS: komisyon ve payout şartlarını siz yazmadan satıcı ilerleyemez. Kalan adımlar satıcının ya da doğrulamanın elinde.
AşamaKim aksiyon alırNe olur
APPLICATIONSatıcıSatıcı oluşturuldu; onboarding linkini gönderin — satıcı başvuruyu portal/SDK'da doldurur
KYC_PENDINGSatıcıKimlik doğrulama portal/SDK'da yürür
AWAITING_TERMSSizKomisyon & payout şartlarını girin (POST /marketplace/dealers/{id}/terms)
CONTRACT_PENDINGSatıcıSözleşme gönderildi; satıcı portal/SDK'da imzalar
COMPLETED—Satıcıyı etkinleştirdiniz (POST /marketplace/dealers/{id}/activate) — kaba durum ACTIVE'e döner, split ödemeye uygun

Başarısız KYC, satıcıyı terminal REJECTED aşamasına taşır. Onboarding aşaması, günlük uygunluk için kullanılan kaba yaşam döngüsü durumundan (DRAFT → PENDING_KYC → ACTIVE, ayrıca SUSPENDED / HOLD / CLOSED) ayrıdır.

Herhangi bir satıcının konumunu GET /marketplace/dealers/{id}/application ile izleyin; kayıt defterinizi GET /marketplace/dealers ile listeleyin (filtreler: status, search, limit, offset).

Askıya alma ve yeniden etkinleştirme

PUT /marketplace/dealers/{id}/status satıcının kaba yaşam döngüsü durumunu değiştirir — örneğin bir satıcıyı askıya alarak ona yapılacak yeni split ödemelerin reddedilmesini sağlarsınız:

curl -X PUT https://api-gateway.lunixi.com/api/v1/marketplace/dealers/d_8f2a.../status \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{ "status": "SUSPENDED" }'

Askıdaki satıcı, split ödeme uygunluk denetiminden SELLER_SUSPENDED koduyla düşer — bkz. Split 2D Ödeme.

Komisyon kuralları

Komisyon, her satıcı bacağından ne kadarını tutacağınızı belirler. Kurallar en-özelden-genele çözülür: satıcı bazlı → kategori → varsayılan. Aynı kapsam için yeni bir kural oluşturmak, aktif kuralı devre dışı bırakıp yerine geçer (effective-dated).

Kural oluşturma

# Varsayılan kural: her şeyde %10
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/commission-rules \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{ "scope": "DEFAULT", "basis": "PERCENT", "ratePercent": "10" }'
 
# Kategori override'ı: elektronikte %8,5
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/commission-rules \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{
    "scope": "CATEGORY",
    "categoryCode": "electronics",
    "basis": "PERCENT",
    "ratePercent": "8.5",
    "reasonNote": "Elektronik kampanyası Q3"
  }'
 
# Satıcı bazlı override: işlem başına sabit ₺5,00
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/commission-rules \
  -H "Authorization: Bearer at_live_5f3e2b1a..." \
  -H "Content-Type: application/json" \
  -d '{
    "scope": "SUB_DEALER",
    "subDealerId": "d_8f2a...",
    "basis": "FIXED",
    "fixedAmountMinor": "500"
  }'
AlanNot
scopeDEFAULT, CATEGORY (categoryCode ister) veya SUB_DEALER (subDealerId ister)
basisPERCENT (ratePercent string, örn. "8.5") veya FIXED (fixedAmountMinor, minor birimli string)
minTransactionMinorOpsiyonel — kuralın uygulanacağı minimum işlem tutarı (minor birimli string)
reasonNoteAudit log'a düşen serbest metin not

Aktif kuralları GET /marketplace/commission-rules ile listeleyin.

Devreye almadan önce önizleyin

POST /marketplace/commission-rules/preview, kural oluşturmayla aynı gövdeyi alır ve kuralın ne yapacağını döner — hiçbir şey kaydetmeden. Bir değişikliği yayına almadan önce gerçek tutarlarla sağlamasını yapmak için kullanın.

Geçerli oranı çözümleme

Şu anda bir satıcıya tam olarak hangi kuralın uygulandığını görmek için:

curl "https://api-gateway.lunixi.com/api/v1/marketplace/commission/resolve?subDealerId=d_8f2a...&categoryCode=electronics&mtdVolumeMinor=125000000" \
  -H "Authorization: Bearer at_live_5f3e2b1a..."
Query parametresiNot
subDealerIdZorunlu — oranı çözülecek satıcı
categoryCodeOpsiyonel — işlemin kategorisi
mtdVolumeMinorOpsiyonel — hacim-duyarlı çözümlemede kullanılan ay-başından-bugüne hacim (minor birimli string)

Hatalar

DurumAnlamıNe yapmalı
400Doğrulama hatası (eksik legalName/taxId, hatalı scope/basis kombinasyonu)İstek gövdesini düzeltin
401API key eksik veya geçersizAuthorization header'ını kontrol edin
404Dealer bulunamadı (veya başka bir merchant'a ait)subDealerId değerini doğrulayın

Sonraki adımlar