1. Authentication
Every Telegent API call needs a Bearer token. You get one by posting yourAccountKey and AccountSecret to the OAuth2 token endpoint. Tokens are short-lived and scoped to a specific ApiEndpoint URL, so generate a fresh one for each endpoint you call (or refresh on expiry).
Endpoint: POST /v1.0/oauth2/tokens
2. Account
Where an Account sits in the hierarchy
Telegent’s org chart has four tiers. At the top is the Aggregator — the platform owner. Beneath it sit one or more Distributors (carriers, MVNEs, resellers). Each Distributor owns one or more Accounts, and each Account is the unit you’ll actually work with day to day.What an Account is
Think of an Account as a family or a business. It holds one Manager — the steward who can administer the Account — and any number of Subscribers, who are the people actually using the service. A Subscriber, in turn, can hold one or many phone Numbers. Every Number that goes live on the platform is bound to exactly one Account and exactly one Subscriber. There is no orphan number on Telegent. Endpoint:POST /v1.0/account/create
Parameters worth knowing
The one rule to remember: Every Number must have both an Account (AID) and a Subscriber (TSUID) assigned to it. Never provision or port a number without deciding who it belongs to first.
3. Subscribers and Roles
A Subscriber is a real person (or service identity) that lives under an Account. A Subscriber can hold one phone Number or many — a parent on a family plan might have a single line; a business operations lead might own a dozen IoT lines. Either way, every Number a Subscriber owns is bound to the same Account.The three roles
Each Subscriber record carries a Role. The Role determines what that person can do inside the Account.Manager = One per Account. Telegent’s product convention is one Manager per Account — the head of the family or the operations lead at the business. You can technically create multiple Subscribers with the Manager role, but the cleanest model (and the one MVNO billing assumes) is a single Manager who owns the Account-level decisions.
POST /v1.0/subscribers/create
Parameters worth knowing
4. Routes — Message and Voice
Routes tell Telegent where to send inbound traffic and where to receive your callbacks. A Message Route is required before you can provision any number. A Voice Route is required only if the number will handle calls.4.1 Message Route (MRID)
Endpoint:POST /v1.0/message/routes
Save the
MessageRouteId (MRID) — you will need it on every number provision call.4.2 Voice Route (CRID)
Endpoint:POST /v1.0/voice/routes
Voice Routes support three RouteType values: "Trunk" (SIP trunk to your softswitch / PBX), "URL" (webhook for VoIP-style apps), or "Forward" (PSTN forward). Most MVNO setups use Trunk.
Save the
CallRouteId (CRID) for voice-enabled provisioning.Parameters worth knowing
Authentication on your webhook. Telegent supports Basic and Bearer on both the inbound URL and the callback URL. Use HTTPS endpoints. If you are running behind a CDN or load balancer, whitelist Telegent IPs separately —
IpWhitelist on the Voice Route only applies to trunk traffic.4.3 Receiving Events — Webhook Payloads
Once you register a webhook viaPOST /v1.0/webhook/create, Telegent POSTs a JSON body to your Url each time a subscribed event fires. The body shape depends on which event you subscribed to (Order_Update, New_Sms, Call_Completed, and so on). For an Order_Update, the payload looks like:
Authentication on your endpoint. The same auth options as Routes apply — Telegent supports Basic and Bearer on the webhook
Url, set via the auth fields on POST /v1.0/webhook/create. Use HTTPS, and acknowledge with a 2xx quickly so the delivery is not retried.5. ICCID — When to Use It
ICCID is the unique serial of a SIM card or eSIM profile. Telegent treats ICCID as optional on both provision and port-in calls. Whether you should send one depends on the lifecycle moment.Two places ICCID shows up: ICCID is accepted on both
/numbers/provision (when you want to pair on create) and /numbers/portin (when you are porting a number onto an existing SIM). On a Subscription, ICCID also identifies the SIM tied to that billing relationship.Use ICCID when…
- Activating a physical SIM that the subscriber already has in hand — pair the ICCID at provision so the line is live the moment you respond to the API
- Issuing an eSIM and have the profile ICCID generated — pair it at provision so the QR / activation code maps to a real number on first scan
- Migrating a subscriber from another platform and need to preserve their SIM
Skip ICCID when…
- Reserving numbers in bulk before SIMs are mailed — provision without ICCID, then bind ICCID later via Numbers Update
- Provisioning data-only numbers that will be assigned by ProductType (no SIM in the loop)
- Running test / sandbox flows
6. Products and Packages
Products are the smallest billable unit in Telegent (an eSIM, a GB of data, an SMS bucket, a feature add-on). Packages bundle Products into something you actually sell to a subscriber. Then a Subscription ties one Package to one Subscriber.6.1 Products
Endpoint:POST /v1.0/products
6.2 Packages
Endpoint:POST /v1.0/packages
A Package has a name, a price the subscriber pays, and one or more Package Items — each Item references a ProductId.
Adding items after the fact
If you need to add an item to an existing Package without rebuilding it: Endpoint:POST /v1.0/packages/items/add
7. Subscriptions
A Subscription is the billing relationship: one Subscriber, one Package, one number (TN), and — optionally — one ICCID. This is what kicks off recurring charges. Endpoint:POST /v1.0/subscriptions
Parameters worth knowing
One Subscription per number, not per subscriber. A Subscriber with two lines has two Subscriptions. Keep them separate — it makes cancellation, plan changes, and refunds clean.
8. Provisioning or Porting
8.1 Provision a brand-new number
Step 1 — Check availability: Before committing to a provision, confirm that inventory exists in your target area. Pass the number type and capabilities you need along with anAreaCode or ZipCode. The response returns AvailableNumberAreas — a list of NGP code and AreaCode pairs that have live inventory. Pick the NGP and AreaCode you want and carry them into Step 2. Use PageNumber to paginate if your preferred area code doesn’t appear on the first page.
Endpoint: POST /v1.0/numbers/availability
MessageRouteId (MRID) and VoiceRouteId (CRID) from Section 4 and the AreaCode from Step 1. Set ProductType to match the capabilities you want on the line — sms+data+voice for a full MVNO line, data-only for IoT. The response returns PhoneNumberId (the NID- identifier) and PhoneNumberAssigned (the E.164 number) — save both. NID is what you’ll reference in subscriptions, data usage settings, and route updates.
Endpoint: POST /v1.0/numbers/provision
NumberType rules to remember:
iot numbers are p2p only — never a2p. voip numbers are a2p only. For a2p messaging on a mobile-style line, use NumberType = "mvno".8.2 Port a number in — the full lifecycle
Port-ins are not one-shot. A request can be open for days while the losing carrier responds, and during that window you may need to correct details, push out the activation date, or pull the request entirely. Plan for all five steps below — eligibility, submit, update, cancel, and monitor — as a single workflow. Step 1 — Check eligibility before you collect anything from the subscriber:OrderId (JNUOID-…). Save it — every later call in the lifecycle (update, cancel, status) keys off this OrderId.
Step 3 — Update an open port-in if details change:
If the losing carrier rejects the request because of a name mismatch, wrong account number, or a missing port-in date, fix the record without cancelling and resubmitting. PortInDate is required for wirelines (5–10 business day windows) and conditional otherwise.
OrderId — never by phone number.
Submitted, Pending Carrier Approval, Scheduled, Completed, Rejected, Cancelled).
Response
8.3 Port a number out
When a subscriber leaves your MVNO for another carrier, the gaining carrier initiates the port-out on their side, but they’ll need a PIN from you (and the subscriber will need to authorize the release). Issue the PIN through:Port-out is a courtesy, not an obstacle. FCC rules require carriers to release numbers on subscriber request. Issue the PIN promptly. Don’t suspend service before the port-out completes — that breaks the gaining carrier’s validation and creates a support escalation.
9. Data Usage Limits and Thresholds
Telegent gives you three knobs per number: a Notify threshold (lets the subscriber know they’re getting close), a Throttle threshold (slows them down past a point), and a Limit (hard cap). Set all three in one call. Endpoint:POST /v1.0/numbers/data-usage
Parameters worth knowing
Use
POST /v1.0/numbers/data-usage/settings to read the configured thresholds for a number, and POST /v1.0/numbers/data-usage/info to read the current usage against those thresholds.Tether/hotspot throttling is not configurable. The
Throttle threshold above applies to overall data usage on the number — there is no separate knob to throttle or cap tethering/hotspot traffic independently.10. AI Guardian — Allow / Block + Filter Levels
AI Guardian is per-subscriber. Two surfaces: voice (Call Filter) and SMS (Message Filter). For both, MVNOs should ship the allow-list and block-list controls. SMS additionally supports age-based Filter Levels (CHILD, ADOLESCENT, TEENAGER). Voice Filter Levels are a future release for SIP.
10.1 Turn the feature on
Endpoint:POST /v1.0/subscribers/guardian-features
GET /v1.0/subscribers/guardian-features?SubscriberId=TSUID-… returns the current flags so your UI can render checkbox state.10.2 Voice — Allow / Block only
Endpoint:POST /v1.0/subscribers/call-filter
POST /v1.0/subscribers/call-filter/allowed-numbers/add
POST /v1.0/subscribers/call-filter/blocked-numbers/add
10.3 SMS — Allow / Block + Filter Levels
Endpoint:POST /v1.0/subscribers/message-filter
For SMS, in addition to allow/block, MVNOs can apply a Filter Level: CHILD, ADOLESCENT, or TEENAGER. These set a graded sensitivity baseline that Telegent applies on top of your custom allow/block lists.
POST /v1.0/subscribers/message-filter/allowed-contacts/add
POST /v1.0/subscribers/message-filter/blocked-contacts/add
SMS Filter Levels
11. Error Codes
Every Telegent API response includes an HTTP status code. The table below covers every code the platform returns, what it means, and the most common cause.This document is a living guide. When in doubt, the OpenAPI spec at docs.telegent.com is the source of truth. The Postman collection “Telegent Core APIs.json” is a great companion — every endpoint above is in there.