Partner API Documentation
This API allows authorized partners to fetch product data, place and track orders, and view usage information.
API Authentication
All API requests require the following HTTP headers:
Authorization: Bearer {your_api_key}
X-Partner-ID: {your_partner_id}
Endpoints
All Endpoints
GET /products
Returns a list of all available products.
curl -X GET "https://partner-api.your-domain.com/api/v1/products" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id"
Response
{
"success": true,
"data": {
"products": [
{
"productId": "FXTEND132075",
"name": "Oceania 3 GB",
"description": "Key Features:\n• This is a data-only eSIM. It does not come with a phone number.\n• Simply scan the QR code to download and use the eSIM. No other activation or registration steps needed.\n• Validity will start upon downloading the eSIM to your device and connecting to network.\n• One-time prepaid package. No auto-renewals, no contracts. The eSIM is rechargeable and can be topped up with additional data packages.\n• Full data speeds - no daily limits, no throttling. Mobile hotspot is supported.\n• Usable only with eSIM compatible phones and tablets which are not carrier locked. If in doubt, please check the FAQ section.\n• Please start using the eSIM no more than 3 months after purchase.",
"planInfo": "HTML formatted plan information with key features and usage instructions",
"instructions": null,
"price": 29.99,
"validityDays": 7,
"countries":[
{
"id": "SG",
"name": "Singapore"
}
],
"region": ["Asia"],
"dataAmount": 3,
"dataUnit": "GB",
"customPlanData": null,
"voiceMin": null,
"voiceMinUnit": null,
"sms":100,
"speed": "Unrestricted",
"planType": "Fixed",
"category": "esim_realtime",
"networkType": "4G/LTE",
"isVoiceAvailable": false,
"isSmsAvailable": true,
"hotspotAvailable": true,
"topUpAvailable": false,
"profile": "local",
"activationPolicy": "Activation upon purchase",
"startDateEnabled": false,
"features": []
}
],
"total": 18663
}
}
Response
POST /order
Places a new order for an eSIM product. Returns essential order information only. Use the Order Details endpoint with the returned orderId to retrieve complete order information including eSIM details, pricing, and fulfillment data.
curl -X POST "https://partner-api.your-domain.com/api/v1/order" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id" \
-H "Content-Type: application/json" \
-d '{
"productId": "ABCDEF123456",
"startDate": "2023-11-01"
}'
Response
{
"success": true,
"orderId": "VLZ123456",
"message": "Order created successfully"
}
Response
GET /order/{orderId}
Retrieve order details using order ID including eSIM data, pricing, and fulfillment information.
curl -X GET "https://partner-api.your-domain.com/api/v1/order/VLZ123456" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id"
Response
{
"success": true,
"data": {
"orderId": "VLZ123456",
"status": "completed",
"product": {
"productId": "ABCDEF123456",
"name": "Europe 5GB / 30 Days"
},
"orderTotal": 29.99,
"quantity": 1,
"startDate": "2023-11-01",
"expiryDate": "2023-12-01",
"iccid": "8991000123456789012",
"smdpAddress": "trl.prod.ondemandconnectivity.com",
"accessPointName": "mbb",
"lpaString": "LPA:1$trl.prod.ondemandconnectivity.com$AAA22",
"activationCode": "LPA:1$smdp.example.com$123456789-abcdef-123456",
"status": "completed",
"top_up": "Available",
"qrCodeUrl": "https://example.com/qr/VLZ123456.png",
"walletAuthTransactionId": "sksgdnsdyk1234567890",
"createdAt": "2023-10-25T14:30:45Z"
}
}
Response
GET /usage/{orderId}
Returns usage details for a specific order.
curl -X GET "https://partner-api.your-domain.com/api/v1/usage/VLZ123456" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id"
Response
{
"success": true,
"data": {
"orderId": "VLZ123456",
"dataUsage": 2147483648,
"dataAllowance": 5368709120,
"status": "Active",
"expiryDate": "2023-12-01T00:00:00Z",
"lastUpdated": "2023-11-15T09:45:22Z",
"message": "Usage data retrieved successfully",
"isRealtime": true,
"fromCache": false
}
}
Response
GET /order/{orderId}/topup-plans
Returns available topup plans for a completed order. Topup functionality is available for for all the orders that support topup.
curl -X GET "https://partner-api.your-domain.com/api/v1/order/VLZ123456/topup-plans" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id"
Response
{
"success": true,
"data": {
"originalOrder": {
"orderId": "VLZ123456",
"productId": "ABCDEF123456",
"name": "Europe 5GB / 30 Days",
"iccid": "8991000123456789012"
},
"topupPlans": [
{
"productId": "ADDON001",
"name": "Europe 1GB Addon",
"description": "Additional 1GB data for Europe",
"planInfo": "HTML formatted plan information with key features and usage instructions",
"price": 9.99,
"validityDays": 30,
"dataAmount": 1,
"dataUnit": "GB",
"customPlanData": "1gb addon",
"voiceMin": null,
"voiceMinUnit": "Min",
"sms":null,
"speed": "Unrestricted",
"planType": "Addon",
"category": "esim_addon",
"networkType": "4G/LTE",
"countries": [
{
"id": "FR",
"name": "France"
}
],
"region": ["Europe"],
"features": ["5G Support"],
"isVoiceAvailable": false,
"isSmsAvailable": false,
"hotspotAvailable": true,
"profile": "roaming",
}
]
}
}
Response
POST /order/{orderId}/topup
Creates a topup order for an existing completed order. This adds additional data/services to an existing eSIM.
curl -X POST "https://partner-api.your-domain.com/api/v1/order/VLZ123456/topup" \
-H "Authorization: Bearer your-api-key" \
-H "X-Partner-ID: your-partner-id" \
-H "Content-Type: application/json" \
-d '{
"productId": "ADDON001"
}'
Response
{
"success": true,
"data": {
"topupOrderId": "VLZ789012",
"originalOrderId": "VLZ123456",
"status": "completed",
"message": "Topup order created successfully"
}
}
Response
Error Codes
Code | Description |
---|---|
400 Bad Request | The request was malformed or contained invalid parameters |
400 Invalid Order ID | Order ID contains invalid characters |
400 Order Not Completed | Order is in pending or Failed State state |
400 Topup Not Supported | This plan does not support topup |
400 Provider Not Supported | This provider does not support topup |
400 Invalid Topup Plan | Only addon plans can be used for topup |
400 Network Not Found | Cannot determine network for topup plans |
400 ICCID Not Found | Cannot find ICCID for plan |
400 Insufficient Balance | Insufficient wallet balance for creating an order |
401 Unauthorized | Invalid API key or partner ID |
403 Access Denied | You do not have access to this order |
404 Order Not Found | Order not found |
404 Product Not Found | product not found or not available |
404 Not Found | Resource not found |
500 Topup Order Creation Failed | Failed to create topup order |
500 Internal Server Error | General server error |