> For the complete documentation index, see [llms.txt](https://www.notbank.com/learn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.notbank.com/learn/api-reference/websocket-api/product-currency.md).

# Product (Currency)

### GetProduct

**Permissions:** Public\
**Call Type:** Synchronous

Gets the details about a specific product (currency) on the exchange. A product is an asset that can be deposited and withdrawn but cannot be traded.

#### Request

{% tabs %}
{% tab title="Node" %}

```javascript
import Notbank from 'notbank'
// websocket connection code ...

await client.getProductService().getProduct({
  ProductId: 1
});

// parameters
{
  ProductId: number;
}
```

{% endtab %}

{% tab title="Java" %}

```java
import exchange.notbank.product.paramBuilders.GetProductParamBuilder;

var response = client.getProductService().getProduct(new GetProductParamBuilder(1)).get();
```

{% endtab %}

{% tab title="Python" %}

```python
from notbank_python_sdk.requests_models.get_product_request import GetProductRequest

response = client.get_product(GetProductRequest(product_id=1))
```

{% endtab %}

{% tab title="Json" %}

```json
{
  "m": 0,
  "i": 0,
  "n": "GetProduct",
  "o": "{
    \"OMSId\": 1,
    \"ProductId\": 1
  }"
}
```

{% endtab %}
{% endtabs %}

| Key       | Value                                                                  |
| --------- | ---------------------------------------------------------------------- |
| OMSId     | **integer**. The ID of the OMS. **required**.                          |
| ProductId | **integer**. The ID of the product on the specified OMS. **required**. |

#### Response

```json
{
  "m": 1,
  "i": 0,
  "n": "GetProduct",
  "o": "{
    \"OMSId\": 1,
    \"ProductId\": 1,
    \"Product\": \"USD\",
    \"ProductFullName\": \"US Dollar\",
    \"MasterDataUniqueProductSymbol\": \"\",
    \"ProductType\": \"NationalCurrency\",
    \"DecimalPlaces\": 2,
    \"TickSize\": 0.01,
    \"DepositEnabled\": true,
    \"WithdrawEnabled\": true,
    \"NoFees\": false,
    \"IsDisabled\": false,
    \"MarginEnabled\": false
  }"
}
```

| Key                           | Value                                                                                                                                                                                                                                    |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OMSId                         | **integer**. The ID of the OMS on which the product resides.                                                                                                                                                                             |
| ProductId                     | **integer**. The ID of the product.                                                                                                                                                                                                      |
| Product                       | **string**. The symbol of the product.                                                                                                                                                                                                   |
| ProductFullName               | **string**. The full name of the product.                                                                                                                                                                                                |
| MasterDataUniqueProductSymbol | **string**. Always an empty string, for future provision.                                                                                                                                                                                |
| ProductType                   | <p><strong>string</strong>. The nature of the product. Unknown represents an error. One of:<br>- 0 Unknown<br>- 1 NationalCurrency<br>- 2 CryptoCurrency<br>- 3 Contract.</p>                                                            |
| DecimalPlaces                 | **integer**. The maximum number of decimal places allowed for the amount of product that an account may have.                                                                                                                            |
| TickSize                      | **decimal**. The smallest increment of the amount of the specific product that an account may have.                                                                                                                                      |
| DepositEnabled                | **boolean**. If deposit for the product are enabled.                                                                                                                                                                                     |
| WithdrawEnabled               | **boolean**. If withdrawal for the product is enabled.                                                                                                                                                                                   |
| NoFees                        | **boolean**. If *false*, fees incurred by the account can be charged in the denomination of the specific product. If *NoFees* is *true*, fees incurred by the account will never be charged in the denomination of the specific product. |
| IsDisabled                    | **boolean**. If true, product is disabled and cannot be used, no deposits and withdrawals can be done.                                                                                                                                   |
| MarginEnabled                 | **boolean**. Margin is not yet supported so defaults to false; for future provisions.                                                                                                                                                    |

### GetProducts

**Permissions:** Public\
**Call Type:** Synchronous

Gets a list of products available on the exchange. A product is an asset that can be deposited and withdrawn but cannot be traded.

#### Request

{% tabs %}
{% tab title="Node" %}

```javascript
import Notbank from 'notbank'
// websocket connection code ...

//Get all enabled products
await client.getProductService().getProducts();

//Get all products including disabled products
await client.getProductService().getProducts({
  GetDisabled: true
});

//Get all products that matches an attribute and its value
await client.getProductService().getProducts({
  Attribute: "Pegged",
  AttributeValue: true
});

await client.getProductService().getProducts({
  AttGetDisabledribute: 1,
  Depth: 10, //will only return max 10 results
  StartIndex: 0 //will return products starting from Productd 1, a StartIndex of 10 will return products starting from ProductId 11(means that ProductsId 1 - 10 will not be in he results)
});

// parameters
{
  Attribute?: string;
  AttributeValue?: string;
  GetDisabled?: number;
  Depth?: number;
  StartIndex?: number;
}
```

{% endtab %}

{% tab title="Java" %}

```java
import exchange.notbank.product.paramBuilders.GetProductsParamBuilder;

//Get all enabled products
var response = client.getProductService().getProducts(new GetProductsParamBuilder()).get();

//Get all products including disabled products
var response = client.getProductService().getProducts(new GetProductsParamBuilder().getDisabled(true)).get();

//Get all products that matches an attribute and its value
var response = client.getProductService().getProducts(new GetProductsParamBuilder()
    .attribute("Pegged")
    .attributeValue(true)).get();

var response = client.getProductService().getProducts(new GetProductsParamBuilder()
    .getDisabled(false)
    .depth(10)
    .startIndex(0)).get();

```

{% endtab %}

{% tab title="Python" %}

```python
from notbank_python_sdk.requests_models.get_products_request import GetProductsRequest

# Get all enabled products
response = client.get_products()

# Get all products including disabled products
response = client.get_products(
    GetProductsRequest(get_disabled=True))

# Get all products that matches an attribute and its value
response = client.get_products(GetProductsRequest(
    attribute="Pegged",
    attribute_value=True))

response = client.get_products(GetProductsRequest(
    get_disabled=False,
    depth=10,
    start_index=0))
```

{% endtab %}

{% tab title="Json" %}

```json
//Get all enabled products
{
  "m": 0,
  "i": 0,
  "n": "GetProducts",
  "o": "{
    \"OMSId\": 1
  }"
}

//Get all products including disabled products
{
  "m": 0,
  "i": 0,
  "n": "GetProducts",
  "o": "{
    \"OMSId\": 1,
    \"GetDisabled\": true
  }"
}

//Get all products that matches an attribute and its value
{
  "m": 0,
  "i": 0,
  "n": "GetProducts",
  "o": "{
    \"OMSId\": 1,
    \"Attribute\": \"Pegged\",
    \"AttributeValue\": true
  }"
}


{
  "m": 0,
  "i": 0,
  "n": "GetProducts",
  "o": "{
    \"OMSId\": 1,
    \"GetDisabled\": 1,
    \"Depth\": 10, //will only return max 10 results
    \"StartIndex\": 0, //will return products starting from Productd 1, a StartIndex of 10 will return products starting from ProductId 11(means that ProductsId 1 - 10 will not be in he results)
  }"
}
```

{% endtab %}
{% endtabs %}

| Key            | Value                                                                                                                                                                        |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OMSId          | **integer**. The ID of the OMS. **required**.                                                                                                                                |
| Attribute      | **string**. The attribute key or name for which you want to filter the results with. **optional**.                                                                           |
| AttributeValue | **string**. Used to filter the results further, only products whose attribute value will match the one set will be returned. **optional**.                                   |
| GetDisabled    | **boolean**. Used to filter disabled products, setting this to true will return all products including the disabled ones. **optional**.                                      |
| Depth          | **integer**. Used for pagination. Indicates the maximum number of results/products to be returned. Default is 50. **optional**.                                              |
| StartIndex     | **integer**. Used for pagination. ProductId 1 represents index 0. A value of 2 for this field will not include ProductId 1 and 2 in the results. Default is 0. **optional**. |

#### Response

```json
{
  "m": 1,
  "i": 0,
  "n": "GetProducts",
  "o": "[
    {
      \"OMSId\": 1,
      \"ProductId\": 1,
      \"Product\": \"USD\",
      \"ProductFullName\": \"US Dollar\",
      \"MasterDataUniqueProductSymbol\": \"\",
      \"ProductType\": \"NationalCurrency\",
      \"DecimalPlaces\": 2,
      \"TickSize\": 0.01,
      \"DepositEnabled\": true,
      \"WithdrawEnabled\": true,
      \"NoFees\": false,
      \"IsDisabled\": false,
      \"MarginEnabled\": false
    },
    {
      \"OMSId\": 1,
      \"ProductId\": 2,
      \"Product\": \"BTC\",
      \"ProductFullName\": \"Bitcoin\",
      \"MasterDataUniqueProductSymbol\": \"\",
      \"ProductType\": \"CryptoCurrency\",
      \"DecimalPlaces\": 8,
      \"TickSize\": 0.00000001,
      \"DepositEnabled\": true,
      \"WithdrawEnabled\": true,
      \"NoFees\": false,
      \"IsDisabled\": false,
      \"MarginEnabled\": false
    }
  ]"
}
```

Returns an array of objects as a response, one object for each product available on the OMS.

| Key                           | Value                                                                                                                                                                                                                                    |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OMSId                         | **integer**. The ID of the OMS on which the product resides.                                                                                                                                                                             |
| ProductId                     | **integer**. The ID of the product.                                                                                                                                                                                                      |
| Product                       | **string**. The symbol of the product.                                                                                                                                                                                                   |
| ProductFullName               | **string**. The full name of the product.                                                                                                                                                                                                |
| MasterDataUniqueProductSymbol | **string**. Always an empty string, for future provision.                                                                                                                                                                                |
| ProductType                   | <p><strong>string</strong>. The nature of the product. Unknown represents an error. One of:<br>- 0 Unknown<br>- 1 NationalCurrency<br>- 2 CryptoCurrency<br>- 3 Contract.</p>                                                            |
| DecimalPlaces                 | **integer**. The maximum number of decimal places allowed for the amount of product that an account may have.                                                                                                                            |
| TickSize                      | **decimal**. The smallest increment of the amount of the specific product that an account may have.                                                                                                                                      |
| DepositEnabled                | **boolean**. If deposit for the product are enabled.                                                                                                                                                                                     |
| WithdrawEnabled               | **boolean**. If withdrawal for the product is enabled.                                                                                                                                                                                   |
| NoFees                        | **boolean**. If *false*, fees incurred by the account can be charged in the denomination of the specific product. If *NoFees* is *true*, fees incurred by the account will never be charged in the denomination of the specific product. |
| IsDisabled                    | **boolean**. If true, product is disabled and cannot be used, no deposits and withdrawals can be done.                                                                                                                                   |
| MarginEnabled                 | **boolean**. Margin is not yet supported so defaults to false; for future provisions.                                                                                                                                                    |

### GetVerificationLevelConfig

**Permissions:** NotbankTrading, NotbankDeposit, NotbankWithdraw\
**Call Type:** Synchronous

Gets the verification level configuration of the requested account.

In NotBank, a verification level determines the limits of an account in terms of deposits, withdrawals, transfers and trading. This verification level config response of this method only applies to deposits, withdrawals and transfers and is only about a product or asset.

Each product or asset will have separate and possibly unique limits, different than other products.

A limit value of -1 means infinite or no limit.

#### Request

{% tabs %}
{% tab title="Node" %}

```javascript
import Notbank from 'notbank'
// websocket connection code ...

await client.getProductService().getVerificationLevelConfig({
  AccountId: 7
});

// parameters
{
  AccountId: number;
}
```

{% endtab %}

{% tab title="Java" %}

```java
import exchange.notbank.product.paramBuilders.GetVerificationLevelConfigParamBuilder;

var response = client.getProductService()
        .getVerificationLevelConfig(new GetVerificationLevelConfigParamBuilder(7)).get();
```

{% endtab %}

{% tab title="Python" %}

```python
from notbank_python_sdk.requests_models import VerificationLevelConfigRequest

response = client.get_verification_level_config(
    VerificationLevelConfigRequest(account_id=7))
```

{% endtab %}

{% tab title="Json" %}

```json
{
  "m": 0,
  "i": 0,
  "n": "GetVerificationLevelConfig",
  "o": "{
    \"OMSId\": 1,
    \"AccoundId\": 7
  }"
}
```

{% endtab %}
{% endtabs %}

| Key       | Value                                                                                                             |
| --------- | ----------------------------------------------------------------------------------------------------------------- |
| OMSId     | **integer**. The ID of the OMS on which the account resides. **required**.                                        |
| AccountId | **integer**. The ID of the account for which you wish to get product verification level config for. **required**. |

#### Response

```json
{
  "m": 1,
  "i": 0,
  "n": "GetVerificationLevelConfig",
  "o": "{
    \"Level\": 111,
    \"LevelName\": null,
    \"OMSId\": 1,
    \"Products\": [
      {
        \"VerificationLevel\": 111,
        \"VerificationLevelName\": null,
        \"OMSId\": 1,
        \"ProductId\": 1,
        \"ProductName\": \"USD\",
        \"AutoWithdrawThreshold\": 0.0,
        \"DailyDepositLimit\": 0.0,
        \"DailyDepositNotionalLimit\": -1.0,
        \"MonthlyDepositLimit\": 0.0,
        \"MonthlyDepositNotionalLimit\": -1.0,
        \"YearlyDepositLimit\": 0.0,
        \"YearlyDepositNotionalLimit\": 1000000.0,
        \"DailyWithdrawLimit\": 0.0,
        \"DailyWithdrawNotionalLimit\": -1.0,
        \"MonthlyWithdrawLimit\": 0.0,
        \"MonthlyWithdrawNotionalLimit\": -1.0,
        \"YearlyWithdrawLimit\": 0.0,
        \"YearlyWithdrawNotionalLimit\": 1000000.0,
        \"DailyTransferNotionalLimit\": -1.0,
        \"NotionalProductId\": 0,
        \"OverLimitRejected\": false,
        \"WithdrawProcessingDelaySec\": 0,
        \"DepositTicketWorkflow\": \"Internal\",
        \"WithdrawTicketWorkflow\": \"Internal\",
        \"RequireWhitelistedAddress\": false,
        \"AutoAcceptWhitelistedAddress\": false
      },
      {
        \"VerificationLevel\": 111,
        \"VerificationLevelName\": null,
        \"OMSId\": 1,
        \"ProductId\": 2,
        \"ProductName\": \"BTC\",
        \"AutoWithdrawThreshold\": 0.0,
        \"DailyDepositLimit\": 0.0,
        \"DailyDepositNotionalLimit\": -1.0,
        \"MonthlyDepositLimit\": 0.0,
        \"MonthlyDepositNotionalLimit\": -1.0,
        \"YearlyDepositLimit\": 0.0,
        \"YearlyDepositNotionalLimit\": 1000000.0,
        \"DailyWithdrawLimit\": 0.0,
        \"DailyWithdrawNotionalLimit\": -1.0,
        \"MonthlyWithdrawLimit\": 0.0,
        \"MonthlyWithdrawNotionalLimit\": -1.0,
        \"YearlyWithdrawLimit\": 0.0,
        \"YearlyWithdrawNotionalLimit\": 1000000.0,
        \"DailyTransferNotionalLimit\": -1.0,
        \"NotionalProductId\": 0,
        \"OverLimitRejected\": false,
        \"WithdrawProcessingDelaySec\": 0,
        \"DepositTicketWorkflow\": \"Internal\",
        \"WithdrawTicketWorkflow\": \"Internal\",
        \"RequireWhitelistedAddress\": false,
        \"AutoAcceptWhitelistedAddress\": false
      }
    ]
  }"
}
```

| Key       | Value                                                                                                                            |
| --------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Level     | **integer**. The verification level the account specified is currently on.                                                       |
| LevelName | **string**. The of name the verification level the account specified is currently on.                                            |
| OMSId     | **integer**. The ID of the OMS on which the account resides.                                                                     |
| Products  | **array**. An array of objects, each object will contain the limits of a specific product, as described bellow in ProductLimits. |

**ProductLimits**

| Key                          | Value                                                                                                                                                                                       |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ProductId                    | **integer**. The ID of the product to which the specific verification level limits applies.                                                                                                 |
| ProductName                  | **string**. The name of the product to which the specific verification level limits applies.                                                                                                |
| AutoWithdrawThreshold        | **decimal**. The maximum withdraw amount which can be autoaccepted.                                                                                                                         |
| DailyDepositLimit            | **decimal**. The maximum amount of the product that can be deposited daily.                                                                                                                 |
| DailyDepositNotionalLimit    | **decimal**. The maximum notional amount of the product that can be deposited daily.                                                                                                        |
| MonthlyDepositLimit          | **decimal**. The maximum amount of the product that can be deposited monthly.                                                                                                               |
| MonthlyDepositNotionalLimit  | **decimal**. The maximum notional amount of the product that can be deposited monthly.                                                                                                      |
| YearlyDepositLimit           | **decimal**. The maximum amount of the product that can be deposited annually.                                                                                                              |
| YearlyDepositNotionalLimit   | **decimal**. The maximum notional amount of the product that can be deposited annually.                                                                                                     |
| DailyWithdrawLimit           | **decimal**. The maximum amount of the product that can be withdrawn daily.                                                                                                                 |
| DailyWithdrawNotionalLimit   | **decimal**. The maximum notional amount of the product that can be withdrawn daily.                                                                                                        |
| MonthlyWithdrawLimit         | **decimal**. The maximum amount of the product that can be withdrawn monthly.                                                                                                               |
| MonthlyWithdrawNotionalLimit | **decimal**. The maximum notional amount of the product that can be withdrawn monthly.                                                                                                      |
| YearlyWithdrawLimit          | **decimal**. The maximum amount of the product that can be withdrawn annually.                                                                                                              |
| YearlyWithdrawNotionalLimit  | **decimal**. The maximum notional amount of the product that can be withdrawn annually.                                                                                                     |
| NotionalProductId            | **integer**. The ID of the notional product.                                                                                                                                                |
| OverLimitRejected            | **boolean**. If true, all deposit and withdrawals which exceeds limits will be automatically rejected, else those tickets will stay at the status New.                                      |
| WithdrawProcessingDelaySec   | **integer**. The delay, in minutes, before a withdraw request will be Submitted onchain after getting accepted.                                                                             |
| DepositTicketWorkflow        | **string**. The deposit workflow.                                                                                                                                                           |
| WithdrawTicketWorkflow       | **string**. The withdraw workflow.                                                                                                                                                          |
| RequireWhitelistedAddress    | **boolean**. If true, users can only withdraw to whitelisted withdraw address, if the user does not have a verified withdraw address, he/she will not be able to submit a withdraw request. |
| AutoAcceptWhitelistedAddress | **boolean**. If true, withdrawal to whitelisted address will be auto-accepted.                                                                                                              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.notbank.com/learn/api-reference/websocket-api/product-currency.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
