Collect Application Fees

Applies to: Payments API | Disputes API | OAuth API | Refunds API

Learn how to collect an application fee when processing payments using the Payments API.

Link to section

Overview

You can create an application integrated with Square to process payments on behalf of sellers that sign up to use the application. You can collect a portion of each payment that your application processes as an application fee.

The CreatePayment and UpdatePayment endpoints supports the app_fee_money field. When taking a payment, applications set this field to collect an application fee. When the payment is complete, the payment amount is credited to the seller's Square account and the application fee is credited to your Square account.

Link to section

Your Square account

The Square account that receives application fees in a payment or has application fees taken in a refund is your account, as the developer of the application. It's the Square account that you sign in to when you're accessing the Developer Console. Application fees aren't deposited in a seller's Square account. The Square Dashboard for your account gives you a report of application fees received for a given period. For more information see Application fee reporting.

Note

The application fee cannot be split among multiple Square accounts.

Link to section

Payment disputes and your application fee

When there is a payment dispute (see Disputes API) for which the seller is liable for the entire sales amount, you keep your portion of the payment.

Link to section

Transfer your application fee money

As application fee money accumulates in your Square account, you can transfer it to your linked bank account. You can set up an automatic daily balance transfer, which runs about 3 hours after the close of business hour that you set in your account. You can also use the Square Instant Transfer feature to get your current balance transferred immediately at a cost of 1.5% of the transfer amount. For more information, see Set Up and Manage Instant Transfers.

Square identifies the seller's Square account by reading the access token obtained in the OAuth code flow and used in the CreatePayment request. Your Square account is identified by the application ID associated with that access token.

Important

Developers collecting application fees should review Square Tax Reporting and Form 1099-K Overview.

Link to section

Application fee restrictions

Link to section

Currency and Country Requirements

When collecting application fees through your Square integration, be sure you meet these requirements:

  • Multiple Currency Support: If you plan to accept application fees in different currencies, you need to maintain separate Square accounts for each currency.

  • Country-Specific Accounts: You need to establish a Square account in each country where you intend to process payments.

  • Currency Matching Requirement: The seller's location currency needs to match the currency of your Square account in that same country. For example:

    • For Canadian operations: Your Canadian sellers needs to use a Canadian Square account with the same currency as your Canadian Square account
    • For US operations: Your US sellers needs to use a US Square account with the same currency as your US Square account
Link to section

Supported Payment Types

Application fees can only be collected for these specific payment methods:

  • Card payments (see Card Payment)
  • Cash App Pay payments (with source_type: WALLET)
  • Afterpay payments (with source_type: BUY_NOW_PAY_LATER)
  • ACH bank transfers (with source_type: BANK_ACCOUNT)
Link to section

Exceptions and Requirements

  • Not Applicable to Direct Payments: Application fees cannot be collected when using CreatePayment to record cash or external payments, as these transactions occur directly between buyer and seller without Square processing.
  • Permission Requirements: To process payments on behalf of other Square sellers, your application needs to:
    • Implement OAuth to obtain necessary permissions from sellers
    • Use the OAuth token to authenticate CreatePayment requests

For more information about using OAuth in your application, see OAuth API.

Important

Australia only: Read the Product Disclosure Statement for the Payments API Application Fee (PAAF) service and the Financial Services Guide.

Link to section

Application fee limit

When you collect a fee from each payment that Square processes through your application, Square ensures that the seller retains some portion of the payment's total_money after subtracting the Square processing fees and the application fee. The following guidelines apply:

  • When total_money is $5.00 or greater, the maximum allowed application fee percentage is 90%.
  • When total_money is less than $5.00, the maximum allowed application fee percentage is 60%.

This app_fee_money maximum is based on the payment's total_money amount (the sum of amount_money and tip_money). For more information, see Payment.

Link to section

Implementation

The app_fee_money field can be set in the following requests:

  • In a CreatePayment request, app_fee_money indicates the application fee for a payment. Square takes the specified amount from the payment and deposits it in your Square account.
  • In an UpdatePayment request, You can only update the app_fee_money property if a payment is in the APPROVED or PENDING state.
  • In a RefundPayment request, app_fee_money directs Square to take the specified amount from your Square account to pay for the refund. In the event that your Square account balance is zero (such as immediately after an Instant Transfer), Square takes the refunded application fee directly from your linked bank account.
  • In a CreatePaymentLink request, the checkout_options field provides the app_fee_money option to indicate the application fee for a payment to be paid in the payment link request.
  • In a CreateTerminalCheckout request, the checkout options field provides the app_fee_money option to indicate the application fee for a payment to be paid in the Terminal checkout request. For more information, see Additional Payment and Checkout Features.

After receiving a request with the app_fee_money amount and currency type, Square splits the payment (Square fees, an application fee, and the rest of the funds going to the seller). To understand payment splitting, consider a payment of $20.00 USD that includes an application fee of $2.00 USD. Square first takes its fee. Assuming 2.9% plus a $0.30 USD fee rate, Square receives $0.88 USD, which results in a net amount of $19.12 USD. You receive $2.00 USD from the net amount and the seller receives the remaining $17.12 USD.

A diagram illustrating payment splitting, where the application developer receives a $2 fee from the payment and the seller receives the remainder of the payment.

The following is an example (CreatePayment endpoint) request. In the request:

  • The Authorization header specifies the OAuth access token providing encoded information about the seller Square account and your Square account.

  • amount_money specifies the amount ($20.00 USD) to charge.

  • app_fee_money specifies $2.00 USD as the application fee.

  • source_id identifies the payment source. The example specifies a card on file as the payment source, which also requires the customer_id in the request.

    Create payment

    After receiving the request, Square takes the $0.88 USD processing fee, deposits the $2.00 USD application fee in your Square account, and deposits the remaining $17.12 USD in the seller account. The following is an example response:

    You might not see the processing fee immediately in the response. You can use a follow-up GetPayment request to review the payment and processing fee.

    Get payment

Link to section

OAuth Permissions

Square sellers that sign up to use third-party applications must grant the necessary permissions so the application can perform tasks on their behalf. Use the OAuth flow to obtain the necessary permissions from sellers.

Among other permissions, you must obtain permission for the PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS action. The recommended minimum permissions are as follows:

  • PAYMENTS_WRITE
  • PAYMENTS_READ
  • PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS
  • ORDERS_READ
  • ORDERS_WRITE

By granting these permissions, Square sellers indicate that you're allowed to take a portion of a payment as an application fee. That is, when taking a payment on behalf of these Square sellers (using the Payments API), the application can specify app_fee_money.

Link to section

Application fee reporting

Square reports the application fee collected by an application in the Square Dashboard under the default location.

A graphic showing the application fee collected by an application in the Square Dashboard under the default location.

The application developer needs the name of the default location to review the application fee report.

To find the name of the default location:

  1. Open the Developer Console.
  2. Choose your application.
  3. In the left pane, choose Locations.
  4. In the list, find the default location name.

To find the application fee report:

  1. Go to the Square Dashboard.
  2. Choose Banking
  3. Choose Balance
  4. On the Balance page, choose the default location from the list. The application fee is reported only in the main location.
  5. To see previous transfers (from the Square account to your bank account), choose View all transfers.

Did you know?

You can find any page in the Square Dashboard by using the search field to input the name of the page you are looking for. For example, if you input "Balance", the dashboard search returns a link to the Balance page.

Link to section

See also