Skip to content
LogoLogo

Sandbox Testing

The sandbox does not send money to banks. It simulates the bank results. The last 4 digits of the beneficiary destination set the result. The destination is the account number of a bank beneficiary, or the proxyValue of a DuitNow proxy beneficiary. A proxy payout and a bank payout have the same test results. For example, a payout to a mobile number that ends in 1111 is reversed.

Base URL

https://api.sandbox.blox.my

Test Account Suffixes

Account number or proxyValue ends withResult
All other digitsThe payout settles (SETTLED) in about 20 seconds.
1111The bank reverses the payout before settlement (REVERSED). The full amount returns to your prefund balance.
2222The payout settles. About 2–3 minutes later, the bank returns it (RETURNED).
3333The payout stays INITIATED. It does not settle.
9999The bank rejects the account. Beneficiary creation and inline payouts return 400 INVALID_REQUEST, with or without nameCheck.
8888The bank has a different name. With nameCheck (strict or loose), the request returns 400 BENEFICIARY_NAME_MISMATCH. Without nameCheck, the beneficiary is registered without verification.
7777The bank has your name with different word breaks (ACME SDN BHD becomes ACMESDNBHD). nameCheck: "strict" fails, and the message tells you that "loose" passes. "loose" passes. Without nameCheck, the beneficiary is registered as verified. A difference in punctuation only does not cause a strict failure.

These suffixes operate at each bank check: POST /v1/payouts/beneficiaries, POST /v1/payouts/beneficiaries/{id}/verify, and POST /v1/payouts with an inline beneficiary. A payout to a beneficiary that passed the bank check settles in the same way as a payout with any other suffix.

Prefund Funding

A top-up that you create in the dashboard completes automatically after about 10 seconds.

To simulate a failed FPX payment, use an amount with a sen value that ends in 99 (for example, RM100.99). The top-up completes as failed, and BLOX does not add the amount to your balance.


End-to-end Test Script

1. Fund

  1. Create a RM50,000 top-up in the dashboard (Payouts → Top up).
  2. Wait about 10 seconds.
  3. Send GET /v1/payout/prefund/balance. Make sure that available is "5000000".

2. Successful payout

Send POST /v1/payouts to an account that ends in a suffix that is not in the table, for example 0000.

  • You get payout.created (INITIATED), then payout.updated (SETTLED) in about 20 seconds.

3. Reversal

Send POST /v1/payouts to an account that ends in 1111.

  • You get payout.created (INITIATED), then payout.updated (REVERSED).
  • All of the amount that BLOX debited from your prefund balance returns, including the fee.

4. Return after settlement

Send POST /v1/payouts to an account that ends in 2222.

  • You get payout.created (INITIATED), then payout.updated (SETTLED). About 2 minutes later, you get payout.updated (RETURNED).
  • netAmount returns to your prefund balance. BLOX keeps the fee.

5. Pending payout

Send POST /v1/payouts to an account that ends in 3333.

  • You get only payout.created (INITIATED). The payout does not settle.

6. Failed funding

Create a top-up of RM100.99 in the dashboard. After about 10 seconds, make sure that the balance did not change.