TopupZoneX API

Code examples

Copy a sample, replace YOUR_API_KEY, and run it from your own server. These docs never call the API for you.

List products

curl -sS "https://api.topupzonex.com/products" \
  -H "X-Api-Key: YOUR_API_KEY"
import requests

r = requests.get(
    "https://api.topupzonex.com/products",
    headers={"X-Api-Key": "YOUR_API_KEY"},
    timeout=30,
)
print(r.json())
const res = await fetch("https://api.topupzonex.com/products", {
  headers: { "X-Api-Key": "YOUR_API_KEY" },
});
console.log(await res.json());
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.topupzonex.com/products"))
    .header("X-Api-Key", "YOUR_API_KEY")
    .GET()
    .build();

HttpResponse<String> response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Place order

curl -sS -X POST "https://api.topupzonex.com/orders" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -d '{
    "trxid": "MERCHANT-ORDER-1001",
    "pid": "TZP60",
    "userId": "5123456789"
  }'
import requests

r = requests.post(
    "https://api.topupzonex.com/orders",
    headers={
        "X-Api-Key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "trxid": "MERCHANT-ORDER-1001",
        "pid": "TZP60",
        "userId": "5123456789",
    },
    timeout=60,
)
print(r.json())
const res = await fetch("https://api.topupzonex.com/orders", {
  method: "POST",
  headers: {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    trxid: "MERCHANT-ORDER-1001",
    pid: "TZP60",
    userId: "5123456789",
  }),
});
console.log(await res.json());
String body = """
  {
    "trxid": "MERCHANT-ORDER-1001",
    "pid": "TZP60",
    "userId": "5123456789"
  }
  """;

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.topupzonex.com/orders"))
    .header("X-Api-Key", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();

HttpResponse<String> response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Poll status until done

curl -sS "https://api.topupzonex.com/orders/TZAPI-PU-1A-AB12CD34" \
  -H "X-Api-Key: YOUR_API_KEY"
import time
import requests

BASE = "https://api.topupzonex.com"
HEADERS = {"X-Api-Key": "YOUR_API_KEY"}
order_id = "TZAPI-PU-1A-AB12CD34"

while True:
    data = requests.get(f"{BASE}/orders/{order_id}", headers=HEADERS, timeout=30).json()
    status = data.get("status")
    print(status, data.get("amountUsd"))
    if status in ("completed", "cancelled"):
        break
    time.sleep(5)
const BASE = "https://api.topupzonex.com";
const headers = { "X-Api-Key": "YOUR_API_KEY" };
const orderId = "TZAPI-PU-1A-AB12CD34";

async function poll() {
  while (true) {
    const res = await fetch(`${BASE}/orders/${orderId}`, { headers });
    const data = await res.json();
    console.log(data.status, data.amountUsd);
    if (data.status === "completed" || data.status === "cancelled") break;
    await new Promise((r) => setTimeout(r, 5000));
  }
}

await poll();
String orderId = "TZAPI-PU-1A-AB12CD34";
HttpClient client = HttpClient.newHttpClient();

while (true) {
  HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://api.topupzonex.com/orders/" + orderId))
      .header("X-Api-Key", "YOUR_API_KEY")
      .GET()
      .build();

  String body = client.send(request, HttpResponse.BodyHandlers.ofString()).body();
  System.out.println(body);
  if (body.contains("\"completed\"") || body.contains("\"cancelled\"")) break;
  Thread.sleep(5000);
}
Store your real API key in environment variables on your server.
TopupZoneX API · docs