Ensure Treasury is enabled on your platform account; request the treasury capability on the relevant connected account via its capabilities object.
Create a FinancialAccount for the connected account via POST /v1/treasury/financial_accounts, specifying supported_currencies and the desired features (e.g., inbound_transfers, outbound_payments).
Fund the FinancialAccount by creating an InboundTransfer via POST /v1/treasury/inbound_transfers, linking it to an external bank account from Stripe Financial Connections.
Once funds are in the FinancialAccount balance, create an OutboundTransfer via POST /v1/treasury/outbound_transfers specifying financial_account, amount, currency, and destination_payment_method (linked bank account).
Monitor treasury.outbound_transfer.posted and treasury.outbound_transfer.failed webhooks for settlement confirmation.
Retrieve balance details via GET /v1/treasury/financial_accounts/{id} to check cash, inbound_pending, and outbound_pending buckets.
Known gotchas
Treasury features must be individually requested and approved; submitting a FinancialAccount creation request without the feature being enabled will return an error.
OutboundTransfer settlement timing depends on the network — ACH is not instant; factor in standard ACH timing windows.
Financial account balances have distinct states (cash, inbound_pending, outbound_pending) — only cash is immediately available for outbound transfers.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp