Testing
Test your Moosyl integration in the sandbox with test phone numbers and simulated transfers, without moving real money.
Everything you do with Sandbox keys is simulated: no money moves and no real bank app is charged. Payments, webhooks and the dashboard behave as they do in Production, so you can test your whole flow end to end.
Test phone numbers
For most bank apps, the phone number the customer pays with decides the outcome:
| Phone number | Result |
|---|---|
22222222 | Completed |
33333333 | Completed |
44444444 | Completed |
| Any other number | Failed |
The payment is created with its final status, so your webhook receives a single payment-created event with status set to completed or failed.
Simulated transfers
Some bank apps are paid by transfer: BCI Pay, Amanty, and Bankily on accounts that use the transfer flow. In the sandbox these payments stay pending until you simulate the transfer:
- On the hosted checkout page, click Simulate transfer (sandbox).
- Or call the API with your key:
curl -X POST https://api.moosyl.com/payment/PAYMENT_ID/simulate-transfer \
-H "Authorization: YOUR_SECRET_KEY"The payment then completes as if the customer had transferred the exact amount, and your webhook receives a payment-updated event with status set to completed. This only works in the Sandbox environment.
What to check before going live
- A completed payment marks the order as paid in your system, driven by the webhook rather than the app callback.
- A failed payment leaves the order unpaid and lets the customer try again.
- Your webhook endpoint rejects requests with an invalid signature and returns a
2xxstatus quickly for valid ones. - Receiving the same event twice doesn't fulfil the order twice.
When everything passes, follow Go live in the Quickstart.