Skip to main content
Each section follows the same shape: what the resource is, why it exists, the happy-path call, the parameters that matter, and the gotchas to plan around. For full schemas and additional optional fields, check docs.telegent.com.

1. Authentication

Every Telegent API call needs a Bearer token. You get one by posting your AccountKey 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
Once you have a token, add this header to every subsequent request:
Cache the token in memory for the life of its expiry. Don’t request a new token for every call — that’s wasteful. Do regenerate when ApiEndpoint changes, since scope is per-URL.

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

Save the AccountId (AID). Every Subscriber you create and every Number you provision needs an AID. For Distributors managing more than one Account, AID becomes required on most downstream calls. Persist it the moment you create the Account.
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.
Endpoint: POST /v1.0/subscribers/create

Parameters worth knowing

Save the SubscriberId (TSUID). TSUID is the join key for everything subscriber-specific: number assignment, subscriptions, AI Guardian filters, data usage settings. Without it, you can’t tie a phone number to a person.

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 via POST /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
Telegent can pre-load common Products. If you don’t want to define eSIM, base SMS, and data-tier Products from scratch, ask your Telegent rep to pre-load the standard catalog onto your Account. You can then bundle them into Packages without ever calling /products yourself.

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
Start with a small starter set. Build three Packages: an entry tier, a mid tier, and a premium. Build them once, then create variants by cloning. Avoid creating a unique Package per subscriber — Subscriptions are how you customize per-subscriber pricing.

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

Every number must have an Account and a Subscriber. Before you call /numbers/provision or /numbers/portin, decide which Account (AccountId) and which Subscriber (AssignedSubscriberId) the new Number will belong to. The API will let you provision without a Subscriber, but you’ll have to bind one later via Numbers Update — and you’ll have an orphan in your inventory in the meantime.

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 an AreaCode 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
Step 2 — Provision: Once you have an available area, purchase and activate the number. Supply the 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:
If eligibility comes back positive, get the subscriber’s signed LOA and current carrier account details, then submit. If it’s negative, stop here — you can’t port that number into your classification. Step 2 — Submit the port-in:
The response includes an 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.
Step 4 — Cancel a port-in that should not proceed: Subscriber changed their mind. The losing carrier disputed past the resolution window. The eligibility was right but the LOA never came back signed. Whatever the reason, you cancel by OrderId — never by phone number.
Cancel is final. If the subscriber later wants to port the same number again, run eligibility and submit a fresh request — you can’t un-cancel.
Step 5 — Monitor the order: Between submit and activation, poll the order to see where it stands (Submitted, Pending Carrier Approval, Scheduled, Completed, Rejected, Cancelled).
Response
Port-in best practice: Always run eligibility first — it tells you whether the number is portable to your classification before you spend the port fee or commit the subscriber to a date. Submit only after the LOA is signed and the current-carrier account details are verified. Poll the order daily until you see Completed, and notify the subscriber the moment status flips.

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
Manage entries incrementally: Endpoint: POST /v1.0/subscribers/call-filter/allowed-numbers/add
Endpoint: POST /v1.0/subscribers/call-filter/blocked-numbers/add
Voice Filter Levels — future release for SIP. The Call Filter API can accept CHILD / ADOLESCENT / TEENAGER as FilterMode values, but voice-level filtering for these modes is not enabled for MVNOs today. For now, voice = allow + block only.

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.
Manage lists incrementally: Endpoint: POST /v1.0/subscribers/message-filter/allowed-contacts/add
Endpoint: 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.
Retry strategy. For transient errors (408, 429, 500, 503, 504), implement exponential backoff — start at 1 second, double on each retry, and cap at 30 seconds. Do not retry 400, 401, 403, or 404 automatically; those require a code or credential fix, not a retry.

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.