Intelligent Links

For this Pay-By-Link option, you’re creating the link by adding query parameters to the link you give to your payers.

How does it work?

  1. You build the link with these two parts:

    1. Base URL (depends on the environment you want to use, see Base URL)
    2. Query String (depends on your individual settings and use case, see Query parameters)

    Example:

    https://payment.demo.flywire.com/pay/payment?recipient=TQQ&amount=200000&sender_first_name=Peter&sender_last_name=Payer

  2. You give the link to your payer.

Base URL

There are two different versions of Intelligent Links:

  • IL-Gateway

  • IL-Payment

Which one should I use?

You can use either version, both will bring your payers to your PayEx portal. They offer slightly different functionality, so which one you should choose depends on your current use case. This documentation will help you decide which version you want to use for each link you generate, depending on the features you need.

 

IL-Gateway

Production
https://gateway.flywire.com/v1/transfers
Demo
https://gateway.demo.flywire.com/v1/transfers

 

IL-Payment

Production
https://payment.flywire.com/pay/payment
Demo
https://payment.demo.flywire.com/pay/payment

Query parameters

Query parameters define your settings for the payment. With those parameters, you direct payers to your unique PayEx portal and decide which fields will be pre-filled there. Each query parameter has a value that will either define settings (for example, your portal ID that directs your payer to your unique PayEx portal) or will pass data into a field of your PayEx portal (for example, the payment amount).

Required basic settings

These parameters are required to properly direct your payer to your unique PayEx portal.

Your logo in the upper left corner tells your payers that they are in your unique PayEx portal

image

Payment amount or items

When setting up your portal with Flywire, you can choose how you want to handle amounts. There are two possible configurations:

  • One amount: There is only one field for the total amount.

  • Items: There are multiple fields to breakdown specific costs (e.g., "Tuition" and "Housing"), and each field has an amount.

If you want to change your portal configuration, please contact the Solutions team.

Not sure which one you’re using? Use the portal checker and look at the field IDs for items:

  • One amount: You will see a single field with the ID amount.

  • Items: You will see one or more IDs with specific names (e.g., tuition_fee, housing, etc.).

My portal uses one amount

image

My portal uses items

image

Dynamic fields

image

Fields of a recipient (also called a portal) are fields that are specific to that recipient. Depending on how you use Flywire, you might know them under the names dynamic fields, custom fields, or student fields.

These fields are defined when the recipient (portal) is set up by Flywire. Typically, these are fields your own system needs to be able to process and reconcile the payment.

Guide for pre-filling dynamic fields

Pre-filling dynamic fields is optional. If you want to pre-fill them, you need to provide the internal_name of the field (you can check your portals settings to find the internal names of your dynamic fields.).

Dynamic fields can have different types, and it depends on the field type how you pre-fill them via query parameters.

Controlling if the payer can edit pre-filled fields

For IL-Payment:

When you pre-fill fields via the generated link, the fields will still be editable by default. You can decide if you want to make them read-only for your payers with the read_only parameter. You can use this parameter for:

  • amount

  • dynamic fields

  • payer information fields

 

For IL-Gateway:

When you pre-fill fields via a generated link, dynamic fields will be read-only for your payer.

This means:

  • For checkboxes, your payer won't be able to select more values or un-select the ones you selected.

  • If you pass invalid values (because of a typo or because the internal name of a value has been changed), the field will be empty and read-only for your payer. If the field is mandatory, this can mean that your payer can't complete the payment. Be careful with passing values that are prone to change.

Payer information

image

Payer information fields contain the details of the payer. The information necessary for Flywire to conduct compliance checks, such as Anti-Money-Laundering (AML). If the payer details are known to you, you can pre-fill the payer fields in your PayEx portal.

Read only: Controlling if the payer can edit fields

For IL-Payment:

When you pre-fill fields via the generated link, the fields will still be editable by default. You can decide if you want to make them read-only for your payers with the read_only parameter. You can use this parameter for:

  • amount

  • dynamic fields

  • payer information fields

For IL-Gateway:

Important note for pre-filling dynamic fields:

When you pre-fill fields via a generated link, dynamic fields will be read-only for your payer.

This means:

  • For checkboxes, your payer won't be able to select more values or un-select the ones you selected.

  • If you pass invalid values (because of a typo or because the internal name of a value has been changed), the field will be empty and read-only for your payer. If the field is mandatory, this can mean that your payer can't complete the payment. Be careful with passing values that are prone to change.

Payer redirection

You can display a button in your PayEx portal that redirects your payer somewhere, for example your website. This button is displayed on the final page of the payment creation process, to the right of the payment instructions.

image

Your portal might have default settings for the return button and its label. In that case, you don't need to provide a URL in order to display the button. But if there are no default settings and you don't provide a valid URL in the return_cta parameter, the button will not be displayed

Callback configuration

Payment status notifications are callbacks for payment events, such as a payment status change. They enable you to track a payment while it makes its way through the payment workflow. Whenever a status change event occurs, for example when the payment status changes from Initiated to Processed, you'll get a notification to the URL you provided.

Why should I use callbacks?

Using callbacks has several benefits:

  • Callbacks can be used to facilitate reconciliation of Flywire payments to accounting systems, ERPs, etc.

  • Callbacks provide real-time updates for payment statuses, no manual checks in Dashboard needed.

  • Callbacks are especially useful for direct debit payments where the payment capture will take a few working days and may be subject to future failure.

  • You can use callbacks to trigger processes that start after the payment is completed.

When should I use callbacks?

If you have access to Flywire Dashboard, callbacks are optional (but recommended) since you have the option to manually track the payment progress there. If you don't have access to Flywire Dashboard, it is highly recommended to use callbacks enable you to track the payment progress.

If you are using the image Flywire API, callbacks are essential to ensure you get reliable updates about the payment in real-time. Without callbacks, your system would have to poll the API for updates, which is resource-intensive and can lead to performance bottlenecks or rate-limiting.

Enabling callbacks

To enable callbacks, you need to provide a notification URL where Flywire will send HTTP requests. This can be done in two ways: