DOCS Panel Giriş Başvurun

API (3D · NON3D)

Non-3DS

Banka doğrulama adımı olmadan, tek istekte sonuçlanan ödeme akışı: alanları hazırlayın, imzalayın, gönderin.

Genel Bakış

use3D=false gönderildiğinde müşteri hiçbir doğrulama sayfasına yönlendirilmez; provizyon aynı istek içinde alınır ve sonucu anında JSON olarak alırsınız. Kayıtlı kartla tahsilat, talimatlı ödemeler ve hızlı akış gereken senaryolar için idealdir.

3D'siz işlemlerde ters ibraz (chargeback) sorumluluğu üye işyerindedir ve bu akış için üye işyerinizde NON-3DS yetkisinin tanımlı olması gerekir. Emin değilseniz destek ekibine danışın.

Akış

  1. 1İsteği gönderinKart bilgileri ve hash ile /Vpos/v1/Payment ucuna use3D=false POST edilir.
  2. 2Provizyon alınırPaynkolay işlemi bankaya iletir; doğrulama adımı yoktur.
  3. 3Sonucu işleyinYanıt JSON'ındaki RESPONSE_CODE ve hash doğrulamasıyla siparişi sonuçlandırırsınız.

Adımlar

Bu iki adımın ayrıntılı sayfaları bir sonraki aşamada eklenecek; aşağıdaki özet, akışın tamamını uçtan uca gösterir.

Uç Nokta

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

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

İ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');
}

Ö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…

Parametreler

ParametreTipZorunluAçıklama
sxstringSize verilen satış (sx) değeriniz
clientRefCodestringSizin ürettiğiniz tekil referans numarası
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 gönderilmelidir
environmentstringAPI gönderilmelidir
currencyNumberstringPara birimi — TL için 949
cardHolderIPstringMüşterinin çıkış IP adresi (IPv4/IPv6)
rndstringİşlem zamanı — ör. 03-09-2026 14:25:11
hashDatav2stringSHA-512 + Base64 istek imzası (aşağıda)
csCustomerKeystringKart saklanacaksa müşteri anahtarı (TCKN/telefon)
csAutoSavebooleantrue ise ve yetki varsa kart kaydedilir

Başarılı Yanıt

Yanıttaki hashDataV2 imzasını doğrulamadan siparişi onaylamayın.

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…"
}
Bu Bölümde Tahsilat Metodu

Son güncelleme: 3 Eylül 2026

v7 · Versiyonlar