Adyen-for-platform icon

Refund third-party payments

Learn how to refund payments processed by third-party providers, but settled in your user's balance accounts.

You can initiate a refund for third-party payments using the Checkout API. The funds are deducted from your balance accounts and transferred to your multi pay-in account.

Sending the refund amount to your user's customer is your pay-in partner's responsibility. Make sure that you have a process in place in their system before initiating a refund at Adyen.

When your user's customer initiates a refund, send a POST /payments/{paymentPspReference}/refunds request to Adyen to return the funds to your multi pay-in account. You can split the refund amount between the balance accounts in your platform by including split instructions in your request. You get the outcome of your refund request asynchronously in a REFUND webhook.

Refund a payment

  1. Get the PSP reference of the original payment from either the API response, or the authorization or transfer webhooks triggered by the original payment request.

  2. Make a POST /payments/{paymentPspReference}/refunds request, specifying the PSP reference of the original payment in the path.

    In the body of the request, include the following fields:

    Parameter Required Description
    amount Required The amount that you want to refund.
    • The value must be the same, or, in case of a partial refund, less than the captured amount.
    • The currency must match the currency used in the payment authorization.
    merchantAccount Required The unique identifier of the merchant account where you want to process the payment.
    reference Your reference for the refund, for example, to tag a partial refund for future reconciliation.
    splits Recommended The array of objects specifying how to split the payment. For partial refunds, we strongly recommend that you always provide split instructions in your request. If you do not send split instructions in your request for total refunds, the funds are deducted according to the split ratio of the payment authorization.

    The following tabs show you examples for refund requests: one where you specify the split instructions, and another where you send the request without them.

  3. Listen to the REFUND webhook for the outcome of the refund request.

Troubleshooting

The API request validates only the format of the split instructions, not the balance accounts specified in the request. This means that even if the transaction is successful, it is possible that the funds are not credited to/deducted from the specified balance account. If the balance account does not exist, or it is linked to an account holder with a closed status, the full transaction and its fees are booked to your platform's liable balance account.

To correct the balances, you can transfer the funds between the balance accounts in your platform.

Track fund movements

To track the status of the fund transfers initiated by a refund, listen to the following webhooks:

Webhook examples

The following tabs show the webhooks you receive when:

  • The refund amount is deducted from your user's balance account.
  • The commission amount is deducted from your liable balance account.
  • The refund amount is returned to your multi pay-in account.