BanglaPay Direct API (Headless API)

আপনার কাস্টম ওয়েবসাইট বা অ্যাপে পেমেন্ট গ্রহণ করতে কোনো রিডাইরেক্ট ছাড়াই (BanglaPay ওয়েবসাইটে না গিয়ে) কীভাবে পুরোপুরি ব্যাকেন্ড API ব্যবহার করবেন, তার গাইডলাইন।

কনসেপ্ট (Concept)

অনেক ই-কমার্স বা সার্ভিস ওয়েবসাইটের ক্ষেত্রে কাস্টমারকে থার্ড-পার্টি ওয়েবসাইটে (BanglaPay) পাঠালে ইউজার এক্সপেরিয়েন্স খারাপ হতে পারে। আপনি চাইলে পুরো পেমেন্ট সিস্টেমটি আপনার ওয়েবসাইটের ভেতরেই ডিজাইন করতে পারবেন

কাস্টমার আদতেই বুঝবে না যে ব্যাকেন্ডে BanglaPay কাজ করছে। আপনার সাইটেই তারা নম্বর দেখবে, TrxID বসাবে এবং ভেরিফাইড হলে সাকসেস মেসেজ দেখবে। আর আপনার BanglaPay অ্যাপ অটোমেটিক ভেরিফাই করে দেবে!

কিভাবে કામ করবে? (Workflow)

  1. কল API (Create Payment): আপনার সাইটে কাস্টমার যখন পেমেন্ট করতে চাইবে, আপনার সার্ভার বা ফ্রন্টএন্ড থেকে /api/v1/create-payment এ কল করবেন।
  2. নম্বর দেখা: রেসপন্সে আপনি merchantNumber (আপনার বিকাশ/নগদ নম্বর) এবং sessionId পাবেন। সেটি আপনার ওয়েবসাইটের ডিজাইনে কাস্টমারকে দেখান।
  3. TruncId সংগ্রহ: কাস্টমার তার অ্যাপ থেকে আপনার নম্বরে টাকা পাঠাবে এবং TrxID আপনার ওয়েবসাইটে দিবে।
  4. Submit API: কাস্টমার TrxID দিলে /api/v1/submit-trxid তে কল করে BanglaPay কে জানিয়ে দিন। স্ট্যাটাস হয়ে যাবে verifying
  5. স্ট্যাটাস চেক: আপনার মোবাইল অ্যাপ ১-২ সেকেন্ডে এসএমএস ভেরিফাই করে ফেলবে। আপনার ওয়েবসাইট প্রতি ২ সেকেন্ডে GET /api/v1/payment/:sessionId কল করে চেক করবে পেমেন্ট success হয়েছে কিনা।

API রেফারেন্স (Endpoints)


1. Create Payment Session

পেমেন্ট সেশন তৈরি করতে এবং আপনার বিকাশ নম্বর পেতে এ কল করুন:

POST https://আপনার-ডোমেইন/api/v1/create-payment
Request Body:
JSON
{
  "merchantId": "আপনার-মার্চেন্ট-আইডি",
  "amount": "500.00",
  "method": "bkash", // bkash / nagad / rocket / upay
  "customerName": "John Doe", // Optional
  "customerPhone": "019XXXXXXX" // Optional
}
Response (Success):
JSON
{
  "success": true,
  "sessionId": "pay_a1b2c3d4e5f6g7h8",
  "merchantNumber": "019400900XX", // এই নম্বরটি ইউজারকে দেখাবেন!
  "amount": "500.00",
  "method": "bkash"
}

2. Submit TrxID

কাস্টমার যখন তার ট্রানজ্যাকশন আইডি (TrxID) আপনার ওয়েবসাইটে দিবে, তখন এই API তে কল করে BanglaPay কে জানান, যাতে এটি অটো-ভেরিফিকেশনে চলে যায়।

POST https://আপনার-ডোমেইন/api/v1/submit-trxid
Request Body:
JSON
{
  "sessionId": "pay_a1b2c3d4e5f6g7h8",
  "trxId": "TRX8GF5HT2", 
  "senderNumber": "018XXXXXXXX" // কাস্টমার যে নম্বর থেকে টাকা পাঠিয়েছে
}

3. Check Payment Status

TrxID সাবমিট করার পর, আপনার সাইট থেকে প্রতি ৩ সেকেন্ড পরপর এই API তে কল করে স্ট্যাটাস চেক করবেন।

GET https://আপনার-ডোমেইন/api/v1/payment/:sessionId
Response (Success):
JSON
{
  "success": true,
  "payment": {
    "status": "success", // pending -> verifying -> success / failed
    "amount": "500.00",
    "trxId": "TRX8GF5HT2",
    "verifiedBy": "sms_auto" // অথবা manual
  }
}

সারসংক্ষেপ

এভাবেই, আপনি BanglaPay এর API ব্যবহার করে পুরোপুরি আপনার নিজেদের মতো করে একটি পেমেন্ট গেটওয়ে ডিজাইন করতে পারবেন। কাস্টমার আপনার সাইট থেকে বেরও হবে না, অথচ আপনার পেমেন্ট ১০ সেকেন্ডের মধ্যে BanglaPay Android App অটোমেটিকভাবে ভেরিফাই করে দেবে!