BitcommerzDevelopers
ডেভেলপারদের জন্য

Merchant-রা তো আছেনই। যেটা নেই, সেটা আপনি বানান।

সারা দেশে হাজারো দোকানদার Bitcommerz-এ store চালাচ্ছেন, এক লাইন কোডও না লিখে। আমরা যেটা করি না, সেটা খুঁজতে তাঁরা App Store-এ ঢোকেন — আর ঠিক সেখানেই আপনার কাজটা চোখে পড়ে। যে language-এ আপনার হাত চলে সেটাতেই বানান, app থাকবে আপনার নিজের server-এ, আর যা আয় হবে তার ৭৫% আপনার।

দুইটা রাস্তা

আপনি app বানাবেন, নাকি theme?

দুইটাই দাঁড় করাবেন Partner Panel থেকে। Merchant-দের হাতে যাওয়ার আগে আমাদের team একবার দেখে নেয়।

App

থাকবে আপনার নিজের server-এ, যে stack-এ আপনার হাত চলেPartner Panel-এ একটা form পূরণ — আপলোড করার কিছু নেইMerchant এক ক্লিকে install করেন, বাকিটা OAuth সামলায়Shop-এর data পড়বেন, তবে যতটুকু permission চেয়েছেন ততটুকুইদাম নিন মাসে, বছরে, একবারে বা আজীবন — টাকায়, চাইলে free trial

Theme

শুরু করুন preset kit থেকে — React, TypeScript, Tailwind বসানোএকটা কমান্ড, আর পুরো theme একটা zip-এসেই zip Partner Panel-এ আপলোড করলেই কাজ শেষনিজের বানানো widget আপনারই — theme-এর slug-এ namespacedTheme free বা one-time — final দামটা আমাদের team ঠিক করে
কীভাবে হয়

তিন ধাপ, কোনোটাতেই বেশি সময় যায় না

০১

Account খুলুন

Partner account খুলতে এক মিনিট, আর ওই এক account-এই app, theme, referral — তিনটাই চলে। টাকা লাগে না, কাউকে রাজি করানোরও দরকার নেই।

০২

বানিয়ে ফেলুন

Token exchange-টা বসান, যে permission গুলো সত্যিই কাজে লাগবে সেগুলোই চান, আর কোন event-এর খবর চান বলে দিন। বাকিটা ডকুমেন্টেশনে লেখা আছে।

০৩

পাঠিয়ে দিন

Review-তে submit করলে আমাদের team-এর একজন দেখেন, approve হলেই merchant-রা খুঁজে পাবেন। পরে update মানে আবার submit — একই নাম, একই slug, নতুন version।

Install ও auth

Merchant দরজা খোলেন, চাইলে তখনই বন্ধও করেন

Merchant সামনে নেই, অথচ আপনার backend-কে কাজ চালাতে হবে — রাতের sync, নিয়ম করে চলা report। তার জন্য আলাদা server-to-server flow আছে, token এক ঘণ্টার।

Key না, একটা code

Merchant আপনার app খুললে আমরা একটা code দিই, যেটা একবারই খাটে। আপনার server সেটা দিয়ে আসল token নিয়ে নেয় — browser-এ গোপন কিছু পড়ে থাকে না।

৬৪ hex · ৬০ সেকেন্ড · একবার

Token-এর মেয়াদ আছে

Access token চলে ১০ মিনিট, refresh token ৩০ দিন। পেছনে চুপচাপ refresh হয়ে গেলে merchant কিছুই টের পান না।

১০ মিনিট · ৩০ দিন

Secret দেখবেন একবারই

App approve হওয়ার দিন client secret একবার দেখাই, এরপর আমাদের কাছে থাকে শুধু hash। হারালে ফেরত আসে না, নতুন করে ইস্যু করতে হয় — তাই ওই দিনই নিরাপদ জায়গায় তুলে রাখুন।

Approve-এর দিন, একবার

Uninstall মানে সত্যিই শেষ

Merchant app সরালেই আপনার access শেষ। প্রতিটি call-এই আমরা দেখে নিই install এখনো active কিনা, তাই মাঝখানে ফাঁক থাকে না।

Uninstall-এই বন্ধ
Install → access token
// A merchant opens your app from their dashboard.
// We mint a one-time launch code: 64 hex, 60s TTL.
 
POST /app-oauth/token
Content-Type: application/json
 
{
  "grant_type": "authorization_code",
  "code": "<launch_code>",
  "client_id": "<client_id>",
  "client_secret": "<client_secret>"
}
 
// → access_token expires in 10 minutes
// → refresh_token expires in 30 days
// Renew with grant_type=refresh_token
Permission ও event

যতটুকু দরকার চান, খবর আমরা পাঠাব

App-টা যে permission গুলো সত্যিই কাজে লাগায়, সেগুলোই নিন — feature-এর চেয়ে লিস্ট লম্বা হলে reviewer-এর চোখে পড়ে। তারপর দরকারি event-এ subscribe করুন; আমরা sign করে পাঠাব, তাই খবরটা যে আমাদেরই, নিজেই মিলিয়ে নিতে পারবেন।

যা যা চাইতে পারেন

read_orderswrite_ordersread_productswrite_productsread_customerswrite_customersread_inventorywrite_inventoryread_analyticsread_shopmanage_webhooks

যেসব খবর পাবেন

order.createdorder.paidorder.fulfilledorder.cancelledproduct.createdproduct.updatedcustomer.createdapp.installedapp.uninstalled
Verify a webhook
// X-Webhook-Signature: t=<unix>,v1=<hex>
// v1 = HMAC-SHA256("<t>.<rawBody>", secret)
 
const [t, v1] = header
  .split(',')
  .map(p => p.split('=')[1]);
 
const expected = crypto
  .createHmac('sha256', secret)
  .update(`${t}.${rawBody}`)
  .digest('hex');
 
if (v1 !== expected) return res.sendStatus(401);
 
// Retries: 6 attempts over 24h
// 1m · 5m · 30m · 2h · 6h · 24h
টাকার হিসাব

প্রতিটি বিক্রির ৭৫% আপনার

প্রথম বিক্রি থেকেই সবার জন্য একই ভাগ। উঠতে হবে এমন tier নেই, ছুঁতে হবে এমন target নেই, দরদামেরও কিছু নেই।

আপনার ভাগ

প্রতিটি app আর theme বিক্রিতে
৭৫%
প্রথম দিনেও এটাই, হাজার দিন পরেও

আমাদের ভাগ

Hosting, billing আর merchant-দের কাছে পৌঁছানো
২৫%
নিজে থেকেই কেটে যায়

ক্রেতার সুরক্ষা

টাকা ছাড়ার আগে অল্প কিছু দিন
৭ দিন
এরপর balance পুরোটাই আপনার

যা জেনে রাখা ভালো

App-এর দাম নিন মাসে, বছরে, একবারে বা আজীবন — টাকায়, চাইলে কিছু দিন free trial দিয়ে।
Theme হয় free, নয়তো one-time। বিক্রিতে যাওয়ার আগে final দামটা আমাদের team ঠিক করে দেয়।
প্রতিটি বিক্রি কয়েক ধাপ পেরোয় — pending, settled, held, তারপর released — পুরোটা আপনার চোখের সামনেই।
Balance, বিক্রি, payout — সব Partner Panel-এ। Payout এখনো আমাদের team হাতে হাতে দেয়, তাই বাঁধা কোনো তারিখ নেই, minimum-ও নেই।
Theme starter kit

Clone করুন, চালান, ব্রাউজারেই দেখুন

Starter kit GitHub-এ public — merchant-রা এখন যে theme চালান, এটা তারই গড়ন। তাই আপনার ল্যাপটপে যে storefront দেখছেন, merchant-ও ঠিক সেটাই পাবেন।

React, TypeScript, Tailwind — সব বসানো আছেLocal preview, লিখতে লিখতেই reload হয়Submit-এর আগেই theme-টা যাচাই করে দেয়এক কমান্ডে পুরোটা zip হয়ে যায়

আমাদের GitHub-এ আর কী আছে দেখুন →

theme-preset-kit
$ git clone https://github.com/Commerzly/theme-preset-kit
$ npm install
 
$ npm run dev # local preview
$ npm run validate # structure + slug checks
$ npm run build
$ npm run package # → dist/theme.zip
 
# Upload dist/theme.zip from the Partner Panel.
# Slug: lowercase-hyphen, and not one of
# default | grid | manfare | general
FAQ

যে প্রশ্নগুলো সবাই করেন

আমার app চলবে কোথায়?
আপনার নিজের server-এ, যে stack আপনার পছন্দ। আপনার কোড আমরা host-ও করি না, চালাইও না — শুধু আপনার দেওয়া HTTPS endpoint-এ call করি।
ফাইল আপলোড করতে হবে?
App-এর বেলায় না। Partner Panel-এ একটা form-এ আপনার live URL গুলো বসাবেন, ওটাই পুরো submission। Theme আলাদা — সেটা zip করে আপলোড করতে হয়।
Merchant install করেন কীভাবে?
তাঁর dashboard-এর App Store থেকে। App খুললেই dashboard একটা code দেয় — একবারই খাটে, মেয়াদ মিনিটখানেক। আপনার server সেটা দিয়ে access token নিয়ে নেয়, ব্যস, connect।
client secret হারিয়ে ফেললে?
ফেরত পাওয়ার উপায় নেই — আমাদের কাছে শুধু hash থাকে, তাই আমরাও পড়তে পারি না। যোগাযোগ করুন, নতুন একটা secret ইস্যু করে দেব।
Merchant uninstall করলে কী হয়?
আপনার access ওখানেই বন্ধ। প্রতিটি call-এ install active কিনা দেখি, তাই পরের request থেকেই app আর ঢুকতে পারে না। আপনি নিজের দিকটা গুছিয়ে নিলেই হলো।
Webhook টা আপনাদের, বুঝব কীভাবে?
প্রতিটি delivery sign করা থাকে। নিজের webhook secret দিয়ে timestamp আর raw body-র HMAC-SHA256 বের করে signature header-এর সাথে মিলিয়ে নিন। পৌঁছাতে না পারলে আমরা ২৪ ঘণ্টায় ৬ বার চেষ্টা করি।
Review-তে কী দেখেন আপনারা?
প্রতিটি submission আমাদের team-এর একজন মানুষ নিজে পড়েন। URL গুলো HTTPS হতে হবে আর বাইরে থেকে খোলা থাকতে হবে, permission আর event থাকতে হবে আমাদের supported লিস্টের ভেতরে। বেশিরভাগ ফেরত যায় এক কারণেই — কাজের চেয়ে বেশি access চাওয়া।
Update দেব কীভাবে?
একই নামে, একই slug-এ আবার submit করুন। ওটা নতুন version হয়ে আবার review-তে যায় — এর মধ্যে যাঁরা আগে install করেছেন, তাঁদেরটা চলতেই থাকে।
Theme subscription-এ বেচা যায়?
না। Theme হয় free, নয়তো একবারের কেনা — final দামটা আমাদের team confirm করে। Subscription-টা app-এর জন্য: মাসে, বছরে, আজীবন বা একবারে।
কোনো SDK আছে?
নেই, npm-এ আমাদের package-ও নেই। পুরোটা সাদামাটা HTTPS আর OAuth — যে language জানেন সেটাতেই হবে। আমাদের একমাত্র public repo হলো theme starter kit।

চলুন, কিছু একটা বানাই

Account খুলুন, প্রথম app বা theme register করুন, তারপর পাঠিয়ে দিন। শুরু করতে এক টাকাও লাগে না — merchant-রা তো অপেক্ষাতেই আছেন।

Partner Panel খুলুন →ডকুমেন্টেশন পড়ুন

একটা free account-এই app, theme আর referral — তিনটাই। আর প্রতিটি বিক্রির ৭৫% আপনার।