Mobile Game top-ups

Credit in-game currency, crystals, and passes to game accounts through a single API.

500+

500+

Games in the catalog

5–30 sec

5–30 sec

Crediting time

99.8%

99.8%

Successful transactions

80+

80+

Delivery countries

Popular Games

Mobile Legends

Mobile Legends

Diamonds · MOBA

DiamondsStarlight
PUBG Mobile

PUBG Mobile

UC · Battle Royale

UCRoyale Pass
Free Fire

Free Fire

Diamonds · Battle Royale

DiamondsMembership
Clash of Clans

Clash of Clans

Gems · Strategy

GemsGold Pass
Genshin Impact

Genshin Impact

Genesis Crystals · RPG

CrystalsWelkin Moon
Honkai: Star Rail

Honkai: Star Rail

Oneiric Shards · RPG

ShardsExpress Pass

And 497+ more games in the catalog — GET /games returns the full list with filters by genre, platform, and region.

How Top-Up Works

Choose a game and package

GET /games/{id}/packages — a list of packages with currency amounts and pricing for the selected region.

01

Send the Player ID

The buyer enters their game ID or nickname. POST /topup/validate checks the account before payment.

02

Receive confirmation

The currency has been credited. The response includes the player’s new balance and the transaction_id from the game side.

03

Player ID Types by Game

Numeric User ID

Numeric User ID

Mobile Legends, Free Fire, PUBG Mobile. The player gets their ID from their in-game profile.

Nickname

Nickname

Clash of Clans, Clash Royale. The API finds the account by the player tag (#ABCDE).

UID + Server ID

UID + Server ID

Genshin Impact, Honkai: Star Rail. The server must be specified to ensure correct crediting.

Pre-Validation

Pre-Validation

POST /topup/validate returns the nickname and region before charging — the buyer confirms their account.

Main Endpoints

Documentation

GET

/games

Game catalog with filters

GET

/games/{id}/packages

Currency packages and prices

POST

/topup/validate

Validate player account

POST

/topup

Top up account

GET

/topup/{tx_id}

Transaction status

POST

/webhooks

Register a webhook URL

Step 1 — POST /topup/validate
{
"game_id": "mobile_legends",
"player_id": "123456789",
"zone_id": "8001"
}
→ { "nickname": "ProPlayer99", "region": "SEA", "is_valid": true }
Step 2 — POST /topup
{
"game_id": "mobile_legends",
"player_id": "123456789",
"zone_id": "8001",
"package_id": "ml_diamonds_565",
"external_tx_id": "your-tx-321"
}
RESPONSE
{
"tx_id": "mob_8rx2k...",
"status": "completed",
"game_tx_id": "ML-20240315-4471",
"credited_amount": 565,
"currency_name": "Diamonds",
"completed_at": "2024-03-15T14:03:11Z"
}

Technical Advantages

Two-Step Flow

Two-Step Flow

Account validation before payment — the buyer sees the nickname and confirms their account. This reduces errors and chargebacks.

Packages with Up-to-Date Prices

Packages with Up-to-Date Prices

GET /packages always returns the current packages and prices from the publisher, with no manual updates required.

Idempotency

Idempotency

external_tx_id protects against duplicate top-ups in case of network errors.

Webhook Events

Webhook Events

topup.completed and topup.failed in real time. The game_tx_id field allows you to verify the crediting directly in the game.

FAQ

Why is validation required before top-up?

Mobile games identify players by a numeric ID, which is easy to enter incorrectly. Validation returns the nickname — the buyer sees their name and confirms that the ID was entered correctly. This reduces incorrect top-ups and refunds.

What is zone_id, and is it always required?

Some games, such as Mobile Legends and Genshin Impact, separate players by server. zone_id is the server identifier; without it, the account cannot be found. The required_fields field in GET /games/{id} indicates whether zone_id is required for a specific game.

What if a top-up is stuck and no status has been received?

Request GET /topup/{tx_id} — the status field will show pending, completed, or failed. Transactions with the pending status are automatically resolved within 5 minutes or return failed.

Can you add a game that is not in the catalog?

Yes. Submit a request in your dashboard with the game name and a link to its page. The average addition time is 5–10 business days. Priority integration is available on Pro and Enterprise plans.