Refund a Payment with an Application Fee

Applies to: Refunds API | Payments API

Learn how to refund payments that include application fees.

Link to section

Overview

A seller can initiate a refund request from your application or from a Square product such as the Point of Sale application or Square Dashboard. The request can be for refunding any amount of the payment. By default, Square gets refund money by taking funds proportionately from all parties.

Link to section

Refund request with a specified application fee

When using the Refunds API, you can optionally direct Square to take a specific amount from your Square account as the developer's contribution to the refund. For example, you might acknowledge that the refund request was a result of an application error and might choose to contribute more toward the refund. On the other hand, you might not contribute any amount toward the refund.

The way Square takes funds from your Square account depends on whether you set the app_fee_money parameter in the refund request:

  • The parameter is set - Square takes your set amount regardless of whether a full or partial refund is requested. If you set the parameter to a zero amount, Square doesn't take any funds from your account.
  • The parameter isn't set - On a full refund, your entire application fee is taken from your account. Otherwise, it's taken in proportion to the size of the refund.

Note

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.

Link to section

Partial refund

The following example describes how a partial refund with app_fee_money works. Suppose your application originally takes a payment of $20.00 USD on behalf of a seller with a $2.00 USD application fee. Square splits the payment as follows:

  • $2.00 USD goes to your Square account as the application fee.
  • $0.88 USD goes to Square (assuming 2.9% + $0.30 USD processing fee).
  • $20.00 – ($2.00 + $0.88) = $17.12 USD goes to the seller account.

If your application initiates a partial refund of $15.00 USD (75% of the original payment) that directs Square to take $8.00 USD from your account, Square covers the cost of the refund as follows:

  • $8.00 USD from your Square account (the amount you chose to refund).
  • $7.00 USD, the amount from the seller account.
Link to section

Fee specified example

You can use the following cURL commands to test this scenario:

  1. Take a payment. Follow the example in Collect Application Fees to take a payment. In the response:

    • Square splits the payment between the seller and you: $18 for the seller and $2 for you for a total of $20 charged to the buyer.
    • Get the payment ID from the payment you took and use it in the following step.
  2. Refund a portion of the payment.

    1. Refund $15.00 USD (75%). The request specifies the app_fee_money parameter directing Square to take $8.00 USD from your Square account toward the refund.

      Refund payment

    2. Verify the response and note the refund ID. Use the refund ID in the next step to verify how Square took funds from different parties to pay for the refund. The refund.status might be PENDING immediately after the refund is created. When that status is APPROVED, you can see how the refund is paid.

    3. Send a GetRefund request to see how Square processed the refund.

      Get payment refund

      The following is an example response:

Link to section

Refund updated push notification

If your application subscribes to the refund.updated webhook, it waits for a notification for the completed refund. The notification body carries the updated Refund with the new value of the status field. The following example shows the body of a refund.updated notification:

The response shows a total refund of $15.00 USD (amount_money). Square took funds from various parties as follows:

  • An application fee refund of $8.00 USD (app_fee_money) is taken from your Square account.
  • The amount Square took from the seller account isn't in the response. You need to compute this amount yourself ($15.00 – $8.00 = $7.00 USD).
Link to section

Refund request with no fee specified

When a refund request without app_fee_money is received, Square covers the costs proportionally from all parties (developer and seller) as follows:

  • Full refund scenario - Square takes the funds that all parties originally received when Square processed the payment and refunds them accordingly.
  • Partial refund scenario - Square returns an amount that is less than the original payment. Square processes the partial refund request as follows:
    • Square takes the proportionate amount from your Square account.
    • Square takes the remainder of the refund amount from the seller account.
Link to section

Partial refund

The following example describes how a partial refund works. Suppose your application originally takes a payment of $20.00 USD on behalf of a seller with a $2.00 USD application fee. Square splits the payment as follows:

  • $0.88 USD goes to Square (assuming a 2.9% + $0.30 USD processing fee).
  • $2.00 USD goes to your Square account as the application fee.
  • $20.00 – ($2.00 + $0.88) = $17.12 USD goes to the seller account.

Now suppose your application initiates a partial refund of $15.00 USD (75% of the original payment) without app_fee_money in the refund request. Square calculates the cost of the refund as follows:

  • $1.50 USD from your Square account (75% refund of the application fee).
  • $13.50 USD from the seller account ($15.00 – $1.50 = $13.50 USD).
Link to section

No fee specified example

Use the following cURL commands to test this scenario:

  1. Take a payment. Follow the example in Collect Application Fees to take a payment. In the response:
    • Review how Square splits the payment among the parties.
    • Get the payment ID from the payment you took and use it in the following step.
  2. Refund a portion of the payment.
    1. Refund $15.00 USD (75%). The request doesn't specify the app_fee_money field.

      Refund payment

    2. Verify the response and note the refund ID. Use the refund ID in the next step to verify how Square took funds from different parties to pay for the refund.

    3. Send a GetRefund request to see how Square processed the refund.

      Get payment refund

      The following is an example response:

      The response shows a total refund of $15.00 USD (amount_money). Square took funds from various parties as follows:

      • An application fee refund of $1.50 USD (app_fee_money) from your Square account.
      • The amount Square took from the seller account isn't in the response. You need to compute this amount yourself using the information in the response ($15.00 – $1.50 = $13.50 USD).