Connect your own bKash, Nagad, Rocket, Upay or bank account and automatically match incoming payments with your orders.
Opening a screenshot or receipt to match it against an order by eye.
Orders sit unconfirmed while someone gets around to checking the account.
A wrong amount or reference means a manual investigation, every time.
Six steps, all automatic — the same flow whether a customer clicks a payment link or your own site calls the API.
They send money directly to your own account.
The system picks up the incoming transaction.
Amount, sender, reference and time are checked against the order.
Status moves to VERIFIED once everything lines up.
A signed webhook is delivered to your server immediately.
Your system completes the order automatically.
Whichever way a customer pays, there's a matching verification path.
This isn't just a verification API — it's a full management dashboard for every transaction.
| Transaction | Method | Amount | Status |
|---|---|---|---|
| PAY-1024 | bKash | ৳2,450 | Verified |
| PAY-1025 | Nagad | ৳1,200 | Verified |
| PAY-1026 | Bank | ৳5,000 | Pending |
Illustrative preview — figures shown are examples, not live data.
Every transaction passes through the same checks, in order, before it's ever marked verified.
The details that matter when a system stands between a customer and their money.
Payment Verify does not act as a wallet, payment gateway or customer fund holder. Customers pay directly to your configured payment account. We only verify the transaction.
POST /api/v1/payment/verify Content-Type: application/json X-API-Key: pk_live_xxxxxxxx X-Signature: <hmac-sha256> { "payment_id": "PAY-20260830-3C91", "amount": 2450.00, "reference": "9F2A1C" }
{
"event": "payment.verified",
"status": "verified",
"amount": 2450,
"reference": "9F2A1C"
}
Payment Verify exposes a plain REST API secured with HMAC signatures — it works from any language or framework that can make an HTTPS request. The system itself runs on Laravel (PHP). There isn't a dedicated SDK for other languages yet; the API docs include copy-paste examples in cURL and PHP to get started quickly.
Order payment verification, without checking every SMS.
Automatically confirm a customer's payment before delivery.
Payment verified → service activated, no manual step.
Confirm subscription payments the moment they land.
Know the moment a client's payment has actually arrived.
Automated order processing from payment to fulfillment.
You connect your own bKash, Nagad, Rocket, Upay or bank account. When a customer pays into it, the system detects the transaction, matches it against the expected amount, sender, reference and timing, and reports the result to you — usually within seconds.
No. Payments go directly from the customer to your own configured account. This system never receives, holds or moves funds — it only verifies that a payment arrived.
bKash, Nagad, Rocket and Upay, for both personal and merchant accounts where the provider offers one, plus bank transfers reviewed manually.
Yes. A companion app on your own phone reads payment notifications from your personal bKash, Nagad, Rocket or Upay account and verifies them automatically — it never reads OTPs, passwords, or logs into your provider account.
Yes, if you have your own bKash, Nagad or Upay merchant credentials. Connect them and transactions are checked against the provider's API directly.
Every request is signed with HMAC-SHA256 using your API key and secret, with a timestamp and nonce to prevent replay. See the API docs for the exact signing process.
A signed HTTP request we send to your server the moment a payment's status changes — verified, failed, or flagged for review — so your system can react immediately without polling.
Every verified transaction reference is checked against previous ones for that payment method and account. A reference that's already been used is rejected as a duplicate rather than verified again.
Yes. A full sandbox environment lets you test payment creation, webhooks and manual review flows before going live, without touching real transactions.
Provider credentials and API secrets are encrypted at rest and masked everywhere they're displayed. A secret is shown in full only once, at the moment it's created.
Automatic methods (companion app, merchant API) typically confirm within seconds of the payment arriving. Manual reviews depend on how quickly your team checks the queue.
The transaction is sent to a manual review queue rather than left unresolved, so a person can check it and approve or reject it — nothing is silently dropped.
Connect your payment account and start verifying transactions automatically.