> For the complete documentation index, see [llms.txt](https://ton-play-1.gitbook.io/ton-play-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ton-play-1.gitbook.io/ton-play-1/payment-solution/on-demand-withdrawals.md).

# On-demand Withdrawals

Released in beta mode.

This solution provides auto-withdrawals, so you don't need to sign transactions.&#x20;

### Requirements

1. your game should have [API Key ](/ton-play-1/digital-assets-api/api-key.md)
2. your game should have filled *withdraw verify URL* that must be:
   * GET type&#x20;
   * publicly available
   * take query parameter `withdrawalId: String`
   * return data as `{address: String, amount: Numeric}`

### Overview

1. Create a project here: [console.tonplay.io](https://console.tonplay.io), and get a team wallet address.&#x20;
2. The game backend creates a withdrawal request `(id, amount, receiverAddress`) in a database and sends this `withdrawRequestId` to TON Play.
3. TON Play asks the game backend for details about receiving `withdrawRequestId` (you need to prepare a publicly accessible withdraws validation endpoint).
4. If `withdrawRequestId` is valid, the game backend should return an amount and a receiver address -> TON Play will transfer from the team wallet to the target address.
5. If `withdrawRequestId` is not valid, the game backend should return any error (400, 401, 404 HTTP) -> TON Play will not make any transfer.

{% hint style="info" %}
First transactions on the wallet will be charged by additional 0.033 TON for wallet deploy
{% endhint %}

{% hint style="success" %}
**API Key** is required for this request
{% endhint %}

## Request to withdraw

<mark style="color:green;">`POST`</mark> `https://external.api.tonplay.io/x/gamecenter/v1/withdraw`

#### Request Body

| Name         | Type   | Description                |
| ------------ | ------ | -------------------------- |
| withdrawalId | String | withdraw id in your system |
