Recipients

List of endpoints

Description Endpoint
Getting a List of all available Recipients
GET /recipients

Getting Details about a Recipient

GET/recipients/{recipientId}

About Recipients

What are recipients?

A recipient contains the information that is needed for receiving funds, for example, bank details or specific fields your system requires to process a payment.

You as a client can have multiple recipients. For example, if you want Flywire to send funds to different recipients or if you have different bank accounts for different recipients. Each recipient has a unique three-letter ID.

Recipients vs. portals
You might know recipients under the name portals, they refer to the same thing.

Where do recipients come from?

Recipients have been set up during your onboarding process as a client. You need to contact Flywire to set up new recipients.

Localization

Recipients can be localized.

Getting a List of all available Recipients

Request

The list of recipients contains all the recipients that are available to you as a client. You can display this list in your UI, for example as a drop down, so that the person creating the payment in your system can choose one of the recipients.

If you don’t have any recipients the request will still be successful, but the list will be empty.

Parameters for the Request Body

No request body is needed.

Optional Query Parameters for Pagination

This endpoint supports pagination. If you are not providing any pagination parameters, the response is returned with default pagination settings.

Pagination parameters are added as query parameters with the request in the format

{endpoint_path}?page=2&per_page=10

GET /recipients
curl https://base-url-placeholder/recipients?page=1&per_page=100
  -X GET
  -H "Content-Type: application/json"
  -H "X-Authentication-Key: {api_key}"

Response

Missing recipients in the list?

If you are missing recipients in your list of available recipients, the recipient might have been set to inactive in Flywire. The list only returns active recipients. Recipients can be set to inactive for multiple reasons, for example the recipient doesn’t want to receive funds in the configured way anymore. Please contact the Solutions team if you’re missing recipients in your list.

Parameters for pagination

Recipients array

{
    "total_entries": 350,
    "total_pages": 4,
    "page": 1,
    "per_page": 100,
    "recipients": [
    {
      "id": "AAE",
      "external_code": "E00210",
      "name": "International American University", 
      "country": "US",
      "state": "MA"
    },
    {
      "id": "FWU",
      "external_code": "E00212",
      "name": "Flywire University",
      "country": "US",
      "state": "IN"
    },
    // The array continues with similar objects for each recipient
  ]
}

Getting Details about a Recipient

Request

This endpoint returns all the information about one recipient.

Parameters for the Request Body

No request body is needed.

How to Resolve the Path Placeholders of the Endpoint

Replace the {recipientId} of the endpoint with the actual recipient ID.

GET/recipients/{recipientId}

curl https://base-url-placeholder/recipients/FWU
  -X GET
  -H "Content-Type: application/json"
  -H "X-Authentication-Key: {api_key}"

Response

fields array

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.

Fields are defined when the recipient (also called portal) is set up by Flywire. They are additional fields that the payer has to fill out when they make their payment (additional to the standard payer fields that are the same for all recipients).

Typically, these are fields your own system needs to be able to process and reconcile the payment. While some fields are common across many recipients, others are unique to yours.

The parameters of the fields depend on the type of field.

view_options object

The view options contain additional information about how to display this field in your PayEx portal.

Information about how fields and messages are displayed in a Flywire PayEx portal is not relevant when you are using the Flywire API since you are not using a PayEx portal for payments.

items array

An item is something that your payer can pay for (for example: tuition fees, housing, etc.). When you create a payment, you display the items to your payer and they can choose for which items they want to pay. How many items there are depends on the recipient's configuration.

The Flywire API expects every recipient to have at least one item. If no item(s) were specified when the recipient was set up, the Flywire API interprets that as one item which has the id "default".

settings object

amount_limits object

Contains the payment amount limits.

The settings of a recipient define the minimum and maximum amount for a payment. These limits are defined when you set up the recipient with Flywire.

If you didn't customize the settings, the default limits are:

  • Minimum: 5000 = 50.00 USD

  • Maximum: 15000000 = 150000.00 USD

When payments to your recipient contain multiple items, the limits apply to the sum of the amounts of all items.

refund_bundle_cut_off object

The cut-off time and approval settings are only relevant when you are using refunds. For details about those settings see Refunds: Cut-off time and Approval.
{
  "id": "TQQ",
  "external_code": "",
  "name": "TechDoc University",
  "email": "",
  "website": "",
  "logo_url": "https://cloud.TechDoc_University_Logo1695717629",
  "address": "London Street",
  "address2": "",
  "city": "London",
  "state": "London",
  "zip": "",
  "country": "GB",
  "currency": "GBP",
  "fields": [
    {
      "id": "services_used",
      "type": "array",
      "format": "",
      "required": false,
      "pattern": null,
      "pattern_message": null,
      "value": [
        {
          "label": "Housing",
          "value": "housing"
        },
        {
          "label": "Tuition & Fees (including room & meal plan)",
          "value": "tuition"
        },
        {
          "label": "Orientation",
          "value": "orientation"
        }
      ],
      "view_options": {
        "section_identifier": "student_information",
        "section_name": "Student Information",
        "section_description": "Please provide us the following details",
        "label": "Services Used",
        "help": null,
        "hint": null,
        "placeholder": null,
        "position": 2,
        "hidden": false
      }
    }
  ],
  "items": [
    {
      "id": "default",
      "currency": "GBP",
      "label": "Amount"
    }
  ],
  "settings": {
    "amount_limits": {
      "minimum_amount": 3668,
      "maximum_amount": 11004758
    }
  },
"refund_bundle_cut_off": {
    "periodicity": "weekly",
    "approval_type": "manual",
    "next_cutoff_time": "2023-12-22T09:47:06.090Z"
	}
}

Key Elements of Recipient Data

Items

An item is something that your payer can pay for (for example: tuition fees, housing, etc.). When you create a payment, you display the items to your payer and they can choose for which items they want to pay. How many items there are depends on the recipient's configuration.

The Flywire API expects every recipient to have at least one item. If no item(s) were specified when the recipient was set up, the Flywire API interprets that as one item which has the id "default".

Settings

The settings of a recipient define the minimum and maximum amount for a payment. These limits are defined when you set up the recipient with Flywire.

If you didn't customize the settings, the default limits are:

  • Minimum: 5000 = 50.00 USD

  • Maximum: 15000000 = 150000.00 USD

When payments to your recipient contain multiple items, the limits apply to the sum of the amounts of all items.

Fields

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.

Fields are defined when the recipient (also called portal) is set up by Flywire. They are additional fields that the payer has to fill out when they make their payment (additional to the standard payer fields that are the same for all recipients).

Typically, these are fields your own system needs to be able to process and reconcile the payment. While some fields are common across many recipients, others are unique to yours.

Field Types

A dropdown field with one possible option to pick.

How do I know if a field is a dropdown field?

type

Is string.

value

Is an array of values. The values are the possible options for filling out this field. Each value is a pair of label and value:

label

The label of the value. The label can be displayed in a UI.

value

The internal name of the value.

"fields": [
      {
      "id": "student_status",
      "type": "string",
      "format": "",
      "required": false,
      "pattern": null,
      "pattern_message": null,
       "value": [
	    {
           "label": "Full-time",
           "value": "full_time"
        }, 
	    {
           "label": "Part-Time",
           "value": "part_time"
        },
	    {
           "label": "Online-Campus",
           "value": "online_campus"
        }
	   ],
       "internal_alias": null,
       "view_options": {
           "section_identifier": "student_information",
           "section_name": "Student Information",
           "section_description": "Please provide us the following details",
           "label": "Student Status",
           "help": null,
           "hint": null,
           "placeholder": null,
           "position": 1,
           "hidden": false
       }
   }
 ],

A field to enter text. The field can have different formats:

Free text field

Phone number field

Country dropdown field

Date field

How do I know if a field is a text field?

type

Is string.

format

Is text, date, phone, or country

value

No value.

Why is there no value? 

Values are only returned for field types that contain options to choose from (dropdown or multiple checkboxes).

"fields": [
      {
      "id": "student_id",
      "type": "string",
      "format": "text",
      "required": true,
      "pattern": "^[f|F]\d{8}$",
      "pattern_message": "The ID begins with "F" followed by 8 digits",
      "value": "",
      "view_options": {
        "section_identifier": "student_information",
        "section_name": "Student Information",
        "section_description": "Please provide us the following details",
        "label": "Student ID",
        "help": null,
        "hint": null,
        "placeholder": null,
        "position": 4,
        "hidden": false
      }
   ],

A single checkbox so payers can check it for "yes" or uncheck it for "no"

How do I know if a field is a single checkbox field?

type

Is boolean.

value

No value.

Why is there no value? 

Values are only returned for field types that contain options to choose from (dropdown or multiple checkboxes).

"fields": [
    {
      "id": "residential_student",
      "type": "boolean",
      "format": "",
      "required": false,
      "pattern": null,
      "pattern_message": null,
      "value": "",
      "view_options": {
        "section_identifier": "student_information",
        "section_name": "Student Information",
        "section_description": "Please provide us the following details",
        "label": "Are you a residential student?",
        "help": null,
        "hint": null,
        "placeholder": null,
        "position": 3,
        "hidden": false
      }
    }
  ],

Multiple checkboxes so the payer can pick multiple values.

How do I know if a field is a multiple checkboxes field?

type

Is array.

value

Is an array of values. The values are the possible options for filling out this field. Each value is a pair of label and value:

label

The label of the value. The label can be displayed in a UI.

value

The internal name of the value. When you are pre-filling the field, you need to use this value, not the label.

 

"fields": [
    {
      "id": "services_used",
      "type": "array",
      "format": "",
      "required": false,
      "pattern": null,
      "pattern_message": null,
      "value": [
        {
          "label": "Housing",
          "value": "housing"
        },
        {
          "label": "Tuition & Fees (including room & meal plan)",
          "value": "tuition"
        },
        {
          "label": "Orientation",
          "value": "orientation"
        }
      ],
      "view_options": {
        "section_identifier": "student_information",
        "section_name": "Student Information",
        "section_description": "Please provide us the following details",
        "label": "Services Used",
        "help": null,
        "hint": null,
        "placeholder": null,
        "position": 2,
        "hidden": false
      }
    }
  ],

Refunds: Cut-off time and Approval

The cut-off time and approval settings are only relevant when you are using refunds. For details about refunds see Use Case: Refunds.

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.