Gamering API V1.0.6 Documentation
This API allows partners to receive game vouchers, process voucher issuance, activate vouchers, top up service and game balances, and manage order statuses. The sections below describe the main API methods, request parameters, response fields, examples, and possible errors.
Changelog
V1.0.6 (29.05.2026)
- Updated the
/api/voucher_availableresponse format: public fieldsaccount_format,account_separator, andaccount_fieldswere added for services where an account consists of several values. - Clarified the account format rule for
/api/pay: if/api/voucher_availablereturns a format such asuserid|zoneid, values must be passed in theaccountparameter in the same order using the|separator. - Clarified in-progress order statuses: an order may return as
pendingorBalance replenishment is in progress. The final status can then be retrieved via/api/get_order_infoor delivered through a webhook notification if webhooks are enabled. - Clarified refund and cancellation handling: the final response is returned as
order_status=3with the reason inerror_text.
V1.0.5 (25.05.2026)
- Updated
/api/payproduction logic: direct balance top-up, voucher purchase, and voucher reservation are supported. - Added
test=1for test transactions in production: the request follows the real API scenario, but does not contact suppliers and does not debit the partner balance. - Clarified synchronous and asynchronous modes: if order status notifications are enabled for the partner, the initial
/api/payresponse returnspending, and further status changes are sent to the partner webhook. If notifications are not enabled, the API waits up to 60 seconds for a supplier response and returns the final status, orpendingon timeout. - Clarified test operations, pending responses, balance debit, and balance return rules when an order fails.
- Clarified
/api/order_update,/api/get_order_info,/api/revise, and/api/account_checklogic, including test mode and invalid requests.
V1.0.4 (09.04.2025)
- Updated the description of the
/api/paymethod. - Added order status notification functionality. It can be enabled through the partner account or support. The partner must implement a notification handler where this option is used.
- Added
/api/account_checkto check account information for the specified service. - Bugfix.
V1.0.3 (08.04.2025)
- Removed
/api/get_orders. Order export will be available in the partner account. - Removed
/api/voucher_request. Voucher reservation functionality was moved to/api/pay.
V1.0.2 (07.04.2025)
- Removed
/api/pubg_check,/api/steam_check, and/api/steam_pay. A unified account check endpoint will be used for all services that support account verification.
V1.0.1 (03.04.2025)
- Updated URL logic and switched to subdomains for production and test environments. The endpoint paths are now identical for production and test environments.
V1.0
- Release version.
Available API Endpoints
/api/auth/login- Partner authorization/api/balance- Get current balance/api/gameslist- Get the list of games/services available for voucher purchase or direct balance top-up/api/voucher_available- Get available vouchers by game/service ID/api/pay- Universal request for balance top-up or voucher purchase/api/order_update- Update order status/api/get_order_info- Get order status and order information/api/revise- Submit a transaction register for reconciliation/api/account_check- Check account information for the specified service
Authorization and Token Retrieval
Method: POST
/api/auth/login
This method is used to authorize a partner. A successful request returns a JWT token that must be used for authorization in other methods.
Token lifetime - 1 hour
Request parameters:
login- Partner loginapi_key- Partner API key (string)
Request example:
{
"login": "login",
"api_key": "password"
}
Response fields:
token- JWT tokenexpires_in- Token lifetime in secondsexpires_at- Token expiration date and time
Response example:
{
"token": "eyJhbGciOi...",
"expires_in": 3600,
"expires_at": "2026-04-15 15:30:14"
}
Errors:
401- Invalid login or api_key500- Internal server error
Get Account Balance
Method: GET
/api/balance
This method is used to get the account balance.
Headers:
Authorization: Bearer <token>
Request parameters:
- No parameters. The data is returned based on authorization.
Response fields:
partner_id- Partner IDpartner_name- Partner nameuser_name- User loginuser_id- User IDbalance- Partner balancecurrency- Balance currency
Response example:
{
"partner_id": 1,
"partner_name": "dev",
"user_name": "dev",
"user_id": 1,
"balance": 100000,
"currency": "USD"
}
Errors:
401- Authorization error500- Internal server error
Get Game List
Method: GET
/api/gameslist
Returns the list of games and services available to the partner.
Headers:
Authorization: Bearer <token>
Response fields:
available_games- Array of available servicesid- Service/game IDgame_name- Service/game namedescription- Service description. Can benulltype- Service type:balanceorvoucheractivation- Activation type, for exampleautoormanualcurrency- Settlement currency for the serviceavalible- Whether the service is available for orderingrequest- Whether voucher pre-reservation is availableaccount_check- Whether account verification is supported through/api/account_checkdiscount_percent- Partner discount forbalanceservices. For voucher services this can benullhas_voucher_discounts- Whether the service has individual voucher discountsmax_voucher_discount_percent- Maximum voucher discount for the service. Can benullmin_voucher_discount_percent- Minimum voucher discount for the service. Can benull
Response example:
{
"available_games": [
{
"id": 1,
"game_name": "steam",
"description": "Steam account top-up",
"type": "balance",
"activation": "auto",
"currency": "USD",
"avalible": true,
"request": false,
"account_check": true,
"discount_percent": 3,
"has_voucher_discounts": false,
"max_voucher_discount_percent": null,
"min_voucher_discount_percent": null
},
{
"id": 2,
"game_name": "pubg mobile",
"description": "Voucher top-up, voucher code",
"type": "voucher",
"activation": "manual",
"currency": "USD",
"avalible": true,
"request": true,
"account_check": false,
"discount_percent": null,
"has_voucher_discounts": true,
"max_voucher_discount_percent": 4,
"min_voucher_discount_percent": 4
}
]
}
Errors:
401- Authorization error404- No available services
Get Available Voucher Denominations
Method: GET
/api/voucher_available
Returns the list of voucher denominations by game ID.
Headers:
Authorization: Bearer <token>
Parameters:
game_id- Game ID
Response fields:
game_id- Requested service IDavailable- Array of available vouchersavalible- Whether the voucher is available for purchasevoucher_id- Voucher ID used for orderingvoucher_name- Voucher nameamount- Amount to be charged from the balance after discountcurrency- Charge currencygame_coins- Voucher denominationorigin_price- Voucher price before partner discountorigin_currency- Original voucher currencydiscount_rate- Your discount percentaccount_need- Whether an account must be passed when purchasingaccount_check- Whether account verification is supported for the voucheraccount_format- Expectedaccountvalue format for/api/pay, if an account is requiredaccount_separator- Separator used to pass several values in oneaccountparameter. Returned only when an account consists of several valuesaccount_fields- Field description for the partner form. Returned only when an account consists of several values
If account_need=true, the account value in /api/pay must match account_format. For example, for userid|zoneid, pass account=gamering|1234. If the account consists of a single value, account_fields and account_separator are not returned, and account_format contains the required single identifier.
Response example:
{
"game_id": 426,
"available": [
{
"avalible": true,
"voucher_id": 4013,
"voucher_name": "Monthly Elite Pack",
"amount": 4.58,
"currency": "USD",
"game_coins": 22.88,
"origin_price": 4.77,
"origin_currency": "USD",
"discount_rate": 4,
"account_need": true,
"account_check": false,
"account_format": "userid|zoneid",
"account_separator": "|",
"account_fields": [
{
"name": "userid",
"type": "input",
"label": "User ID",
"prefix": "",
"label_zh": "User ID",
"position": 1,
"multiline": false,
"placeholder": "Please enter User ID"
},
{
"name": "zoneid",
"type": "input",
"label": "Zone ID",
"prefix": "",
"label_zh": "Zone ID",
"position": 2,
"multiline": false,
"placeholder": "Please enter Zone ID"
}
]
}
]
}
Response example for a voucher without account transfer:
{
"game_id": 2,
"available": [
{
"avalible": true,
"voucher_id": 1,
"voucher_name": "60 UC",
"amount": 0.95,
"currency": "USD",
"game_coins": 60,
"origin_price": 0.99,
"origin_currency": "USD",
"discount_rate": 4,
"account_need": false,
"account_check": false
}
]
}
Errors:
400-game_idis missing or has an invalid value401- Authorization error403- No access to the service102- No available vouchers or the service has a different top-up type103- Service is temporarily unavailable
Voucher Purchase / Balance Top-Up
Method: POST
/api/pay
Creates an order and returns a voucher or a balance top-up result.
In production, the request passes authorization, service access, denomination availability, discount, and partner balance checks. If the order completes successfully, the amount is debited from the partner balance. If the order fails, the order charge is not retained on the balance.
The test=1 parameter can be passed in production for a test transaction. In this mode, the order is created and passes through the API scenario, but suppliers are not contacted and the partner balance is not debited.
If order status notifications are enabled for the partner, the initial /api/pay response returns pending, and the final result is sent to the partner webhook. If notifications are not enabled, the API waits up to 60 seconds for the final result. If no final result is received within 60 seconds, the API returns pending, and the current status can be retrieved through /api/get_order_info.
Headers:
Authorization: Bearer <token>
Parameters:
Common optional parameter:
test- pass1for a test transaction without supplier requests and without debiting the balance.
For balance top-up (service categories with "type": "balance"):
gameid- Game/service IDaccount- Account to top up. In test mode, use gamering or 77778888 to receive a successful status; other values return an unsuccessful test status.amount- Top-up amount
Final successful response fields for balance top-up:
success- Operation statusorder_id- Order numbergame_name- Game/service namegame_id- Game/service IDaccount- Top-up accountamount- Top-up amountamount_currency- Top-up currencyamount_charged- Amount charged from the balanceamount_charged_currency- Balance charge currencymessage- Order messageorder_status- Numeric order status. Returned for pending responses, webhook notifications, order processing responses, and/api/get_order_infoorder_status_text- Text order status. Returned together withorder_status
Final balance top-up response example:
{
"success": true,
"order_id": "7080",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "The balance has been successfully replenished",
"order_status": 2,
"order_status_text": "success"
}
Pending balance top-up response example:
{
"success": true,
"order_id": "7081",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "Order accepted and pending processing",
"order_status": 1,
"order_status_text": "pending"
}
Unsuccessful balance top-up response example:
{
"success": false,
"order_id": "7082",
"game_name": "steam",
"game_id": 1,
"account": "gamering123",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "cannot be paid",
"order_status": 3,
"order_status_text": "error",
"error_text": "technical problem"
}
For voucher purchase (service categories with "type": "voucher"):
voucher_id- Voucher IDaccount- Account for activation or top-up, if required by the selected voucher. The format is taken fromaccount_formatin/api/voucher_available. If several fields are returned, values must be passed in oneaccountparameter in the order fromaccount_fieldsusingaccount_separator, for exampleaccount=gamering|1234. In test mode, use gamering or 77778888 to receive a successful status; other values return an unsuccessful test status. If the service does not support account verification, the partner is responsible for the account correctness.activation- Optional parameter, 0 (do not activate) or 1 (activate). Activation is performed only if the service supports automatic activation and activation was requested.request- Optional parameter, 0 (do not reserve) or 1 (reserve). This functionality is available only for voucher categories with"request": true. If available and set to 1, the voucher is pre-reserved until the partner sends the order status. The voucher code is returned only after you send a successful payment status on your side. Voucher activation, if available, is also performed only after the status is received from the partner.
Response fields for voucher purchase or reservation:
success- Operation statusorder_status- Operation status1- pending (order was created and accepted for processing)2- success (order completed successfully; funds were debited from your balance)3- error (order completed with an error; funds for the order are not retained; the reason is returned inerror_text)4- voucher in the process of activation (voucher was issued and automatic activation is in progress; funds were debited from your balance)5- Balance replenishment is in progress (account top-up is in progress; final status will be available later)6- Waiting for payment confirmation (waiting for payment status from the partner; the voucher is reserved and funds have not been debited from your balance)
order_status_text- Text order statusorder_id- Order number in our systemgame_name- Game/service namegame_id- Game/service IDvoucher_id- Voucher ID from the catalogvoucher_name- Voucher namegame_coins- Voucher denomination in service currencygame_currency- Service currencyaccount- Top-up/activation account. Returned if it was provided in the request or required by the selected voucheramount- Top-up amount / voucher retail priceamount_currency- Top-up currencyamount_charged- Amount charged from the balanceamount_charged_currency- Balance charge currencyvoucher_code- Voucher code. Returned after successful voucher issuancevoucher_code_2- Additional voucher code, if the code consists of two partsneed_activation- Whether activation is required (0 or 1 depending on the request)expiration_date_voucher- Voucher expiration dateactivation_voucher- wait/true/false voucher activation result. Returned only if activation was requested or the order is waiting for payment confirmationmessage- Voucher activation attempt messagediscount_rate- Your discount percenterror_text- Error text if the order could not be completed
For vouchers that are direct account top-ups, voucher_code, voucher_code_2, and voucher expiration date are not returned. For these orders, need_activation=0, and the intermediate top-up status is returned as order_status=5. The final result will be available through /api/get_order_info or a webhook notification if webhooks are enabled.
Voucher purchase response examples:
{
"success": true,
"order_status": 6,
"order_status_text": "Waiting for payment confirmation",
"order_id": "7086",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"account": "gamering",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"activation_voucher": "wait",
"message": "Waiting for payment confirmation",
"discount_rate": 10
}
{
"success": true,
"order_status": 2,
"order_status_text": "success",
"order_id": "7087",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 0,
"voucher_code": "ABCD-EFGH-IJKL",
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"message": "Voucher successfully send",
"discount_rate": 10
}
{
"success": false,
"order_status": 3,
"order_status_text": "error",
"order_id": "7088",
"game_name": "Mobile Legends Diamonds",
"game_id": 426,
"voucher_id": 4022,
"voucher_name": "50 Diamonds + 5 Bonus",
"game_coins": 4.63,
"account": "2007843311|6512",
"amount": 0.93,
"amount_currency": "USD",
"amount_charged": 0.89,
"amount_charged_currency": "USD",
"need_activation": 0,
"message": "cannot be paid",
"discount_rate": 4,
"error_text": "Refunded"
}
Response example for a direct account top-up that is still in progress:
{
"success": true,
"order_status": 5,
"order_status_text": "Balance replenishment is in progress",
"order_id": "7089",
"game_name": "Mobile Legends Diamonds",
"game_id": 426,
"voucher_id": 4022,
"voucher_name": "50 Diamonds + 5 Bonus",
"game_coins": 4.63,
"account": "2007843311|6512",
"amount": 0.93,
"amount_currency": "USD",
"amount_charged": 0.89,
"amount_charged_currency": "USD",
"need_activation": 0,
"message": "Balance replenishment is in progress",
"discount_rate": 4
}
Initial response example when using order status notifications or when synchronous waiting times out:
{
"success": true,
"order_status": 1,
"order_status_text": "pending",
"order_id": "7086",
"game_name": "pubg",
"game_id": 2,
"voucher_id": 20,
"voucher_name": "300 + 25 UC",
"game_coins": 325,
"game_currency": "UC",
"account": "gamering",
"amount": 4.99,
"amount_currency": "USD",
"amount_charged": 4.49,
"amount_charged_currency": "USD",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"message": "Order accepted and pending processing",
"discount_rate": 10
}
Errors:
400- Invalid request parameters: missinggameidorvoucher_id, missingaccount, invalid amount, activation or reservation is not available401- Authorization error402- Insufficient partner balance403- No access to the service404- Game/service or voucher was not found503- Service or service integration is temporarily unavailable500- Internal error
Update Order Status
Method: POST
/api/order_update
Used by the partner to notify about the payment result for orders created through /api/pay with request=1 and waiting for payment confirmation.
When status=2 is sent, the order is confirmed. For a voucher, the code is issued to the partner; if activation was requested when the order was created and the service supports it, activation is attempted. If activation is not supported or was not requested, the voucher is issued without activation.
When status=3 is sent, the order is moved to error, the voucher reservation is released, and the partner balance is not debited.
If the order has already been finalized, the status is not changed again. A repeated status=2 call is allowed only for a repeated activation attempt if the order is already successful, activation was requested, the service supports activation, and the previous attempt failed.
Headers:
Authorization: Bearer <token>
Request parameters:
order_id- Order IDstatus- 2 - success, 3 - error
Request example:
{
"order_id": "32",
"status": 2
}
Response fields:
success- Operation statusorder_status- Numeric order statusorder_status_text- Text order statusorder_id- Order numbergame_name- Game/service namegame_id- Game/service IDvoucher_id- Voucher ID from the catalogvoucher_name- Voucher namegame_coins- Voucher denomination in service currencygame_currency- Service currencyaccount- Top-up account, if this parameter was providedamount- Top-up amount / voucher retail priceamount_currency- Top-up currencyamount_charged- Amount charged from the balanceamount_charged_currency- Balance charge currencyvoucher_code- Voucher codevoucher_code_2- Additional voucher code, if the code consists of two partsneed_activation- Whether activation is required (0 or 1 depending on the request)expiration_date_voucher- Voucher expiration dateactivation_voucher- true/false voucher activation resultmessage- Voucher activation attempt messagediscount_rate- Your discount percent
Response example:
{
"success": true,
"order_status": 2,
"order_status_text": "success",
"order_id": "32",
"game_name": "PUBG Mobile",
"game_id": "2",
"voucher_id": "123",
"voucher_name": "600 UC",
"game_coins": 600,
"game_currency": "UC",
"account": "player_123456789",
"amount": 5.99,
"amount_currency": "USD",
"amount_charged": 5,
"amount_charged_currency": "USD",
"voucher_code": "ABCD-EFGH-IJKL",
"voucher_code_2": "MNOP-QRST",
"need_activation": 1,
"expiration_date_voucher": "2026-12-31T23:59:59Z",
"activation_voucher": true,
"message": "Voucher activated successfully",
"discount_rate": 0
}
Errors:
400- Invalid request401- Unauthorized402- Insufficient partner balance404- Order was not found101- Order status cannot be changed again500- Server error
Receiving Order Status Through Notifications
Method: POST
Sent to the partner URL.
The partner can work in order status notification mode. If this functionality is enabled in the partner account or through support and a notification URL is configured, a call to /api/pay returns an initial response with pending status. Further order status changes are sent to your endpoint.
The notification body has the same structure as the /api/pay and /api/get_order_info response for the relevant order type. A notification is sent when the order status changes, including intermediate processing statuses and final success or error statuses. For successful delivery, the partner endpoint must return HTTP 2xx. Temporary delivery errors are retried.
The partner must implement a notification handler. If the handler requires additional authorization headers, they are configured in the partner account or through support.
Notification example:
{
"success": true,
"order_status": 2,
"order_status_text": "success",
"order_id": "7086",
"game_name": "steam",
"game_id": 1,
"account": "gamering",
"amount": 10.5,
"amount_currency": "USD",
"amount_charged": 9.45,
"amount_charged_currency": "USD",
"message": "The balance has been successfully replenished"
}
Get Order Status
Method: GET
/api/get_order_info
Returns order information. The response format matches the /api/pay response for the corresponding operation type: balance top-up or voucher. This method is recommended if the client does not use notifications, if the connection to /api/pay was interrupted before the final response was received, or if the order was returned in an intermediate status.
Headers:
Authorization: Bearer <token>
Parameters:
order_id- Order ID
Order statuses:
1- pending, the order was created and is being processed2- success, the order completed successfully3- error, the order failed or was refunded/cancelled4- voucher in the process of activation, the voucher was issued and activation is in progress5- Balance replenishment is in progress, account top-up is in progress6- Waiting for payment confirmation, the order is waiting for payment confirmation from the partner
If an order was refunded or cancelled after being sent to processing, this method returns order_status=3 and the reason in error_text.
Errors:
400-order_idis missing or invalid401- Authorization error404- Order was not found500- Internal error
Submit Partner Order Data for Reconciliation
Method: POST
/api/revise
Used by the partner to submit order data for a selected period and reconcile statuses with Gamering data. For orders found in the system, reconciliation data is recorded.
Headers:
Authorization: Bearer <token>
Request parameters:
date_from- Start date inDD.MM.YYYYorYYYY-MM-DDformatdate_to- End date inDD.MM.YYYYorYYYY-MM-DDformatpayments- Array of order dataorder_id- Order number inside apaymentsitemamount- Amount debited from the partner balance;amount_chargedis also acceptedstatus- Order status inside apaymentsitem: 2 - success, 3 - errortransaction_time- Operation date and time on the partner side
Response fields:
success- true/falsepayments_count- Number of payments accepted for processingrevise_payments_count- Number of reconciled orders (number of Gamering-side orders found based on submitted data)revise_payments_true- Number of successfully reconciled orders (statuses match)revise_payments_false- Number of unsuccessfully reconciled orders (statuses differ; discrepancy handling methodology will be developed later)
Request example:
{
"date_from": "21.01.2026",
"date_to": "21.01.2026",
"payments": [
{
"order_id": "32",
"amount": 13164.1,
"status": 2,
"transaction_time": "01.04.2025 16:45:12"
},
{
"order_id": "33",
"amount": 12457.8,
"status": 3,
"transaction_time": "01.04.2025 10:37:52"
},
{
"order_id": "34",
"amount": 13142.32,
"status": 2,
"transaction_time": "01.04.2025 10:37:52"
}
]
}
Response example:
{
"success": true,
"payments_count": 3,
"revise_payments_count": 3,
"revise_payments_true": 3,
"revise_payments_false": 0
}
Errors:
400- Invalid request: dates are missing, date format is invalid,date_fromis greater thandate_to,paymentsis not an array, or array items are invalid401- Unauthorized500- Server error
Check Account Availability in a Service
Method: GET
/api/account_check
Returns information about the account for the specified service. Available for services with account_check=true.
For a test check, pass test=1. In test mode, use gamering or 77778888 to receive a successful status; other values return an unsuccessful test status. In production, account check is performed for services where it is enabled; if the check is temporarily unavailable, response 503 is returned.
Headers:
Authorization: Bearer <token>
Parameters:
game_id- Service ID. The compatiblegameidparameter is also acceptedaccount- Account to checktest- Optional parameter, pass1for a test check without a supplier request
Response fields:
success- Operation statusmessage- Account messageerror_text- Error text if the request cannot be processed
Response example:
{
"success": true,
"message": "The account has been found, you can place an order."
}
{
"success": false,
"message": "Account not found, you cannot place an order."
}
Errors:
400-game_id/gameidis missing or invalid,accountis missing, or the service is not available to the partner401- Authorization error404- Service was not found or does not support account check503- Service is temporarily unavailable or production account check integration is not enabled yet500- Internal error