Public REST API Reference v1.0

Customer & Developer REST API

স্বাগতম Cloud PBX SaaS ডেভেলপার ডকুমেন্টেশনে। আমাদের স্বয়ংক্রিয় এআই ভয়েস কল ভেরিফিকেশন, কল হিস্ট্রি (CDR) রেকর্ডস, অডিও ডাউনলোড এবং রিয়েল-টাইম ওয়েব হুক ইঞ্জিন আপনার নিজস্ব সফটওয়্যার, WooCommerce/Shopify ইকমার্স স্টোর বা কাস্টম সিআরএমে ইন্টিগ্রেট করার জন্য এই RESTful এপিআই ব্যবহার করুন।

API Base URL: https://epbx.bd/api/v1
Protocol: HTTPS / JSON Payload
Rate Limit: 120 req / minute

Authentication (অথেন্টিকেশন গাইড)

পাবলিক ওয়েব হুক ও পিং ছাড়া বাকি সব সুরক্ষিত এপিআই রিকোয়েস্টে আপনার টেন্যান্ট অ্যাকাউন্ট থেকে সংগৃহীত Bearer Token হেডার পাঠাতে হবে। টোকেন জেনারেট করতে আপনার ড্যাশবোর্ডে লগইন করে Developer API Settings মেনুতে যান।

Authorization: Bearer YOUR_API_TOKEN_HERE
Accept: application/json
Content-Type: application/json
Interactive Sandbox Mode

Live API Testing Sandbox (স্যান্ডবক্স টেস্ট কনসোল)

অ্যাকাউন্ট না থাকলেও আপনি নিচে ডেমো টোকেন দিয়ে এপিআই রেসপন্স দেখতে পারেন অথবা আপনার নিজস্ব টোকেন বসিয়ে লাইভ অ্যাকাউন্ট টেস্ট করতে পারেন।

POST /api/v1/calls/verify
Core Feature

1. Outbound AI Order Verification Call API

আপনার ইকমার্স সাইটে নতুন অর্ডার আসার সাথে সাথে কাস্টমারের মোবাইলে একটি স্বয়ংক্রিয় ফোন কল পাঠানোর জন্য এই এপিআই কল করুন। সিস্টেম আপনার টেক্সটকে কৃত্রিম বুদ্ধিমত্তা দিয়ে বাংলায় উচ্চারণ করবে এবং কাস্টমারের চাপ দেওয়া বোতাম (১ = কনফার্ম, ২ = ক্যানসেল) সনাক্ত করে আপনার ওয়েব হুকে ফলাফল পাঠাবে।

Request Body Parameters (JSON Payload):

Field Type Required Description (বিবরণ)
phone_number string Yes গ্রাহকের ১১ ডিজিটের মোবাইল নম্বর (যেমন: "01700000000")।
webhook_url string (URL) Yes কল সম্পন্ন হওয়ার পর ফলাফল পাওয়ার জন্য আপনার সাইটের Webhook URL।
custom_text string Optional AI যে টেক্সটটি কাস্টমারকে পড়ে শোনাবে। না দিলে ডিফল্ট ভেরিফিকেশন স্পিচ হবে।
custom_audio_url string (URL) Optional AI ভয়েসের বদলে নিজস্ব প্রি-রেকর্ডেড অডিও ফাইল বাজাতে চাইলে সরাসরি MP3/WAV লিংক।
confirm_text string Optional কাস্টমার ১ প্রেস করলে তাকে যে ধন্যবাদ মেসেজ শোনানো হবে।
cancel_text string Optional কাস্টমার ২ প্রেস করলে তাকে যে বাতিল/এজেন্ট মেসেজ শোনানো হবে।
agent_extension string Optional ২ প্রেস করলে সরাসরি আপনার যে সাপোর্ট এজেন্টের এক্সটেনশনে ট্রান্সফার হবে (যেমন: "101")।

Example Request (cURL):

curl -X POST https://epbx.bd/api/v1/calls/verify \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "01712345678",
    "customer_name": "Rahim",
    "amount": "1250 BDT",
    "store_name": "My Online Shop",
    "custom_text": "Hello Rahim, thank you for ordering. Press 1 to confirm, press 2 to cancel.",
    "confirm_text": "Thank you! Your order has been confirmed.",
    "cancel_text": "Your order has been cancelled.",
    "webhook_url": "https://mystore.com/wp-json/custom/v1/order-webhook",
    "agent_extension": "101"
  }'
POST /api/v1/calls/originate
Telephony

2. Click-to-Call (Originate) API

আপনার নিজস্ব CRM বা হেল্পডেস্কে 'Call' বাটনে ক্লিক করলে সিস্টেম প্রথমে আপনার অফিস এজেন্টের আইপি ফোন বা মোবাইল অ্যাপে রিং করবে। এজেন্ট ফোন তোলার সাথে সাথে কাস্টমারের নাম্বারে ডায়াল করে দুজনের মাঝে সরাসরি কল কানেক্ট করিয়ে দেবে।

Request Body Parameters:

Field Type Required Description
extension string Yes যে এক্সটেনশনে প্রথমে কল যাবে (যেমন: "101")।
phone_number string Yes কাস্টমারের ফোন নাম্বার (যেমন: "01800000000")।
caller_id string Optional কাস্টমারের স্ক্রিনে প্রদর্শিত কলার আইডি বা ট্রাঙ্ক নম্বর।

Example Request:

curl -X POST https://epbx.bd/api/v1/calls/originate \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "extension": "101",
    "phone_number": "01812345678",
    "caller_id": "09639000000"
  }'
POST Real-Time Event Webhook Callbacks
Automation

3. Real-Time Event Webhook Engine

কলটি সমাপ্ত হওয়ার সাথে সাথে PBX আপনার দেওয়া webhook_url-এ স্বয়ংক্রিয়ভাবে একটি HTTP POST রিকোয়েস্ট পাঠায়। নিচে কাস্টমারের অ্যাকশন অনুযায়ী ফলাফল তালিকা দেওয়া হলো:

confirmed

কাস্টমার কল রিসিভ করে ফোনে ১ (CONFIRM) প্রেস করেছেন। আপনার স্টোরে অর্ডার কনফার্ম করে দিন।

rejected

কাস্টমার ফোনে ২ (CANCEL) প্রেস করেছেন (এবং এজেন্ট ট্রান্সফার শুরু হয়েছে)।

No Response

কাস্টমার ফোন ধরেছেন কিন্তু অডিও চলাকালীন কোনো বাটন প্রেস করেননি।

BUSY / NOANSWER

কাস্টমার অন্য কলে ব্যস্ত ছিলেন, কল রিজেক্ট করেছেন অথবা ৬০ সেকেন্ডের মধ্যে ফোন রিসিভ করেননি।

Webhook Payload Sent to Your Server (POST Body):

{
  "order_id": "89231",
  "status": "confirmed",
  "digit_pressed": "1",
  "phone_number": "01712345678",
  "call_id": "test_6aaee835d75f8",
  "event": "order_verification_call",
  "timestamp": "2026-09-20T01:30:00+06:00"
}

Live Webhook Tester (রিয়েল-টাইম টেস্ট টুল)

Try It Out Sandbox

আপনার সাইটের Webhook হ্যান্ডলার কোনো কল ছাড়াই পরীক্ষা করুন। নিচে আপনার URL দিন, সিস্টেম সরাসরি আপনার সাইটে পিং পাঠিয়ে আপনার সার্ভারের রেসপন্স কোড ও লেটেন্সি (ms) দেখাবে।

⚡ সম্পূর্ণ ফ্রি - এটি কোনো ব্যালেন্স কাটে না বা রিয়েল কল করে না।
GET /api/v1/calls/history
Reporting

4. Call Detail Records (CDR) & Call History API

আপনার অ্যাকাউন্টের সমস্ত ইনকামিং এবং আউটগোয়িং কলের বিস্তারিত ইতিহাস, টকটাইম, কলার আইডি, স্ট্যাটাস এবং রেকর্ডিং অডিও লিংক প্রোগ্রাম্যাটিকভাবে সংগ্রহ করতে এই এপিআই ব্যবহার করুন।

Query Parameters (ফিল্টারিং অপশনস):

Parameter Type Description
start_date string (YYYY-MM-DD) যে তারিখ থেকে হিস্ট্রি দেখতে চান (যেমন: "2026-09-01")।
end_date string (YYYY-MM-DD) যে তারিখ পর্যন্ত হিস্ট্রি দেখতে চান (যেমন: "2026-09-20")।
phone_number string নির্দিষ্ট কোনো কাস্টমারের ফোন নাম্বার দিয়ে ফিল্টার করতে।
extension string নির্দিষ্ট কোনো অফিস এক্সটেনশন দিয়ে ফিল্টার করতে (যেমন: "101")।
disposition string কলের স্ট্যাটাস: ANSWERED, NO ANSWER, BUSY, FAILED
page integer পেজিনেশন পৃষ্ঠা নম্বর (ডিফল্ট: 1)।
per_page integer প্রতি পৃষ্ঠায় কতটি কল রেকর্ড আসবে (ডিফল্ট: 20, সর্বোচ্চ: 100)।

Example Response (JSON):

{
  "status": "success",
  "tenant": "My Store",
  "data": [
    {
      "call_id": "1726792341.1293",
      "date": "2026-09-20 01:23:45",
      "source": "01712345678",
      "destination": "101",
      "caller_id": "01712345678",
      "disposition": "ANSWERED",
      "duration_seconds": 125,
      "billable_seconds": 110,
      "has_recording": true,
      "recording_url": "https://epbx.bd/api/v1/calls/recordings/1726792341.1293"
    }
  ],
  "pagination": {
    "current_page": 1,
    "last_page": 5,
    "per_page": 20,
    "total": 98
  }
}
GET /api/v1/calls/recordings/{call_id}
Audio Stream

5. Call Recording Stream & Download API

নির্দিষ্ট কোনো কলের অডিও রেকর্ডিং ফাইল সরাসরি ব্রাউজারে শুনতে অথবা আপনার নিজস্ব সার্ভারে ব্যাকআপ ডাউনলোড করতে এই এপিআই কল করুন। এটি অডিও ফাইলটি সরাসরি audio/wav অথবা audio/mpeg আকারে রিটার্ন করে।

Example Request:

curl -X GET https://epbx.bd/api/v1/calls/recordings/1726792341.1293 \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  --output call_recording_1726792341.wav
GET Wallet & Trunk Balance APIs
Finance

Global Wallet Balance

আপনার মূল পোর্টাল ওয়ালেটের অবশিষ্ট টাকার পরিমাণ জানতে:

curl -X GET https://epbx.bd/api/v1/balance/global \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response: {"status":"success", "balance":4248.83, "currency":"BDT"}

SIP Trunk Balance

আপনার টেলিফোন গেটওয়ে/আইপি ট্রাঙ্কের ব্যালেন্স জানতে:

curl -X GET https://epbx.bd/api/v1/balance/ip \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response: {"status":"success", "balance":135.44, "trunk":"09639666896"}

7. Call Rates & Voice Pricing Guide (কল রেট ও বিলিং হিসেব)

সিস্টেম স্বচ্ছ ও ডাইনামিক বিলিং পলিসি অনুসরণ করে। এআই ভয়েস কল চলাকালীন আপনার সিলেক্ট করা মডেল অনুযায়ী প্রতি ১০০ ক্যারেক্টারে নিম্নরূপ ফি চার্জ করা হয় (যা স্বয়ংক্রিয়ভাবে আপনার অ্যাকাউন্ট ওয়ালেট থেকে অ্যাডজাস্ট হয়):

Google Standard ৳0.4 / 100 chr
Google WaveNet ৳0.7 / 100 chr
Azure Neural ৳0.75 / 100 chr
eAI Premium ৳0.50 / 100 chr
ElevenLabs ৳6 / 100 chr
Custom Audio Policy (কাস্টম অডিও চার্জ নিয়ম): আপনার নিজস্ব প্রি-রেকর্ডেড ফাইল ব্যবহার করলে কোনো AI ক্যারেক্টার চার্জ হবে না।
• পিবিএক্সে আগে থেকে আপলোড করা ফিক্সড অডিও ফাইল (Fixed Audio API) ব্যবহার করলে প্রতি কলে মাত্র ৳0.3 BDT প্লেব্যাক ফি চার্জ করা হয়।
• কিন্তু আপনি যদি এপিআই-এর মাধ্যমে সরাসরি কোনো ডাইনামিক অডিও লিংক (custom_audio_url) পাস করেন, তবে সেটিকে ডাউনলোড ও কনভার্ট করার জন্য প্রতি কলে ৳0.45 BDT ফেচিং ফি প্রযোজ্য হবে।
POST /api/v1/sms/send-external
SMS Notification Proxy

8. Carrier SMS Dispatch API (eCMS Gateway Integration)

আপনার টেন্যান্ট পোর্টালে (Developer Settings > eCMS SMS Integration ট্যাবে) যদি আপনার eCMS বাল্ক এসএমএস অ্যাকাউন্ট কানেক্ট করা থাকে (API Token কনফিগার করা থাকে), তবে আপনার নিজস্ব ওয়েবসাইট, অ্যাপ বা সিআরএম থেকে সরাসরি কাস্টমারদের অর্ডার নোটিফিকেশন, ওটিপি বা ট্রানজেকশনাল মেসেজ পাঠাতে এই এপিআই ব্যবহার করতে পারবেন।

💡 ব্যবহারের উদ্দেশ্য ও স্পষ্টীকরণ: এটি কোনো পেমেন্ট গেটওয়ে নয়; এটি কাস্টমারদের মোবাইলে মেসেজ পাঠানোর এপিআই। আপনার অ্যাপ্লিকেশন থেকে এই এপিআই-তে রিকোয়েস্ট পাঠালে PBX সার্ভার আপনার লিঙ্ক করা eCMS ব্যালেন্স ব্যবহার করে সরাসরি টেলিকম ক্যারিয়ারের মাধ্যমে গ্রাহকের মোবাইলে এসএমএস ডেলিভারি করবে।
curl -X POST https://epbx.bd/api/v1/sms/send-external \
  -H "Authorization: Bearer YOUR_PBX_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "01712345678",
    "message": "Your order #89231 has been dispatched. Thank you for shopping with us!"
  }'