GnosisRamp exposes dynamic JSON Schemas so you can render or validate external account forms without reverse-engineering provider requirements.
Query Parameters
Call GET /external-accounts/requirements with exactly one of these parameters:
countryCode (e.g., US, BR, AR) for bank accounts
blockchain (e.g., ETH, BTC, SOL) for crypto addresses
You must provide either countryCode OR blockchain, but not both. Requests with both parameters will return 400 Bad Request.
Bank Account Requirements
curl "https://api.gnosisramp.io/v1/external-accounts/requirements?countryCode=US" \
-H "Authorization: Bearer $GNOSISRAMP_TOKEN"
{
"countryCode": "US",
"schema": {
"type": "object",
"required": ["rails", "currency", "institutionName", "accountIdentifier", "beneficiary"],
"properties": {
"rails": {
"type": "string",
"enum": ["ACH", "WIRE", "SWIFT"]
},
"accountIdentifier": {
"type": "object",
"required": ["routingNumber", "accountNumber"],
"properties": {
"routingNumber": { "pattern": "^[0-9]{9}$" },
"accountNumber": { "pattern": "^[0-9]{4,17}$" }
}
},
"beneficiary": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "maxLength": 140 },
"taxId": { "pattern": "^[0-9]{3}-[0-9]{2}-[0-9]{4}$" }
}
}
}
}
}
Crypto Address Requirements
For blockchain addresses:
curl "https://api.gnosisramp.io/v1/external-accounts/requirements?blockchain=ETH" \
-H "Authorization: Bearer $GNOSISRAMP_TOKEN"
{
"blockchain": "ETHEREUM",
"schema": {
"type": "object",
"required": ["address", "currency"],
"properties": {
"address": {
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "Wallet address"
},
"currency": {
"enum": ["USDC_ETH", "USDT_ETH"]
}
}
}
}
Best Practices
- Always fetch the schema at runtime — providers can add new rails or metadata without requiring an API change.
- Use the schema to power both client-side validation and your own backend sanitization before calling the creation endpoint.