Test environment
Exercise payment flows without affecting production accounting.
Transactions created for a sandbox organization are test transactions and do not affect production accounting.
Sandbox and production use the same API base URL and request contract. The organization associated with the API key determines the environment, so keep credentials in separate secret stores and never select an environment with a client-supplied request field.
bKash test payer
| Field | Value |
|---|---|
| Phone | 01770618575 |
| Verification code | 123456 |
| OTP | 12121 |
Use unique merchant_id values in automated tests. H2H idempotency is scoped
to the organization, so a test that reuses an ID with different immutable
fields correctly receives 409.
Recommended contract tests
Test at least:
- a redirect checkout can be created and reaches a terminal status;
- identical H2H create requests return the same deposit;
- body changes invalidate the signature;
- timestamps older than five minutes are rejected;
- both
display_instructionsandredirectnext actions are handled; - duplicate payment transaction IDs are idempotent;
- a withdrawal can be created and inspected;
- webhook signatures are verified against raw request bytes;
- webhook consumers ignore already-processed event/message IDs;
- your client preserves and handles the documented API error envelope.
Use deterministic merchant_id prefixes per test run, record OmniPay resource
IDs in test output, and include the response X-Request-Id when a contract test
fails. Do not assert that asynchronous transitions complete within an exact
number of seconds.
Sandbox credentials can change independently of the API contract. Confirm their current availability with your OmniPay account contact before running a release test suite.