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:
| Alan | Not |
|---|---|
dealerType | LEGAL_ENTITY veya INDIVIDUAL |
verificationMode | LUNIXI_KYC (KYC'yi onboarding portalında Lunixi yürütür), EXTERNAL veya NONE |
profile.taxIdType | VKN, TCKN veya VAT_NO |
profile.categoryCode | Kategori kapsamlı komisyon kuralları bu alanı kullanır |
externalRef | Kendi 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:
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şama | Kim aksiyon alır | Ne olur |
|---|---|---|
APPLICATION | Satıcı | Satıcı oluşturuldu; onboarding linkini gönderin — satıcı başvuruyu portal/SDK'da doldurur |
KYC_PENDING | Satıcı | Kimlik doğrulama portal/SDK'da yürür |
AWAITING_TERMS | Siz | Komisyon & payout şartlarını girin (POST /marketplace/dealers/{id}/terms) |
CONTRACT_PENDING | Satı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"
}'| Alan | Not |
|---|---|
scope | DEFAULT, CATEGORY (categoryCode ister) veya SUB_DEALER (subDealerId ister) |
basis | PERCENT (ratePercent string, örn. "8.5") veya FIXED (fixedAmountMinor, minor birimli string) |
minTransactionMinor | Opsiyonel — kuralın uygulanacağı minimum işlem tutarı (minor birimli string) |
reasonNote | Audit 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 parametresi | Not |
|---|---|
subDealerId | Zorunlu — oranı çözülecek satıcı |
categoryCode | Opsiyonel — işlemin kategorisi |
mtdVolumeMinor | Opsiyonel — hacim-duyarlı çözümlemede kullanılan ay-başından-bugüne hacim (minor birimli string) |
Hatalar
| Durum | Anlamı | Ne yapmalı |
|---|---|---|
400 | Doğrulama hatası (eksik legalName/taxId, hatalı scope/basis kombinasyonu) | İstek gövdesini düzeltin |
401 | API key eksik veya geçersiz | Authorization header'ını kontrol edin |
404 | Dealer bulunamadı (veya başka bir merchant'a ait) | subDealerId değerini doğrulayın |
Sonraki adımlar
- Satıcı Onboarding'i — onboarding linki üretme, hosted portal & gömülü SDK
- Split 2D Ödeme — ilk split tahsilatınız
- İşlemler & Payout — döngünün defter tarafı