Dokumentacja API
Dokumentacja API klienta i API resellera
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
Wysyłaj SMS z konta MagnusBilling używając tego samego X-API-Key. Koszt jest pobierany z salda konta.
Autoryzacja
Użyj tego samego klucza API co dla Client API lub Reseller API.
X-API-Key: YOUR_API_KEY
Sender ID / Caller ID nie jest gwarantowany. Wyświetlany nadawca zależy od providera, kraju docelowego i zasad operatora komórkowego.
Opłata za SMS jest pobierana za próbę wysłania. Końcowe doręczenie zależy od operatora komórkowego.
Endpointy
- GET
?endpoint=providers— Lista providerów - GET
?endpoint=rates— Taryfy SMS - GET
?endpoint=quota&provider=cryptosms— Szacowana liczba SMS - POST
?endpoint=send— Wyślij SMS - POST
?endpoint=schedule— Zaplanuj SMS - GET
?endpoint=scheduled&limit=20— Lista zaplanowanych SMS - POST
?endpoint=cancel-scheduled— Anuluj zaplanowany SMS - POST
?endpoint=bulk— Masowa kampania SMS - GET
?endpoint=campaigns&limit=20— Lista kampanii masowych - POST
?endpoint=cancel-campaign— Anuluj kampanię masową - GET
?endpoint=status&id=SMS_ID— Sprawdź status SMS - GET
?endpoint=history&limit=20— Historia SMS
Wyślij 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."
}
}
Zaplanuj 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"
}
Anuluj zaplanowany 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}'
Masowa kampania 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"
}
Lista kampanii masowych
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=campaigns&limit=20"
Anuluj kampanię masową
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}'
Sprawdź status SMS
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=status&id=1"
Historia SMS
curl -k -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/sms-api/index.php?endpoint=history&limit=20"
eSIM API / Globalne pakiety danych
Sprzedawaj pakiety danych eSIM z konta MagnusBilling.net używając tego samego X-API-Key.
Authorization
Use the same API key that is already used for Client API or Reseller API.
Endpoints
- GET
?endpoint=packages&q=Europe&limit=20— List packages and current prices - GET
?endpoint=coverage&package_code=PACKAGE_CODE— Package coverage by country and network - GET
?endpoint=balance— Account balance - POST
?endpoint=buy— Buy eSIM package - GET
?endpoint=orders— Order history, QR/activation data and usage - GET
?endpoint=sync-order&order_id=ORDER_ID— Refresh order, QR and data usage
List packages
curl -sS \
-H "X-API-Key: YOUR_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=packages&q=Europe&limit=5"
Buy 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"}'
Orders and usage
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"
Rzeczywisty model rozliczeń resellera
Endpoint transfer dodaje kredyt retail własnemu klientowi resellera. Nie obciąża resellera natychmiast.
Domyślnie taryfy klientów resellera są tworzone z narzutem +20%. Reseller może zmienić narzut i ceny retail dla swoich klientów.
Gdy klient dzwoni, saldo klienta jest obciążane ceną retail, a saldo resellera ceną wholesale.
Jeśli saldo wholesale resellera jest wyczerpane albo niewystarczające dla minimalnego bloku, klienci nie mogą dzwonić mimo kredytu retail.
Dodaj kredyt retail
Dodaje kredyt retail jednemu z własnych klientów resellera. Nie obciąża resellera natychmiast; saldo wholesale jest obciążane przy połączeniach klienta.
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 panelu agenta
Endpointy dla panelu PHP agenta: logowanie klienta, dashboard, SIP, połączenia, płatności, taryfy, narzut i token Web Phone.
Endpointy panelu klienta
- GET
?endpoint=portal-bootstrap— Sprawdzenie API/instalacji - POST
?endpoint=client-auth— Logowanie klienta w panelu agenta - GET
?endpoint=client-dashboard&login=CLIENT_LOGIN— Dashboard klienta i widoczne saldo - GET
?endpoint=client-sip&login=CLIENT_LOGIN— Konta SIP klienta; konta serwisowe ukryte domyślnie - GET
?endpoint=client-calls&login=CLIENT_LOGIN&limit=50— Udane połączenia - GET
?endpoint=client-failed-calls&login=CLIENT_LOGIN&limit=50— Nieudane połączenia - GET
?endpoint=client-refills&login=CLIENT_LOGIN&limit=50— Historia doładowań klienta - GET
?endpoint=client-callerids&login=CLIENT_LOGIN— Caller ID klienta - GET
?endpoint=client-rates&login=CLIENT_LOGIN&limit=100— Taryfy retail klienta
Płatność/doładowanie
Płatności klienta obsługuje panel przez Plisio, Heleket lub metody custom; po potwierdzeniu wywołuje 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"
}'
Endpointy narzutu taryf
set-agent-markup używa istniejącego planu retail. Jeśli narzut już obowiązuje, stawki nie są przepisywane.
- GET
?endpoint=agent-markup— Aktualny narzut i taryfa retail - POST
?endpoint=preview-agent-markup— Podgląd cen z nowym narzutem - POST
?endpoint=set-agent-markup— Zastosuj nowy narzut do taryfy 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}'
Token Janus Web Phone
Panel pokazuje przycisk Web Phone. Konta serwisowe jak _web1 są używane wewnętrznie przez Janus i nie są na zwykłej liście SIP bez 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"}'
Reseller SMS API / CryptoSMS
Resellerzy mogą wysyłać SMS dla swoich klientów tym samym Reseller X-API-Key. client_login jest wymagany.
Dostępne endpointy
- POST
?endpoint=send— Wyślij jeden SMS - POST
?endpoint=schedule— Zaplanuj SMS - GET
?endpoint=scheduled&client_login=CLIENT_LOGIN&limit=20— Zaplanowane SMS - POST
?endpoint=cancel-scheduled— Anuluj zaplanowany SMS - POST
?endpoint=bulk— Utwórz kampanię SMS - GET
?endpoint=campaigns&client_login=CLIENT_LOGIN&limit=20— Lista kampanii - POST
?endpoint=cancel-campaign— Anuluj kampanię - GET
?endpoint=quota&provider=cryptosms&client_login=CLIENT_LOGIN— Szacowanie SMS klienta - GET
?endpoint=history&client_login=CLIENT_LOGIN&limit=20— Historia SMS klienta - GET
?endpoint=status&id=SMS_ID&client_login=CLIENT_LOGIN— Status SMS klienta
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
Resellerzy mogą sprzedawać pakiety danych eSIM używając tego samego klucza X-API-Key. Zakupy eSIM są pobierane z salda resellera.
Dostępne endpointy
- GET
?endpoint=packages&q=Europe&limit=20— Lista pakietów eSIM i aktualnych cen resellera - GET
?endpoint=coverage&package_code=PACKAGE_CODE— Kraje i sieci w pakiecie - GET
?endpoint=balance— Sprawdzenie salda resellera - POST
?endpoint=buy— Zakup pakietu eSIM - GET
?endpoint=orders— Zamówienia eSIM resellera, dane aktywacji i użycie - GET
?endpoint=sync-order&order_id=ORDER_ID— Odświeżenie danych aktywacji i pozostałego internetu
Lista pakietów eSIM
curl -sS \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=packages&q=Europe&limit=5"
Zakup pakietu 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"}'
Zamówienia eSIM resellera i użycie
curl -sS \
-H "X-API-Key: YOUR_RESELLER_API_KEY" \
"https://magnusbilling.net/esim-api/index.php?endpoint=orders"
Odpowiedź zamówienia zawiera nazwę pakietu, cenę, status, ICCID, dane aktywacji, całkowity, zużyty i pozostały transfer oraz termin ważności, gdy dane są dostępne. Zużycie może aktualizować się z krótkim opóźnieniem sieci.
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.
- Reseller może dodawać kredyt retail tylko swoim klientom. Połączenia nadal wymagają dostępnego salda wholesale resellera.
- 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 zarządzania kontem dla panelu agenta
Dodatkowe endpointy dla paneli white-label agenta: reset hasła, reset hasła SIP i aktualizacja profilu klienta.
Endpointy
- GET/POST
?endpoint=check-client-login- Sprawdź, czy login istnieje lub jest dostępny - POST
?endpoint=reset-client-password- Wygeneruj nowe tymczasowe hasło klienta - POST
?endpoint=set-client-password- Ustaw hasło klienta wybrane przez portal lub administratora - POST
?endpoint=client-change-password- Zmień hasło klienta po weryfikacji aktualnego hasła - POST
?endpoint=reset-client-sip-password- Wygeneruj nowe tymczasowe hasło SIP dla normalnego konta SIP - POST
?endpoint=client-profile-update- Aktualizuj profil klienta: imię, email, telefon i język
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"}'
Konta serwisowe takie jak _webN i _ipaN są wyłączone z resetu hasła SIP.