Reseller API

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.

Base URL: https://api.waryashop.org/api/v1
1
Create an account
Sign up and log in to your Warya dashboard.
2
Generate an API key
Dashboard → API Keys. Optionally lock it to your server IPs.
3
Call the API
Send requests with the X-API-Key header. Orders are charged from your wallet.

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

GET /balance Your wallet balance
GET /games List all games & products (with Warya image URLs)
GET /games/{code}/catalogue Packages & live sale prices for a game
GET /games/{code}/fields Required input fields for a game (player id, server, etc.)
GET /games/{code}/servers Server / region list for a game (when needed)
POST /player/validate Validate a player / account id
POST /orders Place an order (charged from wallet)
GET /orders/{order_id} Get a single order status
GET /orders List your orders
GET /transactions List your wallet transactions

Example: place an order

Request
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"
  }'
Response
{
  "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.

Gift cards & vouchers

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

pending_payment wallet_charged processing completed failed refunded

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
Good to know
  • 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.
Create your API key