Withdrawal Destinations

A WithdrawalDestination describes a route money can leave the platform on behalf of a tenant. It binds a parent (enterprise or client), a rail class (fiat or crypto), and the routing details the platform uses when a withdrawal is executed.

Withdrawal destinations are configuration objects, not transactions. They define the outbound surface; withdrawals are what flow through that surface at runtime.

Mental Model

A withdrawal destination answers three questions for the platform:

  • Who is withdrawing?parent resolves to an Enterprise or a Client.
  • On which rail?rail_class is either fiat or crypto.
  • To where? — routing details specify the external address, account, or beneficiary the rail will deliver funds to.

Routing details (fiat_routing or crypto_routing) carry the rail-specific configuration the platform needs to dispatch funds to the correct external target.

Lifecycle

A withdrawal destination moves through these lifecycle states:

  • active — available as a target for new withdrawals
  • disabled — temporarily not selectable for new withdrawals
  • retired — terminal; no longer in use

Disabling a destination prevents new withdrawals against it but does not affect withdrawals already in flight.

Relationship To Other Resources

Read the layering in this order:

  1. WithdrawalDestination — the durable outbound route for a tenant
  2. Withdrawal — a per-event execution that targets a specific destination

Many withdrawals typically share one destination over its lifetime, in the same way deposits share a funding endpoint on the inbound side.

How This Appears In The API

Request URL

GET
GET /withdrawal-destinations?parent=clients/44444444-4444-4444-8444-444444444444&rail_class=crypto

Response

application/json
{
  "items": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "resource": "withdrawal-destinations/22222222-2222-4222-8222-222222222222",
      "parent": "clients/44444444-4444-4444-8444-444444444444",
      "status": "active",
      "rail_class": "crypto",
      "asset": "USDC",
      "crypto_routing": {
        "...": "rail-specific routing details"
      },
      "fiat_routing": null
    }
  ],
  "next_page_token": null
}