PayMon

অর্ডার পাঠানোর আগেই জানুন — টাকা এসেছে কি না।

PayMon আপনার নিজের ফোনের bKash ও Nagad-এর "payment received" SMS পড়ে, আর আপনার website-কে দেয় একটা সহজ API — customer-এর payment নিশ্চিত করার জন্য। Official merchant API ছাড়াই।

  • OTP বা PIN message কখনো পড়ে না
  • এক payment দিয়ে দুটো অর্ডার verify হয় না
  • Live লেনদেনের হিসাব আর webhook push
mobile.b-dx.top
PayMon

স্বাগতম

Key, device আর লেনদেন দেখতে লগইন করুন।

অ্যাকাউন্ট খুলুন

এক মিনিটেই হয়ে যাবে — কোনো কার্ড লাগে না।

PayMon

এক নজরে

আজকের অবস্থা, setup progress আর next step এক জায়গায়।

মোট এসেছে

৳0

Verify হয়েছে

0

Verify বাকি

0

সক্রিয় ডিভাইস

0

Setup সম্পন্ন

0/5

Parse সমস্যা

0

Setup checklist

PayMon চালু করতে যা যা দরকার, সব step এক জায়গায়। যেটা বাকি, সেটা থেকেই continue করুন।

সাম্প্রতিক activity

নতুন transaction, device heartbeat আর parse issue - support-এর জন্য useful snapshot।

দ্রুত কাজ

সবচেয়ে common setup কাজগুলো এখান থেকেই খুলে নিন।

অ্যাকাউন্ট snapshot

plan, security rule আর monitoring status এক glance-এ।

বর্তমান প্ল্যানলোড হচ্ছে…
Verify windowলোড হচ্ছে…
Allowed IPলোড হচ্ছে…
Webhookলোড হচ্ছে…
Pair করা ফোনলোড হচ্ছে…

মোট এসেছে (সব SMS, verified হোক বা না হোক)

৳0

মোট লেনদেন

0

Verify হয়েছে

0

Verify বাকি

0

সাম্প্রতিক লেনদেনLIVE

নতুনগুলো আগে — প্রতি ৫ সেকেন্ডে নিজে নিজে refresh হয়।

ProviderTrxIDটাকাপ্রেরকSIMঅবস্থাসময়

মোট order

0

Pending

0

Paid

0

মোট paid amount

৳0

নতুন payment order

Customer-কে দেওয়ার জন্য hosted checkout link তৈরি করুন।

Payment orders

সবচেয়ে নতুন order আগে।

Order IDটাকাঅবস্থাCheckout linkসময়

টাকা এসেছে

৳0

০ বার

টাকা বেরিয়েছে

৳0

০ বার

নিট

৳0

পুরো হিসাব

Pair করা ফোনে দেখা সব bKash/Nagad SMS — টাকা আসা আর বেরোনো, এক জায়গায়। শুধু দেখার জন্য; verify বা webhook-এ কোনো প্রভাব নেই।

দিকProviderধরনTrxIDটাকাফিব্যালেন্সকার সাথেSIMসময়

ডিভাইস setup guide

যে ফোনে bKash/Nagad payment SMS আসে, সেই ফোনটাই pair করতে হবে। নিচের ৩টা ধাপ follow করলেই setup complete।

1App install করুন

  1. APK ডাউনলোড করুন ওই ফোনে যেটাতে payment SMS আসে।
  2. Install prompt এলে allow দিন। Play Protect warning এলে Install anyway চাপুন।
  3. App খুলে permissions দিন - SMS এবং notification access চাইলে allow করুন।
নতুন build এলে hashed filename-এ download হয়, তাই পুরনো APK cache হওয়ার chance কমে যায়। QR scan করলেও latest build-এই যাবে।

ফোনের camera দিয়ে QR scan করলে download link সরাসরি খুলে যাবে।

2ফোনটা pair করুন

Code বানিয়ে app-এ টাইপ করুন বা QR scan করুন। Code ১০ মিনিট পর expire হয়ে যাবে।

  1. ফোনের নাম দিন যাতে পরে identify করা সহজ হয়। যেমন `Shop Counter SIM 1`।
  2. Code বানিয়ে app-এ বসান অথবা app-এর Scan QR code button ব্যবহার করুন।
  3. Pair complete হলে app খোলা রাখুন এবং প্রথম payment SMS আসা পর্যন্ত device online আছে কি না দেখুন।
  • Battery optimization off করলে background monitoring বেশি reliable হয়।
  • একই ফোন আবার pair করতে হলে পুরনো device revoke করে নতুন code নিন।
  • Code কাজ না করলে নতুন code বানান - পুরনো code auto-expire হয়।

3Health check করুন

pair হওয়ার পরে device recently sync করেছে কি না এখানে দেখুন। support call নেওয়ার আগে এটা দেখা সবচেয়ে useful।

মোট pair করা ফোন

0

dashboard-এ link করা সব phone

সাম্প্রতিক active

0

শেষ ২৪ ঘণ্টায় sync করেছে

মনোযোগ দরকার

0

নতুন pair হলেও এখনো connect হয়নি বা অনেকক্ষণ offline

ফোন pair হলেই এখানে status update দেখা যাবে।

Pair করা ফোন

recently active phone-গুলো `সচল` দেখাবে। অনেকক্ষণ heartbeat না এলে support troubleshooting শুরু করুন।

নামঅবস্থাশেষ দেখা

দ্রুত troubleshooting

merchant support-এর most common issue গুলো এখান থেকেই verify করা যায়।

  • SMS আসছে কিন্তু dashboard-এ কিছু নেই? device paired আছে কি না দেখুন, app খুলে permission আবার check করুন।
  • ফোন offline দেখাচ্ছে? internet, battery saver, background restriction, আর app update status check করুন।
  • code scan/type কাজ করছে না? নতুন pairing code বানিয়ে আবার try করুন - পুরনো code expire হয়ে যেতে পারে।
  • একই merchant-এর 2 SIM / 2 phone? আলাদা label দিয়ে pair করুন, তাহলে later identify করা সহজ হবে।

API key

আপনার website-এর server এই key দিয়ে /v1/transactions/verify call করে payment নিশ্চিত করে। Test key (`bdx_test_...`) দিয়ে real SMS ছাড়াই integration ড্রাই-রান করা যায় — /v1/ingest/test দিয়ে নমুনা পেমেন্ট তৈরি করে verify করে দেখুন।

Prefixনামশেষ ব্যবহারঅবস্থা

Webhook

Optional। Set করলে নতুন payment SMS আসা মাত্রই PayMon এই URL-এ POST পাঠাবে — বিশ্বাস করার আগে X-PayMon-Signature header যাচাই করুন। দরকার না হলে খালি রাখুন — Transactions tab দেখলে বা /v1/transactions poll করলেই চলবে।

নতুন SMS provider যোগ করুন

bKash আর Nagad built-in আছে। অন্য provider (Rocket, Upay, bank alert...) যোগ করতে বলে দিন কোন SMS sender ID দেখতে হবে আর message থেকে কীভাবে টাকা/TrxID পড়তে হবে। Pattern-গুলো regular expression (case-insensitive), প্রতিটায় একটা করে capture group (...) — শুধু "Match pattern"-এ লাগে না, ওটা message-এ থাকলেই হয়।

আপনার provider

নামSender IDঅবস্থা

SMS Pattern Tester / Helper

আপনার provider-এর pattern-গুলো ঠিকমতো কাজ করছে কি না তা টেস্ট করতে নিচে একটি sample SMS এবং আপনার pattern-গুলো দিয়ে পরীক্ষা করুন।

Customer-এর bKash/Nagad payment verify করতে আপনার website-এর যা দরকার, সব এখানে। tab থেকে key নিয়ে প্রতিটা request-এ Authorization: Bearer YOUR_API_KEY header পাঠান। প্রতিটা উদাহরণ সাধারণ curl command — terminal-এ বা Postman-এ (Import → Raw text) paste করলেই চলে।

🔎 Interactive docs-ও আছে — Swagger UI (ব্রাউজারে try করা যায়) এবং OpenAPI JSON (Postman/Swagger Editor-এ import করে client SDK generate করা যায়)।

POST/v1/payment-ordersAPI key

Customer checkout শুরু করার জন্য order তৈরি করুন। amountBdt, successUrl এবং cancelUrl লাগবে। orderId না দিলে server নিজে তৈরি করবে। Response-এর checkoutUrl customer-কে দিন; order-এর default lifetime ৫ মিনিট। Customer sender number দেওয়ার পর SMS এলে amount, provider ও sender মিলিয়ে auto verification হয়।

curl -X POST https://mobile.b-dx.top/v1/payment-orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amountBdt": 500,
    "orderId": "ORDER-1001",
    "successUrl": "https://yourshop.example/payment/success",
    "cancelUrl": "https://yourshop.example/payment/cancel",
    "metadata": {"productId": "SKU-10"}
  }'

সফল response

{
  "success": true,
  "orderId": "ORDER-1001",
  "amountBdt": "500.00",
  "status": "pending",
  "checkoutUrl": "https://mobile.b-dx.top/checkout/<opaque-token>",
  "expiresAt": "2026-07-03T10:30:00.000Z"
}
POST/v1/transactions/verifyAPI key

SMS থেকে পাওয়া payment confirm করতে এই call ব্যবহার করুন। amountBdt আর providerTrxId লাগবেই; payment order ব্যবহার করলে একই request-এ orderId দিন। senderMsisdn optional, দিলে extra cross-check হিসেবে কাজ করবে। মিল না পেলে 404। প্রথম call-এ 201। একই transaction-এ আবার call করলে (নিজের retry হলেও) 409 — 409 মানে "আগেই verify হয়ে গেছে" ধরে নিন।

curl -X POST https://mobile.b-dx.top/v1/transactions/verify \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amountBdt": "500.00",
    "providerTrxId": "8N7A6B5C4D",
    "orderId": "ORDER-1001"
  }'

সফল হলে response

{
  "verified": true,
  "transactionId": "...",
  "provider": "bkash",
  "providerTrxId": "8N7A6B5C4D",
  "amountBdt": "500.00",
  "consumedAt": "2026-07-03T10:00:05.000Z",
  "verificationRef": "3f29b1d4-..."
}
GET/v1/transactionsAPI key

Optional — webhook-এর বদলে poll করতে চাইলে। Query param: limit, offset, provider, dateFrom, dateTo (ISO), minAmount, maxAmount।

curl "https://mobile.b-dx.top/v1/transactions?limit=20&provider=bkash&minAmount=100" \
  -H "Authorization: Bearer YOUR_API_KEY"
Webhooks

Poll না করে নতুন payment SMS আসা মাত্রই notification পান। URL set করুন tab-এ। Header X-PayMon-Signature: sha256=<hex> — আপনার webhook secret দিয়ে raw body-র HMAC-SHA256; বিশ্বাস করার আগে যাচাই করুন আর timestamp সাম্প্রতিক কি না দেখুন। ব্যর্থ হলে ৫ বার পর্যন্ত retry হয়; শুধু সত্যিকারের নতুন payment-এ পাঠানো হয়।

{
  "event": "transaction.received",
  "transactionId": "...",
  "provider": "bkash",
  "providerTrxId": "8N7A6B5C4D",
  "amountBdt": "500.00",
  "senderMsisdn": "01812345678",
  "ingestedAt": "2026-07-03T10:00:01.000Z",
  "timestamp": 1751536801
}

Signature যাচাই (Node.js)

const crypto = require('crypto');
function isValid(rawBody, signatureHeader, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected));
}

যে message পড়া যায়নি

চেনা sender-এর (bKash, Nagad বা custom provider) কোনো SMS transaction বানানো না গেলে এখানে জমা হয় — tab-এ pattern ঠিক করে নিন। Payment SMS-এর মতো না লাগলে (OTP/PIN হতে পারে) message-এর লেখা পাঠানো বা রাখাই হয় না — শুধু sender ID থাকে।

প্রেরকসম্ভাব্য providerধাপMessageসময়

আপনার বর্তমান সাবস্ক্রিপশন প্ল্যান

আপনার অ্যাকাউন্টের লিমিট ও মেয়াদের তথ্য নিচে দেওয়া হলো।

প্ল্যানের নাম

Trial

দৈনিক লিমিট

100

ডিভাইস লিমিট

2

মেয়াদ উত্তীর্ণের তারিখ

—

Customer payment wallets

Checkout page-এ customer-কে যে bKash/Nagad নম্বর দেখানো হবে

কোনো wallet সেট করা নেই

সাবস্ক্রিপশন আপগ্রেড ও প্রাইসিং প্ল্যান

যেকোনো প্ল্যান চালু করতে নিচের নির্দেশনা অনুসরণ করুন।

প্ল্যান দৈনিক লিমিট ডিভাইস সীমা মূল্য (মাসিক)
Basic ৫০০ টি ভেরিফিকেশন ২ টি ফোন ৳৫০০ / মাস
Starter ২,০০০ টি ভেরিফিকেশন ৫ টি ফোন ৳১,০০০ / মাস
Pro ৫,০০০ টি ভেরিফিকেশন ১০ টি ফোন ৳২,০০০ / মাস
Business আনলিমিটেড আনলিমিটেড ৳৫,০০০ / মাস

পেমেন্ট ও প্ল্যান চালুর নিয়মাবলী:

১. আপনার পছন্দের প্ল্যানের ফি আমাদের বিকাশ/নগদ পার্সোনাল নম্বরে সেন্ড মানি করুন: 01XXXXXXXXX
২. টাকা পাঠানোর সময় রেফারেন্সে (Reference) আপনার মার্চেন্ট ইমেইল অ্যাড্রেসটি দিন।
৩. এরপর ট্রানজেকশন ডিটেইলস সহ আমাদের মেইলে ([email protected]) অথবা হোয়াটসঅ্যাপে যোগাযোগ করুন।
৪. পেমেন্ট নিশ্চিত হওয়ার সর্বোচ্চ ১০ মিনিটের মধ্যে আপনার প্ল্যানটি সুপার এডমিন ড্যাশবোর্ড থেকে অ্যাক্টিভেট করে দেবেন।

Checkout Branding (চেকআউট ব্র্যান্ডিং)

Customer-দের পেমেন্ট চেকআউট পেজ (mobile.b-dx.top/checkout/...) আপনার নিজের ওয়েবসাইটের মতো দেখাতে চাইলে আপনার লোগো URL এবং ব্র্যান্ড কালার দিন। খালি রাখলে PayMon ডিফল্ট লুক থাকবে।

Verify-র সময়সীমা

Payment SMS আসার পর কতক্ষণ পর্যন্ত verify করা যাবে। খালি রাখলে কোনো সীমা নেই। সীমা দিলে পুরনো TrxID বাতিল হবে — যেমন কেউ কয়েক সপ্তাহ আগের payment-এর screenshot পাঠালে সেটা আর কাজ করবে না।

IP Whitelisting (আইপি হোয়াইটলিস্টিং)

আপনার সার্ভারের আইপি অ্যাড্রেসগুলো কমা (,) দিয়ে আলাদা করে এখানে দিন (যেমন: 192.168.1.1, 10.0.0.5)। খালি রাখলে যেকোনো আইপি থেকে পেমেন্ট ভেরিফিকেশন API কল করা যাবে।

নিরাপত্তা

সব browser-এর login session একসাথে বাতিল করুন (এটাসহ) — কোনো session/token ফাঁস হয়েছে সন্দেহ হলে। API key বা pair করা ফোনে কোনো প্রভাব পড়বে না।

মোট মার্চেন্ট

0

সক্রিয়

0

স্থগিত

0

মেয়াদ শীঘ্রই শেষ (৩ দিনের মধ্যে)

0

প্ল্যান ম্যানেজমেন্ট (Plans)

নতুন প্ল্যান যোগ করুন, দাম/লিমিট এডিট করুন, বা পুরনো প্ল্যান বন্ধ করুন। মার্চেন্ট এডিট করার সময় এই প্ল্যানগুলো থেকেই বেছে নেওয়া যাবে।

প্ল্যানের নাম দাম (৳) দৈনিক লিমিট ডিভাইস লিমিট স্ট্যাটাস অ্যাকশন

মার্চেন্ট তালিকা (Merchants List)

PayMon সিস্টেমে নিবন্ধিত সকল মার্চেন্টদের সাবস্ক্রিপশন ও অ্যাক্সেস কন্ট্রোল করুন।

মার্চেন্ট স্ট্যাটাস প্ল্যান মেয়াদকাল লিমিট (Daily / Devices) নিবন্ধন তারিখ অ্যাকশন

সিস্টেমের পার্সিং ব্যর্থতা (System Parse Failures)

সিস্টেমের সকল মার্চেন্টদের চেনা sender আইডি থেকে আসা যেসকল SMS পড়া বা ভেরিফাই করা সম্ভব হয়নি।

মার্চেন্ট Sender ID Provider Guess Stage SMS Body সময়