Skip to main content
After discovering supported currency pairs, the next step is fetching the field requirements for each account type. 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 both of these parameters:
  • src — source currency code (e.g., USD, EUR, BRL)
  • dest — destination currency code (e.g., USDC_GNO, USDC_ETH, USDC_BASE)
Both src and dest are required. The response returns JSON Schemas for both the source and destination accounts.

Example Request

curl "https://api.gnosisramp.io/v1/external-accounts/requirements?src=USD&dest=USDC_GNO" \
  -u "${GNOSISRAMP_CLIENT_ID}:${GNOSISRAMP_CLIENT_SECRET}"
This endpoint uses Basic Auth (project credentials), not a customer JWT.

Example Response

{
  "src": "USD",
  "dest": "USDC_GNO",
  "source": {
    "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}$" }
        }
      }
    }
  },
  "destination": {
    "type": "object",
    "required": ["address", "currency"],
    "properties": {
      "address": {
        "pattern": "^0x[a-fA-F0-9]{40}$",
        "description": "Wallet address"
      },
      "currency": {
        "enum": ["USDC_GNO"]
      }
    }
  }
}
The source schema defines the fields needed for the source account (e.g., bank account details), while destination defines the fields for the destination account (e.g., crypto wallet address).

How Schemas Connect to Provider Selection

The schemas returned here reflect the combined capabilities of all active providers for your project. Key points:
  • Rail choice — the rails field (e.g., ACH, WIRE, PIX) determines which set of account fields are required. Different rails have different schema shapes.
  • Provider-specific fields — some providers require additional metadata. The schema’s dependencies section may include oneOf branches per provider with extra fields.
  • Downstream filtering — the rail and metadata you submit when creating external accounts are later used by GnosisRamp to filter which providers can handle the payment at intent time. Choosing ACH here means only providers supporting ACH will be eligible candidates.

Best Practices

  • Always fetch the schema at runtime — providers can add new rails or metadata without requiring an API change.
  • Use the schemas to power both client-side validation and your own backend sanitization before calling the creation endpoint.
  • The currency code format follows: fiat codes like USD, EUR, BRL and crypto codes like USDC_GNO, USDC_ETH (format: {ticker}_{blockchain}).