Orders & status
Create an order with a catalog PID, then check status until delivery finishes.
Status meanings
| Status | Meaning | What to do |
|---|---|---|
| processing | Accepted, still working | Keep polling |
| completed | Delivered | Stop — success |
| cancelled | Not fulfilled | Stop — check error |
Place order
POST
https://api.topupzonex.com/orders
POST /orders
Content-Type: application/json
X-Api-Key: YOUR_API_KEY
{
"trxid": "MERCHANT-ORDER-1001",
"pid": "TZP60",
"userId": "5123456789"
}
Mobile Legends shape
{
"trxid": "MERCHANT-ORDER-1002",
"pid": "TZML86",
"userId": "983232342",
"zoneId": "9923"
}
Genshin shape
{
"trxid": "MERCHANT-ORDER-1003",
"pid": "TZGI60",
"userId": "712345678",
"serverId": "Asia"
}
Response examples
Processing
{
"orderCreated": true,
"orderId": "TZAPI-PU-1A-AB12CD34",
"status": "processing",
"game": "pubg",
"packName": "60UC",
"amountUsd": 0.86,
"durationSec": 1,
"userId": "5123456789"
}
Completed
{
"orderCreated": true,
"orderId": "TZAPI-PU-1A-AB12CD34",
"status": "completed",
"game": "pubg",
"packName": "60UC",
"amountUsd": 0.86,
"durationSec": 34,
"userId": "5123456789"
}
Cancelled
{
"orderCreated": false,
"status": "cancelled",
"game": "pubg",
"error": "INSUFFICIENT BALANCE"
}
After an order was created and later failed:
{
"orderCreated": true,
"orderId": "TZAPI-PU-1A-AB12CD34",
"status": "cancelled",
"game": "pubg",
"packName": "60UC",
"amountUsd": 0.86,
"error": "INVALID PLAYER",
"refunded": true
}
Poll order status
GET
https://api.topupzonex.com/orders/:orderId
GET /orders/TZAPI-PU-1A-AB12CD34
X-Api-Key: YOUR_API_KEY
1
Save
orderId
From the place-order response.
2
Poll every 3–10 seconds
While status is processing.
3
Stop on a final status
completed or
cancelled.
Need ready-to-paste snippets? See
Code examples for curl, Python, Node.js, and Java.