Testing directly over real payment rails is complex and can be slow and expensive. The Wise Platform sandbox environment allows you to test your integration end-to-end by simulating incoming payments without actual money movement.
The sandbox environment supports simulation for both Wise-issued local account details and International Receive via connected BIC. Each simulation triggers the same webhook events and API responses you will encounter in production, allowing you to verify your full integration before going live.
Regardless of the payment rail you are testing, your integration should be verified end-to-end against the following:
- Webhook delivery: Confirm that your webhook endpoint receives the
incoming-transfer#creditedevent after the simulated payment is processed. - Payload parsing: Verify that your integration correctly extracts the
data.incoming_transfer_idfield from the webhook payload. - Transfer detail retrieval: Confirm that calling the incoming transfer endpoint returns a complete transfer record with the expected fields — amount, currency, debtor details, debtor bank details, and clearing identifiers.
- Customer identification: Verify that your integration correctly identifies the receiving customer by matching the account details in the incoming transfer resource to your internal records.
- Reconciliation: Confirm that the credited amount and value date are correctly recorded in your internal ledger.
If you have subscribed to the swift-in#credit or swift#message-received webhook events in addition to incoming-transfer#credited, verify that your integration handles all subscribed events correctly and without duplication.
Use the following endpoint in the sandbox environment to simulate an incoming payment to a set of Wise-issued Local Account Details (IBAN, sort code and account number, routing and account number, etc.).
- Production Environmenthttps://api.wise.com/2026Q4/simulation/profiles/{profileId}/bank-transactions/import
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/simulation/profiles/{profileId}/bank-transactions/import
curl -i -X POST \
'https://api.wise.com/2026Q4/simulation/profiles/{profileId}/bank-transactions/import' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"currency": "USD",
"amount": 2000
}'The simulation triggers the full credit processing pipeline, including balance update and incoming-transfer#credited webhook delivery, in the same way as a real incoming payment over the corresponding local rail (SEPA, Faster Payments, ACH, etc.).
For the full list of supported parameters, currency-specific constraints, and error responses, see the simulate incoming bank transfer reference.
After triggering a simulation, verify the following:
- Your webhook endpoint receives an
incoming-transfer#creditedevent within a few seconds. - You can use the
incoming_transfer_idin the webhook payload to successfully retrieve the incoming transfer resource. - The simulated debtor name, amount, and currency are reflected correctly in the incoming transfer resource.
- The
accountDetailsIdfield in the transfer record matches the Local Account Details you simulated the payment to.
Use the following endpoint in the sandbox environment to simulate an incoming Swift message to your connected BIC. This allows you to verify your end-to-end flow for receiving international Swift payments (including Swift message processing, credit notification, and transfer detail retrieval).
- Production Environmenthttps://api.wise.com/2026Q4/simulation/profiles/{profileId}/swift-in
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/simulation/profiles/{profileId}/swift-in
curl -i -X POST \
'https://api.wise.com/2026Q4/simulation/profiles/{profileId}/swift-in' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"currencyCode": "EUR",
"amount": 100
}'For request/response details and the list of supported Swift message types, see the Simulating incoming Swift payment reference.
After triggering a Swift simulation, verify the following:
- Your webhook endpoint receives an
incoming-transfer#creditedevent. - If you are subscribed to
swift#message-received, verify that you receive this event and thatdata.resource.contentcontains a valid Base64-encoded PACS message of the expected type (e.g.,pacs.008.001.08). - You can use the
incoming_transfer_idfrom theincoming-transfer#creditedpayload to retrieve the full incoming transfer resource, including Swift-specific fields such as debtor bank BIC, LEI, and Clearing System Member ID where applicable. - If you are subscribed to the
swift-in#creditevent, verify you receive it and that the Swift transaction reference in the payload matches the simulated payment.
Once configuration and sandbox testing is complete, you must update your Standing Settlement Instructions (SSI) to point your production BIC to the Wise BIC. This is a mandatory step to ensure that live Swift payments sent to your BIC are correctly routed to Wise for processing.
We also strongly recommend that you notify other members of the Swift network that your SSI has been updated. Without this notification, correspondent banks may continue routing payments using outdated instructions, which can result in delays or misrouted payments.
Notification to the Swift network is done through an MT670 message sent directly to Swift. Wise will need to send this message on your behalf. Coordinate with your Wise implementation manager to initiate this step at the appropriate time in your go-live process.
Do not update your production SSI until you have fully completed sandbox testing and received sign-off from your Wise implementation manager. Premature SSI updates can disrupt live payment routing for your existing customers.