Sandbox Overview
The VoPay sandbox is a full working copy of VoPay where nothing is real and nothing can break. Send payouts, collect funds, onboard accounts and receive webhooks using the same API and Portal you'll use in production, with test money. You also decide how every transaction ends, just by choosing its cents value.
Your first 15 minutes
Submit a sandbox access request. VoPay will review your request and create your account with API access, Portal access, or both, based on your testing needs. Request Sandbox Access
Check your signature. Call auth/ping. If it succeeds, your authentication is set up correctly.
Connect a test bank account. In production, VoPay does this for you during onboarding. In sandbox, you connect the fictitious VoPay Testing Bank yourself.
Fund your account with $100.00. Using account/fund-my-account or Fund My Account in the Portal.
Watch it move. Statuses update about once a minute, in the Portal and in your webhooks.
Now make one fail. Send $100.25 and watch it succeed, then fail. That's how you test returns.
If you are new to payments and would like to get started using our online portal experience, our sales team will be happy to schedule a demonstration. You can contact our sales team here.
Sandbox Transaction Processing
Since we are in a testing environment, we cannot process the transactions in the same way that production does. For that reason, we have created a simple way for you to follow the whole lifecycle of the transaction.
Every minute each transaction will change its status until they reach one of the following statuses: failed, cancelled, or successful; depending on the transaction amount. These rules apply to all funding, withdrawal, bulk payout and money request transactions.
Choose the outcome with the cents
| Amount ends in | What happens | Use it to test | Try |
|---|---|---|---|
| .60 – .99 | Succeeds. | The happy path. | $100.00 |
| .01– .09 | Fails immediately, before processing. | Rejected requests and error handling. | $100.05 |
| .10 – .19 | Fails after going In Progress. | Failures mid-flight. | $100.15 |
| .20 – .29 | Fails after being marked Successful. | Returns and reversals after you've already reconciled. | $100.25 |
| .30 – .39 | Cancelled. | Cancellation handling. | $100.35 |
| .40 – .49 | Bulk payouts: cancelled after going In Progress. In-progress payouts with an FI Reference Number move to Cancellation Requested. EFT and money requests: cancelled, same as .30–.39. | Late cancellations. | $100.45 |
| .50 – .59 | Nothing. The transaction stays where it is. | Holding a status still while you test a screen or edge case. Support can move it to a specific status on request. | $100.55 |
Where these rules apply
Funding, withdrawals, bulk payouts and money requests. Credit and debit cards use test card numbers instead, and Apple Pay and Google Pay have their own amount tables, available from your implementation contact.
What a test looks like
A withdrawal of $250.25, minute by minute:
| ~Minute | Status | Webhook sent |
|---|---|---|
| 0 | Created. | ✓ |
| 1 | In Progress. | ✓ |
| 2 | Successful. | ✓ |
| 3 | Failed. | ✓ |
If your system marked the payment as complete at minute 2, this is the scenario that shows whether it recovers.
Simulate account onboarding
New accounts and sub-accounts activate instantly by default. To walk through the real onboarding workflow instead, end the account name with a suffix when you create the account or sub-account
| Name ends in | Result | Use it to test |
|---|---|---|
| no suffix | Active immediately. | Getting straight to payments. |
-WF0 | Approved at every stage. | The full happy-path onboarding flow. |
-WF1 | Approved at every stage except Application Pending. | Accounts waiting on the applicant. |
-WF2 | Rejected at Compliance Review. | Declined accounts. |
Example: Bruce Wayne-WF2 goes through onboarding and is then rejected.
For accounts created through /partner/account, add the suffix to the end of the Name parameter. It does not need to be added to the legal name.
Scheduled Transactions
These run on the date you set, just like in production. Once a scheduled transaction is created, its outcome follows the cents rules above. Scheduling guide
Webhooks
You receive a webhook for every status change, so expect roughly one per minute per transaction until it reaches a final state.
🚧 Your endpoint must be publicly reachable
VoPay expects an HTTP 200 response. A failed delivery is retried every 15 minutes, up to three attempts in total. localhost won't receive anything, so use a tunnel or a public test URL.
- Send a sample payload:
/account/webhook-url/test - Replay a missed one:
/account/webhook/resend - Verify that it came from VoPay: Signature verification
Sandbox vs production
| Feature | Sandbox | Production |
|---|---|---|
| Money | Simulated. | Real. |
| Outcomes | Set by the cents value | Set by the bank and payment network |
| Two-factor authentication | Off | Required |
| Bank connection | Fictitious VoPay Testing Bank | Real institutions |
| Bank and routing numbers | Not validated | Validated |
| New accounts | Auto-activated (unless suffixed) | Full regulatory and compliance review |
| Interac Money Request | Simulated experience | Live Interac |
| Interac Bulk Payout | No payee experience | Full payee experience |
Ready to go live?
Before launch, VoPay's integration team reviews your requests, responses and user experience. Production uses separate credentials, so nothing carries over from sandbox. Your Implementation Specialist will walk you through it. Integration timeline →
What's next
API Overview: : authentication, idempotency, input validation
Recipes: complete flows for payables, receivables, onboarding and more
Sandbox FAQ: Answers to common questions about sandbox access, payments, and testing through the VoPay API or Portal.
Updated 19 minutes ago