> For the complete documentation index, see [llms.txt](https://docs.0xprocessing.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.0xprocessing.com/0xprocessing-api-v1/deposits/static-wallet.md).

# Static wallet

Use static wallets for simple, consistent crypto payment solutions that enhance convenience and reliability for businesses and their customers.

This method allows a Merchant to assign permanent deposit wallets to Clients instead of creating a new payment form for each deposit. A Client can deposit any amount greater than the minimum amount (\~3 USD). The funds are sent to the processing vault and then credited to the Merchant balance.

{% hint style="warning" %}
**This type of deposit does not support the XRP currency**
{% endhint %}

{% hint style="danger" %}
When requesting a deposit of **GRAM, USDT (TON), NOT (TON)** currencies, the "Tag" parameter is also passed. This value must be displayed in your payment form because a Client payment without Tag will not be processed automatically.

The resulting value of the Tag parameter is static for the Client.

The payment form must contain a field with the value of the Tag/memo parameter.
{% endhint %}

### Rules for integrating the Static Wallet method:

{% hint style="danger" %}
**IMPORTANT:** Create a separate wallet for a Client only when that Client wants to use the wallet for the first time.

For example:

**Step 1:** The Client registers on your platform. Do not create static wallets for all blockchains and tokens at this stage.

**Step 2:** When the Client wants to use a coin or network for the first time, create the static wallet at that moment. For example, create only USDT (TRC20) if that is the first currency the Client wants to use. The Client will continue using this static wallet in the future.

**Step 3:** Do not create static wallets for tokens that the Client does not use.

**Step 4:** To disable static Client wallets, send the {clientid} POST request to the method: <https://app.0xprocessing.com/Api/DisableClientWallets/{clientId}>
{% endhint %}

## **Creating a wallet for a user**

The request must contain an **APIKEY header with your API key**. The key can be generated in the menu **Settings → API**.

**Import the user's ID into the 0xProcessing system to create a permanent individual wallet for your Client using the user ID from the Merchant platform:**

**Method: POST**

**Content Type: application/json**

**Endpoint:**

```
https://app.0xprocessing.com/Api/CreateClientWallet
```

**Parameters:**

<table><thead><tr><th width="133">Name</th><th width="507">Description</th><th>Type</th></tr></thead><tbody><tr><td>Currency</td><td>Wallet currency.<a href="https://docs.0xprocessing.com/basic/general/available-assets#crypto-currencies"> List of supported currencies</a></td><td>string</td></tr><tr><td>ClientId</td><td>Unique user ID in your system</td><td>string</td></tr></tbody></table>

**Result:**

**Parameters:**

<table><thead><tr><th width="167">Name</th><th width="307">Description</th><th>Type</th></tr></thead><tbody><tr><td>currency</td><td>Wallet currency</td><td>string</td></tr><tr><td>address</td><td>Wallet address</td><td>string</td></tr><tr><td>tag</td><td>Unique identifier of the Client that must be specified when sending funds in GRAM, USDT (TON), NOT (TON)</td><td>string</td></tr></tbody></table>

```json

                        {
                        "currency": "string",
                        "address": "string",
                        "tag": "string"
                        }
```

{% hint style="info" %}
To support different currencies from the same network, one constant wallet address will be created for each Client.

For example: for TRX and USDT (TRC20) the Client will have the same wallet address.
{% endhint %}

{% hint style="warning" %}
To let a Client deposit funds in a selected currency, a static wallet must be created in that currency. For example, if only a TRX wallet has been created, but the Client sends USDT (TRC20), the payment will not be processed automatically unless a static USDT (TRC20) wallet has been created. Initialize the static wallet in each required currency before accepting payments from the Client.

If a static wallet was initialized by mistake after the Client sent funds in the wrong currency, contact 0xProcessing payment support for assistance.
{% endhint %}

## **Getting the list of wallets by customer ID:**

The request must contain an **APIKEY header with your API key**. The key can be generated in the menu **Settings → API**.

**Method: GET**

**Endpoint:**

```
https://app.0xprocessing.com/Api/GetClientWallets/{Id}
```

**Parameters:**

<table><thead><tr><th width="148">Name</th><th width="307">Description</th><th>Type</th></tr></thead><tbody><tr><td>Id</td><td>Unique user ID in your system</td><td>string</td></tr></tbody></table>

**Result:**

**Parameters:**

<table><thead><tr><th width="161">Name</th><th width="307">Description</th><th>Type</th></tr></thead><tbody><tr><td>currency</td><td>Wallet currency</td><td>string</td></tr><tr><td>address</td><td>Wallet address</td><td>string</td></tr><tr><td>tag</td><td>Unique identifier of the Client that must be specified when sending funds in GRAM, USDT (TON), NOT (TON)</td><td>string</td></tr><tr><td>balance</td><td>Wallet balance</td><td>decimal</td></tr></tbody></table>

```json
                        [
                        {
                        "currency": "string",
                        "address": "string"
                        }
                        ]
```

{% hint style="success" %}
After creating a wallet, the user can deposit any amount to it.
{% endhint %}

Deposit status updates can be delivered through webhooks.

{% content-ref url="/pages/F6yWUooJ9PxeZEJxC2IT" %}
[Webhooks](/0xprocessing-api-v1/webhooks.md)
{% endcontent-ref %}

## Disabling wallets by customer ID:

Use this method on the Merchant side if the customer has been blocked or deleted from the system. This request disables the customer's static wallets.

This request disables all static wallets of the specified customer.

The request must contain an **APIKEY header with your API key**. The key can be generated in the menu **Settings → API**.

**Method: POST**

**Content Type: application/json**

**Endpoint:**

```
https://app.0xprocessing.com/Api/DisableClientWallets/{clientId}
```

**Parameters:**

<table><thead><tr><th width="148">Name</th><th width="307">Description</th><th>Type</th></tr></thead><tbody><tr><td>clientId</td><td>Unique user ID in your system</td><td>string</td></tr></tbody></table>

**Response:**

{% hint style="success" %}
**HTTP Code: 200 OK**
{% endhint %}

## Enabling wallets by customer ID:

Use this method on the Merchant side if the customer has been unblocked or has returned to your service. This request enables the customer's static wallets again.

This request enables all static wallets of the specified customer again.

The request must contain an **APIKEY header with your API key**. The key can be generated in the menu **Settings → API**.

**Method: POST**

**Content Type: application/json**

**Endpoint:**

```
https://app.0xprocessing.com/Api/EnableClientWallets/{clientId}
```

**Parameters:**

<table><thead><tr><th width="148">Name</th><th width="307">Description</th><th>Type</th></tr></thead><tbody><tr><td>clientId</td><td>Unique user ID in your system</td><td>string</td></tr></tbody></table>

**Response:**

{% hint style="success" %}
**HTTP Code: 200 OK**
{% endhint %}

## Permanently blocking static wallets

Use this method to permanently block static wallets associated with a specific Client ID and wallet address.

The method blocks every static wallet that matches both the specified `ClientId` and `Address`. Because currencies on the same network may share an address, a single request may block multiple wallet records.

> **Warning:** This action is irreversible. Permanently blocked wallets cannot be enabled again through the API or the Merchant Dashboard.

After the wallets have been permanently blocked, you can call [the static wallet creation method ](https://docs.0xprocessing.com/0xprocessing-api-v1/deposits/static-wallet#creating-a-wallet-for-a-user)again with the same `ClientId` and currency. A new static wallet address will be generated.

Make sure that permanently blocked addresses are no longer displayed to Clients or used for new deposits.

The request must contain an `APIKEY` header with your API key. The key can be generated under **Setting → API**.

**Method:** POST

**Content Type:** application/json

**Endpoint:**

```
https://app.0xprocessing.com/Api/BlockClientWallets
```

### Request parameters

| Name       | Description                               | Type   |
| ---------- | ----------------------------------------- | ------ |
| `ClientId` | Unique Client ID in the Merchant's system | string |
| `Address`  | Public wallet address to block            | string |

### Request body

```json
{
  "ClientId": "abc123",
  "Address": "0x71..."
}
```

### Request example

```bash
curl --request POST   --url https://app.0xprocessing.com/Api/BlockClientWallets   --header "APIKEY: YOUR_API_KEY"   --header "Content-Type: application/json"   --data '{
    "ClientId": "abc123",
    "Address": "0x71..."
  }'
```

### Responses

| HTTP status        | Description                                                                                               |
| ------------------ | --------------------------------------------------------------------------------------------------------- |
| `200 OK`           | The request was processed successfully. This response is also returned if no matching wallets were found. |
| `401 Unauthorized` | The `APIKEY` header is missing, invalid, or associated with an inactive account.                          |
