Warya Shop API
Connect your own website or Telegram bot to Warya Shop. Read products and live prices, validate players and place game top-up & gift-card orders — all paid from your Warya wallet. Everything is served by Warya Shop.
Authentication
Every request must include your key in the header:
X-API-Key: YOUR_API_KEY
- Keys are created from your dashboard and shown only once — store them safely.
- Optional IP allow-list: only your servers can use the key.
- Default rate limit: 60 requests/min (configurable per key).
Endpoints
/balance
Your wallet balance
/games
List all games & products (with Warya image URLs)
/games/{code}/catalogue
Packages & live sale prices for a game
/games/{code}/fields
Required input fields for a game (player id, server, etc.)
/games/{code}/servers
Server / region list for a game (when needed)
/player/validate
Validate a player / account id
/orders
Place an order (charged from wallet)
/orders/{order_id}
Get a single order status
/orders
List your orders
/transactions
List your wallet transactions
Example: place an order
curl -X POST https://api.waryashop.org/api/v1/orders \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"game": "pubgm",
"catalogue_name": "60 UC",
"player_id": "12345678",
"server_id": null,
"customer_reference": "MY-SITE-ORDER-123",
"callback_url": "https://your-site.com/webhook/warya"
}'
{
"success": true,
"order_id": "WR-20260707-8F3KD",
"status": "processing",
"charged": "0.95",
"currency": "USD"
}
The price is read live before charging. If your wallet is short, you get error_code INSUFFICIENT_BALANCE and nothing is charged. All requests are idempotent — reuse the same idempotency to avoid duplicates.
The same /orders endpoint sells gift cards and vouchers. Use the product code as "game" and its package as "catalogue_name"; player_id is not required for products.
curl -X POST https://api.waryashop.org/api/v1/orders \
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{ "game": "prod_netflix-brazil", "catalogue_name": "Netflix 100 BRL" }'
When the order is completed, GET /orders/{order_id} returns the delivered code under the "delivery" field.
Order statuses
For voucher / gift-card orders, the delivered code appears on the order once it is completed.
Webhooks
If you pass a callback_url, Warya sends a POST to it when the order reaches its final status:
POST https://your-site.com/webhook/warya
X-Warya-Signature: {hmac_sha256}
{
"event": "order.completed",
"order_id": "WR-20260707-8F3KD",
"customer_reference": "MY-SITE-ORDER-123",
"game": "pubgm",
"catalogue_name": "60 UC",
"player_id": "12345678",
"status": "completed",
"timestamp": "2026-07-07T12:00:00Z"
}
Verify the X-Warya-Signature header (HMAC-SHA256 of the raw body with your key secret). Retries: 1m, 5m, 15m, 1h.
Error codes
MISSING_API_KEY
No X-API-Key header
INVALID_API_KEY
Key is invalid, disabled or revoked
IP_NOT_ALLOWED
Request IP is not in the key allow-list
INSUFFICIENT_BALANCE
Wallet balance is not enough
VALIDATION_FAILED
Invalid input / player id
RATE_LIMITED
Too many requests
- Prices are read live at order time; money uses decimals (never floats).
- Product images are served from api.waryashop.org — your customers only ever see Warya.
- Some resellers only need the product data and skip images — the image field is optional to use.