Updated 17.04.2026

Steam top-up API

Play Wallet provides a fully open API for topping up Steam accounts. Anyone can connect — an individual or a company — and start topping up Steam from as little as $1.

Merchant botAPI referenceCommission as low as 0.5%
Play WalletAPISteam
On this page

Introduction

We do not restrict the use of our API in any way. You do not need to sign any contracts or paperwork with us — all interaction is built on trust in the platform.

01Open APIavailable to everyone
02Individualor company
03From $1minimum amount
04No contractsno paperwork

Volumes

The API is actively used by traders, Steam investors, and game stores. Play Wallet merchant turnover for 2023–2026 exceeded 2 million dollars.

2M$+merchant turnover for 2023–2026
500 000+transactions processed
3 yearsof stable API operation
FunPay, GGseland other marketplaces use our API

Available Steam countries

Currently, account top-ups are supported for the following regions:

Russia
Azerbaijan
Armenia
Belarus
Kazakhstan
Kyrgyzstan
Moldova
Tajikistan
Turkmenistan
Uzbekistan
Georgia
Ukraine

What do you need for API integration?

To use the API, you need:

How does the Steam top-up API work?

In the current version, our API only works with Bybit accounts. This is primarily to ensure the legitimacy of funds arriving at our crypto wallet.

The API is built on automatic internal Bybit transfers via UID.

  1. You create your account on the Bybit exchange and fund it.
  2. You send to our Bybit account the amount you want to spend on Steam account top-ups.
  3. We instantly credit it to your account.
  4. You can start working by topping up accounts.

API usage diagram

Bybit01Your Bybit accountFund the exchangeStep 1. You transfer USDT to us via UID
Bybit02Our Bybit accountAutomatic 1:1 creditingStep 2. We credit funds to your balance 1:1
03API balanceAutomatic creditingStep 3. Creating Steam top-up requests · N% commission
Steam04Steam accountsAutomatic top-up
Commission is automatically deducted from each order
Top-up $100 + commission $2 = $102 from balance

Commission rate

Your initial commission will be only 2%. Then, if you generate volume above:

Start2%initial commission
from $5,000/mo1%with turnover above $5,000 per month
from $50,000/mo0,5%with turnover above $50,000 per month

How to connect to the API?

To quickly connect to our API, follow these steps:

Play Wallet (API)API for topping up various gaming platforms: Steam and others.START BOT
@pwMerchantBot
  1. Open our Telegram bot for API and press "Start":
    /startstart working with the bot
  2. Using commands, provide the bot with the following information:
    /set_emailenter your Bybit account email
    /edit_ipadd the DEV server IP address
    /edit_ipadd the PROD server IP address
  3. Request access tokens:
    /tokensget tokens for DEV and PROD
  4. Then you can proceed with integration.

Available bot commands

General commands/helpShow command list/set_languageChange language
Balance and commission/balanceShow your balance/commissionCurrent commission rate/top_upAccount top-up instructions
Access settings/tokensShow access tokens/ip_listList of allowed IPs/edit_ipEdit IP in the list/set_emailSet Bybit email/emailShow Bybit email
Data export/orders_exportTransaction history/deposits_exportDeposit history

API connection FAQ

  • You can use the same server IP address for both the PROD version and the DEV environment.
  • You set up user payments on your side; through our API you only credit money to users on Steam.
  • You top up your balance in our API, accept payment from the user (by any method you choose), and if there are no issues, credit the money to the user. We deduct the order amount from your balance.

Test / DEV version

In the DEV version, you do not need to top up your balance or pay for orders. The main goal is to ensure all API requests are processed correctly and return responses without errors.

https://dev.merchant.playwallet.bot/api/merchant/

Then you can proceed with the PROD version integration.

Top up balance to create a transaction

Once the PROD version is fully ready, you can start creating orders to top up Steam accounts. However, you need to top up your balance first.

Send more than 1 USDT from your Bybit account via internal transfer to our account. This is how you top up your balance each time it runs out.

Our Bybit account UID details:

BybitUID137 323 163

Guide to internal Bybit transfer by UID

  1. Log in to your Bybit account (the account must be registered with the email you previously provided us).
  2. Hover over your profile in Bybit and click "Withdraw".
  3. Select the coin — USDT.
  4. Specify that it is an Internal transfer.
  5. Enter the destination account UID — 137323163.
  6. Enter the withdrawal amount and click "Confirm".

After sending, the funds will arrive in your API balance within a minute, and you can start creating orders.

If you made a mistake when sending the order, for example chose the wrong coin, contact us, and we will return your funds.

API reference

https://merchant.playwallet.bot/api/merchant/

Authorization

All API requests must be authorized using an API key passed via the pw-api-key header. The client IP must be in the list of allowed IP addresses for the given merchant.

pw-api-keyMerchant API key

GET/get-balance

Get the merchant balance and the list of available services for payment.

Headers

pw-api-keyMerchant API key
curl "https://merchant.playwallet.bot/api/merchant/get-balance" \
  --header "pw-api-key: <API_KEY>"
{
  "status": "success",
  "message": "",
  "data": {
    "balance": "0.00",
    "frozenBalance": "0.00",
    "feeRatio": "0.0600",
    "services": [
      {
        "id": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
        "name": "test",
        "minAmount": "0.25",
        "maxAmount": "200.00"
      }
    ]
  }
}

POST/create-order/

Create a new order.

Headers

pw-api-keyMerchant API key

Request body

externalIdUnique order identifier provided by the client. Used to link the order with the client's external system.
serviceIdService identifier the client wants to order. Must match one of the services available in the system.
amountOrder amount in the currency set for the merchant. Must be a string with two decimal places.
loginUser login for whom the order is created. DEV login 123456789.
curl "https://merchant.playwallet.bot/api/merchant/create-order/" \
  --request POST \
  --header "pw-api-key: <API_KEY>" \
  --header "Content-Type: application/json" \
  --data '{
    "externalId": "ext-12345",
    "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
    "amount": "150.00",
    "login": "user123"
  }'
{
  "status": "success",
  "message": "",
  "data": {
    "id": "72cf5503-ae6a-45af-97b8-aae3a0731687",
    "status": "queued",
    "externalId": "7",
    "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
    "amount": "1.00",
    "amountFee": "0.03",
    "feeRatio": "0.03",
    "createdDateTime": "2024-04-18T17:36:55.453116",
    "expiredDateTime": "2024-04-18T17:46:55.453069",
    "completedDateTime": null
  }
}

POST/pay-order/

Pay for a created order.

Headers

pw-api-keyMerchant API key

Request body

01Order identifier (id)"72cf5503-ae6a-45af-97b8-aae3a0731687"
02Order creation time (createdDateTime)"2024-04-18T17:36:55.453116"
03Concatenation"72cf5503-ae6a-45af-97b8-aae3a07316872024-04-18T17:36:55.453116"
04Applying SHA-512 to the concatenationSHA512("72cf5503-ae6a-45af-97b8-aae3a07316872024-04-18T17:36:55.453116")
05Result: hash string representing the tokendb8e5992e47c48b46f59ecdd1789cc525f4061a52fbf8200dbdab4bc0929de9cf2f61bd8725314440c498a694176b06a2faec22776be4dc8123fffee14b027a5
curl "https://merchant.playwallet.bot/api/merchant/pay-order/" \
  --request POST \
  --header "pw-api-key: <API_KEY>" \
  --header "Content-Type: application/json" \
  --data '{
    "id": "72cf5503-ae6a-45af-97b8-aae3a0731687",
    "externalId": "ext-12345",
    "token": "db8e5992e47c48b46f59ecdd1789cc525f4061a52fbf8200dbdab4bc0929de9cf2f61bd8725314440c498a694176b06a2faec22776be4dc8123fffee14b027a5"
  }'
{
  "status": "success",
  "message": "",
  "data": {
    "id": "b8509f61-17fd-4578-8529-7bfb29f14d39",
    "status": "queued",
    "externalId": "ext-12345",
    "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
    "amount": "150.00",
    "amountFee": "0.00",
    "feeRatio": "0.00",
    "createdDateTime": "2024-04-16T03:07:16.739351",
    "expiredDateTime": "2024-04-16T03:34:14",
    "completedDateTime": null
  }
}

GET/get-order/{id}

Get order status.

Headers

pw-api-keyMerchant API key

Query parameters

idOrder identifier
curl "https://merchant.playwallet.bot/api/merchant/get-order/72cf5503-ae6a-45af-97b8-aae3a0731687" \
  --header "pw-api-key: <API_KEY>"
{
  "status": "success",
  "message": "",
  "data": {
    "id": "72cf5503-ae6a-45af-97b8-aae3a0731687",
    "status": "completed",
    "externalId": "7",
    "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
    "amount": "1.00",
    "amountFee": "0.03",
    "feeRatio": "0.03",
    "createdDateTime": "2024-04-18T17:36:55.453116",
    "expiredDateTime": "2024-04-18T17:46:55.453069",
    "completedDateTime": "2024-04-18T17:44:31.974430"
  }
}

GET/get-order-list/

Get merchant order history.

Headers

pw-api-keyMerchant API key

Query parameters

offsetList start offset (default 0)
limitNumber of orders returned (default 10)
curl "https://merchant.playwallet.bot/api/merchant/get-order-list/?offset=0&limit=10" \
  --header "pw-api-key: <API_KEY>"
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": "8ca9e0bf-b45b-43c4-acb2-93f467b1760e",
      "status": "active",
      "externalId": "6",
      "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
      "amount": "1.00",
      "amountFee": "0.03",
      "feeRatio": "0.03",
      "createdDateTime": "2024-04-18T17:33:13.510839",
      "expiredDateTime": "2024-04-18T17:43:13.510798",
      "completedDateTime": null
    },
    {
      "id": "72cf5503-ae6a-45af-97b8-aae3a0731687",
      "status": "completed",
      "externalId": "7",
      "serviceId": "ff71c998-14be-4e3d-8ad3-0ffc8357265b",
      "amount": "1.00",
      "amountFee": "0.03",
      "feeRatio": "0.03",
      "createdDateTime": "2024-04-18T17:36:55.453116",
      "expiredDateTime": "2024-04-18T17:46:55.453069",
      "completedDateTime": "2024-04-18T17:44:31.974430"
    }
  ]
}

Order statuses

StatusDescription
activeAwaiting payment confirmation
queuedQueued for processing
completedCompleted successfully
errorExecution error — order was not paid, no charges from account

Limitations

No limitations at this time.

We do not request from you nor provide any legal documents confirming the cooperation.

All interaction is based solely on your trust in our platform.

Refusal or termination of cooperation

We reserve the right to refuse cooperation without explanation.

In case of violation of our agreement terms, cooperation with you will be immediately terminated.

Changes

We reserve the right to change and update API information at our discretion. Although frequent changes are not expected, we recommend regularly checking this page to stay up to date.

We will notify about all significant changes in this section.

Steam top-up API — Play Wallet