Skip to main content
Every customer-scoped operation (external accounts, intents, transactions) requires a GnosisRamp JWT. To get one, create a customer via POST /customers.

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 inherits that project/organisation context.
2

Create the customer

Call POST /customers with a unique id for the customer. You can optionally attach metadata to store additional information.
3

Store the GnosisRamp JWT per session

The response contains a Customer record plus an access_token. Use this JWT on every customer-scoped endpoint.
cURL
curl -X POST https://api.gnosisramp.io/v1/customers \
  -u "${GNOSISRAMP_CLIENT_ID}:${GNOSISRAMP_CLIENT_SECRET}" \
  -H "Content-Type: application/json" \
  -d '{
        "id": "your-unique-customer-id"
      }'
Response
{
  "id": "cust_9a8c...",
  "createdAt": "2025-01-12T21:45:11.201Z",
  "updatedAt": "2025-01-12T21:45:11.201Z",
  "organizationId": "org_12f",
  "projectId": "proj_87c",
  "access_token": "GNOSISRAMP_JWT_..."
}
If a customer with the same id already exists, the endpoint returns the existing customer and a fresh access_token.

Using the GnosisRamp JWT

  • Include it on every authenticated call: Authorization: Bearer <access_token>.
  • Re-run the customer creation call when you receive 401 Unauthorized to get a fresh token.
  • Generate one token per active session; do not share JWTs between customers.

Error handling

StatusWhen it firesHow to resolve
401 UnauthorizedMissing or invalid Basic auth credentials.Verify your clientId and clientSecret.
400 Bad Requestid missing or empty.Supply a valid id string in the request body.
Once you have a valid access token you can create external accounts and intents on behalf of your customer without additional user interaction.