Skip to main content
3D Secure ödeme sürecinde, backend tarafından GetThreeDSession servisi çağrılarak bir threeDSessionId oluşturulur. Bu değer client tarafa iletilir ve kullanıcı, banka 3D doğrulama sayfasına browser üzerinden yönlendirilir. Bu yapı sayesinde 3D Secure doğrulama süreci kullanıcı tarafında ilerlerken, backend sistem işlem durumunu sessionId üzerinden takip edebilir.

GetThreeDSession

3D Secure ile provizyon işlemi başlatılmadan önce, işlem 3D Secure doğrulama yöntemiyle gerçekleştirilecekse cardToken oluşturulduktan sonra bu servis çağrılarak bir sessionId üretilmelidir. Bu servis application/json içerik tipi ile çalışır ve girdi parametreleri Tablo 5.9’da detaylandırılmıştır. İstek Tipi: application/json GetThreeDSession Servisi Girdi Parametreleri
Parametre AdıVeri TipiAçıklamaZorunluluk
amountnumberİşlem tutarıEvet
pointAmountnumberİşlemde kullanılacak puan tutarıHayır
cardTokenstringOluşturulan token bilgisiEvet
currencystringİşleme ait para birimi (default: TRY)Evet
paymentTypestringİşlem tipi (Auth / preAuth / postAuth)Evet
installmentCountintegerİşleme ait taksit değeriHayır
languageCodestringCevabın alınacağı dil bilgisi (default: TR)Hayır
merchantCustomerEmailstringÜye iş yeri müşterisinin email bilgisiHayır
merchantCustomerIdentityNumberstringÜye iş yeri müşterisinin kimlik bilgisiHayır
merchantCustomerIpstringÜye iş yeri müşterisinin IP bilgisiHayır
merchantCustomerPhoneCodestringÜye iş yeri müşterisinin telefon koduHayır
merchantCustomerPhoneNumberstringÜye iş yeri müşterisinin telefon numarasıHayır
callbackUrlstringBankanın döndüğü URL bilgisiHayır
successUrlstringBankanın başarılı işlem için döndüğü URL bilgisiHayır
failUrlstringBankanın hatalı durumlar için döndüğü URL bilgisiHayır

GetThreeDSession Servisi Örnek Request

{
  "amount": 30,
  "pointAmount": 0,
  "cardToken": "{{cardToken}}",
  "currency": "TRY",
  "paymentType": "Auth",
  "installmentCount": 0,
  "languageCode": "TR",
  "merchantCustomerEmail": "[email protected]",
  "merchantCustomerIdentityNumber": "12345678922",
  "merchantCustomerIp": "1.11.111",
  "merchantCustomerPhoneCode": "90",
  "merchantCustomerPhoneNumber": "5308886699",
  "callbackUrl": "callbacktest.com",
  "successUrl": "successtest.com",
  "failUrl": "failtest.com"
}

GetThreeDSession Servisi Çıktı Parametreleri**

Parametre AdıVeri TipiAçıklamaZorunluluk
threeDSessionIdstring3D Secure işlem sürecini başlatmak için gerekli değerEvet
conversationIdstringÜye iş yeri benzersiz değeriEvet
isSucceededboolean (true/false)İşlem durumuEvet
errorCodestringHata koduEvet
errorMessagestringHata mesajıEvet
extraParametersarray[object]Ek parametre alanıHayır
acquirerBankCodestringÖdeme bankası bilgisiHayır
issuerBankCodestringKart bankası bilgisiHayır
reconciliationDatedateİşlemin tamamlanma tarihiHayır

GetThreeDSession Servisi Örnek Response

{
  "threeDSessionId": "e90c0510-3b26-4d15-b5bd-2f7ffc188c9b",
  "extraParameters": null,
  "acquirerBankCode": "12",
  "issuerBankCode": null,
  "reconciliationDate": "20251205165939280",
  "isSucceeded": true,
  "errorCode": "",
  "errorMessage": "",
  "responseHeader": {
    "conversationId": "1094389093",
    "responseDateTime": "20251205165939314",
    "responseCode": "0",
    "responseDescription": "Success",
    "transactionId": "00000000-0000-0000-0000-000000000000",
    "requestId": "cddb9f1a-62e9-44c0-95b4-55488c223138",
    "processingTime": 901,
    "apiVersion": null
  }
}

GetThreeDSessionResult

GetThreeDSessionResult, 3D Secure doğrulama sürecinin sonucunu sorgulamak için kullanılır. Doğrulamanın başarılı olduğu (isSucceed = true ve currentStep = VerificationFinished) tespit edildikten sonra, oluşturulan sessionId provizyon isteğine eklenerek ödeme servisi çağrılır. Bu servis application/json içerik tipi ile çalışır ve girdi parametreleri Tablo 5.13’te belirtilmiştir. İstek Tipi: application/json GetThreeDSessionResult Servisi Girdi Parametreleri
Parametre AdıVeri TipiAçıklamaZorunluluk
threeDSessionIdstring3D Secure işlem sürecini başlatmak için gerekli değerEvet
languageCodestringCevabın alınacağı dil bilgisi (default: TR)Hayır
merchantCustomerEmailstringÜye iş yeri müşteri email bilgisiHayır
merchantCustomerIdentityNumberstringÜye iş yeri müşteri kimlik bilgisiHayır
merchantCustomerIpstringÜye iş yeri müşteri IP bilgisiHayır
merchantCustomerPhoneCodestringÜye iş yeri müşteri telefon kodu bilgisiHayır
merchantCustomerPhoneNumberstringÜye iş yeri müşteri telefon numarası bilgisiHayır

GetThreeDSessionResult Servisi Örnek Request

{
  "threeDSessionId": "{{threeDSessionId}}",
  "languageCode": "TR",
  "merchantCustomerEmail": "[email protected]",
  "merchantCustomerIdentityNumber": "20558899666",
  "merchantCustomerIp": "123.123.11.11",
  "merchantCustomerPhoneCode": "90",
  "merchantCustomerPhoneNumber": "5306689955"
}

Tablo 5.15. GetThreeDSessionResult Servisi Çıktı Parametreleri

Parametre AdıVeri TipiAçıklamaZorunluluk
conversationIdstringÜye iş yeri benzersiz değeriEvet
isSucceededboolean (true/false)İşlem durumuEvet
errorCodestringHata koduEvet
errorMessagestringHata mesajıEvet
currentStepstring3D doğrulama işleminin adımı (0, 1, 2, 3)Hayır
mdStatusstring3D doğrulama sonucunda bankadan dönen değer (0–9)Hayır
mdErrorMessagestring3D doğrulama sonucunda bankadan dönen hata mesajıHayır
halfSecureboolean (true/false)İşlemin half secure gerçekleşme bilgisiHayır
approvalCodestringBankadan dönen onay kodu bilgisiHayır
threeDResultstringTrue ise 0, false ise 1Hayır
threeDResultDescriptionstring3D işlem sonucunun açıklamasıHayır

ablo 5.16. GetThreeDSessionResult Servisi Örnek Response

{
  "currentStep": "SessionIdRequested",
  "mdStatus": null,
  "mdErrorMessage": null,
  "halfSecure": false,
  "approvalCode": "",
  "threeDResult": "0",
  "threeDResultDescription": "3D Doğrulama başarılı.",
  "isSucceeded": true,
  "errorCode": null,
  "errorMessage": null,
  "responseHeader": {
    "conversationId": "1094389093",
    "responseDateTime": "20251205170013633",
    "responseCode": "0",
    "responseDescription": "Success",
    "transactionId": "00000000-0000-0000-0000-000000000000",
    "requestId": "d32a1e94-e29a-43da-85b3-3c3f8e54a8b0",
    "processingTime": 172,
    "apiVersion": null
  }
}

Tablo 5.17. mdStatus Açıklamaları

mdStatus DeğeriAçıklama
1Doğrulanmış işlem (Full 3D)
2, 3, 4Kart kayıtlı değil (Half 3D)
5, 6, 7, 8, 9Geçerli doğrulama yok veya sistem hatası
0Doğrulama başarısız

Tablo 5.18. currentStep Açıklamaları

currentStepAçıklama
SessionIdRequestedthreeDSessionId üretilmesinin ardından oluşan statüdür.
VerificationStartedinit3ds servisi çağrıldıktan sonra doğrulama işleminin başlatıldığını ifade eder.
VerificationFinishedDoğrulama işleminin tamamlandığını ifade eder.
ProvisionCompletedDoğrulama sonrası provizyon servisinin çağrılmasıyla ödemenin tamamlandığını ifade eder.

Init3ds

Init3ds, 3D Secure doğrulama sürecini başlatmak için kullanılan servistir ve HTTP Form POST yöntemiyle çalışır. Bu serviste, kimlik doğrulama bilgileri diğer servislerden farklı olarak header yerine form-data formatında gönderilmelidir. ** İstek Tipi:** multipart/form-data

Tablo 5.19. init3ds Servisi Girdi Parametreleri

Parametre AdıVeri TipiAçıklamaZorunluluk
threeDSessionIdstring3D Secure işlem sürecini başlatmak için gerekli değerEvet
callbackUrlstring3D doğrulama işleminin sonuçlandığı URL bilgisiEvet
languageCodestringCevabın alınacağı dil bilgisi (default: TR)Hayır
clientIpAddressstringÜye iş yeri IP adresiEvet
publicKeystringÜye iş yeri açık anahtarıEvet
noncestringZaman damgasıEvet
signaturestringKimlik anahtar değeriEvet
conversationIdstringÜye iş yeri benzersiz değeriEvet
merchantNumberstringÜye iş yeri numarasıEvet

Tablo 5.20. Init3ds Servisi Örnek Request (form-data)

```text form-data theme="dracula"
ThreeDSessionId={{threeDSessionId}}
CallbackUrl=https://www.google.com
LanguageCode=TR
ClientIpAddress=192.1.1.1
PublicKey={{publicKey}}
Nonce={{nonce}}
Signature={{signature}}
ConversationId={{conversationId}}
MerchantNumber={{merchantNumber}}
Tablo 5.21. Init3ds Servisi Çıktı Parametreleri
Parametre AdıVeri TipiAçıklamaZorunluluk
conversationIdstringÜye iş yeri benzersiz değeriEvet
isSucceededboolean (true/false)İşlem durumuEvet
errorCodestringHata koduEvet
errorMessagestringHata mesajıEvet
htmlContentstringKullanıcının kart bankasının 3D sayfasına yönlendirilmesi için kullanılacak HTMLEvet

Tablo 5.22. Init3ds Servisi Örnek Response

{
"isSucceed": true,
"errorCode": "string",
"errorMessage": "string",
"responseHeader": {
  "conversationId": "string",
  "responseDateTime": "string",
  "responseCode": "string",
  "responseDescription": "string",
  "transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "requestId": "string",
  "processingTime": 0,
  "apiVersion": "string"
},
"htmlContent": "string"
}