eSIM middleware · Viettel M2M
One API for the entire IoT eSIM lifecycle .
Connect your devices to the Viettel M2M network. Manage data pools, activate, suspend and release eSIMs through a REST API, a visual dashboard and realtime webhooks.
Data pool
500 GB
eSIM active
128
+12 trong 7 ngày
8984 0480 …0001
meter-hn-014
8984 0480 …0002
camera-hcm-07
8984 0480 …0003
tracker-dn-21
Webhook
SIM_STATUS_CHANGED · 200 OK
REST API
x-api-key
Queue
BullMQ · Redis
Webhook
HMAC-SHA256
Telco
Viettel M2M
Operate eSIMs, not spreadsheets
IoT SIM management should not be an Excel file.
As fleets grow, manual telco portal work becomes a bottleneck. KOVITEL puts the entire eSIM lifecycle into one controlled, stateful, auditable flow.
The old way
Portals, email and scattered spreadsheets
- Manual work in the Viettel portal for every SIM
- Excel, email and chat scattered across teams
- No audit trail when suspending or releasing SIMs
- No visibility into which jobs ran or got stuck
With KOVITEL
One middleware layer for engineering and operations
- One REST API for allocate, activate, suspend, resume and release
- A shared dashboard for operations, engineering and commercial teams
- Every action has a jobId, status and audit log
- Realtime webhooks on status changes and 90% data thresholds
Platform capabilities
One middleware layer. Six operational capabilities.
No need to build queues, retries, telco sessions or webhook signing yourself. Focus on devices and customers.
Shared data pool
Track total, used and remaining quota per pool. Expiry alerts, SIM allocation and centralised capacity control.
Controlled eSIM lifecycle
Activate, suspend, resume and release through one endpoint. SIM state, jobs and action history stay in sync.
Batch up to 500 ICCIDs
Send one request for an entire device batch. The system fans out individual jobs and aggregates progress.
Telemetry & usage
Near-realtime usage lookups, pool-level usage aggregation and alerts when a SIM crosses 90%.
Signed webhooks
Every event carries an HMAC-SHA256 signature, delivery ID and retries. No constant polling required.
Processing flow
The API returns a jobId immediately.
The worker handles the rest.
Telco responses are not always instant. KOVITEL separates the request from telco execution so the API stays fast, the worker controls retries and you do not hold connections open.
Partner calls the API
Allocate an eSIM or request a status change. The API authenticates, records a job and returns 202 with a jobId immediately.
Worker picks up the job
BullMQ enforces rate limits, retries network failures and protects the Viettel portal from overload.
Telco executes
The reverse API calls Viettel M2M; if the portal is unstable, Playwright RPA can take over.
Webhook & audit
The result is stored, signed with HMAC and delivered to your system as a webhook.
PUT /api/v1/sim/8984048000000000001/status
x-api-key: kov_live_…
{ "action": "SUSPEND" }
HTTP/1.1 202 Accepted
{
"jobId": "8f3c2d1a-9b04-4b6c-…",
"status": "PENDING",
"action": "SUSPEND"
}{
"jobId": "8f3c2d1a-…",
"type": "SIM_SUSPEND",
"status": "COMPLETED",
"result": {
"iccid": "8984048000000000001",
"status": "SUSPENDED",
"channel": "REVERSE"
}
}Three retries with exponential backoff. If the job falls back to RPA, its state and audit trail remain the same.
Use cases
One data pool. Many device models.
From remote meters to surveillance cameras, one eSIM management layer reduces manual work and keeps data costs under control.
Smart metering
Electricity & water meters
Manage a fleet of remote meters, suspend SIMs for unpaid bills and monitor pool-level quotas.
Video surveillance
Cameras & surveillance
Activate SIMs at installation, track data per camera and release them when devices are retired.
Fleet tracking
Logistics & telematics
Batch-activate new device shipments, receive webhooks when SIMs are blocked and query near-realtime usage.
Smart agriculture
Smart agriculture
Share a pool across seasonal sensor stations and avoid wasted data outside the growing season.
Developer experience
Integrate in an afternoon.
Plain REST, familiar JSON, OpenAPI docs and runnable examples. No proprietary SDK, no lock-in.
Per-partner API keys
Authenticate with the x-api-key header and rotate keys at any time.
Asynchronous jobs
Receive a jobId immediately, then poll or wait for a webhook — whichever fits your system.
OpenAPI 3.1
A complete contract for Postman, code generators and the API reference.
Signed webhooks
HMAC-SHA256, delivery logs, retries and a test button right in the dashboard.
import { KOVITEL_API_URL, KOVITEL_API_KEY } from './config';
const res = await fetch(
`${KOVITEL_API_URL}/sim/8984048000000000001/status`,
{
method: 'PUT',
headers: {
'x-api-key': KOVITEL_API_KEY,
'content-type': 'application/json',
},
body: JSON.stringify({ action: 'SUSPEND' }),
},
);
const { jobId, status } = await res.json();
// { jobId: "8f3c...", status: "PENDING" }Base URL
/api/v1
Auth
x-api-key
Rate limit
5 req/s
Pricing
Start small. Scale with your fleet.
Platform pricing scales with pool size and active eSIMs. Viettel telecom charges are quoted separately under the M2M contract.
Sandbox
trial
Free
For engineering teams validating the integration before signing a contract.
- 1 test data pool
- 20 demo eSIMs
- Full REST API & webhook tests
- API docs + API reference
- Email support
Business
pool & eSIM volume
Usage-based
Production operations on Viettel M2M with SLA and operational support.
- Production data pool
- Unlimited background jobs
- Webhooks + automatic retries
- Batch up to 500 ICCIDs / request
- 99.9% SLA under contract
- 8x5 support · dedicated channel
Enterprise
custom deployment
Contact us
For companies that need a dedicated pool, deeper integration or private infrastructure.
- Dedicated pool / quota
- RPA fallback & private APN
- SSO, RBAC, audit log
- VPC / on-prem deployment
- Internal system integration
- 24/7 support
Prices exclude VAT and telco charges. The sandbox does not send real commands to the core network. Production SLA and quota are confirmed in the contract.
FAQ
Before you start.
The questions engineering and operations teams ask most before putting IoT eSIMs into production.
Still have questions? Send a question
What is KOVITEL IoT?
A middleware layer that connects your device management platform to the Viettel M2M network. Instead of manual work in the Viettel portal, your teams use a REST API, dashboard and webhooks to manage data pools and activate, suspend or release eSIMs.
Do I need my own contract with Viettel?
Yes. KOVITEL provides the integration and operations layer, while data, numbers and tariffs follow the M2M contract between your company and Viettel. KOVITEL supports onboarding and integration.
How long does partner approval take?
New accounts start as PENDING and can log in immediately to view the dashboard and docs. KOVITEL verifies your requirements, contract and pool configuration before activating the API key — typically within one business day once information is complete.
Is there a sandbox?
Yes. The sandbox provides a test pool, demo eSIMs and all endpoints for allocation, status changes, batch jobs, job polling and webhooks. It does not send real commands to the core network.
Are operations synchronous or asynchronous?
Status changes go through BullMQ and run in the background. The API returns a jobId immediately; you then poll GET /jobs/{jobId} or receive a webhook when the job completes. This avoids timeouts and protects the Viettel portal.
Are webhooks secure?
Every delivery is signed with HMAC-SHA256 over the timestamp and raw body, with an x-kovitel-signature header. Deliveries retry with exponential backoff and are stored in a delivery log for reconciliation.
Are there request limits?
By default each worker is limited to 5 requests per second to Viettel to respect telco limits. The partner API has its own rate limit, configurable per contract. Batch requests support up to 500 ICCIDs.
Where is my data stored?
Operational metadata (clients, pools, SIMs, jobs, webhook deliveries) is stored in PostgreSQL; sessions and queues live in Redis. KOVITEL does not store device traffic content. Details are covered by the data processing agreement.
Start with a sandbox
Put IoT eSIMs into production without waiting for infrastructure.
Create a partner account, receive an API key and test the full flow in the sandbox. KOVITEL supports you from integration design to production pools.
