# Customer Products

## Get Customer Products

> Get Customer Products

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"schemas":{"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"]},"CustomerProductStatus":{"title":"CustomerProductStatus","type":"string","enum":["RECEIVED","INVALID","PENDING","ACTIVE","BLOCKED","RESTRICTED","INACTIVE","CLOSED","REJECTED"]},"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"]},"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"]},"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"paths":{"/customers/{customerId}/products":{"get":{"summary":"Get Customer Products","tags":["Products"],"parameters":[{"schema":{"type":"string","format":"uuid"},"name":"customerId","in":"path","required":true,"description":"Customer ID"},{"schema":{"$ref":"#/components/schemas/ProductTypeEnum"},"in":"query","name":"productType","description":"The type of a product"},{"schema":{"$ref":"#/components/schemas/ProductCodeEnum"},"in":"query","name":"productCode","description":"The code of a product"},{"schema":{"$ref":"#/components/schemas/CustomerProductStatus"},"in":"query","name":"status","description":"The status of the account"},{"schema":{"type":"string"},"in":"query","name":"iban","description":"The IBAN of a cash account"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomerProduct"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"get-customer-products","description":"Get Customer Products"}}}}
```

## Create Customer Product

> Create Customer Product

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"schemas":{"CreateCustomerProductResult":{"type":"object","properties":{"customerProductId":{"type":"string","format":"uuid"}},"required":["customerProductId"]},"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"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"]}}},"paths":{"/customers/{customerId}/products":{"post":{"summary":"Create Customer Product","tags":["Products"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerProductResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"create-customer-product","description":"Create Customer Product","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"customerId","in":"path","required":true,"description":"customer ID the partner is creating a product for"},{"schema":{"type":"string","format":"uuid"},"name":"Requestor-ID","in":"header","required":true,"description":"Unique requestor identification in UUID format"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerProductData"}}}}}}}}
```

## Get Customer Product

> Get Customer Product

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"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"]},"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"paths":{"/products/{customerProductId}":{"get":{"summary":"Get Customer Product","tags":["Products"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerProduct"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"get-single-customer-product","description":"Get Customer Product"}}}}
```

## Update customer product

> Update customer product. It is used to close the customer product.

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"schemas":{"CustomerProductUpdate":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/CustomerProductStatusUpdate"}},"required":["status"]},"CustomerProductStatusUpdate":{"title":"CustomerProductStatusUpdate","type":"string","enum":["CLOSED"]},"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"paths":{"/products/{customerProductId}":{"patch":{"parameters":[{"schema":{"type":"string","format":"uuid"},"name":"Requestor-ID","in":"header","required":true,"description":"Unique requestor identification in UUID format"}],"summary":"Update customer product","tags":["Products"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerProductUpdate"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"update-customer-product","description":"Update customer product. It is used to close the customer product."}}}}
```

## Create Securities Account Statement

> Create securities Account Statement

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"schemas":{"CreateSecuritiesAccountStatementResult":{"type":"object","properties":{"securitiesAccountStatementId":{"type":"string","format":"uuid"}},"required":["securitiesAccountStatementId"]},"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"paths":{"/products/{customerProductId}/documents/securities-account-statement":{"post":{"summary":"Create Securities Account Statement","tags":["Products"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSecuritiesAccountStatementResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"create-securities-account-statement","description":"Create securities Account Statement"}}}}
```

## Retrieve Security Account Statement

> Get securities Account Statement

```json
{"openapi":"3.0.1","info":{"title":"Products","version":"1.0"},"tags":[{"name":"Products","description":"Products"}],"servers":[{"url":"https://tvda-api.platform-test.tradevest.ai","description":"Test"},{"url":"https://tvda-api.platform-pretest.tradevest.ai","description":"Pretest"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"/oauth2/token","scopes":{}}}}},"schemas":{"ErrorMessage":{"title":"ErrorMessage","type":"object","properties":{"message":{"type":"string"},"responseType":{"type":"string"},"validationString":{"minLength":1,"type":"string"},"requestId":{"type":"string"},"errorCode":{"type":"string","maxLength":255},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}}},"required":["message","responseType","requestId"]},"ErrorDetails":{"title":"ErrorDetails","type":"object","properties":{"field":{"type":"string","maxLength":255},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetailsExplanation"}}},"required":["field"]},"ErrorDetailsExplanation":{"title":"ErrorDetailsExplanation","type":"object","properties":{"code":{"type":"string","maxLength":255},"parameter":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"paths":{"/products/{customerProductId}/documents/securities-account-statement/{securityAccountStatementId}":{"get":{"summary":"Retrieve Security Account Statement","tags":["Products"],"responses":{"200":{"description":"OK","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"get-securities-account-statement","description":"Get securities Account Statement"}}}}
```


---

# 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/customer-products.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.
