Ensure you have an active Stripe Treasury financial account and that the customer's external bank account is linked via Stripe Financial Connections with the payment permission
Create an InboundTransfer by posting to the treasury/inbound_transfers endpoint specifying the origin_payment_method (the linked bank account), amount, and currency
The InboundTransfer starts in processing status; subscribe to the treasury.inbound_transfer.succeeded and treasury.inbound_transfer.failed webhook events
On the succeeded event, the funds are available in the financial account balance; update your internal ledger
On a failed event, inspect the failure_details.code to distinguish between insufficient_funds, account_closed, and other return reasons
For the amount in settling status, note that funds are reserved but not yet spendable; plan treasury outflows only after the succeeded event
Known gotchas
InboundTransfers have a per-transfer and daily limit imposed by Stripe that varies by Treasury account age and verification status; query your account limits before large transfers
ACH pull return windows mean a succeeded InboundTransfer can still be reversed by the bank for several business days; Stripe may claw back funds from your financial account balance if a return is received
Financial Connections linked accounts must have the payment permission granted during the Link session; accounts linked with only balance or transactions permissions cannot be used as InboundTransfer sources
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