Skip to content
LogoLogo

Sandbox Testing

Sandbox uses mocked bank rails. Outcomes are driven by the last 4 digits of the beneficiary account number.

Base URL

https://api.sandbox.blox.my

Magic Account Suffixes

Account number ends withOutcome
anything elseSettles (SETTLED) within about 20 seconds
1111Reversed before settlement (REVERSED); funds return in full
2222Settles, then returns (RETURNED) about 2–3 minutes later
3333Stays INITIATED forever (pending; never settles)
9999Inline beneficiary fails bank verification400 INVALID_REQUEST on the payout create

The 9999 suffix only applies to an inline beneficiary, the only path that runs a bank enquiry. Registering the same account through POST /v1/payouts/beneficiaries succeeds; a later payout using its beneficiaryId settles like any other suffix.

Prefund Funding

Prefund funding auto-completes about 10 seconds after you create a top-up in the dashboard.

To simulate a failed FPX payment, use an amount whose sen value ends in 99 (e.g. RM100.99) — that deposit completes as failed and does not credit your balance.


End-to-end Test Script

1. Fund

Create a RM50,000 top-up in the dashboard (Payouts → Top up). Wait ~10s, then GET /v1/payout/prefund/balanceavailable should be "5000000".

2. Happy path

POST /v1/payouts to an account ending e.g. 0000.

  • Expect payout.created (INITIATED), then payout.updated (SETTLED) within ~20 seconds.

3. Reversal

POST /v1/payouts to an account ending 1111.

  • Expect payout.created (INITIATED), then payout.updated (REVERSED).
  • Everything that left your prefund comes back, fee included.

4. Return after settle

POST /v1/payouts to an account ending 2222.

  • Expect payout.created (INITIATED), payout.updated (SETTLED), then ~2 min later payout.updated (RETURNED).
  • netAmount returns; the fee is kept.

5. Stuck

POST /v1/payouts to an account ending 3333.

  • Expect payout.created (INITIATED) only; it never settles.

6. Failed funding

Create a dashboard top-up of RM100.99. After ~10s the balance is unchanged.