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? —
parentresolves to anEnterpriseor aClient. - On which rail? —
rail_classis eitherfiatorcrypto. - 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 withdrawalsdisabled— temporarily not selectable for new withdrawalsretired— 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:
WithdrawalDestination— the durable outbound route for a tenantWithdrawal— 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 /withdrawal-destinations?parent=clients/44444444-4444-4444-8444-444444444444&rail_class=cryptoResponse
{
"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
}