Payment Orchestrator
Pazaryeri
Seller Onboarding

Satıcı Onboarding'i

Satıcı kayıt defterinizde oluştuktan sonra; split ödeme alabilmesi için bir başvuru doldurması, kimlik doğrulamasından (KYC) geçmesi ve sözleşmenizi imzalaması gerekir. Bunların hiçbirini siz geliştirmezsiniz: tek bir onboarding token üretirsiniz ve satıcıya ya hosted portal linkini gönderirsiniz ya da akışın tamamını marketplace JS SDK ile kendi sayfanıza gömersiniz — hazır wizard olarak veya tamamen headless bir client olarak.

Onboarding token, tek bir satıcının onboarding'ine kapsamlı bir JWT'dir (varsayılan geçerlilik ~7 gün). Bir API key değildir: yalnızca o satıcının başvurusunu ilerletebilir. Süresi dolduğunda yenisini üretin — ilerleme kaldığı yerden devam eder.

Nasıl çalışır

Onboarding token üretin

Sunucunuzdan POST /marketplace/dealers/{id}/onboarding-token çağırın. Yanıtta token ve paylaşıma hazır hosted portal URL'i döner.

Satıcıya iletin

Hosted URL'i e-postayla gönderin ya da token ile SDK'yı başlatan kendi onboarding sayfanızı açın.

Satıcı akışı tamamlar

Başvuru bilgileri → KYC (Lunixi KYC SDK'sına devredilir) → sözleşme imzası. Dealer aşaması APPLICATION → KYC_PENDING → AWAITING_TERMS → CONTRACT_PENDING şeklinde ilerler.

Şartları girin ve etkinleştirin

Aşama AWAITING_TERMS olduğunda komisyon & payout şartlarını girin (POST /marketplace/dealers/{id}/terms). Satıcı imzaladıktan sonra POST /marketplace/dealers/{id}/activate ile etkinleştirin — aşama COMPLETED olur, satıcının durumu ACTIVE'e döner ve split ödemeye uygun hale gelir.

Onboarding token üretme

curl -X POST https://api-gateway.lunixi.com/api/v1/marketplace/dealers/d_8f2a.../onboarding-token \
  -H "Authorization: Bearer at_live_5f3e2b1a..."
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...",
  "url": "https://altbayi.lunixi.com/m/eyJhbGciOiJIUzI1NiIsInR5cCI6..."
}
⚠️

Token'a magic link gibi davranın: elinde tutan herkes, süresi dolana kadar o satıcının başvuru sahibi gibi hareket edebilir. Güvenilir bir kanaldan iletin (satıcının doğrulanmış e-postası veya platformunuzdaki kimliği doğrulanmış bir oturum).

İki entegrasyon modu

Mod A — hosted portal

Satıcıya url değerini olduğu gibi gönderin. altbayi.lunixi.com üzerindeki portal; başvuru formu, KYC yakalama, sözleşme inceleme ve imza dahil onboarding wizard'ının tamamını sizin tarafınızda sıfır kodla render eder. En hızlı yol budur ve çoğu platform için doğru varsayılandır.

Mod B — gömülü SDK

Marketplace SDK'yı kendi sayfanıza yükleyin ve akışı kendi markanız altında yürütün. SDK iki seviye sunar:

  • Lunixi.marketplace.mount(target, config) — aynı hazır wizard, sizin DOM node'unuzun içinde render edilir.
  • Lunixi.marketplace.create({ token }) — headless client: her ekranı siz kurarsınız, SDK veriyi ve durum geçişlerini sağlar.
<div id="onboarding-root"></div>
 
<script src="https://cdn.lunixi.com/lunixi-marketplace.min.js"></script>
<script>
  const handle = Lunixi.marketplace.mount('#onboarding-root', {
    token: 'eyJhbGciOi...',          // POST .../onboarding-token yanıtından
    locale: 'tr',                    // varsayılan 'tr'
    theme: 'auto',                   // 'light' | 'dark' | 'auto'
    onStageChange(stage) {
      console.log('satıcı şu aşamada:', stage);
      // APPLICATION → KYC_PENDING → AWAITING_TERMS → CONTRACT_PENDING → COMPLETED
    },
    onCompleted() {
      window.location.href = '/satici/panel?onboarding=tamam';
    },
    onError(err) {
      console.error(err.code, err.message);
    },
  });
 
  // sayfadan ayrılırken handle.unmount()
</script>

Wizard, satıcının güncel aşamasına karşılık gelen fazı render eder — KYC'nin ortasında sekmeyi kapatan satıcı, kaldığı yerden devam eder. KYC adımı Lunixi KYC SDK'sını içeride kendisi compose eder; ayrıca entegre etmezsiniz.

İki mod da altta aynı portal API'siyle konuşur — satıcı hosted portalda başlayıp sonra sizin gömülü sayfanızı açarsa (ya da tersi), durum tutarlı kalır.

Alttaki portal API

SDK her çağrıyı X-Marketplace-Token header'ındaki onboarding token ile doğrular — asla secret key'inizle değil; secret key tarayıcıya ulaşmamalıdır. Referans için, SDK'nın sürdüğü endpoint'ler şunlardır:

MethodPathSDK'daki karşılığı
GET/marketplace/portal/applicationgetApplicationStatus()
POST/marketplace/portal/submitsubmitApplication(payload)
POST/marketplace/portal/signsignContract(payload)
GET/marketplace/portal/kyc-handoffgetKycHandoff()

Normalde bunları doğrudan çağırmazsınız — SDK (veya hosted portal) çağırır. Ağ loglarında ve CSP allow-list'lerinizde tanıyabilmeniz için listelenmiştir.

KYC handoff

Kimlik doğrulama, marketplace akışının içinde yeniden yazılmamıştır. Başvuru KYC adımına ulaştığında:

  1. SDK (veya portal) getKycHandoff() çağırır ve bu satıcı için aktif bir KYC session referansı alır.
  2. Bu referans Lunixi KYC SDK'sını başlatır; belge yakalama, liveness ve doğrulama akışının kalanı orada yürür.
  3. Doğrulama sonuçlandığında dealer aşaması otomatik ilerler — gömülü wizard'da bu kesintisizdir; headless entegrasyonlar KYC SDK tamamlandıktan sonra getApplicationStatus() ile tekrar sorgular.

Satıcılarınızı Lunixi dışında doğruluyorsanız (dealer oluştururken verificationMode: "EXTERNAL"), sonucu sunucunuzdan POST /marketplace/dealers/{id}/kyc-result ile kaydedin.

Sunucunuzdan ilerlemeyi izleme

Onboarding token satıcının görünümüdür. Kendi tarafınızda aynı başvuruyu secret key'inizle izler ve sürersiniz:

EndpointAmaç
GET /marketplace/dealers/{id}/applicationGüncel aşama + sıradaki aksiyon sahibi
POST /marketplace/dealers/{id}/termsKomisyon & payout şartlarını girme (aşama AWAITING_TERMS)
POST /marketplace/dealers/{id}/submitBaşvuruyu satıcı adına gönderme (asiste onboarding)
POST /marketplace/dealers/{id}/signKanal dışında alınan sözleşme imzasını kaydetme
POST /marketplace/dealers/{id}/activateSon kapı — aşama COMPLETED, durum ACTIVE

Her geçiş hash-zincirli audit log'a eklenir; herhangi bir satıcının onboarding geçmişinin tamamı yeniden kurulabilir.

Hatalar

DurumAnlamıNe yapmalı
401Onboarding token eksik, geçersiz veya süresi dolmuş (MARKETPLACE_PORTAL_TOKEN_MISSING / MARKETPLACE_PORTAL_TOKEN_INVALID)Yeni token üretin (POST .../onboarding-token) ve tekrar iletin; ilerleme korunur
400marketplace.sub_dealer.not_found — dealer bulunamadı veya size ait değilToken üretiminde kullanılan dealer id'yi doğrulayın
400marketplace.onboarding.invalid_stage_transition — aksiyon güncel aşama için geçerli değil (örn. şartlar girilmeden imza)getApplicationStatus() okuyun ve raporladığı aşamayı render 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.

Sonraki adımlar