# Schemas

## The CustomerProductUpdate object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CustomerProductUpdate":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/CustomerProductStatusUpdate"}},"required":["status"]},"CustomerProductStatusUpdate":{"title":"CustomerProductStatusUpdate","type":"string","enum":["CLOSED"]}}}}
```

## The CustomerProductData object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CustomerProductData":{"type":"object","properties":{"productCode":{"$ref":"#/components/schemas/ProductCodeEnum"}},"required":["productCode"]},"ProductCodeEnum":{"title":"ProductCodeEnum","type":"string","description":"Product code","enum":["WALLET","BALANCE_ACCOUNT","DEPOSITORY_ACCOUNT","CURRENCY_WALLET"]}}}}
```

## The CreateCustomerProductResult object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CreateCustomerProductResult":{"type":"object","properties":{"customerProductId":{"type":"string","format":"uuid"}},"required":["customerProductId"]}}}}
```

## The AccountData object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"AccountData":{"type":"object","required":["iban","bic","modifiedOn"],"properties":{"iban":{"type":"string"},"bic":{"type":"string"},"availableBalance":{"description":"The Available Balance represents the total amount of funds in an account that are accessible for trading at any given moment. \\\nThis balance takes into account all cleared and processed transactions, including deposits and withdrawals, but also adjusts for any holds, pending transactions, or uncleared checks.","type":"number"},"withdrawableBalance":{"description":"The withdrawableBalance attribute represents the portion of funds in an account that are available for withdrawal. This balance includes only those funds that have been fully settled and are currently present in the account, ensuring that the amount is readily accessible for outgoing transfers.","type":"number"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}}}}}}
```

## The CryptoAsset object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CryptoAsset":{"type":"object","properties":{"cryptoSymbol":{"type":"string"},"quantity":{"type":"number","description":"The quantity (position) of the cryptoSymbol held in the customer's wallet"},"availableQuantity":{"type":"number","description":"The available quantity (position) of the cryptoSymbol held in the customer's wallet that can be traded"},"avgBuyPrice":{"type":"number","description":"Average buy price, calculated using fifo method"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["cryptoSymbol","quantity","availableQuantity","avgBuyPrice","modifiedOn"]}}}}
```

## The TraditionalAsset object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"TraditionalAsset":{"type":"object","properties":{"isin":{"type":"string","description":"ISIN of the asset"},"quantity":{"type":"number","description":"The quantity (position) of the asset held in the customer's account"},"availableQuantity":{"type":"number","description":"The available quantity (position) of the asset held in the customer's account that can be traded"},"avgBuyPrice":{"type":"number","description":"Average buy price, calculated using fifo method"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["isin","quantity","availableQuantity","avgBuyPrice","modifiedOn"]}}}}
```

## The CustomerProduct object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CustomerProduct":{"type":"object","properties":{"customerProductId":{"type":"string","format":"uuid","description":"The ID of the product instance for the given customer"},"productCode":{"$ref":"#/components/schemas/ProductCodeEnum"},"productType":{"$ref":"#/components/schemas/ProductTypeEnum"},"currency":{"$ref":"#/components/schemas/CurrencyEnum"},"accountData":{"$ref":"#/components/schemas/AccountData"},"cryptoAssets":{"type":"array","items":{"$ref":"#/components/schemas/CryptoAsset"}},"traditionalAssets":{"type":"array","items":{"$ref":"#/components/schemas/TraditionalAsset"}},"tokenizedAssets":{"type":"array","items":{"$ref":"#/components/schemas/TokenizedAsset"}},"status":{"$ref":"#/components/schemas/CustomerProductStatus"},"proxyIds":{"type":"array","items":{"type":"string","format":"uuid"}},"createdOn":{"type":"string","format":"date-time","readOnly":true},"modifiedOn":{"type":"string","format":"date-time","readOnly":true},"openedOn":{"type":"string","format":"date-time","readOnly":true},"closedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["customerProductId","productCode","productType","tokenizedAssets","status","createdOn","modifiedOn"]},"ProductCodeEnum":{"title":"ProductCodeEnum","type":"string","description":"Product code","enum":["WALLET","BALANCE_ACCOUNT","DEPOSITORY_ACCOUNT","CURRENCY_WALLET"]},"ProductTypeEnum":{"title":"ProductTypeEnum","type":"string","description":"Product type","enum":["CASH","WALLET","DEPOSITORY"]},"CurrencyEnum":{"title":"CurrencyEnum","type":"string","description":"Currency of the product's balance. Currency code in ISO 4217","enum":["EUR"]},"AccountData":{"type":"object","required":["iban","bic","modifiedOn"],"properties":{"iban":{"type":"string"},"bic":{"type":"string"},"availableBalance":{"description":"The Available Balance represents the total amount of funds in an account that are accessible for trading at any given moment. \\\nThis balance takes into account all cleared and processed transactions, including deposits and withdrawals, but also adjusts for any holds, pending transactions, or uncleared checks.","type":"number"},"withdrawableBalance":{"description":"The withdrawableBalance attribute represents the portion of funds in an account that are available for withdrawal. This balance includes only those funds that have been fully settled and are currently present in the account, ensuring that the amount is readily accessible for outgoing transfers.","type":"number"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}}},"CryptoAsset":{"type":"object","properties":{"cryptoSymbol":{"type":"string"},"quantity":{"type":"number","description":"The quantity (position) of the cryptoSymbol held in the customer's wallet"},"availableQuantity":{"type":"number","description":"The available quantity (position) of the cryptoSymbol held in the customer's wallet that can be traded"},"avgBuyPrice":{"type":"number","description":"Average buy price, calculated using fifo method"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["cryptoSymbol","quantity","availableQuantity","avgBuyPrice","modifiedOn"]},"TraditionalAsset":{"type":"object","properties":{"isin":{"type":"string","description":"ISIN of the asset"},"quantity":{"type":"number","description":"The quantity (position) of the asset held in the customer's account"},"availableQuantity":{"type":"number","description":"The available quantity (position) of the asset held in the customer's account that can be traded"},"avgBuyPrice":{"type":"number","description":"Average buy price, calculated using fifo method"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["isin","quantity","availableQuantity","avgBuyPrice","modifiedOn"]},"TokenizedAsset":{"type":"object","properties":{"underlying":{"type":"string","description":"ISIN of the underlying security (e.g. US0378331005)"},"tokenSymbol":{"type":"string","description":"On-chain token symbol (e.g. TOKUS0378331005)"},"name":{"type":"string","description":"Human-readable asset name (e.g. Apple Inc.)"},"quantity":{"type":"number","description":"Total position in tracker certificates (8 decimal places)"},"availableQuantity":{"type":"number","description":"Position available for trading (quantity minus pending sell locks)"},"avgBuyPrice":{"type":"number","description":"Average buy price in EUR, FIFO method"},"currentPrice":{"type":"number","description":"Latest reference price of the underlying (from price stream; omitted if unavailable)"},"currency":{"type":"string","description":"Settlement currency (always EUR)"},"modifiedOn":{"type":"string","format":"date-time","readOnly":true}},"required":["underlying","tokenSymbol","name","quantity","availableQuantity","avgBuyPrice","currency","modifiedOn"]},"CustomerProductStatus":{"title":"CustomerProductStatus","type":"string","enum":["RECEIVED","INVALID","PENDING","ACTIVE","BLOCKED","RESTRICTED","INACTIVE","CLOSED","REJECTED"]}}}}
```

## The PartnerProductDefinitions object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"PartnerProductDefinitions":{"title":"PartnerProductDefinitions","type":"object","properties":{"data":{"type":"array","description":"Array of partner product definitions","items":{"$ref":"#/components/schemas/PartnerProductDefinition"}}},"required":["data"]},"PartnerProductDefinition":{"type":"object","properties":{"name":{"type":"string"},"productType":{"$ref":"#/components/schemas/ProductTypeEnum"},"productCode":{"$ref":"#/components/schemas/ProductCodeEnum"},"description":{"type":"string"},"isActive":{"type":"boolean"}},"required":["description","isActive","name","productCode","productType"]},"ProductTypeEnum":{"title":"ProductTypeEnum","type":"string","description":"Product type","enum":["CASH","WALLET","DEPOSITORY"]},"ProductCodeEnum":{"title":"ProductCodeEnum","type":"string","description":"Product code","enum":["WALLET","BALANCE_ACCOUNT","DEPOSITORY_ACCOUNT","CURRENCY_WALLET"]}}}}
```

## The PartnerProductDefinition object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"PartnerProductDefinition":{"type":"object","properties":{"name":{"type":"string"},"productType":{"$ref":"#/components/schemas/ProductTypeEnum"},"productCode":{"$ref":"#/components/schemas/ProductCodeEnum"},"description":{"type":"string"},"isActive":{"type":"boolean"}},"required":["description","isActive","name","productCode","productType"]},"ProductTypeEnum":{"title":"ProductTypeEnum","type":"string","description":"Product type","enum":["CASH","WALLET","DEPOSITORY"]},"ProductCodeEnum":{"title":"ProductCodeEnum","type":"string","description":"Product code","enum":["WALLET","BALANCE_ACCOUNT","DEPOSITORY_ACCOUNT","CURRENCY_WALLET"]}}}}
```

## The Product object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"Product":{"type":"object","properties":{"name":{"type":"string"},"productType":{"$ref":"#/components/schemas/ProductTypeEnum"},"productCode":{"$ref":"#/components/schemas/ProductCodeEnum"},"description":{"type":"string"}},"required":["name","productType","productCode","description"]},"ProductTypeEnum":{"title":"ProductTypeEnum","type":"string","description":"Product type","enum":["CASH","WALLET","DEPOSITORY"]},"ProductCodeEnum":{"title":"ProductCodeEnum","type":"string","description":"Product code","enum":["WALLET","BALANCE_ACCOUNT","DEPOSITORY_ACCOUNT","CURRENCY_WALLET"]}}}}
```

## The CustomerProductStatus object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CustomerProductStatus":{"title":"CustomerProductStatus","type":"string","enum":["RECEIVED","INVALID","PENDING","ACTIVE","BLOCKED","RESTRICTED","INACTIVE","CLOSED","REJECTED"]}}}}
```

## The CustomerProductStatusUpdate object

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"components":{"schemas":{"CustomerProductStatusUpdate":{"title":"CustomerProductStatusUpdate","type":"string","enum":["CLOSED"]}}}}
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tradevest.ai/api-reference/products/schemas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
