Testing Bank Transfer Payments
In your demo environment, create a test payment with the following data:
1. Payer information (Magic Values)
Use any placeholder data you'd like for the required payer information.
For the payer's first name use one of the magic values depending on the scenario you want to test:
Successful Payment - realistic disbursement
This scenario simulates a realistic disbursement. Instead of advancing immediately, payments created with this magic value are held in
Guaranteed until they get "disbursed" - which means they move to
Delivered daily at 4:00 PM UTC (Monday through Friday). If you create multiple test payments with this value, you create a realistic disbursement file that contains multiple payments.
This magic value can be used for all payment methods.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_GUARANTEED_STATUS |
|
After moving to delivered - happens daily at 4:00 PM UTC (Monday through Friday):
|
Successful Payment - disbursed immediately
This magic value moves a payment into delivered immediately. This magic value can be used for all payment methods.
Be aware that this is not a realistic payment behavior and creates disbursement files that contain only one payment, since every time a payment is moved to
Delivered a new disbursement file is generated. Usually, all payments for the day get bundles into one disbursement file.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_DELIVERED_STATUS |
|
|
Unsuccessful Payment - cancelled payment
This scenario simulates a cancelled payment. This magic value can be used for all payment methods.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_CANCEL_STATUS |
|
|
Successful Payment - with simulated successful verification
This magic value simulates a payment that fails automated checks and gets routed to manual review which ends up being successful. This can happen for any payment method if a manual review (for example document collection or quality checks) is necessary.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_VERIFICATION |
|
After 2 hours:
After moving to delivered - happens daily at 4:00 PM UTC (Monday through Friday):
|
Unsuccessful Payment - with simulated failed verification
The magic value simulates a payment that fails automated checks and gets routed to manual review and fails the check. This can happen for any payment method if document collection or quality checks fail and cannot be manually corrected by contacting the payer.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_VERIFICATION_FAILED |
|
After 2 hours:
|
Re-initiated Cancelled Payment
This can happen for payments made via bank transfer, card, or alternative payment methods.
In some edge cases, the
Cancelled status isn't final. It is important to ensure that your platform can handle callbacks that occur after cancelled.
When can this happen?
For bank transfer:
A bank transfer is automatically cancelled if Flywire doesn't receive the funds in time. However, if the payer sent funds but they did not arrive before the cancellation or there was a bank delay, Flywire will re-initiate and process the payment if the FX rate is similar. This moves a payment from cancelled back through the standard flow.
For payment via card and alternative payment methods:
If the third-party caused the payment to go into cancelled even though the transaction was successful, Flywire is able to re-initate the payment.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_CANCELLED_BACK_TO_PROCESS_STATUS |
|
|
Under- or Overpayment
This can only happen for bank transfer as the payment method (because the payment is completed manually outside of the Flywire platform). If the payer transfers a slightly wrong amount, the payment amount that is
Guaranteed (and will be
Delivered ) can be different from the
Initiated amount.
-
A payer books an exchange rate with Flywire to send $2000 via bank transfer.
-
An initiated status and value of $2000 is sent to you via the callback notification.
-
When the payer sends funds via online banking or at their physical bank, they send above or below the quoted amount of $2000. Flywire will accept this amount if it is within a specific threshold.
Flywire amount change tolerances are:
-
200.00 USD or equivalent under the booked exchange amount
-
1000.00 USD or equivalent over the booked exchange amount
-
-
If the payment is within these tolerances:
A guaranteed status with an updated value in the amount parameter is sent to you via the callback notification.
If the payment is outside of these tolerances (excessively under or over the initiated value):
Flywire will contact you to ask if you would like to accept the payment or return it back to the payer. If this happens, the payment will be placed on hold and follow the payments on hold flow.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_SMALL_UNDERPAYMENT_STATUS |
|
|
|
SANDBOX_SMALL_OVERPAYMENT_STATUS |
|
|
Payment with a Refund
This scenario simulates a payment with a refund. The magic value triggers the following flow:
-
Payment gets created and delivered.
-
Then a refund is created, pushed to the finished status, and the bundle is automatically generated.
(You won't receive any callbacks for those refunds and bundles).
-
The reversed callback is sent with information about the refund.
While the payment status remains delivered, you will receive a callback that the payment has been reversed due to a refund.
This magic value can be used for all payment methods.
| Payer's First Name | Payment Flow | Callbacks you will receive |
|---|---|---|
|
SANDBOX_TO_REVERSED_REFUND |
|
|
2. Payment option
Choose bank transfer as the payment option.
The bank transfer instructions will be displayed but you can ignore them, since at this point the payment has already been created and will move through the statuses according to the scenario you chose.
3. Check the results
You will receive callbacks according to the scenario you chose (see Payment Status Notifications for details).
