DOCS
Panel Giriş Başvurun

Non-3DS

Ödeme Oluşturma

Kart bilgileriyle tek istekte tahsilat: /Vpos/v1/Payment ucuna use3D=false ile imzalı isteği gönderir, sonucu aynı yanıtın içinde JSON olarak işlersiniz.

Uç Nokta

Test POST https://paynkolaytest.nkolayislem.com.tr/Vpos/v1/Payment

Canlı POST https://paynkolay.nkolayislem.com.tr/Vpos/v1/Payment

Gövde application/x-www-form-urlencoded

Canlı ortama geçerken: canlı uç yalnızca sunucu tarafından yapılan istekleri kabul eder — localhost üzerinden gönderilen istekler güvenlik hatasıyla reddedilir. Bağlantı için en az TLS 1.2 gerekir.

İstek İmzası (hashDatav2)

Alanlar | ile birleştirilir, SHA-512 ile özetlenip Base64'e çevrilir. İmza her zaman sunucu tarafında üretilir:

// customerKey kart saklanmıyorsa boş string olarak hash'e girer
$hashstr = $sx."|".$clientRefCode."|".$amount."|".$successUrl."|".$failUrl."|".$rnd."|".$customerKey."|".$merchantSecretKey;
$hashDatav2 = base64_encode(hash("sha512", $hashstr, true));
const crypto = require('crypto');

// customerKey kart saklanmıyorsa boş string girer — borusu yine de korunur
function hashDatav2(sx, clientRefCode, amount, successUrl, failUrl, rnd, customerKey, merchantSecretKey) {
  const raw = [sx, clientRefCode, amount, successUrl, failUrl, rnd, customerKey, merchantSecretKey].join('|');

  return crypto.createHash('sha512').update(raw, 'utf8').digest('base64');
}

Parametreler

ParametreTipZorunluAçıklama
sxstringSize verilen satış (sx) değeriniz
clientRefCodestringSizin ürettiğiniz referans numarası — her işlem için benzersiz olmalı; Türkçe karakter içermemeli, en fazla 1024 karakter
amountdecimalTutar — kuruş ayıracı nokta (ör. 249.90)
successUrlstringBaşarılı sonucun POST edileceği SSL'li adres
failUrlstringBaşarısız sonucun POST edileceği SSL'li adres
use3Dbooleantrue = 3DS akışı, false = Non-3DS akışı
cardNumberstringKart numarası
cardHolderNamestringKart üzerindeki isim
month / yearstringSon kullanma ayı (12) ve yılı (2026)
cvvstringKartın güvenlik kodu
installmentNointegerTaksit sayısı; tek çekim için 1
transactionTypestringSALES (satış) veya PRESALES (ön provizyon)
environmentstringAPI gönderilmelidir
currencyNumberstringPara birimi — TL için 949
cardHolderIPstringMüşterinin çıkış IP adresi (IPv4/IPv6)
rndstringİşlem zamanı, Türkiye saatiyle (UTC+3) — ör. 03-09-2026 14:25:11
hashDatav2stringSHA-512 + Base64 istek imzası (yukarıda)
MerchantCustomerNostringTemsilci veya alt üye işyeri numaranız
csCustomerKeystringKart saklanacaksa müşteri anahtarı (TCKN/telefon)
csAutoSavebooleantrue ise ve yetki varsa kart kaydedilir

Örnek İstek

İstek — form-data
# POST https://paynkolaytest.nkolayislem.com.tr/Vpos/v1/Payment (form-data)
sx=118591467|W8a1JLU8A5Cw…FbOO5A==
clientRefCode=SIP-2026-000123
amount=249.90
successUrl=https://magaza.com/odeme/basarili
failUrl=https://magaza.com/odeme/hata
use3D=false
cardNumber=4546711234567894
cardHolderName=Ayşe Yılmaz
month=12  year=2026  cvv=000
installmentNo=1
transactionType=SALES  environment=API  currencyNumber=949
cardHolderIP=85.100.20.15
rnd=03-09-2026 14:25:11
hashDatav2=lunnRyNfDu6pdpNjjlFrlATE4Pj…

Yanıt

Yanıttaki hashDataV2 imzasını doğrulamadan siparişi onaylamayın; başarı kuralları için Altın Kural'a bakın.

Başarılı Yanıt — 200
{
  "RESPONSE_CODE": 2,
  "RESPONSE_DATA": "İşlem Başarılı.",
  "REFERENCE_CODE": "IKSIRPF142277040",
  "CLIENT_REFERENCE_CODE": "SIP-2026-000123",
  "AUTH_CODE": "345344",
  "USE_3D": false,
  "TRANSACTION_AMOUNT": 249.90,
  "INSTALLMENT": 1,
  "RND": "1645700316156",
  "hashDataV2": "lunnRyNfDu6pdpNjjlFrlATE…"
}
Hatalı Yanıt — örnek
{
  "RESPONSE_CODE": 0,
  "RESPONSE_DATA": "Girdiğiniz bilgileri kontrol ediniz."
}

Son güncelleme: 10 Eylül 2026

v8 · Versiyonlar