مستندات وب‌سرویس ویپانو

برای شروع، توکن را از پنل کاربری بسازید و endpoint موردنیاز را از سایدبار انتخاب کنید. همه جزئیات عملیاتی و امنیتی در همین صفحه قابل دسترسی است.

Base URL https://voipano.com/api/v1/webservice
Authorization Bearer YOUR_TOKEN
Content-Type application/json
Rate Limit 6 req/min
Token TTL 90 روز
آخرین بروزرسانی 2026/04/07 16:01

شروع سریع

برای هر درخواست هدرهای زیر الزامی هستند:

Authorization: Bearer YOUR_TOKEN
Content-Type: application/json

هدر اختیاری برای رهگیری بهتر:

X-Request-Id: your-custom-id

توکن را از پنل کاربری بخش «خدمات وب‌سرویس» ایجاد کنید. هر توکن قابل غیرفعال‌سازی است.

محدودیت درخواست: 6 درخواست در دقیقه برای هر کاربر.

قواعد مالی و اجرایی

  • اگر مرکز تماس خطا بدهد یا درخواست fail شود، هزینه درخواست به کیف پول برمی‌گردد.
  • همه درخواست‌ها با `request_id` در تاریخچه مصرف API پنل کاربری ثبت می‌شوند.
  • اگر کاربر IP whitelist فعال کرده باشد، درخواست فقط از همان IPهای ثبت‌شده پذیرفته می‌شود.

تعرفه Endpoint ها

Endpoint Slug تعرفه وضعیت دسترسی
ارسال کد تایید صوتی call-otp 160 تومان / هر درخواست فعال عمومی
تماس سریع click-to-call 80 تومان / هر درخواست فعال عمومی
تماس امن secure-call 120 تومان / هر درخواست فعال عمومی
دریافت گزارش تماس call-reports رایگان فعال عمومی
دریافت لیست سرویس‌ها services رایگان فعال عمومی
دریافت لیست صندوق صوتی voicemail-inboxes رایگان فعال عمومی
دریافت صوت یک مکالمه call-recordings رایگان فعال عمومی
دریافت فایل صندوق صوتی voicemail-recordings رایگان فعال عمومی

API Endpoints

لیست کامل مسیرهای قابل استفاده در لایه وب‌سرویس ویپانو

POST https://voipano.com/api/v1/webservice/call-otp 160 تومان / هر درخواست

ارسال کد تایید صوتی

ارسال OTP برای شماره مقصد از طریق سرویس صوتی.

پارامترهای ورودی

نام نوع الزامی توضیح
phone_number string بله شماره مقصد OTP
purpose string خیر شناسه سناریوی درخواست (اختیاری)
client_ref string خیر شناسه دلخواه سمت کلاینت برای رهگیری
payload object خیر متادیتای دلخواه کلاینت
POST https://voipano.com/api/v1/webservice/click-to-call 80 تومان / هر درخواست

تماس سریع

شروع تماس بین دو شماره از طریق مرکز تماس.

پارامترهای ورودی

نام نوع الزامی توضیح
call_source string بله شماره مبدا تماس
call_destination string بله شماره مقصد تماس
timeout integer خیر تایم‌اوت اولیه (پیش‌فرض 30)
limit integer خیر سقف زمان مکالمه بر حسب ثانیه
client_ref string خیر شناسه رهگیری سمت کلاینت
POST https://voipano.com/api/v1/webservice/secure-call 120 تومان / هر درخواست

تماس امن

برقراری تماس امن با پروکسی ویپانو.

پارامترهای ورودی

نام نوع الزامی توضیح
call_source string بله شماره مبدا تماس
call_destination string بله شماره مقصد تماس
timeout integer خیر تایم‌اوت اولیه (پیش‌فرض 30)
limit integer خیر سقف زمان مکالمه بر حسب ثانیه
client_ref string خیر شناسه رهگیری سمت کلاینت
GET https://voipano.com/api/v1/webservice/call-reports رایگان

دریافت گزارش تماس

دریافت گزارش تماس مشابه صفحه گزارش تماس پنل.

پارامترهای ورودی

نام نوع الزامی توضیح
disposition string خیر فیلتر وضعیت تماس (مثال: ANSWERED)
call_type string خیر فیلتر نوع تماس (INBOUND / OUTBOUND / INTERNAL)
has_recording integer خیر ۱ برای تماس دارای ضبط
from date خیر تاریخ شروع (مثال: 2026-02-01)
to date خیر تاریخ پایان (مثال: 2026-02-17)
limit integer خیر تعداد در هر صفحه
page integer خیر شماره صفحه
GET https://voipano.com/api/v1/webservice/services رایگان

دریافت لیست سرویس‌ها

دریافت لیست سرویس‌ها و اشتراک‌های کاربر همراه با زمان باقی‌مانده هر سرویس.

پارامترهای ورودی

نام نوع الزامی توضیح
این endpoint پارامتر ورودی ندارد.
GET https://voipano.com/api/v1/webservice/voicemail-inboxes رایگان

دریافت لیست صندوق صوتی

دریافت لیست صندوق‌های صوتی کاربر.

پارامترهای ورودی

نام نوع الزامی توضیح
context string خیر context صندوق صوتی
mailbox string خیر شماره mailbox
limit integer خیر تعداد در هر صفحه
page integer خیر شماره صفحه
GET https://voipano.com/api/v1/webservice/call-recordings/{cdrId} رایگان

دریافت صوت یک مکالمه

دانلود فایل ضبط مکالمه.

پارامترهای ورودی

نام نوع الزامی توضیح
call_details_record_id string بله شناسه رکورد تماس
GET https://voipano.com/api/v1/webservice/voicemail-recordings/{uniqueId} رایگان

دریافت فایل صندوق صوتی

دانلود فایل پیام صوتی.

پارامترهای ورودی

نام نوع الزامی توضیح
context string بله context صندوق صوتی
mailbox string بله شماره mailbox

نمونه درخواست‌ها

ارسال کد تایید صوتی https://voipano.com/api/v1/webservice/call-otp

نمونه درخواست JSON:

{
  "phone_number": "09123***789",
  "purpose": "login",
  "client_ref": "req-otp-1001"
}

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "request_id": "3dfd4fd4-5a2e-42a7-8f51-944fe18ca81a",
    "phone_number": "09123***789",
    "purpose": "login",
    "message": "کد تایید ارسال شد."
  },
  "billing": {
    "charged": 160,
    "unit_price": 160,
    "remaining_credit": 9840
  }
}
تماس سریع https://voipano.com/api/v1/webservice/click-to-call

نمونه درخواست JSON:

{
  "call_source": "09123***789",
  "call_destination": "09129***543",
  "timeout": 30,
  "limit": 45
}

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "request_id": "7c8f3dd6-18c7-4e34-94bf-009d019f1d58",
    "endpoint_number": "02191010001",
    "status": "accepted",
    "provider": {
      "success": true,
      "status": 201
    }
  },
  "billing": {
    "charged": 80,
    "unit_price": 80,
    "remaining_credit": 9920
  }
}
تماس امن https://voipano.com/api/v1/webservice/secure-call

نمونه درخواست JSON:

{
  "call_source": "09123***789",
  "call_destination": "09129***543",
  "timeout": 30,
  "limit": 30
}

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "request_id": "6319a18f-6e51-4e0f-927b-44e1c7fa0eb1",
    "endpoint_number": "02191010001",
    "status": "accepted"
  },
  "billing": {
    "charged": 120,
    "unit_price": 120,
    "remaining_credit": 9880
  }
}
دریافت گزارش تماس https://voipano.com/api/v1/webservice/call-reports

نمونه درخواست JSON:

GET /api/v1/webservice/call-reports?has_recording=1&limit=10&page=1
Authorization: Bearer YOUR_TOKEN

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "endpoint_number": "02191010001",
    "items": [
      {
        "id": "67bc8ea2f8f8a7d1287995f1",
        "call_details_record_id": "67bc8ea2f8f8a7d1287995f1",
        "call_source": "09123***789",
        "call_destination": "09129***543",
        "has_recording": true,
        "recording_url": "https://example.com/api/v1/webservice/call-recordings/67bc8ea2f8f8a7d1287995f1?call_details_record_id=67bc8ea2f8f8a7d1287995f1"
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 10,
      "total": 32,
      "last_page": 4
    }
  },
  "billing": {
    "charged": 0,
    "unit_price": 0
  }
}
دریافت لیست سرویس‌ها https://voipano.com/api/v1/webservice/services

نمونه درخواست JSON:

GET /api/v1/webservice/services
Authorization: Bearer YOUR_TOKEN

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "items": [
      {
        "subscription_id": 12,
        "status": "active",
        "remaining_days": 26,
        "package": {
          "id": 2,
          "name": "پلن پیوند",
          "slug": "peyvand"
        },
        "phone_number": "002191010001"
      }
    ],
    "total": 1
  },
  "billing": {
    "charged": 0,
    "unit_price": 0
  }
}
دریافت لیست صندوق صوتی https://voipano.com/api/v1/webservice/voicemail-inboxes

نمونه درخواست JSON:

GET /api/v1/webservice/voicemail-inboxes?context=voicemail-02191010001&limit=20
Authorization: Bearer YOUR_TOKEN

نمونه پاسخ:

{
  "ok": true,
  "data": {
    "items": [
      {
        "id": "67bc8f2df8f8a7d12879960f",
        "mailbox": "1001",
        "context": "voicemail-02191010001",
        "fullname": "Ali"
      }
    ],
    "allowed_contexts": [
      "voicemail-02191010001",
      "voicemail-user-15"
    ]
  },
  "billing": {
    "charged": 0,
    "unit_price": 0
  }
}
دریافت صوت یک مکالمه https://voipano.com/api/v1/webservice/call-recordings/{cdrId}

نمونه درخواست JSON:

GET /api/v1/webservice/call-recordings/67bc8ea2f8f8a7d1287995f1?call_details_record_id=67bc8ea2f8f8a7d1287995f1
Authorization: Bearer YOUR_TOKEN

نمونه پاسخ:

HTTP/1.1 200 OK
Content-Type: audio/wav
Content-Disposition: attachment; filename="recording-67bc8ea2f8f8a7d1287995f1.wav"
X-Billing-Charged: 0
دریافت فایل صندوق صوتی https://voipano.com/api/v1/webservice/voicemail-recordings/{uniqueId}

نمونه درخواست JSON:

GET /api/v1/webservice/voicemail-recordings/1739558127.155?context=voicemail-02191010001&mailbox=1001
Authorization: Bearer YOUR_TOKEN

نمونه پاسخ:

HTTP/1.1 200 OK
Content-Type: audio/wav
Content-Disposition: attachment; filename="voicemail-1739558127.155.wav"
X-Billing-Charged: 0
نمونه PHP (تماس امن) https://voipano.com/api/v1/webservice/secure-call
$client = new \GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_TOKEN',
    'Content-Type' => 'application/json',
];

$body = [
    'call_source' => '0912***6789',
    'call_destination' => '0912***9876',
    'timeout' => 30,
    'limit' => 30,
];

$response = $client->post('https://voipano.com/api/v1/webservice/secure-call', [
    'headers' => $headers,
    'json' => $body,
]);

echo $response->getBody();

کدهای خطا

Status توضیح
401 توکن معتبر نیست یا ارسال نشده است.
402 اعتبار کیف پول کافی نیست.
403 دسترسی وب‌سرویس کاربر غیرفعال است، IP مجاز نیست یا endpoint برای پلن/وب‌سرویس ویژه کاربر فعال نشده است.
422 ورودی نامعتبر یا خطای اعتبارسنجی payload.
500 خطای داخلی در ثبت مالی یا پردازش درخواست.
502 ارتباط با مرکز تماس برقرار نشده یا پاسخ معتبر دریافت نشده است.

نمونه پاسخ Rate Limit (HTTP 429):

{
  "message": "Too Many Attempts.",
  "exception": "Illuminate\\Http\\Exceptions\\ThrottleRequestsException"
}

هدرهای پاسخ دانلود فایل

برای endpointهای دانلود ضبط مکالمه و صندوق صوتی، هدرهای زیر برمی‌گردد.

Header توضیح
Content-Type نوع فایل صوتی (معمولاً `audio/wav`)
Content-Disposition نام فایل دانلودی
X-Request-Id شناسه یکتای درخواست برای رهگیری
X-Billing-Charged میزان کسر هزینه این درخواست
X-Billing-Unit-Price تعرفه endpoint در زمان درخواست
X-Billing-Remaining-Credit اعتبار باقی‌مانده کیف پول بعد از ثبت درخواست

ارسال اطلاعات هر تماس

وقتی کاربر endpoint دریافت CDR تعریف کند، ویپانو اطلاعات پایان تماس را به همان URL ارسال می‌کند.

فعال‌سازی این قابلیت فقط از پنل انجام می‌شود: پنل کاربری > خدمات وب‌سرویس > نمای کلی > ارسال اطلاعات هر تماس

فراخوانی‌ها و نتیجه ارسال (request/response) در تب رخدادها ثبت می‌شود.

هدرهای ارسال‌شده از ویپانو به endpoint کاربر:

X-Voipano-Delivery-Id: <uuid>
X-Voipano-Event: <event_key>

payload شامل فیلدهای `delivery_id`, `event` (معمولا `call_ended` در CDR), `call_details_record_id`, `endpoint_number`, `call_type`, `call_source`, `call_destination`, `caller_name`, `callee_name`, `timestamp` است.

ارتباط در واتس‌اپ