Документация API
Документация клиентского API и реселлерского API
Client API Documentation
Manage your own SIP accounts, balance, vouchers, tariff plan, Caller ID, call history, refill history and account password through a clean JSON API.
Authorization
Every request must include your API key in the HTTP header.
X-API-Key: YOUR_API_KEY
Account status
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=me"
{
"success": true,
"data": {
"id": 1001,
"username": "1234567801",
"balance": "1.0000",
"active": 1,
"id_plan": 101,
"plan_name": "STANDARD-PLAN"
}
}
Balance
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=balance"
Available plans
Returns only tariff plans available to your account.
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=plans"
Change plan
Change your tariff plan to one of the available plans.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id_plan":8}' \
"https://magnusbilling.net/client-api/index.php?endpoint=change-plan"
SIP accounts
List your SIP accounts, including SIP login and SIP password.
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=sip"
Create additional SIP account
Create an additional SIP account under your own account.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://magnusbilling.net/client-api/index.php?endpoint=create-sip"
You can also provide your own SIP password:
{
"password": "StrongSipPass123"
}
Change SIP password
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"1234567802","password":"NewSipPass456"}' \
"https://magnusbilling.net/client-api/index.php?endpoint=update-sip-password"
Delete SIP account
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"1234567802"}' \
"https://magnusbilling.net/client-api/index.php?endpoint=delete-sip"
IP Authentication
Manage IP-based SIP authentication for your own SIP accounts. Your regular SIP login/password continues working.
List IP authorizations
List your SIP accounts and active/inactive IP-auth records.
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=ip-auth-list"
Create IP authorization
Add a public static PBX IP address to one of your SIP accounts.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sip_login":"1234567801","ip":"203.0.113.10"}' \
"https://magnusbilling.net/client-api/index.php?endpoint=ip-auth-create"
{
"success": true,
"message": "IP authentication created",
"data": {
"id": 6,
"sip_login": "1234567801",
"peer_name": "1234567801_ipa1",
"ip": "203.0.113.10",
"port": 5060,
"status": 1
}
}
Disable IP authorization
The IP-auth record stays in your account but becomes inactive. The SIP peer is removed from Asterisk.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id":6}' \
"https://magnusbilling.net/client-api/index.php?endpoint=ip-auth-disable"
Enable IP authorization
Re-enable a previously disabled IP-auth record.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id":6}' \
"https://magnusbilling.net/client-api/index.php?endpoint=ip-auth-enable"
Delete IP authorization
Delete the IP-auth record permanently.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id":6}' \
"https://magnusbilling.net/client-api/index.php?endpoint=ip-auth-delete"
Caller ID
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=callerids"
Add Caller ID
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cid":"+1234567890","name":"Main Caller ID","set_active":true}' \
"https://magnusbilling.net/client-api/index.php?endpoint=add-callerid"
Set existing Caller ID as active
{
"cid": "+1234567890"
}
Delete Caller ID
{
"id": 80
}
Clear active SIP Caller ID
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' \
"https://magnusbilling.net/client-api/index.php?endpoint=clear-callerid"
Call history
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=calls&limit=50&offset=0"
Refill history
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/client-api/index.php?endpoint=refills&limit=50&offset=0"
Redeem voucher
Redeem an existing voucher code and add its value to your balance.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"voucher":"123456"}' \
"https://magnusbilling.net/client-api/index.php?endpoint=redeem-voucher"
Change account password
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"current_password":"OldPassword","new_password":"NewPassword987"}' \
"https://magnusbilling.net/client-api/index.php?endpoint=change-password"
SMS API / CryptoSMS
Отправляйте SMS с аккаунта MagnusBilling через тот же X-API-Key. Стоимость SMS списывается с баланса аккаунта.
Авторизация
Используйте тот же API-ключ, который уже используется для Client API или Reseller API.
X-API-Key: YOUR_API_KEY
Sender ID / Caller ID не гарантируется. Отображаемый отправитель зависит от выбранного провайдера, страны назначения и правил мобильного оператора.
Стоимость SMS списывается за попытку отправки. Финальная доставка зависит от мобильного оператора получателя.
Методы API
- GET
?endpoint=providers— Список провайдеров - GET
?endpoint=rates— Тарифы SMS - GET
?endpoint=quota&provider=cryptosms— Расчёт доступных SMS - POST
?endpoint=send— Отправка SMS - POST
?endpoint=schedule— Отложенная SMS - GET
?endpoint=scheduled&limit=20— Список отложенных SMS - POST
?endpoint=cancel-scheduled— Отмена отложенной SMS - POST
?endpoint=bulk— Массовая SMS-рассылка - GET
?endpoint=campaigns&limit=20— Список массовых рассылок - POST
?endpoint=cancel-campaign— Отмена массовой рассылки - GET
?endpoint=status&id=SMS_ID— Проверка статуса SMS - GET
?endpoint=history&limit=20— История SMS
Отправка SMS
curl -k -sS \
-X POST "https://magnusbilling.net/sms-api/index.php?endpoint=send" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+447575396991",
"provider": "cryptosms",
"sender_id": "MyBrand",
"message": "MyBrand: Your code is 123456"
}'
{
"success": true,
"sms_id": 1,
"provider": "cryptosms",
"provider_name": "CryptoSMS",
"status": "SENT_TO_PROVIDER",
"balance_after": "49.6500",
"sender_id": {
"requested": "MyBrand",
"guaranteed": false,
"warning": "Sender ID / Caller ID is not guaranteed."
}
}
Отложенная SMS
curl -k -sS \
-X POST "https://magnusbilling.net/sms-api/index.php?endpoint=schedule" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone": "+1234567890",
"provider": "cryptosms",
"sender_id": "MyBrand",
"message": "API scheduled test",
"scheduled_at": "2026-05-09 23:00:00"
}'
{
"success": true,
"scheduled_sms_id": 10,
"provider": "cryptosms",
"status": "SCHEDULED",
"server_utc_offset": "+03:00"
}
Отмена отложенной SMS
curl -k -sS \
-X POST "https://magnusbilling.net/sms-api/index.php?endpoint=cancel-scheduled" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"scheduled_sms_id":10}'
Массовая SMS-рассылка
curl -k -sS \
-X POST "https://magnusbilling.net/sms-api/index.php?endpoint=bulk" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "cryptosms",
"sender_id": "MyBrand",
"message": "API bulk test",
"scheduled_at": "2026-05-09 23:00:00",
"phones": ["+1234567890", "+1234567891"]
}'
{
"success": true,
"campaign_id": 20,
"recipients_queued": 2,
"status": "QUEUED"
}
Список массовых рассылок
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=campaigns&limit=20"
Отмена массовой рассылки
curl -k -sS \
-X POST "https://magnusbilling.net/sms-api/index.php?endpoint=cancel-campaign" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"campaign_id":20}'
Проверка статуса SMS
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=status&id=1"
История SMS
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=history&limit=20"
eSIM API / глобальные интернет-пакеты
Продавайте eSIM интернет-пакеты с аккаунта MagnusBilling.net через тот же X-API-Key. Стоимость списывается с баланса аккаунта.
Авторизация
Используйте тот же API-ключ, который уже используется для Client API или Reseller API.
Методы API
- GET
?endpoint=packages&q=Europe&limit=20— Список пакетов и актуальных цен - GET
?endpoint=coverage&package_code=PACKAGE_CODE— Покрытие пакета по странам и сетям - GET
?endpoint=balance— Баланс аккаунта - POST
?endpoint=buy— Покупка eSIM-пакета - GET
?endpoint=orders— История заказов, QR/activation данные и расход - GET
?endpoint=sync-order&order_id=ORDER_ID— Обновить заказ, QR и расход интернета
Список пакетов
curl -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=packages&q=Europe&limit=5"
Покупка eSIM
curl -sS -X POST "https://magnusbilling.net/esim-api/index.php?endpoint=buy" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"package_code":"P2CYMUS93"}'
Заказы и расход
curl -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=orders"
Security rules
- The client can access only their own account.
- The client can access only their own SIP accounts.
- The client can manage IP authentication only for their own SIP accounts.
- The client can add, change and delete only their own Caller IDs.
- The client can choose tariff plan only from the available plan list.
- The client cannot create, edit or delete tariff plans.
- The client can redeem only existing voucher codes.
- The client cannot delete the main SIP account.
- The client cannot manage other clients, resellers or admin data.
Reseller API Documentation
Create SIP clients, manage balances, view reseller plans, check client status, and control customers through a clean JSON API.
Authorization
Every request must include your API key in the HTTP header.
X-API-Key: YOUR_API_KEY
Account status
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/reseller-api/index.php?endpoint=me"
{
"ok": true,
"reseller": {
"id": 1001,
"username": "1234567890",
"group": "Agent",
"balance": 1,
"active": true
}
}
Plans
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/reseller-api/index.php?endpoint=plans"
{
"ok": true,
"plans": [
{
"id": 33,
"name": "TEST-RESELLER-PLAN",
"signup": true,
"initial_credit": 0,
"tariff_limit": 3,
"agent_rates": 66875
}
]
}
Create client
Create a new SIP client under your reseller account.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"plan_id":101}' \
"https://magnusbilling.net/reseller-api/index.php?endpoint=create-client"
You can also provide your own login and password:
{
"login": "1234567891",
"password": "StrongPass123",
"plan_id": 101
}
Get client
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/reseller-api/index.php?endpoint=client&login=1234567892"
Client list
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/reseller-api/index.php?endpoint=clients&limit=10&offset=0"
Настоящая reseller-модель биллинга
Метод transfer начисляет retail-кредит собственному клиенту реселлера. Баланс реселлера сразу не списывается.
По умолчанию тарифы клиентов реселлера создаются с наценкой +20%. Реселлер может изменить наценку и розничные цены для своих клиентов.
Когда клиент совершает звонки, баланс клиента списывается по розничному тарифу реселлера/клиента, а баланс реселлера списывается по закупочной цене.
Если закупочный баланс реселлера закончился или его недостаточно для минимального блока тарификации, клиенты реселлера не смогут звонить, даже если у них ещё есть retail-кредит.
Начислить retail-кредит
Начислить retail-кредит одному из собственных клиентов реселлера. Баланс реселлера сразу не списывается; закупочный баланс реселлера расходуется только когда клиент совершает звонки.
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login":"1234567892","amount":1,"external_id":"ORDER-DEMO-10001"}' \
"https://magnusbilling.net/reseller-api/index.php?endpoint=transfer"
Transactions
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/reseller-api/index.php?endpoint=transactions&limit=10&offset=0"
Filter only successful transactions:
https://magnusbilling.net/reseller-api/index.php?endpoint=transactions&status=success&limit=10&offset=0
Set client status
Deactivate client:
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login":"1234567892","active":false}' \
"https://magnusbilling.net/reseller-api/index.php?endpoint=set-client-status"
Activate client:
{
"login": "1234567892",
"active": true
}
Change client plan
curl -k -sS \
-X POST \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login":"1234567892","plan_id":101}' \
"https://magnusbilling.net/reseller-api/index.php?endpoint=change-plan"
White-label API панели агента
Методы для PHP-панели агента на его домене: вход клиента, кабинет, SIP, звонки, платежи, тарифы, управление наценкой и токен Web Phone.
Методы клиентской панели
- GET
?endpoint=portal-bootstrap— Проверка API при установке - POST
?endpoint=client-auth— Вход клиента в панель агента - GET
?endpoint=client-dashboard&login=CLIENT_LOGIN— Кабинет клиента и видимый баланс - GET
?endpoint=client-sip&login=CLIENT_LOGIN— SIP-аккаунты клиента; сервисные аккаунты скрыты по умолчанию - GET
?endpoint=client-calls&login=CLIENT_LOGIN&limit=50— Успешные звонки - GET
?endpoint=client-failed-calls&login=CLIENT_LOGIN&limit=50— Неуспешные звонки - GET
?endpoint=client-refills&login=CLIENT_LOGIN&limit=50— История пополнений клиента - GET
?endpoint=client-callerids&login=CLIENT_LOGIN— Caller ID клиента - GET
?endpoint=client-rates&login=CLIENT_LOGIN&limit=100— Розничные тарифы клиента
Платёж/пополнение
Платежи клиента принимает панель агента через Plisio, Heleket или custom-методы. После подтверждения панель вызывает register-agent-payment. Это пополняет клиента и не списывает баланс реселлера сразу; баланс реселлера расходуется позже при звонках.
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=register-agent-payment" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"login": "CLIENT_LOGIN",
"amount": "20.00",
"currency": "EUR",
"provider": "plisio",
"external_id": "plisio_order_123",
"provider_txid": "tx_or_invoice_id",
"status": "paid"
}'
Методы тарифной наценки
set-agent-markup использует существующий retail-план реселлера, если он уже есть. Если запрошенная наценка уже применена, строки тарифов не пересоздаются.
- GET
?endpoint=agent-markup— Текущая наценка агента и retail-тариф - POST
?endpoint=preview-agent-markup— Предпросмотр цен с новой наценкой - POST
?endpoint=set-agent-markup— Применить новую наценку к retail-тарифу агента
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=set-agent-markup" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"markup_percent":50}'
Janus Web Phone token
В панели должна быть кнопка Web Phone. Сервисные SIP-аккаунты вроде _web1 используются Janus внутри системы и не показываются в обычном списке SIP, если не передан include_service=1.
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=client-softphone-token" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"login":"CLIENT_LOGIN"}'
Реселлерский SMS API / CryptoSMS
Реселлеры могут отправлять SMS для своих клиентов через тот же Reseller X-API-Key. Для реселлерского API-ключа параметр client_login обязателен.
Доступные методы
- POST
?endpoint=send— Отправить одну SMS - POST
?endpoint=schedule— Запланировать одну SMS - GET
?endpoint=scheduled&client_login=CLIENT_LOGIN&limit=20— Список запланированных SMS - POST
?endpoint=cancel-scheduled— Отменить запланированную SMS - POST
?endpoint=bulk— Создать массовую SMS-кампанию - GET
?endpoint=campaigns&client_login=CLIENT_LOGIN&limit=20— Список массовых кампаний - POST
?endpoint=cancel-campaign— Отменить массовую кампанию - GET
?endpoint=quota&provider=cryptosms&client_login=CLIENT_LOGIN— Расчёт доступных SMS по балансу клиента - GET
?endpoint=history&client_login=CLIENT_LOGIN&limit=20— История SMS клиента - GET
?endpoint=status&id=SMS_ID&client_login=CLIENT_LOGIN— Проверить статус SMS клиента
Example: send SMS for your client
curl -sS -X POST "https://magnusbilling.net/sms-api/index.php?endpoint=send" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_login": "CLIENT_LOGIN",
"phone": "+1234567890",
"message": "Your SMS text",
"provider": "cryptosms",
"sender_id": "MyBrand"
}'
Example: bulk SMS campaign
curl -sS -X POST "https://magnusbilling.net/sms-api/index.php?endpoint=bulk" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_login": "CLIENT_LOGIN",
"phones": ["+1234567890", "+1234567891"],
"message": "Bulk SMS text",
"provider": "cryptosms",
"sender_id": "MyBrand",
"scheduled_at": "2026-05-10 16:30:00"
}'
Reseller eSIM API
Реселлеры могут продавать eSIM интернет-пакеты через тот же reseller X-API-Key. Покупки eSIM списываются с баланса реселлера.
Доступные методы
- GET
?endpoint=packages&q=Europe&limit=20— Список eSIM-пакетов и актуальных цен реселлера - GET
?endpoint=coverage&package_code=PACKAGE_CODE— Страны и сети, включённые в пакет - GET
?endpoint=balance— Проверка баланса реселлера - POST
?endpoint=buy— Покупка eSIM-пакета - GET
?endpoint=orders— Заказы eSIM реселлера, данные активации и расход интернета - GET
?endpoint=sync-order&order_id=ORDER_ID— Обновление данных активации и остатка интернета
Список eSIM-пакетов
curl -sS \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=packages&q=Europe&limit=5"
Покупка eSIM-пакета
curl -sS -X POST "https://magnusbilling.net/esim-api/index.php?endpoint=buy" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-d '{"package_code":"P2CYMUS93"}'
Заказы eSIM реселлера и расход интернета
curl -sS \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=orders"
Ответ по заказу содержит название пакета, цену, статус, ICCID, данные активации, общий объём интернета, использованный объём, остаток и срок действия, когда эти данные доступны. Расход интернета может обновляться с небольшой задержкой мобильной сети.
Security rules
- The reseller can access only clients created under their Agent account.
- The reseller can use only their own plans.
- The reseller cannot access admin clients or other resellers' clients.
- Реселлер может начислять retail-кредит только своим клиентам. Для звонков клиентов всё равно нужен доступный закупочный баланс реселлера.
- SIP passwords are returned only once during client creation.
- Existing SIP passwords and secrets are not returned by client endpoints.
- White-label portal clients must never see reseller balance, wholesale rates, markup percentage or internal reseller credit logic.
- Service SIP accounts such as _webN and _ipaN are hidden from normal client SIP lists; Web Phone must use client-softphone-token.
API управления аккаунтом для панели агента
Дополнительные методы для white-label панели агента: сброс пароля, сброс SIP-пароля и обновление профиля клиента.
Методы API
- GET/POST
?endpoint=check-client-login- Проверить, существует ли логин или свободен ли он - POST
?endpoint=reset-client-password- Сгенерировать новый временный пароль входа клиента - POST
?endpoint=set-client-password- Установить пароль входа клиента, выбранный панелью или админом - POST
?endpoint=client-change-password- Сменить пароль клиента после проверки текущего пароля - POST
?endpoint=reset-client-sip-password- Сгенерировать новый временный SIP-пароль для обычного SIP-аккаунта - POST
?endpoint=client-profile-update- Обновить профиль клиента: имя, email, телефон и язык
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=reset-client-password" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
--data '{"login":"6307210"}'
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=reset-client-sip-password" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
--data '{"login":"6307210"}'
curl -sS -X POST "https://magnusbilling.net/reseller-api/index.php?endpoint=client-profile-update" \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
-H "Content-Type: application/json" \
--data '{"login":"6307210","email":"client@example.com","phone":"+123456789","language":"en"}'
Сервисные аккаунты _webN и _ipaN исключены из сброса SIP-пароля.