Ana içeriğe geç

Bayi Ödeme Başlatma ve Tamamlama

  • Endpoint: /vpws/payment
  • HTTP Method: POST
  • Request Content-Type: application/json
  • Response Content-Type: application/json
  • Yetkilendirme: Geçerli AccessToken zorunludur.
    (Bkz: 2. Kimlik Doğrulama – AccessToken Alınması)

Açıklama

Bu servis, bayiye ait POS üzerinden kartlı ödeme işlemini başlatır.

Servis

  • 3D'li (OTP doğrulamalı)
  • 3D'siz (OTP doğrulama olmadan doğrudan)

ödeme akışlarını destekler.

VPWS kapsamında işlem, firma adına değil, AccessToken'a bağlı bayi kimliği altında gerçekleştirilir.

Not: Bayi yalnızca kendisine tanımlı tenantPosId değerleri ile işlem başlatabilir.

Header Bilgileri

Header AdıZorunluAçıklama
AuthorizationEvetBearer {AccessToken}
Content-TypeEvetapplication/json

Request Body

Üst Düzey Alanlar

AlanTipZorunluAçıklama
amountnumberEvetİşlem tutarı
installmentintEvetTaksit sayısı (tek çekim için 1)
tenantPosIdstring (GUID)EvetKullanılacak POS kimliği
currencyCodestringEvetISO 4217 para birimi kodu
use3DbooleanEvet3D Secure kullanılsın mı
returnUrlstring3D'de EvetOTP sonrası yönlendirme adresi
clientOrderReferenceCodestringHayırBayi sipariş referansı (idempotency önerilir)
contactobjectEvetKart sahibi bilgileri
cardobjectEvetKart bilgileri

contact Alanı

AlanTipZorunluAçıklama
namestringEvetAd
surnamestringEvetSoyad
emailstringEvetE-posta
tcknstringHayırTCKN (regülasyona bağlı)
descriptionstringHayırAçıklama
phonestringHayırGSM

card Alanı

AlanTipZorunluAçıklama
cardNumberstringEvetKart numarası (PAN)
cardHolderNamestringEvetKart üzerindeki ad-soyad
cvvstringEvetGüvenlik kodu
expMonthintEvetSon kullanma ayı (1–12)
expYearintEvetSon kullanma yılı (YYYY)
{
"contact": {
"name": "test",
"surname": "soyadı",
"email": "[email protected]",
"tckn": "23671373136",
"description": "est",
"phone": "5002583519"
},
"card": {
"cardNumber": "4155650100416111",
"cardHolderName": "Emre Çağlar",
"cvv": "000",
"expMonth": 12,
"expYear": 2030
},
"amount": 250,
"installment": 1,
"tenantPosId": "03cbbf3e-ff9e-ee11-98ef-005056b0d2e5",
"currencyCode": "TRY",
"use3D": true,
"clientOrderReferenceCode": "46548545646565",
"returnUrl": "https://google.com"
}

Response Yapısı

Data Alanları

AlanTipAçıklama
redirectUrlstring/null3D'li akışta OTP sayfası URL'si
referenceNumberstringSistem referans numarası
transactionStatusIdintİşlem durum kodu
errorMessagestring/nullHata mesajı
errorCodestring/nullHata kodu
transactionIdstring (GUID)İşlem kimliği

Akış Senaryoları

3D'li Ödeme (use3D: true)

  1. /vpws/payment çağrılır.
  2. redirectUrl döner.
  3. Kullanıcı bankanın OTP sayfasına yönlenir.
  4. OTP sonucu sisteme iletilir.
  5. İşlem otomatik finalize edilir (AutoCommit).

3D'siz Ödeme (use3D: false)

  1. Banka provizyonu anında alınır.
  2. redirectUrl = null döner.
  3. İşlem anında final duruma geçer.

Durum Kodları (transactionStatusId)

KodAçıklama
1Başarılı
2Başarısız
3İşlemde / Beklemede

Örnek cURL

curl --location 'https://pgw.netahsilatdemo.com/vpws/payment' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data '{ ... }'

Notlar & En İyi Uygulamalar

  • Bayi yalnızca kendisine tanımlı tenantPosId ile işlem yapabilir.

  • 3D akışında returnUrl zorunludur.

  • Idempotency için clientOrderReferenceCode benzersiz olmalıdır.

  • Kart verileri loglanmamalıdır (PCI-DSS).

  • İşlem sonucu kritik ise 3.4 – İşlem Sorgulama servisi ile doğrulama yapılmalıdır.

  • BIN bazlı doğrulama (3.2) ödeme öncesi önerilir.