Ana içeriğe geç

POST /validate/self-auth — Self Auth Doğrulama (Terminal Tarafından Çağrılır)

📋 Genel Bilgi

Müşteri, mobil veya web uygulaması üzerinden anlık bir QR kod veya PIN kodu oluşturur. Bu kodu mağazadaki kasiyer terminaline gösterir. Terminal bu token'ı doğrulayarak müşterinin bilgilerini ve onay durumlarını alır.

⚠️ Önemli: Bu endpoint'i terminal/kasiyer tarafı çağırır, müşteri tarafı değil. Müşteri önce mobil/web uygulamasından bir auth code üretir (QR veya PIN), sonra terminal bu kodu doğrular.

Base URL: {{url}}/validate/self-auth Method: POST Content-Type: application/json


🔐 Headers

HeaderValue
AuthorizationBearer {{masked_jwt_1}}
Content-Typeapplication/json

📥 Request Body

{
"token": "{{auth_code}}",
"terminal_code": "TERM-003",
"store_code": "mobildev-mq"
}

Parametreler

AlanTipZorunluAçıklamaÖrnek
tokenstringMüşterinin mobil/web uygulamasından ürettiği anlık auth code (QR/PIN)"{{auth_code}}"
terminal_codestringİşlemi gerçekleştiren terminal kodu"TERM-003"
store_codestringMağaza kodu"mobildev-mq"

🔄 Akış Diyagramı (Self Auth)

Adım Açıklamaları:

AdımTarafİşlem
1Müşteri → Mobil/WebUygulama üzerinden anlık auth code (QR veya PIN) üretir
2Müşteri ← Mobil/WebÜretilen QR/PIN müşteriye gösterilir
3Terminal → APIMağaza terminali, auth code'u doğrulamak için /validate/self-auth endpoint'ini çağırır
4API → TerminalDoğrulama sonucu (müşteri bilgisi, onay durumları) döner
5Terminal ← MüşteriSonuç müşteriye gösterilir veya işlem devam eder

✅ Response — 200 OK

{
"token": "{{auth_code}}",
"success": true,
"msisdn": "{{customer_msisdn}}",
"ip": "127.0.0.1",
"deviceInfo": {
"success": true,
"context": {
"requestId": "3e8ad7b5-60f4-4a69-9b70-a396616e8f85",
"timestamp": "2026-07-20T09:05:00.245Z",
"ip": "127.0.0.1",
"deviceContext": {
"deviceName": "Desktop Computer",
"deviceVendor": "",
"deviceModel": "",
"deviceType": "desktop",
"osName": "Windows",
"osVersion": "10",
"browserName": "Chrome",
"browserVersion": "150.0.0.0",
"cpuArchitecture": "amd64"
},
"ipContext": {
"country": null,
"countryCode": null,
"city": null,
"region": null,
"regionCode": null,
"latitude": null,
"longitude": null,
"timezone": null,
"postalCode": null,
"accuracyRadius": null
}
},
"parsedAt": "2026-07-20T09:05:00.245Z"
},
"ivt": {
"etk": {
"sms": 1,
"call": 1,
"email": 1,
"share": 1
},
"kvkk": {
"process": 1,
"share": 1,
"international": 1
},
"loyalty": -1,
"firstName": "{{customer_firstName}}",
"lastName": "{{customer_lastName}}",
"email": "{{customer_email}}"
}
}

Response Alanları

AlanTipAçıklama
tokenstringDoğrulanmış token
successbooleanDoğrulama sonucu
msisdnstringMüşteri telefon numarası
ipstringİstemci IP adresi (localhost: 127.0.0.1)
deviceInfo.contextobjectCihaz ve IP detayları
ivt.etkobjectEK onay durumları
ivt.kvkkobjectKVKK onayları
ivt.loyaltyintegerSadakat puanı
ivt.firstNamestringMüşteri adı
ivt.lastNamestringMüşteri soyadı
ivt.emailstringMüşteri e-posta

❌ Error Responses

Tüm hata yanıtları aşağıdaki formatta döner:

{
"Response": {
"code": 5005,
"description": "Token cannot be empty"
},
"Success": false
}
HTTPcodeEnumdescriptionNe Zaman Oluşur
4005005SelfAuthValidateTokenEmptyToken cannot be emptytoken alanı boş gönderildi
4045002ValidateCodeNotFoundVerification code not foundGönderilen token'a karşılık gelen aktif bir kayıt bulunamadı (exists(token) null döndü — hiç var olmamış ya da zaten kullanılmış olabilir)
4105007SelfAuthTokenExpiredToken has expiredToken bulundu ama expiredAt süresi geçmiş
4045003ValidateUserNotFoundUser not found for verificationToken'a bağlı userId'ye karşılık gelen bir kullanıcı kaydı bulunamadı
5005006SelfAuthCustomerCreateProblemA problem occurred while creating the customerKullanıcı bulundu ama customerId oluşturma işlemi başarısız oldu (0 döndü)

Örnek — 400 Token Empty

{
"Response": {
"code": 5005,
"description": "Token cannot be empty"
},
"Success": false
}

Örnek — 404 Token Not Found

{
"Response": {
"code": 5002,
"description": "Verification code not found"
},
"Success": false
}

Örnek — 410 Token Expired

{
"Response": {
"code": 5007,
"description": "Token has expired"
},
"Success": false
}

Örnek — 404 User Not Found

{
"Response": {
"code": 5003,
"description": "User not found for verification"
},
"Success": false
}

Örnek — 500 Customer Create Problem

{
"Response": {
"code": 5006,
"description": "A problem occurred while creating the customer"
},
"Success": false
}

📝 Notlar

  • Bu endpoint terminal/kasiyer tarafı tarafından çağrılır, müşteri tarafı değil.
  • Müşteri önce mobil/web uygulamasından anlık auth code (QR veya PIN) üretir.
  • Auth code geçicidir — belirli bir süre sonra süresi dolar.
  • ipContext alanları null döner çünkü doğrulama terminal üzerinden yapılır, müşteri IP'si doğrudan alınmaz.
  • ivt.etk ve ivt.kvkk alanlarında müşterinin EK (Ek Onay) ve KVKK onay durumları bulunur.
  • loyalty: -1 değeri sadakat bilgisinin bulunamadığını gösterir.