Exchange Assertion for Access Token
Send your signed JWT assertion to the RynoPay token endpoint to receive a platform access token.
Request
POST https://prod.rynopay.io/auth/partner/v1/token
Content-Type: application/json
{
"grantType": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"assertion": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMzQ1...",
"scope": "partner.read partner.write"
}
| Field | Required | Description |
|---|---|---|
grantType | Yes | Must be exactly urn:ietf:params:oauth:grant-type:jwt-bearer |
assertion | Yes | Your signed JWT from the previous step |
scope | No | Space-separated scopes to request. Defaults to all scopes granted to your account |
Successful response (200 OK)
{
"accessToken": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
"tokenType": "Bearer",
"expiresIn": 3600,
"scope": "partner.read partner.write"
}
| Field | Description |
|---|---|
accessToken | Your platform access token |
tokenType | Always Bearer |
expiresIn | Token lifetime in seconds (3600 = 1 hour) |
scope | The scopes granted for this token |
Using the access token
Include the access token in the Authorization header for all API requests:
GET https://prod.rynopay.io/api/partner/some-endpoint
Authorization: Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json
The access token is validated at the gateway without any external calls, so authentication adds minimal latency to your requests.
Error responses
If the token exchange fails, you will receive a 400 Bad Request with an error code. See the Error Reference for all possible error codes.