ব্যবহার · পিওএস ও রিটেইল
পিওএস ও রিটেইলের এসএমএস: রিসিট, লয়্যালটি ও বাকির রিমাইন্ডার
বিক্রির সঙ্গে সঙ্গে এসএমএসে রিসিট পাঠান, গ্রাহককে লয়্যালটি পয়েন্ট জানান, আর ভদ্রভাবে বাকির কথা মনে করিয়ে দিন। BitCommerz POS বা এপিআই কল করতে পারে এমন যেকোনো পিওএস থেকে।
সমস্যাটা কোথায়
ব্যস্ত কাউন্টারে কাগজের রিসিট হারায়, লয়্যালটি পয়েন্ট কত জমল কারও মনে থাকে না। যে দোকান বাকিতে বিক্রি করে, তার বাকির খাতা থাকে, আর টাকা তুলতে হয় অস্বস্তিকর ফোন করে বা গ্রাহক আবার কবে আসবেন সেই অপেক্ষায়।
ছোট একটি এসএমএসেই তিনটির সমাধান হয় — যদি তা পিওএস থেকে নিজে থেকেই যায়, খরচ কম হয়, আর গ্রাহকের পড়ার ভাষায় পৌঁছায়।
BitSMS যেভাবে সমাধান করে
এসএমএস রিসিট
লয়্যালটি পয়েন্ট
বাকির রিমাইন্ডার
BitCommerz POS-এর সঙ্গে কাজ করে
আপনার কোডে
পিওএস থেকে রিসিট পাঠান
বিক্রি শেষ হলে সেন্ড এন্ডপয়েন্ট কল করুন। ইনভয়েস নম্বরকে Idempotency-Key হিসেবে দিন, যাতে রিসিট আবার প্রিন্ট বা নেটওয়ার্কের কারণে আবার চেষ্টা হলেও দ্বিতীয় এসএমএস না যায়।
- রিসিট ছোট রাখুন: ইংরেজি এসএমএসে ১৬০ অক্ষর, বাংলায় ৭০।
- মেসেজ কিউতে উঠলেই এপিআই উত্তর দেয়, তাই কাউন্টারকে অপারেটরের জন্য অপেক্ষা করতে হয় না।
- রিমাইন্ডার ট্রানজ্যাকশনাল মেসেজ হিসেবে পাঠান; বাল্ক অপ্ট-আউট তালিকা এগুলো আটকায় না।
curl https://sms-api.bitcommerz.com/v1/messages \
-H "Authorization: Bearer $BITSMS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-5521-shipped" \
-d '{"to": "01712345678", "text": "Your order #5521 has shipped."}'// Node.js 18+ (built-in fetch)
const res = await fetch("https://sms-api.bitcommerz.com/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BITSMS_API_KEY}`,
"Content-Type": "application/json",
// Same key on a retry = no duplicate SMS, no double charge.
"Idempotency-Key": "order-5521-shipped",
},
body: JSON.stringify({ to: "01712345678", text: "Your order #5521 has shipped." }),
});
const msg = await res.json();
console.log(res.status, msg.id, msg.status); // 202 "0192…" "queued"<?php
$ch = curl_init("https://sms-api.bitcommerz.com/v1/messages");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("BITSMS_API_KEY"),
"Content-Type: application/json",
"Idempotency-Key: order-5521-shipped",
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "01712345678",
"text" => "আপনার অর্ডার #5521 পাঠানো হয়েছে।",
]),
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 202
echo $body["id"], " ", $body["parts"], " part(s)\n";import os, requests
res = requests.post(
"https://sms-api.bitcommerz.com/v1/messages",
headers={
"Authorization": f"Bearer {os.environ['BITSMS_API_KEY']}",
"Idempotency-Key": "order-5521-shipped",
},
json={"to": "01712345678", "text": "Your order #5521 has shipped."},
timeout=10,
)
msg = res.json()
print(res.status_code, msg["id"], msg["status"]) # 202 ... queuedbody, _ := json.Marshal(map[string]string{
"to": "01712345678",
"text": "Your order #5521 has shipped.",
})
req, _ := http.NewRequest("POST", "https://sms-api.bitcommerz.com/v1/messages", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer "+os.Getenv("BITSMS_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "order-5521-shipped")
res, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err) // safe to retry with the same Idempotency-Key
}
defer res.Body.Close()
var msg struct{ ID, Status string }
json.NewDecoder(res.Body).Decode(&msg)
fmt.Println(res.StatusCode, msg.ID, msg.Status) // 202 ... queuedসাধারণ প্রশ্ন
BitCommerz POS থেকে কি এসএমএস রিসিট পাঠানো যায়?
BitSMS হলো BitCommerz-এর তৈরি এসএমএস গেটওয়ে, তাই BitCommerz POS-এর জন্য এটিই স্বাভাবিক পছন্দ। আপনার দোকানে সেটআপে সাহায্য লাগলে আমাদের সাথে যোগাযোগ করুন।
অন্য কোম্পানির পিওএসে কি BitSMS ব্যবহার করা যায়?
হ্যাঁ, যদি পিওএসটি ওয়েব এপিআই কল করতে পারে বা নিজস্ব এসএমএস গেটওয়ে যোগ করার সুযোগ দেয়। আপনার এপিআই কি দিয়ে একটি HTTPS কলেই মেসেজ যায়।
একটি এসএমএস রিসিটে কত খরচ?
অন্য যেকোনো মেসেজের মতোই প্রতি এসএমএস রেট, প্রতি পার্ট হিসেবে। ছোট ইংরেজি রিসিট এক পার্টেই হয়ে যায়; বর্তমান রেট মূল্য পাতায় দেখুন।