Flywire API Basics
The Flywire API is an HTTP-based REST API that uses API Keys for authorization.
API request and response bodies are formatted in JSON.
Base URL
The base URL for the Flywire API is
https://api-platform.flywire.com/payments/v1/
Registering for the Flywire API
You need to register an application in order to make requests to the Flywire API. To be able to register, you have to be a client of Flywire and have one or more recipients. Your application will have access to all the recipients that belong to a client.

An application contains the credentials you need for using the API.
Being a client of Flywire means you or your company is a customer of Flywire. A client can have one or more 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.
You might know recipients under the name portals, they refer to the same thing.
Authenticating your Requests
All requests to the Flywire API need to be authenticated with an API Key.
To include your API Key in your requests, add your API Key in the header in the format:
X-Authentication-Key: {api_key}
curl https://base-url-placeholder/recipient
-X GET \
-H "Content-Type: application/json" \
-H "X-Authentication-Key: {api_key}" \
Format of Requests
Requests to the API are composed of the following components:
HTTP Method
GET: Retrieves data from a resource
POST: Creates a new entry
PUT: Fully updates a resource
PATCH: Partially updates a resource
DELETE: Deletes an existing resource
HTTP Parameters
Parameters that are added to the URL as query parameters. Some requests require HTTP parameters, some don't.
HTTP Headers
"Content-Type: application/json"
"X-Authentication-Key: {Your API Key}"
Base URL
Production: https://api-platform.flywire.com/payments/v1/
Sandbox: https://api-platform-sandbox.flywire.com/payments/v1/
Resource
The resource to read or update.
Example: /orders
Body
A JSON required for most POST, PUT and PATCH requests.
curl https://base-url-placeholder/payments/UUI754118889/authorization_adjustments
-X POST \
-H "Content-Type: application/json" \
-H "X-Authentication-Key: {api_key}" \
-d '{
"amount": 70000
}'
Format of Responses
Flywire uses conventional HTTP response codes to indicate the success or failure of an API request. Each request returns a success or error HTTP status code.
Success response codes (2xx)
Codes in the 2xx range indicate success.
Status code | Description |
---|---|
200 - OK | Request has been successfully processed. |
201 - Created | Create resource operation successfully performed. |
204 - No content | The update operation completed successfully. No response body returned. |
Error response codes (4xx and 5xx)
See Error Handling Guide for details about error responses.
Rate Limits
The Flywire API limits how many requests you can send in a certain time to avoid traffic spikes.
Rate limits are enforced per IP address, not per application.

An application contains the credentials you need for using the API.
Environment | Rate Limit |
---|---|
Flywire API Production |
50 requests per minute |
Flywire API Sandbox |
50 requests per minute |