İşlemler & Payout
Burası pazaryeri döngüsünün defter tarafıdır: her split ödeme, satıcı bacaklarıyla birlikte işlem listesine düşer; her satıcının alacağı payout defterinde birikir; payout'ları kaydeder ve ödendi işaretlersiniz; her mutasyon, kriptografik olarak doğrulayabileceğiniz hash-zincirli bir audit log'a eklenir. Tüm endpoint'ler erişim token'ınızı kullanır (Authorization: Bearer at_live_…), base URL https://api-gateway.lunixi.com/api/v1.
Defter yüzeylerinde tüm tutarlar minor birimli (kuruş) string'dir: "netMinor": "13725" = ₺137,25.
Nasıl çalışır
Split ödemeler birikir
Her başarılı split ödeme, satıcı başına bacakları — tutar, komisyon, hold, net — işlem kaydına yazar.
Payout defteri alacağı izler
Defter kayıtları her satıcının brüt → komisyon → vergi → hold → net kırılımını, bir valör tarihini ve bir durumu (PLANNED → PAID) taşır.
Ödersiniz ve ödendi işaretlersiniz
Parayı kendi kanalınızdan gönderirsiniz (banka transferi vb.), sonra kaydedersiniz: bir payout kaydı oluşturun ve — tekil veya toplu — kağıt izi için transfer referansıyla PAID işaretleyin.
Her şey denetlenebilir
Her dealer değişikliği, komisyon kuralı, payout ve mark-paid, kurcalamaya-dayanıklı audit log'a eklenir; GET /marketplace/audit-log/verify compliance raporlaması için zincir bütünlüğünü kanıtlar.
Split işlemleri listeleme
GET /marketplace/transactions, split ödemeleri satıcı kırılımlarıyla listeler. Filtreler: status, subDealerId, limit.
curl "https://api-gateway.lunixi.com/api/v1/marketplace/transactions?subDealerId=d_8f2a...&limit=20" \
-H "Authorization: Bearer at_live_5f3e2b1a..."Yanıt bir işlem dizisidir; her işlem satıcı bacaklarını taşır:
{
"id": "b7e2c9d4-...",
"orderId": "ORD-2026-1042",
"createdAt": "2026-07-04T09:41:22.000Z",
"currency": "TRY",
"grossMinor": "25000",
"status": "CAPTURED",
"is3D": false,
"disputeState": "NONE",
"sellers": [
{
"subDealerId": "d_8f2a...",
"netMinor": "13725",
"commissionMinor": "1275",
"holdMinor": "0",
"legStatus": "SETTLED"
},
{
"subDealerId": "d_c41b...",
"netMinor": "9000",
"commissionMinor": "1000",
"holdMinor": "0",
"legStatus": "SETTLED"
}
]
}grossMinor işlemin çekilen toplam tutarıdır; status çekirdek ödeme durumu (CAPTURED, REFUNDED, …), disputeState ise chargeback durumudur. Bacak başına:
| Bacak alanı | Anlamı |
|---|---|
netMinor | Satıcının bu işlemdeki payout payı — satıcının alacağı |
commissionMinor | Bu bacaktaki komisyonunuz (komisyon kurallarından çözülür) |
holdMinor | Bu bacaktan alıkonan tutar |
legStatus | PENDING · HELD (hold var) · SETTLED (ödeme capture edildi) · REVERSED (ödeme iade veya void edildi) |
Payout defteri
GET /marketplace/payout-ledger, satıcı bazlı settlement görünümüdür. Filtreler: status, subDealerId, days, limit.
curl "https://api-gateway.lunixi.com/api/v1/marketplace/payout-ledger?status=PLANNED&days=30" \
-H "Authorization: Bearer at_live_5f3e2b1a..."Her kayıt, payout'u brüt − komisyon − vergi − hold = net şeklinde kırar; valorDate (valör tarihi), payout rail bilgisi ve bir status taşır: PLANNED (kaydedildi, para henüz gönderilmedi) veya PAID (ödeme metadata'sıyla teyit edildi).
Payout kaydetme
Lunixi payout parasını kendisi taşımaz — transferi kendi kanalınızdan yaparsınız ve bunu kayda geçirirsiniz. POST /marketplace/payouts bir payout kaydı oluşturur:
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/payouts \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-d '{
"subDealerId": "d_8f2a...",
"grossMinor": "150000",
"commissionMinor": "12750",
"netMinor": "137250",
"currency": "TRY",
"valorDate": "2026-07-10",
"note": "Haziran mutabakatı",
"markPaid": true,
"paymentMethod": "BANK_WIRE",
"paymentReference": "TRF-2026-0709-114"
}'| Alan | Not |
|---|---|
subDealerId | Zorunlu — ödenen satıcı |
netMinor | Zorunlu — satıcının eline geçen tutar (minor birimli string, > 0) |
grossMinor / commissionMinor / taxMinor / holdMinor | Opsiyonel kırılım; varsayılanlar netMinor üzerinden türetilir |
currency | Varsayılan TRY |
valorDate | YYYY-MM-DD; varsayılan bugün |
markPaid | Para zaten gönderildiyse true — kayıt doğrudan PAID olarak açılır |
paymentMethod | BANK_WIRE · EFT · HAVALE · CRYPTO · CLOSED_WALLET · OPEN_WALLET · CASH · OTHER |
paymentReference / paidAt | Transfer referansı ve gerçek transfer zamanı (ISO); paidAt varsayılanı şimdi |
Ödendi işaretleme
PLANNED bir payout'un transferi tamamlandığında:
# Tekil
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/payouts/po_3f9c.../mark-paid \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-d '{ "paymentMethod": "EFT", "paymentReference": "TRF-2026-0710-201" }'
# Toplu — örn. toplu banka gönderimi sonrası
curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/payouts/bulk-mark-paid \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-d '{ "ids": ["po_3f9c...", "po_71ab...", "po_c02d..."], "paymentMethod": "BANK_WIRE" }'Toplu çağrı, parti başına özet döner:
{ "marked": 3, "failed": 0, "ids": ["po_3f9c...", "po_71ab...", "po_c02d..."] }Payout'u kimin, ne zaman ve hangi referansla ödendi işaretlediği kaydın üzerinde tutulur ve audit log'a yansıtılır.
Audit log
Her pazaryeri mutasyonu — dealer yaşam döngüsü değişiklikleri, komisyon kuralları, manuel payout'lar, mark-paid olayları — append-only, hash-zincirli bir audit log'a eklenir: her kayıt kendisini bir öncekine bağlayan bir hash taşır; herhangi bir kurcalama veya silme zinciri tespit edilebilir şekilde kırar.
# Log'u sorgulama
curl "https://api-gateway.lunixi.com/api/v1/marketplace/audit-log?days=30&actionType=PAYOUT_DONE&limit=50" \
-H "Authorization: Bearer at_live_5f3e2b1a..."Filtreler: days, actor, actionType, dealerName, limit.
Zincir bütünlüğünü doğrulama
curl https://api-gateway.lunixi.com/api/v1/marketplace/audit-log/verify \
-H "Authorization: Bearer at_live_5f3e2b1a..."Yanıt, zincirin sağlam olup olmadığını (valid) ve değilse kırıldığı sıra numarasını (brokenAtSeq) söyler.
Compliance notu: verify endpoint'i, audit log'u regülatör seviyesinde kanıt olarak kullanılabilir kılar — kayıtlı payout ve onboarding geçmişinin yazıldığından beri değiştirilmediğini talep üzerine gösterebilirsiniz. Periyodik compliance raporlamanızın parçası olarak çalıştırın.
Hatalar
| Durum | Anlamı | Ne yapmalı |
|---|---|---|
400 | marketplace.payout.sub_dealer_required / marketplace.payout.amount_required — satıcı eksik veya netMinor pozitif değil | Payout gövdesini düzeltin |
400 | marketplace.payout.not_found — payout bulunamadı (ya da size ait değil) | Payout id'sini doğrulayın |
400 | marketplace.payout.held_cannot_pay — payout HELD durumunda | Ödendi işaretlemeden önce hold'u kaldırın |
401 | API key eksik veya geçersiz | Authorization header'ını kontrol edin |
İş kuralı hataları, hata kodu yanıt gövdesinin code alanında olacak şekilde HTTP 400 döner — HTTP durumuna değil koda göre dallanın.
Webhooks
İşlem seviyesindeki event'ler çekirdek payment.* webhook'larıdır. Payout kaydetme ve mark-paid merchant'ın başlattığı aksiyonlardır — bunları event yerine payout defteri ve audit log üzerinden izleyin.
Sonraki adımlar
- Split 2D Ödeme — satıcı bacaklarının en başta nasıl yazıldığı
- İade & İptal — satıcı kırılımına karşı geri almalar
- Başlarken — defter rakamlarını süren komisyon kuralları