First step: Retrieve the JSON Schema requirements by following the Fetching External Account Requirements guide. The schemas define the exact fields and validation rules for each account type.
Paired Creation
Once you have a GnosisRamp JWT and the requirement schemas, callPOST /customers/external-accounts to register both the source and destination accounts in a single request. The customer ID is automatically extracted from the JWT — no need to include it in the URL.
The request body uses four fields:
src— source currency code (e.g.,USD)dest— destination currency code (e.g.,USDC_GNO)source— metadata object conforming to thesourceJSON Schema from requirementsdestination— metadata object conforming to thedestinationJSON Schema from requirements
Example — USD to USDC on Gnosis
cURL
Response
source.id and destination.id — you will reference them as srcExternalAccountId and destExternalAccountId when creating intents.
Error handling
| Status | Meaning | Fix |
|---|---|---|
400 Bad Request | Schema validation failed (pattern mismatch, unsupported rail, etc.) | Re-run the requirements call and fix the payload. |
401 Unauthorized | Missing/expired GnosisRamp JWT | Exchange the subject token again. |
How External Accounts Drive Provider Selection
When you create an intent, GnosisRamp uses the external account metadata to determine which providers are eligible. Specifically:| External Account Field | Used For |
|---|---|
currency.code | Must match a provider’s supported source/destination currencies |
type (BANK_ACCOUNT, CRYPTO_ADDRESS) | Must match the provider’s expected account type |
metadata.rail (ACH, WIRE, PIX, etc.) | Must be in the provider’s supported rails |
metadata.countryCode | Must match the provider’s supported countries |
providerId when creating the intent, it must be one of the providers that passed all these capability checks.
Best practices
- Always create accounts as pairs for a specific currency route — GnosisRamp needs both source and destination IDs on the intent.
- Validate your
sourceanddestinationobjects against the JSON Schemas from the requirements endpoint before submitting. - Query supported currencies first to know which
src/destcombinations are available.