MagnusBilling.net · API

Документация API

Документация клиентского API и реселлерского API

MagnusBilling.net · Client 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.

Base URL https://magnusbilling.net/client-api/index.php
Authorization X-API-Key header
Response format JSON

Authorization

Every request must include your API key in the HTTP header.

X-API-Key: YOUR_API_KEY
Do not send the API key in the URL. Keep it private.

Account status

GET ?endpoint=me
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

GET ?endpoint=balance
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/client-api/index.php?endpoint=balance"

Available plans

GET ?endpoint=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"
You can choose only from the plans returned by this endpoint.

Change plan

POST ?endpoint=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"
You cannot create, edit or delete tariff plans through this API.

SIP accounts

GET ?endpoint=sip

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

POST ?endpoint=create-sip

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"
}
Limit: maximum 100 SIP accounts per client.

Change SIP password

POST ?endpoint=update-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"
You can change only your own SIP accounts.

Delete SIP account

POST ?endpoint=delete-sip
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"
The main SIP account cannot be deleted. Only additional SIP accounts can be deleted.

IP Authentication

Manage IP-based SIP authentication for your own SIP accounts. Your regular SIP login/password continues working.

List IP authorizations

GET ?endpoint=ip-auth-list

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

POST ?endpoint=ip-auth-create

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

POST ?endpoint=ip-auth-disable

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

POST ?endpoint=ip-auth-enable

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

POST ?endpoint=ip-auth-delete

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"
IP authentication works only with a public static IPv4 address. Private or local IP addresses are rejected.
The same public IP cannot be active on two different client accounts at the same time.

Caller ID

GET ?endpoint=callerids
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/client-api/index.php?endpoint=callerids"

Add Caller ID

POST ?endpoint=add-callerid
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

POST ?endpoint=set-callerid
{
  "cid": "+1234567890"
}

Delete Caller ID

POST ?endpoint=delete-callerid
{
  "id": 80
}

Clear active SIP Caller ID

POST ?endpoint=clear-callerid
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

GET ?endpoint=calls&limit=50&offset=0
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/client-api/index.php?endpoint=calls&limit=50&offset=0"
Maximum limit per request: 200.

Refill history

GET ?endpoint=refills&limit=50&offset=0
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

POST ?endpoint=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"
This API does not create vouchers. It only redeems vouchers that already exist.

Change account password

POST ?endpoint=change-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"
The old account password is never returned by the API. It can only be changed.

SMS API / CryptoSMS

Отправляйте SMS с аккаунта MagnusBilling через тот же X-API-Key. Стоимость SMS списывается с баланса аккаунта.

Базовый URL https://magnusbilling.net/sms-api/index.php
Публичный провайдер cryptosms / CryptoSMS

Авторизация

Используйте тот же API-ключ, который уже используется для Client API или Reseller API.

X-API-Key: YOUR_API_KEY
Предупреждение по Sender ID / Caller ID
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

POST ?endpoint=send
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

POST ?endpoint=schedule
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

POST ?endpoint=cancel-scheduled
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-рассылка

POST ?endpoint=bulk
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"
}

Список массовых рассылок

GET ?endpoint=campaigns&limit=20
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/sms-api/index.php?endpoint=campaigns&limit=20"

Отмена массовой рассылки

POST ?endpoint=cancel-campaign
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

GET ?endpoint=status&id=SMS_ID
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/sms-api/index.php?endpoint=status&id=1"

История SMS

GET ?endpoint=history&limit=20
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. Стоимость списывается с баланса аккаунта.

Базовый URL https://magnusbilling.net/esim-api/index.php

Авторизация

Используйте тот же 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.
MagnusBilling.net · Reseller API

Reseller API Documentation

Create SIP clients, manage balances, view reseller plans, check client status, and control customers through a clean JSON API.

Base URL https://magnusbilling.net/reseller-api/index.php
Authorization X-API-Key header
Response format JSON

Authorization

Every request must include your API key in the HTTP header.

X-API-Key: YOUR_API_KEY
Do not send the API key in the URL. Keep it private.

Account status

GET ?endpoint=me
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

GET ?endpoint=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

POST ?endpoint=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
}
SIP password is returned only once during client creation.
Если plan_id не передан, API использует существующий клиентский retail-тариф реселлера. Новые/стандартные retail-цены строятся от базового тарифа реселлера с наценкой 20%.

Get client

GET ?endpoint=client&login=LOGIN
curl -k -sS \
  -H "X-API-Key: YOUR_API_KEY" \
  "https://magnusbilling.net/reseller-api/index.php?endpoint=client&login=1234567892"

Client list

GET ?endpoint=clients&limit=10&offset=0
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-кредит

POST ?endpoint=transfer

Начислить 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"
external_id должен быть уникальным для каждого начисления retail-кредита.

Transactions

GET ?endpoint=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

POST ?endpoint=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

POST ?endpoint=change-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.

Используйте эти методы, когда реселлер устанавливает white-label панель на свой домен. Панель должна работать только через reseller X-API-Key и не должна подключаться напрямую к центральной базе MagnusBilling.
Base URL https://magnusbilling.net/reseller-api/index.php
Authorization X-API-Key: YOUR_RESELLER_API_KEY

Методы клиентской панели

  • 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"}'
Правила безопасности white-label: Клиенты не должны видеть баланс реселлера, закупочную цену, процент наценки, внутреннюю зависимость от кредита агента, API key или детали центральной базы.

Реселлерский SMS API / CryptoSMS

Реселлеры могут отправлять SMS для своих клиентов через тот же Reseller X-API-Key. Для реселлерского API-ключа параметр client_login обязателен.

Базовый URL https://magnusbilling.net/sms-api/index.php
Авторизация X-API-Key: YOUR_RESELLER_API_KEY
Обязательно для реселлеров client_login должен быть логином вашего клиента.
Реселлер может отправлять, планировать, делать массовые SMS, смотреть историю/статус и отменять SMS только для своих клиентов.

Доступные методы

  • 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"
  }'
Sender ID / Caller ID не гарантируется и зависит от провайдера, страны назначения и правил мобильного оператора. Стоимость SMS списывается с баланса выбранного клиента за каждую попытку отправки.

Reseller eSIM API

Реселлеры могут продавать eSIM интернет-пакеты через тот же reseller X-API-Key. Покупки eSIM списываются с баланса реселлера.

Базовый URL https://magnusbilling.net/esim-api/index.php
Авторизация X-API-Key: YOUR_RESELLER_API_KEY

Доступные методы

  • 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-пароля и обновление профиля клиента.

Правила безопасности: Методы работают только для собственных клиентов реселлера. Старые пароли никогда не возвращаются. Reset-методы генерируют новый временный пароль и возвращают его один раз только доверенной server-side панели.

Методы API

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-пароля.