DOCS
Panel Giriş Başvurun

Pazaryeri Entegrasyonu

Satıcı Yönetimi

Pazaryerinize bağlı alt satıcıları ekleyin, güncelleyin, sorgulayın ve listeleyin. Her satıcı bir ödeme profiliyle ilişkilendirilir.

Satıcı Tipleri

TipKodAçıklamaKimlik
Gerçek Kişi1Bireysel satıcılar11 haneli TCKN
Şahıs Şirketi2Tek kişilik şirketler11 haneli TCKN
Tüzel Kişi Şirketi3Limited, anonim şirketler10 haneli VKN

CreateSeller

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller

İstek — JSON
{
  "sellerExternalId": "SELLER_001",
  "nameSurname": "Ahmet Yılmaz",
  "sellerType": 1,
  "tckn": "12345678901",
  "vkn": null,
  "birthDate": "15.05.1985",
  "taxOffice": "Kadıköy",
  "contactPerson": "Ahmet Yılmaz",
  "email": "ahmet@example.com",
  "phoneNumber": "5551234567",
  "city": "34",
  "address": "Atatürk Cad. No:123 Kadıköy",
  "iban": "TR330006100519786457841326",
  "accountHolder": "Ahmet Yılmaz",
  "apiSecretKey": "sx_value_here",
  "active": true,
  "mpPaymentProfileExternalId": "PREMIUM_PROFILE"
}
ParametreTipZorunluAçıklama
sellerExternalIdStringTekil dış ID — kendi sisteminizdeki satıcı ID'si
nameSurnameStringAd soyad (gerçek/şahıs) veya şirket adı (tüzel)
sellerTypeInteger1 = Gerçek Kişi, 2 = Şahıs Şirketi, 3 = Tüzel Kişi
tcknString✅*11 haneli TCKN — tip 1 ve 2 için zorunlu
vknString✅*10 haneli VKN — tip 3 için zorunlu
birthDateStringDoğum tarihi (dd.MM.yyyy)
taxOfficeStringVergi dairesi adı
contactPersonStringİrtibat kişisi
emailStringE-posta adresi
phoneNumberStringCep telefonu (5551234567 biçiminde)
cityStringŞehir plaka kodu (34, 06, 35…)
addressStringAdres
ibanStringIBAN (TR ile başlamalı, 26 karakter)
accountHolderStringHesap sahibi adı — nameSurname ile aynı olmalı
apiSecretKeyStringPazaryerine ait SX değeri
activeBooleanSatıcı aktif mi? (varsayılan: true)
mpPaymentProfileExternalIdStringAtanacak ödeme profili ID'si
İstek — Tüzel Kişi Şirketi
{
  "sellerExternalId": "COMPANY_001",
  "nameSurname": "Örnek Teknoloji A.Ş.",
  "sellerType": 3,
  "vkn": "1234567890",
  "taxOffice": "Kozyatağı",
  "contactPerson": "Mehmet Kaya",
  "email": "info@ornekteknoloji.com",
  "phoneNumber": "5551112233",
  "city": "34",
  "address": "Atatürk Mah. Teknoloji Cad. No:100 Kadıköy",
  "iban": "TR450006400000115638974521",
  "accountHolder": "Örnek Teknoloji A.Ş.",
  "apiSecretKey": "sx_value",
  "active": true,
  "mpPaymentProfileExternalId": "PREMIUM_PROFILE"
}
Yanıt — JSON
{
  "data": {
    "sellerExternalId": "SELLER_001",
    "active": true,
    "nameSurname": "Ahmet Yılmaz",
    "sellerType": "Gerçek Kişi",
    "tckn": "12345678901",
    "birthDate": "1985-05-15",
    "vkn": null,
    "contactPerson": "Ahmet Yılmaz",
    "phoneNumber": "5551234567",
    "city": "34",
    "address": "Atatürk Cad. No:123 Kadıköy",
    "iban": "TR330006100519786457841326",
    "accountHolder": "Ahmet Yılmaz",
    "paymentProfile": {
      "profileExternalId": "PREMIUM_PROFILE",
      "marketplaceCode": "MP12345",
      "name": "Premium Satıcı Profili",
      "mpCommissionRate": 5.00,
      "mpCost": 0.50,
      "paymentDay": "per",
      "valorDateCount": 1,
      "active": true,
      "createDate": "2025-01-15T10:30:00Z",
      "updateDate": "2025-01-15T10:30:00Z"
    },
    "marketplaceCode": "MP12345",
    "taxOffice": "Kadıköy",
    "createDate": "2025-01-20T14:25:00Z",
    "updateDate": "2025-01-20T14:25:00Z",
    "email": "ahmet@example.com"
  },
  "success": true,
  "responseCode": "200",
  "responseMessage": "SUCCESS"
}

Yanıtta satıcı, bağlı olduğu paymentProfile nesnesi ve marketplaceCode ile birlikte döner. Tüzel kişi için sellerType: 3 + vkn gönderilir, tckn boş bırakılır.

GetSellerById

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller/get

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller/get

İstek — JSON
{
  "apiSecretKey": "sx_value",
  "sellerExternalId": "SELLER_001"
}

Yanıt, CreateSeller yanıtıyla aynı yapıdadır.

UpdateSeller

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller/update

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller/update

Tüm parametreler gönderilmelidir; sellerType ve tckn/vkn gibi temel kimlik bilgileri değiştirilemez. Güncellenmeyecek alanları mevcut değerleriyle yollayın.

İstek — JSON
{
  "sellerExternalId": "SELLER_001",
  "nameSurname": "Ahmet Yılmaz",
  "sellerType": 1,
  "tckn": "12345678901",
  "birthDate": "15.05.1985",
  "taxOffice": "Kadıköy",
  "contactPerson": "Ahmet Yılmaz",
  "email": "ahmet.yeni@example.com",
  "phoneNumber": "5559998877",
  "city": "34",
  "address": "Yeni Adres Bilgisi",
  "iban": "TR330006100519786457841326",
  "accountHolder": "Ahmet Yılmaz",
  "apiSecretKey": "sx_value",
  "active": true,
  "mpPaymentProfileExternalId": "STANDARD_PROFILE"
}

DeleteSellerById

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller/delete

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller/delete

Bekleyen ödemesi olan satıcılar silinemez ve silme işlemi geri alınamaz. Satıcıyı silmek yerine active: false ile pasifleştirmeyi düşünün.

İstek — JSON
{
  "sellerExternalId": "SELLER_001"
}
Yanıt — JSON
{
  "data": null,
  "success": true,
  "responseCode": "200",
  "responseMessage": "SUCCESS"
}

GetAllSellerByApiSecretKey

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller/sellers

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller/sellers

ParametreTipZorunluAçıklama
apiSecretKeyStringPazaryerine ait SX değeri
activeBooleantrue = sadece aktif, false = sadece pasif, null = tümü
İstek — JSON
{
  "apiSecretKey": "sx_value",
  "active": true
}
Yanıt — JSON
{
  "data": [
    {
      "sellerExternalId": "SELLER_001",
      "active": true,
      "nameSurname": "Ahmet Yılmaz",
      "sellerType": "Gerçek Kişi",
      "tckn": "12345678901",
      "birthDate": "1985-05-15",
      "paymentProfile": {
        "profileExternalId": "PREMIUM_PROFILE",
        "name": "Premium Satıcı Profili",
        "mpCommissionRate": 5.00
      },
      "email": "ahmet@example.com"
    },
    {
      "sellerExternalId": "COMPANY_001",
      "active": true,
      "nameSurname": "Örnek Teknoloji A.Ş.",
      "sellerType": "Tüzel Kişi",
      "vkn": "1234567890",
      "paymentProfile": {
        "profileExternalId": "STANDARD_PROFILE",
        "name": "Standart Profil",
        "mpCommissionRate": 7.00
      },
      "email": "info@ornekteknoloji.com"
    }
  ],
  "success": true,
  "responseCode": "200",
  "responseMessage": "SUCCESS"
}

GetSellersByPaymentProfile

Belirli bir ödeme profiline atanmış satıcıları listeler — örneğin bir profilin komisyonunu değiştirmeden önce hangi satıcıları etkileyeceğini görmek için.

TESTPOST https://apitest.paynkolay.com.tr/marketplace/v1/seller/sellers/byPaymentProfile

PRODPOST https://api.paynkolay.com.tr/marketplace/v1/seller/sellers/byPaymentProfile

İstek — JSON
{
  "apiSecretKey": "sx_value",
  "profileExternalId": "PREMIUM_PROFILE",
  "active": null
}

Geçersiz bir profileExternalId gönderilirse servis HTTP 400 ile status: "REJECTED" içeren hata yanıtı döner.

Göndermeden Önce Doğrulayın

  • IBAN: TR ile başlamalı, 26 karakter olmalı (mod-97 kontrolü önerilir)
  • TCKN: 11 hane, ilk hane 0 olamaz (checksum algoritmasıyla doğrulanabilir)
  • VKN: 10 hane (checksum algoritmasıyla doğrulanabilir)
IBAN Doğrulama — JavaScript (mod-97)
function validateIBAN(iban) {
  // TR ile başlamalı ve 26 karakter olmalı
  if (!iban.startsWith('TR') || iban.length !== 26) {
    throw new Error('Geçersiz IBAN formatı');
  }

  // IBAN mod-97 kontrolü
  const rearranged = iban.substring(4) + iban.substring(0, 4);
  const numericIBAN = rearranged.replace(/[A-Z]/g, (char) =>
    char.charCodeAt(0) - 55
  );

  // Büyük sayılarla çalışmak için
  const remainder = BigInt(numericIBAN) % 97n;

  if (remainder !== 1n) {
    throw new Error('IBAN doğrulama hatası');
  }

  return true;
}
TCKN Doğrulama — JavaScript
function validateTCKN(tckn) {
  if (tckn.length !== 11) return false;

  const digits = tckn.split('').map(Number);

  // İlk hane 0 olamaz
  if (digits[0] === 0) return false;

  // 10. hane kontrolü
  const sum10 = (
    (digits[0] + digits[2] + digits[4] + digits[6] + digits[8]) * 7 -
    (digits[1] + digits[3] + digits[5] + digits[7])
  ) % 10;

  if (sum10 !== digits[9]) return false;

  // 11. hane kontrolü
  const sum11 = digits.slice(0, 10).reduce((a, b) => a + b) % 10;

  return sum11 === digits[10];
}
VKN Doğrulama — JavaScript
function validateVKN(vkn) {
  if (vkn.length !== 10) return false;

  const v = vkn.split('').map(Number);
  let sum = 0;

  for (let i = 0; i < 9; i++) {
    let digit = (v[i] + (9 - i)) % 10;
    sum += (digit * Math.pow(2, 9 - i)) % 9;
    if (digit !== 0 && (digit * Math.pow(2, 9 - i)) % 9 === 0) sum += 9;
  }

  return (10 - (sum % 10)) % 10 === v[9];
}

Uçtan Uca Örnek

Satıcı servislerini tek sınıfta toplayan çalışır Node.js örneği:

SellerManager — Node.js (axios)
const axios = require('axios');

class SellerManager {
  constructor(apiSecretKey, baseURL) {
    this.apiSecretKey = apiSecretKey;
    this.baseURL = baseURL;
  }

  async createSeller(sellerData) {
    const response = await axios.post(
      `${this.baseURL}/seller`,
      {
        ...sellerData,
        apiSecretKey: this.apiSecretKey
      }
    );
    return response.data;
  }

  async getSeller(sellerExternalId) {
    const response = await axios.post(
      `${this.baseURL}/seller/get`,
      {
        apiSecretKey: this.apiSecretKey,
        sellerExternalId
      }
    );
    return response.data;
  }

  async updateSeller(sellerData) {
    const response = await axios.post(
      `${this.baseURL}/seller/update`,
      {
        ...sellerData,
        apiSecretKey: this.apiSecretKey
      }
    );
    return response.data;
  }

  async deleteSeller(sellerExternalId) {
    const response = await axios.post(
      `${this.baseURL}/seller/delete`,
      { sellerExternalId }
    );
    return response.data;
  }

  async listSellers(activeOnly = null) {
    const response = await axios.post(
      `${this.baseURL}/seller/sellers`,
      {
        apiSecretKey: this.apiSecretKey,
        active: activeOnly
      }
    );
    return response.data;
  }
}

// Kullanım
const manager = new SellerManager(
  process.env.API_SECRET_KEY,
  'https://apitest.paynkolay.com.tr/marketplace/v1'
);

// Satıcı oluştur
const newSeller = await manager.createSeller({
  sellerExternalId: "SELLER_123",
  nameSurname: "Test Satıcı",
  sellerType: 1,
  tckn: "12345678901",
  iban: "TR330006100519786457841326",
  accountHolder: "Test Satıcı",
  contactPerson: "Test Satıcı",
  mpPaymentProfileExternalId: "PREMIUM_PROFILE",
  active: true
});

Son güncelleme: 10 Eylül 2026

v1 · Versiyonlar