Use Case: Refunds

What are Refunds?

A refund is a way to return funds back to your payer via Flywire. You can define if you want to return the full amount (full refund) or just part of the amount (partial refund) of the original payment.

Refund Essentials: What You Should Know

  • A payment needs to be in status delivered before you can create a refund for it (see Payment Statuses for details about payment statuses).

  • Each refund is connected to one payment, it is not possible to create one "shared" refund for multiple payments.

  • A payment can only have one active refund at a time. When the refund is done (in status finished) you can create a new refund for the payment.

  • The refunded amount, whether it's one full refund or several partial refunds added together, can't be more than the initial payment amount.

  • Refunds and bundles are recipient-specific. The settings for refunds (how the money will be collected, the cut-off time for refund bundles, and if approvals are needed for a bundle) depend on the recipient of the original payment.

  • A refund is always part of a refund bundle, even if the bundle only contains one refund. This means even if you only create one single refund, there will automatically be a refund bundle created for it.

Requirements for using Refunds

There are two sides to requirements for using refunds:

Requirements on the client side

You as a client need to have the permission to work with refunds. Please contact the Solutions team for this.

Requirements on the recipient side

A recipient must have the following settings in place to be able to use refunds:

  • The recipient must have a cut-off time defined.

  • The recipient must have defined if refunds need to be approved or not.

How does the Refund Process work?

The refund process works like this:

  1. Flywire collects the funds from the recipient of the original payment.

  2. Flywire returns the money to the payer of the original payment,

Walkthrough: Creating Refunds

The following steps are necessary to create refunds with the Flywire API:

To be able to use the Flywire API, you need to be registered, and all requests to the Flywire API need to be authenticated, see Flywire API Basics

If you are just getting started and only have Sandbox credentials, you need to use the Sandbox environment. All request examples let you switch between the production and sandbox base URL.

  1. You need to know the payment reference of the payment you want to create a refund for.

    GET/payments

    If you don't know the payment reference of the payment, you can use the this endpoint to find it. More about the endpoint: Getting a List of all Payments

  2. Create a refund for the payment.

    POST/payments/{paymentID}/refunds

    More about the endpoint for creating refunds: Creating a Refund for a Payment

  3. The refund is automatically added to a refund bundle. You can keep adding refunds for other payments for the same recipient to the bundle until the cut-off time for the recipient is reached.

  4. After the cut-off time has passed, the refund bundle either gets processed by Flywire or - if refunds for this recipient need approval - you need to approve the refund bundle first via

    POST/refund_bundles/{bundleID}/approve
    .

    More about the endpoint for approving refunds: Approving a refund bundle

  5. The refund bundle is now being processed by Flywire.

    GET/refunds

    You can get an overview about all refunds you created via this endpoint, see Refunds.

    If you provided a notifications URL, you'll also receive callbacks for each status change, see Refund Status Notifications.