Online Payment - Flywire
Last updated: October 21, 2026
Summary
Eduframe supports international online payments for courses via payment provider Flywire. Flywire specialises in cross-border payments: your customers can pay from almost any country, in their local currency and with local payment methods, while you receive the funds in your own currency. An integration between Flywire and Eduframe is easily set up. Find out more in this article.
Get a Flywire account
To accept payments through Flywire you need a Flywire account with a payment portal. Flywire's team sets up your portal together with you: which payment methods and currencies are available, and which fields your customers see on the payment form, are all configured on Flywire's side.
Once your portal is set up, Flywire provides you with the details you need to link it to Eduframe:
your provider code
your payment destination (the code of your portal)
a shared secret
Tip: Keep the shared secret confidential - it is used to secure all communication between Eduframe and Flywire.
Note: Ensure that the Educator currency in Eduframe matches the currency configured in Flywire. If the currencies do not match, the prices sent to Flywire will be incorrect.
Link your Flywire account to Eduframe
In Eduframe go to Settings > Payments and add a new payment method. The name you choose here is also the name your customers see when they select a payment option on the signup form, so pick something they will recognize — for example "Flywire" or "International payment". Choose Flywire as the gateway and enter your Flywire details as the API key, in the following format:
{"provider": "YOUR_PROVIDER_CODE", "payment_destination": "YOUR_PORTAL_CODE", "country": "GB", "shared_secret": "YOUR_SHARED_SECRET"}
provider: the provider code you received from Flywire.
payment_destination: the code of your Flywire portal.
country: the country that is preselected as the payer's country on the Flywire payment form, as a two-letter ISO country code (for example GB for the United Kingdom). Your customers can always select a different country themselves.
shared_secret: the shared secret you received from Flywire.
Choose whether the payment method is available for customers (during signup) and/or for administrators, and save your settings.
How do payments with Flywire work?
When a customer chooses to pay with Flywire, they are redirected to your own branded Flywire payment page. Their name is already filled in for them (for orders placed by a
company, the organization name is used), and they can adjust it if needed. The Eduframe order number is passed along as reference but not visible to the customer.
Flywire automatically reports the progress of the payment back to Eduframe, so no manual action is needed:
The payment in Eduframe stays Open until Flywire has received and validated the funds. Depending on the payment method this can take a few days — international bank transfers
in particular are not instant.As soon as Flywire guarantees the funds, the payment in Eduframe is marked as Paid.
If the payment is cancelled or fails, the payment in Eduframe is marked as Failed.
Note: in the rare case that Flywire reverses a payment after it was already Guaranteed, the payment in Eduframe stays Paid. Such reversals are visible in your Flywire dashboard and need to be followed up manually.
Testing your integration
Flywire offers a sandbox environment in which you can test the full payment flow without real money. Contact Flywire to set one up.
To use it, set up your Flywire payment method with the details of your demo
portal and add "use_demo": true to the API key:
{"provider": "...", "payment_destination": "...", "country": "...", "use_demo”: true}
Flywire's demo environment supports special test values to simulate different payment outcomes; see Flywire's documentation for an overview.
Prefill the student number
Flywire defines up to 8 different custom fields of which one is usually the student number. You can let Eduframe automatically prefill the student number for personal orders by adjusting the API key setup in Eduframe as follows:
{"provider": "...", “student_number_field": "…”}
The value depends on your flywire instance and what the actual name is of the custom field for the student number.
Paying in installments
If enabled on your Flywire portal, customers can choose to pay in installments instead of the full amount at once. When available, Flywire shows this as a second option on the payment form; the number, amount, and schedule of the installments are all determined by your Flywire settings, not by Eduframe.
Customers fill in the Flywire payment form as normal. Depending on your Flywire settings, they then either pay the first installment immediately, or it is scheduled to be collected at a later date.
Eduframe only tracks a single payment status per order, so it follows the status of the first installment only:
Once the first installment is paid, Eduframe marks the entire payment as Paid.
If the first installment is cancelled, Eduframe marks the entire payment as Failed.
Note: Eduframe has no visibility into installments beyond the first one. If a later installment is paid or cancelled, this is not reflected in Eduframe automatically — check your Flywire dashboard and update the payment status in Eduframe by hand if needed.