Skip to main content
ShadhinPay Docs

Testing

Use the sandbox and test API keys to drive every payment outcome without moving real money.

The sandbox is a full copy of the API that doesn't move real money. Use it to build and test your integration end to end before going live.

Sandbox basics

  • Base URL: https://request.shadhinpay.com/api/v1
  • Keys: use a test key (sk_test_…) from your business in the dashboard.
  • Sandbox payments never reach a real provider, never post to your balance, never count toward subscription limits, and are excluded from settlement.

A live key can't be used in the sandbox and a test key can't move real money — mixing them is rejected, so you can't accidentally charge a customer while testing.

Test Credentials

Use any test credential to test your payment integration. Please don't use your personal or business credentials.

Bkash CredentialsOTPPIN
0177061857512345612121
0192991837812345612121
0177061857612345621212
0161977728212345621212
0187772234512345613131
0161977728312345613131
Nagad CredentialsOTPPIN
---
Rocket CredentialsOTPPIN
---
Upay CredentialsOTPPIN
---
PathaoPay CredentialsOTPPIN
---
Card NumberDATECVV
(BDT) ---
(USD) 4242 4242 4242 424211/30123

Example — create a payment that will complete:

curl -X POST https://request.shadhinpay.com/api/v1/payment/create \
  -H "Client-Id: SM_4f8c2b1a" \
  -H "Business-Id: SB_71c4a09e" \
  -H "X-Api-Key: sk_test_aB3kC9...9xQ2" \
  -H "X-Idempotency-Key: test-order-1" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "500.00",
    "currency": "BDT",
    "merchantTxnId": "test-order-1",
    "callbackUrl": "http://localhost:3000/return",
    "customerPhone": "01770618575"
  }'

HTTP callbacks allowed in sandbox

The sandbox accepts http:// callback and redirect URLs (e.g. localhost) so you can test locally. Live mode requires HTTPS.

Testing webhooks

Webhooks fire in the sandbox exactly as they do in production:

  1. Point your sandbox business's webhook URL at your endpoint (a tunneling tool like ngrok works well for local development).
  2. Create a sandbox payment with the "completes" phone number.
  3. Receive and verify the payment.completed webhook — see Webhooks.

Setting the URL triggers a test ping that must succeed before it's saved, so you'll know immediately if your endpoint isn't reachable.

Viewing test data

Sandbox traffic is hidden from the dashboard by default. Flip the Include sandbox toggle to see it in your metrics and transaction lists while you build — see Analytics & exports.

Going live

When your integration works in the sandbox:

  1. Make sure your account is Active and your business's providers are configured.
  2. Create a live API key (sk_live_…) — this requires two-factor authentication.
  3. Switch your base URL to https://request.shadhinpay.com/api/v1 and swap in the live key.
  4. Run one small real payment end to end to confirm everything's wired up.

Next steps

On this page