Ana içeriğe geç

POST /validate — Token Doğrulama

📋 Genel Bilgi

Gönderilen token'ı doğrular ve müşteri bilgisi, cihaz/IP detayları, KVKK/onay durumlarını döndürür.

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


🔐 Headers

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

📥 Request Body

{
"token": "13165160"
}

Parametreler

AlanTipZorunluAçıklamaÖrnek
tokenstringMüşterinin mobil/web uygulamasından ürettiği doğrulama token'ı (QR/PIN/Barkod)"13165160"

🔄 Akış Diyagramı (Token Doğrulama — Mağaza Terminalinde Çağrılır)

Adım Açıklamaları:

AdımTarafİşlemAçıklama
1Müşteri → Mobil/WebDoğrulama başlatılırMüşteri mobil veya web uygulamasında doğrulama işlemi başlatır.
2Mobil/Web → MüşteriQR kod / PIN / Barkod üretirUygulama, müşteriye gösterilmek üzere bir doğrulama kimliği oluşturur. Bu bir QR kod, 6-8 haneli PIN veya barkod olabilir.
3Müşteri ← Mobil/WebÜretilen QR/PIN/Barkod gösterilirMüşteri, üretilen doğrulama kimliğini alır.
4Müşteri → Mağaza YetkilisiQR kodu okutur / PIN veya Barkodu gösterirMüşteri, mağazadaki kasiyer yetkilisine mobil uygulamasındaki doğrulama kimliğini gösterir. Kasiyer terminalde QR okuyucu ile tarar, PIN'i ekrana yazar veya barkod okutur.
5Mağaza Yetkilisi → APIToken'ı ekrana yazar / okuturKasiyer, doğrulama token'ını mağaza terminaline giriş yapar (QR okuyucu ile tarama, manuel PIN girişi veya barkod okuma).
6Mağaza Yetkilisi → APIPOST /validate endpoint'ini çağırırTerminal, gönderilen token'ı doğrulamak için bu endpoint'e istek gönderir.
7API → Mağaza YetkilisiDoğrulama sonucu dönerMüşteri bilgisi (isim, telefon), cihaz/IP detayları ve onay durumları (ivt.etk, ivt.kvkk) döner.
8Terminal → MüşteriSonuç gösterilirKasiyer, müşteri bilgilerini ekranda görür ve işlemi devam ettirir (ödeme, sadakat puanı vb.).

Token Türleri:

Token TürüFormatAçıklama
QR KodGörsel (SVG/PNG)Müşteri uygulamasında oluşturulan QR kod; kasiyer terminalindeki okuyucu ile taranır.
PIN Kodu6-8 haneli numericMüşteri uygulamasında üretilen sayısal token; kasiyer tarafından manuel ekrana yazılır.
BarkodGörsel (1D/2D)QR okuyucu olmayan kasalar için alternatif barkod formatı.

✅ Response — 200 OK

{
"token": "13165160",
"success": true,
"msisdn": "{{customer_msisdn}}",
"ip": "{{customer_ip}}",
"deviceInfo": {
"requestId": null,
"timestamp": "2026-07-26T10:39:06.706Z",
"ip": "{{customer_ip}}",
"deviceContext": {
"deviceName": "Desktop Computer",
"deviceVendor": "",
"deviceModel": "",
"deviceType": "desktop",
"osName": "Windows",
"osVersion": "10",
"browserName": "Chrome",
"browserVersion": "150.0.0.0",
"cpuArchitecture": "amd64"
},
"ipContext": {
"country": "Türkiye",
"countryCode": "TR",
"city": "Küçükçekmece",
"region": "Istanbul",
"regionCode": "34",
"latitude": {{customer_latitude}},
"longitude": {{customer_longitude}},
"timezone": "Europe/Istanbul",
"postalCode": "{{customer_postal_code}}",
"accuracyRadius": 500
}
},
"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ğrulanan token
successbooleanDoğrulama sonucu
msisdnstringMüşteri telefon numarası
ipstringİstemci IP adresi
deviceInfoobjectCihaz ve IP detayları
ivt.etkobjectEK (Eksik Onay) durumları — sms, call, email, share
ivt.kvkkobjectKVKK onayları — process, share, international

❌ Error Responses

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

{
"Response": {
"code": 5001,
"description": "Verification code is missing"
},
"Success": false
}
HTTPcodeEnumdescriptionNe Zaman Oluşur
4005001ValidateCodeMissingVerification code is missingtoken alanı boş gönderildi
4045002ValidateCodeNotFoundVerification code not foundtoken'a karşılık gelen bir qr_login_sessions kaydı bulunamadı — token hiç yok, süresi dolmuş (expiresAt), ya da zaten kullanılmış (used=1). Aynı kod, kullanıcı bulunamadığında da (u == null) dönüyor — token DB'de var ama bağlı olduğu User kaydı silinmiş/yok olsa bile bu durumda da 5002 döner (bkz. Not).
5005004ValidateCustomerCreateProblemA problem occurred while creating the customerToken ve kullanıcı doğru bulundu, ama customerId oluşturma işlemi (0 dönerse) başarısız oldu

Örnek — 400 Missing Token

{
"Response": {
"code": 5001,
"description": "Verification code is missing"
},
"Success": false
}

Örnek — 404 Code Not Found / Expired / Already Used

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

Örnek — 500 Customer Create Problem

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

📝 Notlar

  • Bu endpoint mağaza terminali/kasiyer tarafı tarafından çağrılır, müşteri tarafı değil.
  • Müşteri önce mobil/web uygulamasından doğrulama kimliği (QR/PIN/Barkod) üretir ve mağazaya gösterir.
  • Kasiyer token'ı QR okuyucu ile tarar, ekrana yazar veya barkod okutur → /validate endpoint'ine gönderilir.
  • etk alanındaki değerler: 1 = onaylanmış, -1 = onaysız/bilinmiyor
  • kvkk alanındaki değerler: 1 = onaylanmış, -1 = onaysız/bilinmiyor
  • loyalty: -1 değeri sadakat bilgisinin bulunamadığını gösterir.
  • ipContext.accuracyRadius: IP konumunun tahmini doğruluk yarıçapı (metre)