Ö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
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| sx | string | ✅ | Size verilen satış (sx) değeriniz |
| clientRefCode | string | ✅ | Sizin ürettiğiniz referans numarası — her işlem için benzersiz olmalı; Türkçe karakter içermemeli, en fazla 1024 karakter |
| amount | decimal | ✅ | Tutar — kuruş ayıracı nokta (ör. 249.90) |
| successUrl | string | ✅ | Başarılı sonucun POST edileceği SSL'li adres |
| failUrl | string | ✅ | Başarısız sonucun POST edileceği SSL'li adres |
| use3D | boolean | ✅ | true = 3DS akışı, false = Non-3DS akışı |
| cardNumber | string | ✅ | Kart numarası |
| cardHolderName | string | ✅ | Kart üzerindeki isim |
| month / year | string | ✅ | Son kullanma ayı (12) ve yılı (2026) |
| cvv | string | ✅ | Kartın güvenlik kodu |
| installmentNo | integer | — | Taksit sayısı; tek çekim için 1 |
| transactionType | string | ✅ | SALES (satış) veya PRESALES (ön provizyon) |
| environment | string | ✅ | API gönderilmelidir |
| currencyNumber | string | ✅ | Para birimi — TL için 949 |
| cardHolderIP | string | ✅ | Müşterinin çıkış IP adresi (IPv4/IPv6) |
| rnd | string | ✅ | İşlem zamanı, Türkiye saatiyle (UTC+3) — ör. 03-09-2026 14:25:11 |
| hashDatav2 | string | ✅ | SHA-512 + Base64 istek imzası (yukarıda) |
| MerchantCustomerNo | string | — | Temsilci veya alt üye işyeri numaranız |
| csCustomerKey | string | — | Kart saklanacaksa müşteri anahtarı (TCKN/telefon) |
| csAutoSave | boolean | — | true ise ve yetki varsa kart kaydedilir |
Örnek İstek
# 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.
{
"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…"
}{
"RESPONSE_CODE": 0,
"RESPONSE_DATA": "Girdiğiniz bilgileri kontrol ediniz."
}Son güncelleme: 10 Eylül 2026