For direct charges (where the connected account is the merchant of record), create the PaymentIntent using the connected account's API key or with the Stripe-Account header set to the connected account ID.
Include application_fee_amount in the PaymentIntent creation request to specify the platform's fee in the smallest currency unit.
Alternatively, set application_fee on a Charge object if using the legacy Charges API.
The fee is automatically captured when the charge succeeds and appears as an ApplicationFee object on the platform account.
List platform fee income via GET /v1/application_fees filtered by date range; each has a balance_transaction on the platform account.
If you need to refund a fee, create an ApplicationFee Refund via POST /v1/application_fees/{id}/refunds.
Known gotchas
Direct charges require the connected account to have card_payments capability active; platform fees cannot be collected on accounts without this capability.
application_fee_amount is subject to the same currency as the charge — ensure you are computing the fee amount in the correct currency and denomination.
ApplicationFee refunds reduce your platform's balance; if the connected account's charge is also refunded, issue both refunds in the correct order to avoid balance errors.
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