Going live
A short, practical checklist for the move from Sandbox to Production, with callbacks and IP allowlisting in place.
- Test failure paths, not just success
- Reconcile before retrying
- Allowlist IPs both ways
- Run a real transaction first
Going-live checklist
Work through these before switching an integration to Production. They map to the behaviour every Whish Money API shares.
Validate every flow in Sandbox
Exercise each endpoint, including the failure and challenge paths (for example the Bills OTP step), not just the happy path.
Handle pending and timeouts
Treat a timeout or code: 500 as unknown, not failed. Reconcile before you retry, refund, or cancel.
Make retries idempotent
Store your externalId or Request-id before sending, and after a timeout resend with that same value rather than a fresh one. On the Whish APIs the repeat returns the original result with retrieved: true; on International Money Transfer it returns transfer.already.done, and you then read the outcome via Get transfer status. A fresh id on retry is what creates duplicates.
Wire up callbacks
Where an API sends callbacks, confirm you receive them, respond HTTP 200, and confirm the outcome with the status endpoint before fulfilling.
Allowlist IPs both ways
Allowlist Whish callback source IPs on your side, and give Whish your server egress IPs for endpoints that require inbound allowlisting (Whish Pay refund, Direct Credit send).
Re-check reference data on Production
What your account is allowed to use is set per environment, so confirm it rather than reusing Sandbox values. For International Money Transfer, call List sending countries against Production and use the fromCountry ids it returns.
Switch to Production
Swap the base URL, load your Production credentials, and run a small real transaction end to end before full rollout.
IP allowlisting, in both directions
Two separate things are often confused. Set up whichever your integration uses.
| Direction | What it means | Who acts |
|---|---|---|
| You → Whish | Some endpoints (Whish Pay refund, Direct Credit send) only accept requests from registered source IPs. | You send Whish your server egress IPs to allowlist. |
| Whish → you | Whish calls your callback URL from a fixed set of source IPs. | You allowlist Whish's callback IPs on your callback endpoint. |
The current callback source IPs (per environment, for both platforms) are listed in the Reliability & Idempotency guide.
Keep reconciling
After go-live, keep confirming outcomes from a callback or the status endpoint rather than assumptions, and use each API's activity or statement endpoints where available to reconcile your ledger against Whish. If you hit a pending (code: 500) you cannot resolve, contact your Whish Money representative.