Request flow
1
Authenticate with client credentials
Encode
clientId:clientSecret using HTTP Basic auth. These values are bound to a specific project so the resulting customer also inherits that project/organisation context.2
Send the user’s subject token
Call
POST /customers/token-exchange with the OIDC subject_token. GnosisRamp verifies the issuer, signature, allowed audiences, and skew settings you configured earlier.3
Store the GnosisRamp JWT per session
The response contains (or reuses) a
Customer row plus an access_token. Use this JWT on every customer-scoped endpoint such as external accounts, intents, and transactions.cURL
Using the GnosisRamp JWT
- Include it on every authenticated call:
Authorization: Bearer <access_token>. - Tokens inherit the expiration of the subject token plus any TTL you configured. Re-run the exchange when you receive
401 Unauthorized. - Generate one token per active session; do not share JWTs between customers.
Error handling
| Status | When it fires | How to resolve |
|---|---|---|
401 Unauthorized | Missing/invalid Basic auth or the subject token fails issuer/audience checks. | Verify credentials and ensure the identity provider is registered in GnosisRamp. |
400 Bad Request | subject_token missing or empty. | Supply a JWT string in the request body. |