Facebook
LinkedIn
YouTube
Getting Started
Authentication
Authentication
  • V2 Authentication (Deprecated)
  • V3 Authentication
V2 API Documentation (Deprecated)V3 API Documentation
Getting Started
Authentication
Authentication
  • V2 Authentication (Deprecated)
  • V3 Authentication
V2 API Documentation (Deprecated)V3 API Documentation
V2 Authentication (Deprecated)V3 Authentication
V2 Authentication (Deprecated)V3 Authentication
  1. V3 Authentication
  • Get Access Token
    POST
  • Refresh Access Token
    POST
  • Revoke Token
    POST
  1. V3 Authentication

Refresh Access Token

POST
https://platform-oauth.convirza.com/oauth/refresh-token
Authentication
Last modified:2026-04-03 13:23:55
Exchanges a valid refresh token for a new access token and refresh token pair, extending the user's session without requiring them to re-enter their password.
Token rotation (security)
This endpoint implements single-use refresh tokens. When you call this endpoint:
1.
The provided refresh_token is validated against the Redis session store.
2.
A brand new access_token and refresh_token are generated.
3.
The old refresh_token is immediately invalidated — it cannot be reused.
This means if an attacker steals a refresh token and uses it, the legitimate user's next refresh attempt will fail, alerting them to the potential compromise.
When to call this endpoint
Your client receives a 401 Unauthorized from any API endpoint (access token has expired).
Proactively when you detect the access token is near expiry (check expires_in from the login response).
If the refresh token is also expired
The user must re-authenticate via POST /oauth/token.

Request

Body Params application/jsonRequired

Examples

Responses

🟢200
application/json
Token refreshed successfully - returns new access and refresh tokens
Body

🟠400
🟠401
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://platform-oauth.convirza.com/oauth/refresh-token' \
--header 'Content-Type: application/json' \
--data-raw '{
    "refresh_token": "xyz789refresh012345678901234567890"
}'
Response Response Example
200 - Example 1
{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbklkIjoiYWJjZDEyMzQtZWY1Ni03ODkwLWFiY2QtMTIzNDU2Nzg5MGFiIiwiaWF0IjoxNzA5NTU1NTU1LCJleHAiOjE3MDk1OTg3NTV9.xyz123",
    "frontend_token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "refresh_token": "xyz789refresh012345678901234567890",
    "token_type": "Bearer",
    "expires_in": "2026-04-06T12:34:56.789Z",
    "refresh_expires_in": "2026-10-06T12:34:56.789Z",
    "user": {
        "user_id": 12345,
        "email": "user@example.com",
        "role_id": 2,
        "org_unit_id": 1001
    }
}
Modified at 2026-04-03 13:23:55
Previous
Get Access Token
Next
Revoke Token
Built with