Core concepts
Data plans
How allowances, regions and validity fit together.
A plan is the combination of an allowance, a region, and a validity window. Ordering a plan onto an eSIM creates a package: the live instance with its own usage counters and expiry.
type is data, sms or voice; SMS and voice plans carry smsCount or
voiceSeconds in place of the data fields.
The planReference reads as C/S for client-specific or shared, then a
client segment and three random characters, then a type letter (D data,
M SMS, V voice), the country, and a final R/N for recurring or
one-off. Useful when you're reading a log, but don't build on
it: references are opaque tokens whose format can change, so store them
verbatim and take your facts from the response body.
Browsing the catalogue
GET /catalog/regions lists where plans exist, and
GET /catalog/coverage/{regionCode} shows the actual networks and
technologies behind a region. Country plans are cheaper per gigabyte; global
plans are simpler to support. Most integrations offer both and let the user
choose at checkout.
Allowances and throttling
What happens at the cap depends on the plan. Plans with throttleCapacityMb
drop to throttleSpeedKbps after the main allowance. Data keeps flowing,
slowly. Plans without throttling stop passing data at the cap.
Which webhook tells you the allowance is
gone depends on the plan too. A recurring package emits package.throttled
and waits for its next renewal; a one-off package emits package.exhausted.
Either is the moment to offer a top-up.
Recurring plans (recurring: true) renew themselves every
renewalPeriodMinutes and emit package.renewed.
Top-ups
A top-up is just another package on the same eSIM: no reissuing, no reinstall, same profile on the device:
GET .../packages lists what's currently on the eSIM, and
GET .../usage aggregates consumption across all of them.