Interactive sandbox

Run a whole payment, end to end.

This is not a mockup. The button below opens the real drop-in widget, the SMS you fire goes through the same parser that reads a genuine bKash text, and the order settles through the same /api/payment/verify call your checkout would make.

You're in the shared public sandbox. Nothing here touches a merchant account, and the ledger is swept every 24 hours. Create an account to run the same playground against your own store.
1 Open the checkout

Press this and the PayPulse widget takes over — exactly as it would on your storefront. Pick a wallet, then copy the transaction ID it shows you into step 2.

Aarong Cotton Panjabi
Midnight Indigo · Size L
৳2,450

Order SBX-TL4Z74-463A


2 Play the merchant's iPhone

In production an Apple Shortcut does this automatically. Paste the transaction ID from the widget, pick the provider, and fire the confirmation SMS into the webhook.

Enter this same number in the widget. If they differ, the third lock refuses the claim — that's the point.

Provider
Try to break it

Each of these is refused by a different lock. Watch the feed.

3 What the gateway did

Every API call this page makes, with the verbatim response.

Nothing yet — start with step 1.

Store API key in use
pp_live_4746c0af73a6644d88c6b2eadef0f838c26c

This is the public key — it only identifies the store to a checkout. The webhook secret, which authorises injecting transactions, never leaves the server.

Put this on your own site

One script tag and one call. The widget derives its endpoint from its own src, so there is no base URL to configure.

<script src="https://randomwebfind.xyz/widget.js"></script>
<script>
  PayPulse.open({
    apiKey:  'pp_live_4746c0af73a6644d88c6b2eadef0f838c26c',
    amount:  2450.00,
    orderId: 'ORD-10482',
    wallets: { bkash: '01712000247', nagad: '01812000167' },
    onSuccess: function (tx) {
      // tx.trxId, tx.amount, tx.provider, tx.sender — the order is paid.
      window.location = '/thank-you?trx=' + tx.trxId;
    }
  });
</script>