DOCS Panel Giriş Başvurun

API (3D · NON3D)

3DS

3D Secure: kart sahibinin kendi bankası tarafından doğrulandığı güvenli ödeme akışı — başlatmadan tamamlamaya.

Neden 3DS?

  • Doğrulama bankada yapıldığı için ters ibraz sorumluluğu bankaya geçer.
  • Sahtecilik riski belirgin şekilde azalır.
  • Bazı kartlar ve bankalar 3D doğrulamayı zorunlu tutar.

Akış

Müşteri (Tarayıcı)SunucunuzPaynkolayBanka (3D)Kart bilgileri + ödeme isteği1POST /Vpos/v1/Paymentuse3D=true · hashDatav223D doğrulama formu (HTML)3Formu tarayıcıya bas4SMS / OTP onayı5Sonuç successUrl / failUrl'e POST6hashDataV2 + Altın Kural(RESPONSE_CODE=2, AUTH_CODE)7Sonuç sayfası8

2 aşamalı moddaysanız 6. adımdan sonra ödemeyi CompletePayment ile siz tamamlarsınız.

  1. 1Ödeme isteği/Vpos/v1/Payment ucuna use3D=true ile istek gönderilir.
  2. 2Banka doğrulamasıMüşteri, bankasının 3D Secure sayfasına yönlendirilir ve SMS/şifre ile doğrulanır.
  3. 3Sonuç dönüşüİmzalı sonuç successUrl / failUrl adresinize POST edilir; hash doğrulanır.
  4. 4Tamamlama (2 aşamalıysa)AUTOCOMPLETE kapalıysa CompletePayment çağrısıyla provizyon alınır.

Tek Aşamalı mı, 2 Aşamalı mı?

Tek Aşamalı
  • Doğrulama sonrası provizyon otomatik alınır
  • Ek çağrı gerekmez — en yaygın kullanım
2 Aşamalı (AUTOCOMPLETE=false)
  • Doğrulama sonrası durum: TAMAMLANMAMIŞ İŞLEM
  • Provizyon, CompletePayment çağrısıyla sizin kontrolünüzde alınır

Adımlar

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

3DS Başlatma

Başlatma isteği Non-3DS sayfasındaki istekle birebir aynıdır — tek fark use3D=true gönderilmesidir. Müşteri bankasının doğrulama sayfasına yönlendirilir; imzalı sonuç successUrl / failUrl adresinize POST edilir.

Fark — form-data
use3D=true   # diğer tüm alanlar NON-3DS isteğiyle aynı

Ödeme Tamamlama — 2 Aşamalı 3D

2 Aşamalı 3D Secure kullanılıyorsa (AUTOCOMPLETE=false) otomatik provizyon devre dışıdır: doğrulama adımından sonra ödemenin durumu TAMAMLANMAMIŞ İŞLEM olur. Bu durumdaki ödemeyi provizyona almak için CompletePayment çağrısı yaparsınız; provizyon, daha önce alınmış doğrulama verileriyle gerçekleştirilir.

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

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

ParametreTipZorunluAçıklama
SxstringSize verilen sx değeriniz
ReferenceCodestringTamamlanacak işlemin referans kodu
Örnek İstek — cURL
curl -X POST "https://paynkolaytest.nkolayislem.com.tr/Vpos/v1/CompletePayment" \
  -d "Sx=118591467|W8a1JLU8A5Cw…FbOO5A==" \
  -d "ReferenceCode=IKSIRPF142277040"

Yanıtlar

Başarılı Yanıt — 200
{
  "RESPONSE_CODE": 2,
  "RESPONSE_DATA": "İşlem Başarılı.",
  "REFERENCE_CODE": "IKSIRPF142277040",
  "USE_3D": true,
  "AUTH_CODE": "345344",
  "CLIENT_REFERENCE_CODE": "24809740|988922",
  "TRANSACTION_AMOUNT": 1,
  "AUTHORIZATION_AMOUNT": 1,
  "INSTALLMENT": 1,
  "RND": "1645700316156",
  "hashDataV2": "lunnRyNfDu6pdpNjjlFrlATE4PjUluM8…"
}
Hatalı Yanıt — ReferenceCode boş
{
  "RESPONSE_CODE": 0,
  "RESPONSE_DATA": "referenceCode boş veya null set edilemez"
}

Son güncelleme: 3 Eylül 2026

v6 · Versiyonlar