Download OpenAPI specification:
Server-to-Server API for automated partner integrations with digital goods distribution platform.
{- "success": true,
- "data": {
- "partner": {
- "uuid": "a3c3c002-1bcc-4593-bf39-e591c1d22cf0",
- "name": "Partner Name",
- "email": "partner@example.com",
- "currency": "USD",
- "is_active": true,
- "balance": {
- "balance": -58.18,
- "currency": "USD",
- "reserved_amount": 0,
- "available_balance": 41.82,
- "allow_overdraft": true,
- "overdraft_limit": 100,
- "is_overdrafted": true
}
}
}
}{- "success": true,
- "data": {
- "balance": -29.09,
- "currency": "USD",
- "reserved_amount": 0,
- "available_balance": 70.91,
- "allow_overdraft": true,
- "overdraft_limit": 100,
- "is_overdrafted": true
}
}Paginated balance transaction history (cursor-based pagination)
| cursor | string Pagination cursor from meta.next_cursor |
| per_page | integer [ 1 .. 100 ] Default: 50 Items per page (max 100) |
{- "success": true,
- "data": [
- {
- "type": "charge",
- "amount": -29.09,
- "balance_after": -58.18,
- "currency": "USD",
- "created_at": "2026-02-24T11:37:58+00:00",
- "order_id": "12161770-8560-4377-9795-e8a70aaceb07",
- "payment_method": null,
- "fee_amount": 0,
- "original_amount": null,
- "original_currency": null,
- "exchange_rate": null
}, - {
- "type": "topup",
- "amount": 500,
- "balance_after": 441.82,
- "currency": "USD",
- "created_at": "2026-02-23T11:37:58+00:00",
- "order_id": null,
- "payment_method": "bank_transfer",
- "fee_amount": 0,
- "original_amount": null,
- "original_currency": null,
- "exchange_rate": null
}
], - "meta": {
- "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wMi0yMyAxMTozNzo1OCIsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
- "prev_cursor": null,
- "per_page": 50
}
}Get paginated product list with optional filters
| cursor | string Pagination cursor from previous response |
| per_page | integer <= 200 Default: 100 Items per page |
| category_id | integer Filter by category |
| type | string Enum: "voucher" "recharge_fixed" "recharge" "voucher_open_range" "esim" "other" Filter by product type |
| include_skus | boolean Default: false Include SKU list (without pricing) |
{- "success": true,
- "data": [
- {
- "id": "019bc0dd-8423-739c-a557-5387d900152b",
- "name": "Apple gift card | USA",
- "type": "voucher",
- "category": {
- "id": 18,
- "name": "Test"
}, - "description": "<p>With the credit from a gift card, you can get music, movies, TV shows, apps, books, audiobooks, Apple Music memberships and more.</p>",
- "image": "",
- "attributes": {
- "digital_acceptance": "online"
}, - "customer_fields": [ ],
- "skus": [
- {
- "id": "019bc0dd-8434-7246-a0fa-a8a29b88eeee",
- "name": "$2 Apple Gift Card",
- "image": "",
- "attributes": {
- "denomination": "2",
- "denomination_currency": "USD"
}
}, - {
- "id": "019bc0dd-844e-726d-af0a-24187668feef",
- "name": "$3 Apple Gift Card",
- "image": "",
- "attributes": {
- "denomination": "3",
- "denomination_currency": "USD"
}
}
]
}
], - "meta": {
- "next_cursor": "eyJpZCI6MTIzLCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
- "prev_cursor": null,
- "per_page": 100
}
}Get product with SKUs, pricing and stock information
| uuid required | string <uuid> |
{- "success": true,
- "data": {
- "id": "019bc0dd-8423-739c-a557-5387d900152b",
- "name": "Apple gift card | USA",
- "type": "voucher",
- "category": {
- "id": 18,
- "name": "Test"
}, - "description": "<p>With the credit from a gift card, you can get music, movies, TV shows, apps, books, audiobooks, Apple Music memberships and more.</p>",
- "image": "",
- "attributes": {
- "digital_acceptance": "online"
}, - "skus": [
- {
- "id": "019bc0dd-8434-7246-a0fa-a8a29b88eeee",
- "name": "$2 Apple Gift Card",
- "price": 2.2,
- "currency": "USD",
- "stock": 100,
- "max_per_order": 1,
- "image": "",
- "attributes": {
- "denomination": "2",
- "denomination_currency": "USD"
}
}, - {
- "id": "019bc0dd-844e-726d-af0a-24187668feef",
- "name": "$3 Apple Gift Card",
- "price": 3.3,
- "currency": "USD",
- "stock": 50,
- "max_per_order": 1,
- "image": "",
- "attributes": {
- "denomination": "3",
- "denomination_currency": "USD"
}
}
]
}
}SKU prices and stock status (optimized for price sync)
| cursor | string |
| per_page | integer <= 200 Default: 100 |
| category_id | integer |
| type | string Enum: "voucher" "recharge_fixed" "esim" |
{- "success": true,
- "data": [
- {
- "sku_id": "019bc0dd-8434-7246-a0fa-a8a29b88eeee",
- "price": 2.2,
- "currency": "USD",
- "stock": 100,
- "max_per_order": 1
}, - {
- "sku_id": "019bc0dd-844e-726d-af0a-24187668feef",
- "price": 3.3,
- "currency": "USD",
- "stock": 50,
- "max_per_order": 1
}, - {
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "price": null,
- "currency": "USD",
- "stock": 0,
- "max_per_order": 99
}
], - "meta": {
- "next_cursor": "eyJpZCI6MTIzLCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
- "prev_cursor": null,
- "per_page": 100
}
}Available categories with attributes
| target | string Enum: "product" "sku" Filter attributes by target |
{- "success": true,
- "data": [
- {
- "id": 0,
- "name": "string",
- "parent_id": 0,
- "position": 10,
- "attributes": [
- {
- "code": "string",
- "name": "string",
- "type": "text",
- "target": "product"
}
]
}
]
}Get order history with filters
| cursor | string |
| per_page | integer <= 100 Default: 50 |
| status | string Enum: "created" "processing" "completed" "cancelled" "failed" "partially_completed" |
| external_id | string Search by your order ID |
| date_from | string <date-time> Example: date_from=2025-01-01T00:00:00Z |
| date_to | string <date-time> Example: date_to=2025-01-31T23:59:59Z |
{- "success": true,
- "data": [
- {
- "id": "7898e683-4e56-44a3-9782-eca3f758a844",
- "external_id": "ORD-12345",
- "status": "completed",
- "total_amount": 29.09,
- "currency": "USD",
- "metadata": null,
- "created_at": "2026-01-15T11:54:29+00:00",
- "items": [
- {
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "sku_name": "$30 Apple Gift Card",
- "quantity": 1,
- "price": 29.09,
- "currency": "USD",
- "status": "completed",
- "delivery_data": [
- {
- "pin": "9b329e7e9764a41cf516e7e716035c2e",
- "expiration": null,
- "serialNumber": ""
}
], - "customer_data": null,
- "error_message": null
}
]
}
], - "meta": {
- "next_cursor": null,
- "prev_cursor": null,
- "per_page": 50
}
}Create new order. Requires HMAC-SHA256 signature for S2S authentication.
X-Timestamp header is requiredX-Signature header is requiredAuthorization: Bearer {s2s_token} is requiredconst timestamp = Math.floor(Date.now() / 1000); // e.g., 1768478058
{
"external_id": "ORD-12345",
"item": {
"sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
"quantity": 1
}
}
const payload = timestamp + "." + JSON.stringify(body);
// Result: "1768478058.{\"external_id\":\"ORD-12345\",\"item\":{\"sku_id\":\"019bc0dd-8562-7173-afd9-a5cc534fafb7\",\"quantity\":1}}"
const crypto = require('crypto');
const signature = crypto
.createHmac('sha256', partnerSecret) // Use your partner secret
.update(payload)
.digest('hex');
// Result: "13fbd7a9a501ea39aeec861a27158dfa00c491aa657798adac8ed9b2066a6fa2"
curl -X POST https://api.example.com/v1/partner/orders \
-H "Authorization: Bearer {your_s2s_token}" \
-H "X-Timestamp: 1768478058" \
-H "X-Signature: 13fbd7a9a501ea39aeec861a27158dfa00c491aa657798adac8ed9b2066a6fa2" \
-H "Content-Type: application/json" \
-d '{"external_id":"ORD-12345","item":{"sku_id":"019bc0dd-8562-7173-afd9-a5cc534fafb7","quantity":1}}'
partner_secret from your partner settings (not the API token!)const crypto = require('crypto');
const timestamp = Math.floor(Date.now() / 1000);
const body = {
external_id: "ORD-12345",
item: { sku_id: "019bc0dd-8562-7173-afd9-a5cc534fafb7", quantity: 1 }
};
const payload = timestamp + "." + JSON.stringify(body);
const signature = crypto.createHmac('sha256', partnerSecret).update(payload).digest('hex');
fetch('https://api.example.com/v1/partner/orders', {
method: 'POST',
headers: {
'Authorization': `Bearer ${s2sToken}`,
'X-Timestamp': timestamp.toString(),
'X-Signature': signature,
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
});
$timestamp = time();
$body = json_encode([
'external_id' => 'ORD-12345',
'item' => [
'sku_id' => '019bc0dd-8562-7173-afd9-a5cc534fafb7',
'quantity' => 1
]
]);
$payload = $timestamp . '.' . $body;
$signature = hash_hmac('sha256', $payload, $partnerSecret);
$ch = curl_init('https://api.example.com/v1/partner/orders');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $s2sToken,
'X-Timestamp: ' . $timestamp,
'X-Signature: ' . $signature,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
$response = curl_exec($ch);
import time
import json
import hmac
import hashlib
import requests
timestamp = int(time.time())
body = {
"external_id": "ORD-12345",
"item": {
"sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
"quantity": 1
}
}
body_json = json.dumps(body, separators=(',', ':'))
payload = f"{timestamp}.{body_json}"
signature = hmac.new(
partner_secret.encode('utf-8'),
payload.encode('utf-8'),
hashlib.sha256
).hexdigest()
response = requests.post(
'https://api.example.com/v1/partner/orders',
headers={
'Authorization': f'Bearer {s2s_token}',
'X-Timestamp': str(timestamp),
'X-Signature': signature,
'Content-Type': 'application/json'
},
json=body
)
| X-Timestamp required | integer Example: 1768478058 Unix timestamp (tolerance ±5 minutes) |
| X-Signature required | string Example: 13fbd7a9a501ea39aeec861a27158dfa00c491aa657798adac8ed9b2066a6fa2 HMAC-SHA256 signature (hex) |
| external_id required | string Your unique order identifier |
required | object |
| metadata | object or null Custom metadata for your records |
{- "external_id": "ORD-12345",
- "item": {
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "quantity": 1
}
}{- "success": true,
- "message": "Order created successfully",
- "data": {
- "id": "12161770-8560-4377-9795-e8a70aaceb07",
- "external_id": "ORD-12345",
- "status": "completed",
- "total_amount": 29.09,
- "currency": "USD",
- "metadata": null,
- "created_at": "2026-01-15T12:58:23+00:00",
- "items": [
- {
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "sku_name": "$30 Apple Gift Card",
- "quantity": 1,
- "price": 29.09,
- "currency": "USD",
- "status": "completed",
- "delivery_data": [
- {
- "pin": "8f8649ff5c017b31869c99a37749d0d6",
- "expiration": null,
- "serialNumber": ""
}
], - "customer_data": null,
- "error_message": null
}
]
}
}Get order by UUID
| uuid required | string <uuid> Example: 7898e683-4e56-44a3-9782-eca3f758a844 Order UUID |
{- "success": true,
- "data": {
- "id": "7898e683-4e56-44a3-9782-eca3f758a844",
- "external_id": "ORD-12345",
- "status": "completed",
- "total_amount": 29.09,
- "currency": "USD",
- "metadata": null,
- "created_at": "2026-01-15T11:54:29+00:00",
- "items": [
- {
- "id": 1,
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "sku_name": "$30 Apple Gift Card",
- "quantity": 1,
- "price": 29.09,
- "currency": "USD",
- "status": "completed",
- "delivery_data": [
- {
- "pin": "9b329e7e9764a41cf516e7e716035c2e",
- "expiration": null,
- "serialNumber": ""
}
], - "customer_data": null,
- "error_message": null
}
]
}
}Get current status, data balance, and details for an eSIM by ICCID.
| iccid required | string Example: 8944422711108338982 eSIM ICCID (unique identifier) |
{- "success": true,
- "data": {
- "esim_id": "6c4045e5-e041-400e-ada1-b5320e20f01d",
- "iccid": "8944422711108338982",
- "status": "Installed",
- "qr_code": "LPA:1$rsp-3104.idemia.io$ABC-123-DEF",
- "can_renew": true,
- "last_bundle": "10GB Global Data",
- "data_balance": {
- "total_gb": 10,
- "remaining_gb": 8.5,
- "unit": "GB"
}, - "active_packages": [
- {
- "id": "pkg_123",
- "name": "10GB Europe Data",
- "data_total": 10,
- "data_remaining": 8.5,
- "data_unit": "GB",
- "activated_at": "2026-01-15T10:00:00Z",
- "expires_at": "2026-02-15T10:00:00Z",
- "status": "active"
}
], - "coverage": [
- {
- "country_name": "United Arab Emirates",
- "country_code": "AE",
- "network_name": "Etisalat"
}, - {
- "country_name": "United Kingdom",
- "country_code": "GB",
- "network_name": "Vodafone"
}
]
}
}Configure your webhook URL in partner settings. The system will send HTTP POST requests to that URL on order events.
Every webhook request includes two headers for authenticity verification:
X-Timestamp — Unix timestamp (seconds)X-Signature — HMAC-SHA256 signatureSignature calculation:
payload = timestamp + "." + request_body
signature = HMAC-SHA256(payload, partner_secret)
Verification example (PHP):
$timestamp = $_SERVER['HTTP_X_TIMESTAMP'];
$signature = $_SERVER['HTTP_X_SIGNATURE'];
$body = file_get_contents('php://input');
// Protect against replay attacks (±5 min tolerance)
if (abs(time() - (int)$timestamp) > 300) {
http_response_code(400);
exit('Timestamp expired');
}
$expected = hash_hmac('sha256', $timestamp . '.' . $body, $partnerSecret);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit('Invalid signature');
}
Verification example (Python):
import hmac, hashlib, time
timestamp = request.headers['X-Timestamp']
signature = request.headers['X-Signature']
body = request.get_data(as_text=True)
if abs(time.time() - int(timestamp)) > 300:
return 'Timestamp expired', 400
expected = hmac.new(
partner_secret.encode(),
f"{timestamp}.{body}".encode(),
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(expected, signature):
return 'Invalid signature', 401
Each webhook includes a unique idempotency_key (UUID). Use it to safely
handle duplicate deliveries — the same event may be retried up to 5 times
with exponential backoff if your server doesn't return HTTP 2xx.
Your endpoint must return HTTP 2xx within 10 seconds. Non-2xx responses or timeouts are treated as failures and trigger retries.
Sent when an order reaches status: completed, failed or partially_completed.
| event | string Value: "order.status_changed" |
| timestamp | string <date-time> ISO 8601 timestamp of when the event occurred |
| idempotency_key | string <uuid> Unique key for this delivery — use to safely deduplicate retries |
object |
{- "event": "order.status_changed",
- "timestamp": "2026-01-15T12:58:23+00:00",
- "idempotency_key": "550e8400-e29b-41d4-a716-446655440000",
- "data": {
- "order": {
- "id": "12161770-8560-4377-9795-e8a70aaceb07",
- "external_id": "ORD-12345",
- "status": "completed",
- "total_amount": 29.09,
- "currency": "USD",
- "completed_at": "2026-01-15T12:58:23+00:00",
- "items": [
- {
- "sku_id": "019bc0dd-8562-7173-afd9-a5cc534fafb7",
- "quantity": 1,
- "price": 29.09,
- "status": "completed",
- "delivery_data": [
- {
- "pin": "ABCD-EFGH-IJKL-MNOP",
- "serial_number": "VOUCHER123456",
- "expiration_date": "2027-01-15"
}
]
}
]
}
}
}