d pay · পাবলিক API v1

মোবাইল রিচার্জ API

রিয়েল Public API v1 — অথেনটিকেশন, রিচার্জ, MFS, ড্রাইভ প্যাকেজ, ব্যালেন্স এবং ওয়েবহুক সম্পূর্ণ স্পেসিফিকেশন।

REST · JSON HTTPS TLS 1.3 Bearer Token Auth < 50ms Latency
দ্রুত ইন্টিগ্রেশন যেকোনো ব্যাকএন্ড বা মোবাইল অ্যাপ থেকে কল করুন।
সুরক্ষিত টোকেন প্যানেল থেকে `mtc_live_…` API কী তৈরি করুন।
রিয়েল-টাইম Webhook প্রতিটি রিচার্জের তাৎক্ষণিক কনফার্মেশন।

বেস URL (Production Endpoint)

200 OK
সব API রিকোয়েস্ট অবশ্যই এই বেস URL-এর অধীনে পাঠাতে হবে (`/api/v1`).
Live Server Content-Type: application/json
https://dpay.im/api/v1

অথেনটিকেশন ও হেডার

Bearer / Key
একই API কী দুইভাবে পাঠানো যায় — `Authorization: Bearer` অথবা `X-API-KEY`। দুটোই গ্রহণযোগ্য।
Authorization: Bearer mtc_live_xxxxxxxx
# or
X-API-KEY: mtc_live_xxxxxxxx
Content-Type: application/json
Accept: application/json

বিলিং ও ওয়ালেট ডেবিট

net_payable
রিচার্জ তৈরির সময় রিসেলার রেট-কার্ড অনুযায়ী `net_payable` মেইন ওয়ালেট থেকে কেটে নেওয়া হয়। কমিশন/চার্জ রুল অ্যাডমিন প্যানেলে সেট করা যায়।
net_payable ≈ amount − commission (+ charge if configured)

# Fail / cancel / timeout → wallet credit (cashback) of the debited amount

স্ট্যাটাস কোড ও এরর রেফারেন্স

Public API v1 থেকে সাধারণ HTTP রেসপন্স কোড:
Code Status Description
200 OK / SUCCESS অনুরোধ সফল — TrxID তৈরি হয়েছে।
400 BAD_REQUEST ভুল প্যারামিটার বা অবৈধ নম্বর।
401 UNAUTHORIZED API কী নেই / ভুল।
402 INSUFFICIENT_BALANCE ওয়ালেটে পর্যাপ্ত ব্যালেন্স নেই।
403 FORBIDDEN কী ইনঅ্যাকটিভ বা API অ্যাক্সেস বন্ধ।

API স্যান্ডবক্স (সব এন্ডপয়েন্ট)

Sandbox
রিচার্জ, MFS, ড্রাইভ, ব্যালেন্স, স্ট্যাটাস ও ওয়েবহুক — সব এখানে টেস্ট করুন। ব্রাউজার ডেমো লাইভ কল করে না; সার্ভার স্যান্ডবক্সের জন্য `mtc_test_…` কী ব্যবহার করুন।
Local demo · no live charge
// Request preview…
// Response…

স্যান্ডবক্স (টেস্ট কী)

`mtc_test_` দিয়ে শুরু হওয়া কী ব্যবহার করুন (environment=test)।
সব এন্ডপয়েন্টে কাজ করে: recharge, MFS, drive, balance, status.
ওয়ালেট কাটে না, লাইভ USSD/গেটওয়ে হয় না — রেসপন্সে `"sandbox": true` থাকে।
ইউজার প্যানেল API Credentials থেকে টেস্ট কী জেনারেট করুন।
curl -X POST "https://dpay.im/api/v1/recharge" \
  -H "Authorization: Bearer mtc_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operator":"gp","recipient":"017XXXXXXXX","amount":50,"request_type":"recharge","client_tx_id":"SBX-1"}'

মোবাইল রিচার্জ

POST /recharge — প্রিপেইড/পোস্টপেইড মোবাইল রিচার্জ।
অপারেটর: gp, robi, bl, airtel, teletalk, skitto.
প্রয়োজন: operator, recipient, amount, request_type=recharge.
ঐচ্ছিক: client_tx_id (idempotency)।
curl -X POST "https://dpay.im/api/v1/recharge" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operator":"gp","recipient":"017XXXXXXXX","amount":100,"request_type":"recharge","client_tx_id":"RCH-1001"}'

MFS (bKash / Nagad / Rocket / Upay)

একই এন্ডপয়েন্ট POST /recharge — MFS অপারেটর + ওয়ালেট request_type।
অপারেটর: bkash, nagad, rocket, upay.
request_type: send_money | cash_in | cash_out.
প্রয়োজন: operator, recipient, amount, request_type, client_tx_id।
curl -X POST "https://dpay.im/api/v1/recharge" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operator":"bkash","recipient":"017XXXXXXXX","amount":500,"request_type":"send_money","client_tx_id":"MFS-1001"}'

ড্রাইভ / ডেটা প্যাক

একই এন্ডপয়েন্ট POST /recharge — অপারেটর ড্রাইভ/ডেটা প্যাক।
অপারেটর: gp, robi, bl, airtel, teletalk.
request_type: drive_offer (বা regular_pack).
প্রয়োজন: operator, recipient, amount, drive_offer_id (/packages থেকে), client_tx_id।
curl -X POST "https://dpay.im/api/v1/recharge" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operator":"robi","recipient":"018XXXXXXXX","amount":399,"request_type":"drive_offer","drive_offer_id":12,"client_tx_id":"DRV-1001"}'

প্যাকেজ ক্যাটালগ (ড্রাইভ / রেগুলার / MFS)

Endpoint
POST /packages — অ্যাকটিভ ড্রাইভ + রেগুলার প্যাক ও MFS অপারেটর লিস্ট।
পিয়ার/হোয়াইট-লেবেল সাইটে সিঙ্ক করতে ব্যবহার করুন (API Gateways → MTC Upstream → Sync Packages)।
ঐচ্ছিক: operator, pack_kind=drive_offer|regular_pack.
অথ: একই live/test কী + IP whitelist।
curl -X POST "https://dpay.im/api/v1/packages" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"include":"drive,regular_pack,mfs"}'

সিকিউরিটি (IP Whitelist)

Endpoint
Live কী (mtc_live_) তৈরির সময় IP whitelist বাধ্যতামূলক।
শুধু তালিকাভুক্ত IP/CIDR API কল করতে পারবে; অন্যরা 403 পাবে।
পিয়ার সাইট: চাইল্ড সার্ভারের পাবলিক IP প্যারেন্ট কী-তে হোয়াইটলিস্ট করুন।
টেস্ট কী (mtc_test_) স্যান্ডবক্সে whitelist ছাড়া চলতে পারে।
# Generate live key with whitelist in Merchant API management
# Example whitelist: 203.0.113.10, 198.51.100.0/24

ব্যালেন্স

POST /balance — মেইন / ড্রাইভ / ব্যাংক ওয়ালেট ব্যালেন্স ও কমিশন রেট নিন।
curl -X POST "https://dpay.im/api/v1/balance" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

ট্রানজেকশন স্ট্যাটাস

POST /status — transaction_id বা client_tx_id দিয়ে স্ট্যাটাস পোল করুন।
curl -X POST "https://dpay.im/api/v1/status" \
  -H "Authorization: Bearer mtc_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"client_tx_id":"RCH-1001"}'

ওয়েবহুক / কলব্যাক

প্যানেলে callback URL সেট করুন।
দ্রুত HTTP 200 দিন; প্রসেস অ্যাসিঙ্ক করুন।
টেস্টের জন্য POST /callback ব্যবহার করা যায়।
curl -X POST "https://dpay.im/api/v1/callback" \
  -H "Content-Type: application/json" \
  -d '{"event":"transaction.updated","transaction_id":"MTC123","status":"success"}'