I run a platform that onboards market organizers onto Square via OAuth. Sellers connect their own Square accounts and take booth fee payments from vendors. I want to collect a platform fee on those payments.
I’m creating payment links via POST /v2/online-checkout/payment-links using the seller’s OAuth access token, with app_fee_money in checkout_options:
{
"idempotency_key": "...",
"quick_pay": {
"name": "Booth fee",
"price_money": { "amount": 103, "currency": "USD" },
"location_id": "<seller location>"
},
"checkout_options": {
"app_fee_money": { "amount": 3, "currency": "USD" }
}
}
Square-Version: 2024-07-17
The request succeeds and the response echoes the fee back in payment_link.checkout_options.app_fee_money with the amount I sent. The buyer completes payment by card and the seller receives the funds.
But no application fee ever appears in the balance of the Square account that owns the developer application. I’ve tested twice, with fees of $0.62 and $0.03, and checked Balance rather than Transactions.
My OAuth scopes include PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS, granted before the seller connected. The seller’s account and my application’s account are separate.
Is app_fee_money supported on payment links created this way, or does collecting an application fee require the Payments API? And is there anything my application needs enabled before fees are collected?