Ana içeriğe geç

POST /oauth2/token — Password Grant Token

📋 Genel Bilgi

Username ve password ile OAuth2 password grant akışı kullanarak access token ve refresh token alınır.

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


🔐 Headers

HeaderValue
Content-Typeapplication/json

📥 Request Body

{
"username": "{{auth_username}}",
"password": "{{auth_password}}",
"grant_type": "password"
}

Parametreler

AlanTipAçıklamaÖrnek
usernamestringKullanıcı adı (MSISDN)"9852404285"
passwordstringŞifre-
grant_typestringGrant türü (sabit: password)"password"

✅ Response — 200 OK

{
"access_token": "{{masked_jwt_7}}",
"refresh_token": "{{masked_jwt_11}}",
"expires_in": 7199,
"refresh_expires_in": 14399,
"token_type": "bearer"
}

Response Alanları

AlanTipAçıklama
access_tokenstringJWT access token (2 saat geçerli)
refresh_tokenstringJWT refresh token (4 saat geçerli)
expires_inintegerAccess token süresi (saniye)
refresh_expires_inintegerRefresh token süresi (saniye)
token_typestringToken türü (bearer)

❌ Error Responses

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

{
"Response": {
"code": 2007,
"description": "Invalid credentials"
},
"Success": false
}
HTTPcodeEnumdescriptionNe Zaman Oluşur
4002002UnsupportedGrantTypeUnsupported grant typegrant_type desteklenmeyen bir değer (password/refresh_token dışında)
4002003AuthTokenEmptyToken cannot be emptygrant_type boş gönderildi
4002004AuthMissingGrantTypeGrant type is missinggrant_type ne password ne refresh_token ile eşleşti
4002005AuthUsernameEmptyUsername cannot be emptygrant_type=password iken username boş
4002006AuthPasswordEmptyPassword cannot be emptygrant_type=password iken password boş
4002008AuthMissingRefreshTokenRefresh token is missinggrant_type=refresh_token iken refresh_token boş, ya da geçerli bir session bulunamadı
4012007AuthInvalidCredentialsInvalid credentialsusername/password eşleşmedi, ya da refresh token'a bağlı developer bulunamadı
4032009AuthInvalidIpAddressInvalid IP addressİstek, developer hesabının izinli IP listesinde olmayan bir adresten geldi

Örnek — 401 Invalid Credentials

{
"Response": {
"code": 2007,
"description": "Invalid credentials"
},
"Success": false
}

Örnek — 400 Missing Refresh Token

{
"Response": {
"code": 2008,
"description": "Refresh token is missing"
},
"Success": false
}

Örnek — 403 Invalid IP Address

{
"Response": {
"code": 2009,
"description": "Invalid IP address"
},
"Success": false
}

📝 Notlar

  • Access token ~2 saat geçerlidir.
  • Refresh token ~4 saat geçerlidir.
  • Token süresi dolduğunda /oauth2/token endpoint'ine grant_type: refresh_token ile yeni token alınır.
  • JWT payload'da apiKey, company, session_state gibi bilgiler bulunur.
  • Hata response'larındaki code alanı AppError enum'undaki uygulama-içi hata kodudur (Response.code); HTTP status kodu ile birlikte, hangi senaryonun oluştuğunu programatik olarak ayırt etmek için kullanılabilir. Tüm hata gövdesi Response adlı bir alt obje içinde döner, en dışta ayrıca Success: false alanı bulunur.