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

동일한 X-API-Key로 MagnusBilling 계정에서 SMS를 보낼 수 있습니다. 비용은 계정 잔액에서 차감됩니다.

기본 URL https://magnusbilling.net/sms-api/index.php
공개 제공자 cryptosms / CryptoSMS

인증

Client API 또는 Reseller API와 동일한 API 키를 사용하세요.

X-API-Key: YOUR_API_KEY
Sender ID / Caller ID 안내
Sender ID / Caller ID 표시는 보장되지 않습니다. 표시되는 발신자는 제공자, 목적지 국가, 이동통신사 규칙에 따라 달라집니다.
SMS 요금은 전송 시도 기준으로 청구됩니다. 최종 전달은 목적지 이동통신사에 따라 달라집니다.

엔드포인트

  • 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 / 글로벌 데이터 패키지

동일한 X-API-Key로 MagnusBilling.net 계정에서 eSIM 데이터 패키지를 판매할 수 있습니다.

Base URL https://magnusbilling.net/esim-api/index.php

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.
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는 기존 리셀러 소매 요금제를 사용합니다. 기본 가격은 기본 요금 +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"

실제 리셀러 과금 모델

transfer 엔드포인트는 리셀러 자신의 고객에게 소매 크레딧을 충전합니다. 리셀러 잔액은 즉시 차감되지 않습니다.

기본적으로 리셀러 고객 요금은 기본 요금 +20% 마크업으로 생성됩니다. 리셀러는 고객의 마크업과 소매 요금을 변경할 수 있습니다.

고객이 통화하면 고객 잔액은 소매 요금으로, 리셀러 잔액은 도매 요금으로 차감됩니다.

리셀러 도매 잔액이 없거나 최소 과금 블록에 부족하면, 고객에게 소매 크레딧이 남아 있어도 통화할 수 없습니다.

소매 크레딧 충전

POST ?endpoint=transfer

리셀러 자신의 고객에게 소매 크레딧을 충전합니다. 리셀러 잔액은 즉시 차감되지 않으며 고객 통화 시 도매 잔액이 차감됩니다.

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는 각 소매 크레딧 충전마다 고유해야 합니다.

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"

화이트라벨 에이전트 포털 API

에이전트 PHP 포털용 엔드포인트: 고객 로그인, 대시보드, SIP, 통화, 결제, 요금, 마크업, Web Phone 토큰.

리셀러가 자기 도메인에 white-label 포털을 설치할 때 사용합니다. 포털은 reseller X-API-Key만 사용하며 중앙 MagnusBilling DB에 직접 연결하지 않습니다.
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은 기존 소매 요금제를 사용합니다. 이미 같은 마크업이면 요금 행을 다시 쓰지 않습니다.

  • GET ?endpoint=agent-markup — 현재 마크업과 소매 요금제
  • POST ?endpoint=preview-agent-markup — 새 마크업 가격 미리보기
  • POST ?endpoint=set-agent-markup — 새 마크업 적용
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 토큰

포털은 Web Phone 버튼을 표시합니다. _web1 같은 서비스 SIP는 Janus 내부용이며 include_service=1 없이는 일반 SIP 목록에 표시되지 않습니다.

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"}'
화이트라벨 보안 규칙: 최종 고객에게 리셀러 잔액, 도매 원가, 마크업, 내부 신용 의존성, API key, 중앙 DB 정보를 절대 보여주면 안 됩니다.

리셀러 SMS API / CryptoSMS

리셀러는 동일한 Reseller X-API-Key로 자신의 고객에게 SMS를 보낼 수 있습니다. client_login은 필수입니다.

기본 URL https://magnusbilling.net/sms-api/index.php
인증 X-API-Key: YOUR_RESELLER_API_KEY
리셀러 필수 client_login은 본인 고객의 로그인이어야 합니다.
리셀러는 자신의 고객 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 요금은 선택한 고객 잔액에서 차감됩니다.

리셀러 eSIM API

리셀러는 동일한 reseller X-API-Key로 eSIM 데이터 패키지를 판매할 수 있습니다. 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.
  • 리셀러는 자신의 고객에게만 소매 크레딧을 충전할 수 있습니다. 고객 통화에는 리셀러의 사용 가능한 도매 잔액이 필요합니다.
  • 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

화이트라벨 에이전트 포털용 추가 엔드포인트: 비밀번호 재설정, SIP 비밀번호 재설정, 고객 프로필 업데이트.

보안 규칙: 이 메서드는 리셀러가 소유한 고객에게만 작동합니다. 기존 비밀번호는 절대 반환되지 않습니다. 재설정 메서드는 새 임시 비밀번호를 생성하고 신뢰된 서버 측 포털에 한 번만 반환합니다.

엔드포인트

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 비밀번호 재설정에서 제외됩니다.