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
| Header | Value |
|---|---|
| Content-Type | application/json |
📥 Request Body
{
"username": "{{auth_username}}",
"password": "{{auth_password}}",
"grant_type": "password"
}
Parametreler
| Alan | Tip | Açıklama | Örnek |
|---|---|---|---|
username | string | Kullanıcı adı (MSISDN) | "9852404285" |
password | string | Şifre | - |
grant_type | string | Grant 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ı
| Alan | Tip | Açıklama |
|---|---|---|
access_token | string | JWT access token (2 saat geçerli) |
refresh_token | string | JWT refresh token (4 saat geçerli) |
expires_in | integer | Access token süresi (saniye) |
refresh_expires_in | integer | Refresh token süresi (saniye) |
token_type | string | Token türü (bearer) |
❌ Error Responses
Tüm hata yanıtları aşağıdaki formatta döner:
{
"Response": {
"code": 2007,
"description": "Invalid credentials"
},
"Success": false
}
| HTTP | code | Enum | description | Ne Zaman Oluşur |
|---|---|---|---|---|
| 400 | 2002 | UnsupportedGrantType | Unsupported grant type | grant_type desteklenmeyen bir değer (password/refresh_token dışında) |
| 400 | 2003 | AuthTokenEmpty | Token cannot be empty | grant_type boş gönderildi |
| 400 | 2004 | AuthMissingGrantType | Grant type is missing | grant_type ne password ne refresh_token ile eşleşti |
| 400 | 2005 | AuthUsernameEmpty | Username cannot be empty | grant_type=password iken username boş |
| 400 | 2006 | AuthPasswordEmpty | Password cannot be empty | grant_type=password iken password boş |
| 400 | 2008 | AuthMissingRefreshToken | Refresh token is missing | grant_type=refresh_token iken refresh_token boş, ya da geçerli bir session bulunamadı |
| 401 | 2007 | AuthInvalidCredentials | Invalid credentials | username/password eşleşmedi, ya da refresh token'a bağlı developer bulunamadı |
| 403 | 2009 | AuthInvalidIpAddress | Invalid 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/tokenendpoint'inegrant_type: refresh_tokenile yeni token alınır. - JWT payload'da
apiKey,company,session_stategibi bilgiler bulunur. - Hata response'larındaki
codealanıAppErrorenum'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övdesiResponseadlı bir alt obje içinde döner, en dışta ayrıcaSuccess: falsealanı bulunur.