Rail Classes

rail_class is a small typed enum — fiat or crypto — that lives on every resource that can move money on either kind of payment rail. It exists so the public API can cover both rail families with one unified resource shape instead of two parallel surfaces, and so the same discriminator appears on FundingEndpoint, DepositInstruction, and WithdrawalDestination rather than splitting into rail-specific variants.

Where Rail Class Appears

rail_class is part of the public contract on:

  • FundingEndpoint — declares whether the inbound route is fiat or crypto
  • DepositInstruction — inherits the rail class of its parent funding endpoint
  • WithdrawalDestination — declares whether the outbound route is fiat or crypto

It is also a filter parameter on the corresponding list endpoints, so you can narrow listings to one rail class at a time.

The Routing Pair Pattern

Two parallel routing blocks, one populated per resource:

  • fiat_routing — bank-rail movements (account/IBAN-style routing, settlement coordinates, rail-specific reference fields)
  • crypto_routing — on-chain movements (address/network routing, on-chain identifiers, network-specific destination data)

Reading order:

  1. Look at rail_class.
  2. Look at the matching routing block.
  3. Treat the other routing block as guaranteed null.

The benefit is that the resource shape stays stable across both rail classes — no rail-specific variants, no oneOf to disambiguate, and every consumer can write one parser that handles both cases.

How This Appears In The API

Request URL

GET
GET /funding-endpoints?account_ref=client-accounts/44444444-4444-4444-8444-444444444444&rail_class=crypto

Response

application/json
{
  "items": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "account_ref": "client-accounts/44444444-4444-4444-8444-444444444444",
      "status": "active",
      "rail_class": "crypto",
      "asset": "USDC",
      "network": "ethereum",
      "crypto_routing": {
        "asset": "USDC",
        "network": "ethereum",
        "endpoint": {
          "address": "0xAbCd1234567890AbCd1234567890AbCd12345678",
          "memo": null
        }
      },
      "fiat_routing": null,
      "created_at": "2026-05-01T10:00:00Z",
      "updated_at": "2026-05-01T10:00:00Z"
    }
  ],
  "next_page_token": null
}