Deposit Gateway API Documentation
আপনার ওয়েবসাইট বা অ্যাপে অটোমেটিক পেমেন্ট কালেকশন (Deposit) সিস্টেম চালু করার জন্য সম্পূর্ণ গাইডলাইন।
Integrate automated mobile banking payment verification into your website or e-commerce shop.
আপনার API Secret Key মার্চেন্ট ড্যাশবোর্ডের "API & Webhooks" মেনুতে পাবেন। Key কখনো কারও সাথে শেয়ার করবেন না।
Step 1: Create Payment Link (ডিপোজিট লিংক তৈরি করুন)
আপনার ওয়েবসাইট থেকে কাস্টমার যখন ডিপোজিট করতে চাইবে, তখন এই API কল করে একটি পেমেন্ট লিংক তৈরি করতে হবে।
| PARAMETER | TYPE | STATUS | DESCRIPTION |
|---|---|---|---|
amount | Number | Required | কত টাকা পেমেন্ট করবে |
method | String | Required | bkash, nagad, rocket, upay |
user_identyfy_address | String | Required | কাস্টমারের ইমেইল বা ফোন |
domain | String | Required | আপনার সাইটের ডোমেইন |
success_redirect_url | URL | Required | পেমেন্ট সফল হলে কোথায় যাবে |
fail_redirect_url | URL | Required | পেমেন্ট ফেইল হলে কোথায় যাবে |
pending_redirect_url | URL | Required | পেমেন্ট পেন্ডিং হলে কোথায় যাবে |
call_back_url | URL | Required | সাকসেস Webhook URL |
pending_call_back | URL | Required | পেন্ডিং Webhook URL |
reject_call_back | URL | Required | রিজেক্ট Webhook URL |
checkout_items | Object | Optional | আপনার যেকোনো কাস্টম ডাটা (যেমন: orderId) |
const fetch = require('node-fetch');
const response = await fetch('https://api.mfswallet.com/api/gateway/create-link', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 500, // (Required) [Number] পেমেন্ট এমাউন্ট
method: 'bkash', // (Required) [String] Available: bkash, nagad, rocket, upay
user_identyfy_address: 'customer@email.com', // (Required) [String] কাস্টমারের ইমেইল বা ফোন নাম্বার
domain: 'mywebsite.com', // (Required) [String] আপনার ওয়েবসাইটের ডোমেইন
success_redirect_url: 'https://mywebsite.com/success', // (Required) [URL] পেমেন্ট সাকসেস হলে কোথায় যাবে
fail_redirect_url: 'https://mywebsite.com/fail', // (Required) [URL] পেমেন্ট ফেইল হলে কোথায় যাবে
pending_redirect_url: 'https://mywebsite.com/pending', // (Required) [URL] পেমেন্ট পেন্ডিং হলে কোথায় যাবে
call_back_url: 'https://mywebsite.com/api/callback/success', // (Required) [URL] সাকসেস ওয়েব হুক
pending_call_back: 'https://mywebsite.com/api/callback/pending', // (Required) [URL] পেন্ডিং ওয়েব হুক
reject_call_back: 'https://mywebsite.com/api/callback/reject', // (Required) [URL] রিজেক্ট ওয়েব হুক
checkout_items: { orderId: 'ORD-12345' } // (Optional) [Object] আপনার যেকোনো কাস্টম ডাটা
})
});
const data = await response.json();
console.log(data);
/* Response:
{
"success": true,
"payment_page_url": "https://mfswallet.com/payment/1a2b3c4d5e",
"short_code": "1a2b3c4d5e",
"request_data": {
"amount": 500,
"method": "bkash",
"user_identyfy_address": "customer@email.com",
"domain": "mywebsite.com",
"success_redirect_url": "https://mywebsite.com/success",
"fail_redirect_url": "https://mywebsite.com/fail",
"pending_redirect_url": "https://mywebsite.com/pending",
"call_back_url": "https://mywebsite.com/api/callback/success",
"pending_call_back": "https://mywebsite.com/api/callback/pending",
"reject_call_back": "https://mywebsite.com/api/callback/reject",
"checkout_items": {
"orderId": "ORD-12345"
}
}
}
*/<?php
$apiKey = 'YOUR_API_SECRET_KEY';
$payload = [
'amount' => 500, // (Required) [Number] পেমেন্ট এমাউন্ট
'method' => 'bkash', // (Required) [String] Available: bkash, nagad, rocket, upay
'user_identyfy_address' => 'customer@email.com', // (Required) [String] কাস্টমারের ইমেইল বা ফোন নাম্বার
'domain' => 'mywebsite.com', // (Required) [String] আপনার ওয়েবসাইটের ডোমেইন
'success_redirect_url' => 'https://mywebsite.com/success', // (Required) [URL]
'fail_redirect_url' => 'https://mywebsite.com/fail', // (Required) [URL]
'pending_redirect_url' => 'https://mywebsite.com/pending', // (Required) [URL]
'call_back_url' => 'https://mywebsite.com/api/callback/success', // (Required) [URL]
'pending_call_back' => 'https://mywebsite.com/api/callback/pending', // (Required) [URL]
'reject_call_back' => 'https://mywebsite.com/api/callback/reject', // (Required) [URL]
'checkout_items' => ['orderId' => 'ORD-12345'], // (Optional) [Object]
];
$ch = curl_init('https://api.mfswallet.com/api/gateway/create-link');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);import requests
api_key = "YOUR_API_SECRET_KEY"
payload = {
"amount": 500, # (Required) [Number] পেমেন্ট এমাউন্ট
"method": "bkash", # (Required) [String] Available: bkash, nagad, rocket, upay
"user_identyfy_address": "customer@email.com", # (Required) [String] কাস্টমারের ইমেইল বা ফোন নাম্বার
"domain": "mywebsite.com", # (Required) [String] আপনার ওয়েবসাইটের ডোমেইন
"success_redirect_url": "https://mywebsite.com/success", # (Required) [URL]
"fail_redirect_url": "https://mywebsite.com/fail", # (Required) [URL]
"pending_redirect_url": "https://mywebsite.com/pending", # (Required) [URL]
"call_back_url": "https://mywebsite.com/api/callback/success", # (Required) [URL]
"pending_call_back": "https://mywebsite.com/api/callback/pending", # (Required) [URL]
"reject_call_back": "https://mywebsite.com/api/callback/reject", # (Required) [URL]
"checkout_items": {"orderId": "ORD-12345"}, # (Optional) [Object]
}
response = requests.post(
"https://api.mfswallet.com/api/gateway/create-link",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json=payload,
)
data = response.json()
print(data)Step 2: Webhook Callback Structures (ওয়েবহুক ডাটা স্ট্রাকচার)
পেমেন্টের বিভিন্ন স্ট্যাটাস অনুযায়ী আমরা আপনার দেওয়া স্পেসিফিক Webhook URL গুলোতে নিচে দেওয়া JSON ফরম্যাটে ডাটা সেন্ড করবো। রিয়েল লাইফ টেস্ট করার জন্য আপনার সার্ভারের API লিংক বসিয়ে টেস্ট করতে পারেন।
Success Callback (পেমেন্ট সাকসেস হলে)
আপনার সার্ভারে এই JSON ফরম্যাটে ডাটা সেন্ড করা হবে। আপনি নিচের পেলোড (Payload) অনুযায়ী আপনার সিস্টেম আপডেট করবেন।
short_code ব্যবহার করা, কারণ এটি সবসময় ইউনিক হয়। প্রয়োজনে user_identyfy_address ও ব্যবহার করতে পারেন।{
"status": "COMPLETED",
"transaction_id": "9K82L1M0P",
"short_code": "1a2b3c4d5e",
"amount": 500,
"method": "bkash",
"sender_number": "018XXXXXX00",
"user_identyfy_address": "customer@email.com",
"checkout_items": {
"orderId": "ORD-12345"
}
}Real-life Test Simulator
আপনার রিয়েল সার্ভার URL দিয়ে এখনই টেস্ট করে দেখুন আপনার স্ক্রিপ্ট ঠিকমতো রেসপন্স করছে কি না।
Pending Callback (ম্যানুয়াল ভেরিফিকেশনে গেলে)
আপনার সার্ভারে এই JSON ফরম্যাটে ডাটা সেন্ড করা হবে। আপনি নিচের পেলোড (Payload) অনুযায়ী আপনার সিস্টেম আপডেট করবেন।
short_code ব্যবহার করা, কারণ এটি সবসময় ইউনিক হয়। প্রয়োজনে user_identyfy_address ও ব্যবহার করতে পারেন।{
"status": "PENDING",
"transaction_id": "PENDING_VERIFICATION",
"short_code": "1a2b3c4d5e",
"amount": 500,
"method": "bkash",
"message": "Payment is pending manual verification",
"user_identyfy_address": "customer@email.com",
"checkout_items": {
"orderId": "ORD-12345"
}
}Real-life Test Simulator
আপনার রিয়েল সার্ভার URL দিয়ে এখনই টেস্ট করে দেখুন আপনার স্ক্রিপ্ট ঠিকমতো রেসপন্স করছে কি না।
Reject Callback (পেমেন্ট ফেইল বা রিজেক্ট হলে)
আপনার সার্ভারে এই JSON ফরম্যাটে ডাটা সেন্ড করা হবে। আপনি নিচের পেলোড (Payload) অনুযায়ী আপনার সিস্টেম আপডেট করবেন।
short_code ব্যবহার করা, কারণ এটি সবসময় ইউনিক হয়। প্রয়োজনে user_identyfy_address ও ব্যবহার করতে পারেন।{
"status": "FAILED",
"transaction_id": "INVALID",
"short_code": "1a2b3c4d5e",
"amount": 500,
"method": "bkash",
"reason": "Payment amount mismatched or invalid sender",
"user_identyfy_address": "customer@email.com",
"checkout_items": {
"orderId": "ORD-12345"
}
}Real-life Test Simulator
আপনার রিয়েল সার্ভার URL দিয়ে এখনই টেস্ট করে দেখুন আপনার স্ক্রিপ্ট ঠিকমতো রেসপন্স করছে কি না।
Step 3: Test Payment Link Generator
কোনো কোড না লিখেই এখনই একটি লাইভ পেমেন্ট লিংক তৈরি করে দেখুন আপনার গেটওয়ে কেমন দেখাচ্ছে! এখান থেকে তৈরি করা লিংক আপনার কাস্টমারদের পেজের মতোই হুবহু কাজ করবে।