Play Cards API
A simple HTTP API to check your balance, browse products, place orders, and track their status — built for resellers and automation.
Introduction #
The API speaks JSON over HTTPS. If you already integrate with a standard reseller API in this market, you migrate by changing only the base URL and your token — the paths, envelopes, and error codes match.
order_uuid.Authentication #
Every request must include your API token in the api-token header. You can generate and manage your token, allowed IPs, and callback URL from your account.
api-token: YOUR_API_TOKEN
Two additional header forms are accepted for convenience: x-api-key: YOUR_API_TOKEN and Authorization: Bearer YOUR_API_TOKEN.
123. Leave the list empty (or enable “allow all IPs”) to accept requests from anywhere.Errors #
Every error returns the same envelope with a stable numeric code. Build your integration against the code, not the message text.
{
"status": "ERROR",
"code": 100,
"msg": "Insufficient balance"
}
Authentication codes
| Code | Meaning |
|---|---|
| 120 | Api Token is required |
| 121 | Token error (invalid token) |
| 122 | Not allowed to use the API (disabled / inactive account) |
| 123 | IP not allowed |
Order codes
| Code | Meaning |
|---|---|
| 100 | Insufficient balance |
| 106 | Quantity not allowed |
| 109 | Product deleted or not found |
| 110 | Product not available now |
| 112 | Quantity is too small |
| 113 | Quantity is too large |
| 114 | Bad request / unknown order error |
| 500 | Unknown internal error |
Webhooks #
Instead of polling /check, set a callback URL on your account and we’ll POST to it whenever one of your orders reaches a final state. This is optional and complements the polling endpoint.
Headers we send
| Header | Description |
|---|---|
| X-PlayCore-Event | order_completed or order_rejected |
| X-PlayCore-Callback-Id | Unique id of this callback attempt (delivery is retried on failure) |
{
"event": "order_completed",
"order": {
"id": 10231,
"publicId": "ID_9fffb0d849a45215",
"orderUuid": "ecbdd545-e616-4aee-8770-7eefa977bcd0",
"apiClientReference": null,
"status": "completed",
"totalPrice": "1.26048",
"currencyCode": "USD",
"inputs": { "playerId": "test" },
"completedAt": "2026-07-06T13:55:48.000Z",
"failedAt": null,
"createdAt": "2026-07-06T13:55:40.000Z",
"updatedAt": "2026-07-06T13:55:48.000Z"
}
}
/client/api/check?orders=[publicId] before acting on it.