> For the complete documentation index, see [llms.txt](https://docs.tradevest.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tradevest.ai/api-reference/entities/joint-persons.md).

# Joint Persons

## Create Joint Person

> Create new joint person

```json
{"openapi":"3.0.1","info":{"title":"Entities","version":"1.0"},"tags":[{"name":"Joint Persons","description":"Joint Persons"}],"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":"https://tvdcustomauthdomain.auth.eu-central-1.amazoncognito.com/oauth2/token","scopes":{}}}}},"schemas":{"CreateJointPersonResult":{"title":"CreateJointPersonResult","type":"object","properties":{"jointPersonId":{"type":"string","format":"uuid","description":"Unique joint person identification number in UUID format","readOnly":true}},"required":["jointPersonId"]},"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"]},"JointPersonData":{"title":"JointPersonData","type":"object","properties":{"annualIncomeNet":{"type":"number","multipleOf":0.01,"description":"Annual income net"},"sourceOfIncome":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonSourceOfIncomeEnum"}},"availableAssets":{"type":"number","multipleOf":0.01,"description":"Available assets"},"originOfAssets":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonAssetOriginEnum"}},"firstNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the first **Natural Person**"},"secondNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the second **Natural Person**"},"contact":{"$ref":"#/components/schemas/Contact"},"mainAddress":{"$ref":"#/components/schemas/Address"},"correspondenceAddress":{"$ref":"#/components/schemas/Address"},"externalId":{"type":"string","minLength":1,"description":"External Id in partner's system. This value has to be unique"}},"required":["firstNaturalPersonId","secondNaturalPersonId","contact","mainAddress"]},"NaturalPersonSourceOfIncomeEnum":{"title":"NaturalPersonSourceOfIncomeEnum","type":"string","enum":["INCOME_FROM_EMPLOYMENT","INCOME_FROM_CAPITAL_ASSETS","INCOME_FROM_RENTING_AND_LEASING","INCOME_FROM_AGRICULTURE_AND_FORESTRY","INCOME_FROM_BUSINESS_OPERATIONS","INCOME_FROM_SELF_EMPLOYMENT","OTHER_INCOME","SALES_OF_ASSETS","FAMILY_INCOME_OR_DONATIONS","INHERITANCE","PENSION","PUBLIC_SUBSIDES"],"description":"source of income"},"NaturalPersonAssetOriginEnum":{"title":"NaturalPersonAssetOriginEnum","type":"string","enum":["NON_EMPLOYED_LABOR","CAPITAL_ASSETS","REAL_ESTATE","INHERITANCE","DONATION","AGRICULTURE_AND_FORESTRY","TRADE","SELF_EMPLOYED_WORK"],"description":"source of income"},"Contact":{"title":"Contact","type":"object","description":"⚠️ **Important Note on Partial Updates:** Although update endpoints use the `PATCH` method, the `contact` object requires a **full representation** of the data. If optional fields (such as `fax` or `website`) are omitted from the request, they will be overwritten with `null` in the database. To preserve existing data, ensure all current contact values are included in your request payload.","properties":{"phone":{"type":"string","description":"Mobile telephone number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"email":{"type":"string","description":"E-mail address","maxLength":255,"pattern":"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"},"fax":{"type":"string","description":"Fax number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"website":{"type":"string","description":"website address","maxLength":320}},"required":["phone","email"]},"Address":{"title":"Address","type":"object","description":"Address","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"streetNumber":{"type":"string","minLength":1,"maxLength":20},"city":{"type":"string","minLength":1,"maxLength":255},"zip":{"type":"string","minLength":3,"maxLength":10},"state":{"type":"string","minLength":1,"maxLength":35},"country":{"$ref":"#/components/schemas/CountryEnum"},"additionalInfo":{"type":"string","minLength":1}},"required":["street","streetNumber","city","zip","country"]},"CountryEnum":{"title":"CountryEnum","type":"string","description":"Country code in **ISO 3166-1 alpha-2** standard","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","VG","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","HK","MO","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VI","WF","EH","YE","ZM","ZW","XK"]}}},"paths":{"/entities/joint-persons":{"post":{"summary":"Create Joint Person","operationId":"create-joint-person","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJointPersonResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"description":"Create new joint person","tags":["Joint Persons"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JointPersonData"}}},"description":""}}}}}
```

## Get Joint Persons

> Get joint persons

```json
{"openapi":"3.0.1","info":{"title":"Entities","version":"1.0"},"tags":[{"name":"Joint Persons","description":"Joint Persons"}],"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":"https://tvdcustomauthdomain.auth.eu-central-1.amazoncognito.com/oauth2/token","scopes":{}}}}},"schemas":{"JointPersons":{"title":"JointPersons","type":"object","properties":{"data":{"type":"array","description":"Array of joint persons","items":{"$ref":"#/components/schemas/JointPerson"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["data","pagination"]},"JointPerson":{"title":"JointPerson","type":"object","properties":{"annualIncomeNet":{"type":"number","multipleOf":0.01,"description":"Annual income net"},"sourceOfIncome":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonSourceOfIncomeEnum"}},"availableAssets":{"type":"number","multipleOf":0.01,"description":"Available assets"},"originOfAssets":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonAssetOriginEnum"}},"firstNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the first **Natural Person**"},"secondNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the second **Natural Person**"},"contact":{"$ref":"#/components/schemas/Contact"},"mainAddress":{"$ref":"#/components/schemas/Address"},"correspondenceAddress":{"$ref":"#/components/schemas/Address"},"externalId":{"type":"string","minLength":1,"description":"External Id in partner's system. This value has to be unique"},"jointPersonId":{"type":"string","format":"uuid","description":"Unique joint person identification number in UUID format"},"createdOn":{"type":"string","format":"date-time","description":"The date on which the joint person was created"},"modifiedOn":{"type":"string","format":"date-time","description":"The date on which the joint person was modified the last time"},"globalId":{"type":"string","minLength":12,"maxLength":12,"description":"Global ID of the joint person"},"jointPersonStatus":{"$ref":"#/components/schemas/JointPersonStatusEnum"}},"required":["contact","createdOn","firstNaturalPersonId","globalId","jointPersonId","jointPersonStatus","mainAddress","modifiedOn","secondNaturalPersonId"]},"NaturalPersonSourceOfIncomeEnum":{"title":"NaturalPersonSourceOfIncomeEnum","type":"string","enum":["INCOME_FROM_EMPLOYMENT","INCOME_FROM_CAPITAL_ASSETS","INCOME_FROM_RENTING_AND_LEASING","INCOME_FROM_AGRICULTURE_AND_FORESTRY","INCOME_FROM_BUSINESS_OPERATIONS","INCOME_FROM_SELF_EMPLOYMENT","OTHER_INCOME","SALES_OF_ASSETS","FAMILY_INCOME_OR_DONATIONS","INHERITANCE","PENSION","PUBLIC_SUBSIDES"],"description":"source of income"},"NaturalPersonAssetOriginEnum":{"title":"NaturalPersonAssetOriginEnum","type":"string","enum":["NON_EMPLOYED_LABOR","CAPITAL_ASSETS","REAL_ESTATE","INHERITANCE","DONATION","AGRICULTURE_AND_FORESTRY","TRADE","SELF_EMPLOYED_WORK"],"description":"source of income"},"Contact":{"title":"Contact","type":"object","description":"⚠️ **Important Note on Partial Updates:** Although update endpoints use the `PATCH` method, the `contact` object requires a **full representation** of the data. If optional fields (such as `fax` or `website`) are omitted from the request, they will be overwritten with `null` in the database. To preserve existing data, ensure all current contact values are included in your request payload.","properties":{"phone":{"type":"string","description":"Mobile telephone number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"email":{"type":"string","description":"E-mail address","maxLength":255,"pattern":"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"},"fax":{"type":"string","description":"Fax number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"website":{"type":"string","description":"website address","maxLength":320}},"required":["phone","email"]},"Address":{"title":"Address","type":"object","description":"Address","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"streetNumber":{"type":"string","minLength":1,"maxLength":20},"city":{"type":"string","minLength":1,"maxLength":255},"zip":{"type":"string","minLength":3,"maxLength":10},"state":{"type":"string","minLength":1,"maxLength":35},"country":{"$ref":"#/components/schemas/CountryEnum"},"additionalInfo":{"type":"string","minLength":1}},"required":["street","streetNumber","city","zip","country"]},"CountryEnum":{"title":"CountryEnum","type":"string","description":"Country code in **ISO 3166-1 alpha-2** standard","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","VG","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","HK","MO","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VI","WF","EH","YE","ZM","ZW","XK"]},"JointPersonStatusEnum":{"title":"JointPersonStatusEnum","type":"string","enum":["CREATED","REVIEW","REJECTED","INACTIVE","PENDING","ACTIVE","SUSPENDED","ARCHIVED","RECEIVED","INVALID","SUSPENDED_COMPLIANCE"]},"Pagination":{"title":"Pagination","type":"object","properties":{"cursor":{"type":"string","description":"String value used for pagination, which should be set in next page request."},"limit":{"type":"integer","description":"Maximum number of returned items"}},"required":["cursor","limit"]},"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"]}},"parameters":{"cursor":{"schema":{"type":"string"},"in":"query","name":"cursor","description":"String value used for pagination"},"limit":{"schema":{"type":"integer","default":20,"minimum":1},"in":"query","name":"limit","description":"Maximum number of items to return","required":true},"jointPersonStatus":{"schema":{"$ref":"#/components/schemas/JointPersonStatusEnum"},"in":"query","name":"jointPersonStatus","description":"Joint person status Filter"}}},"paths":{"/entities/joint-persons":{"get":{"summary":"Get Joint Persons","tags":["Joint Persons"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JointPersons"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"operationId":"get-joint-persons","description":"Get joint persons","parameters":[{"$ref":"#/components/parameters/cursor"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/jointPersonStatus"}]}}}}
```

## Update Joint Person

> Update existing joint person

```json
{"openapi":"3.0.1","info":{"title":"Entities","version":"1.0"},"tags":[{"name":"Joint Persons","description":"Joint Persons"}],"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":"https://tvdcustomauthdomain.auth.eu-central-1.amazoncognito.com/oauth2/token","scopes":{}}}}},"parameters":{"requestorId":{"schema":{"type":"string","format":"uuid"},"name":"Requestor-ID","in":"header","required":true,"description":"Unique requestor identification in UUID format"}},"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"]},"JointPersonUpdate":{"title":"JointPersonUpdate","type":"object","properties":{"annualIncomeNet":{"type":"number","multipleOf":0.01,"description":"Annual income net"},"sourceOfIncome":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonSourceOfIncomeEnum"}},"availableAssets":{"type":"number","multipleOf":0.01,"description":"Available assets"},"originOfAssets":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonAssetOriginEnum"}},"contact":{"$ref":"#/components/schemas/Contact"},"mainAddress":{"$ref":"#/components/schemas/Address"},"correspondenceAddress":{"$ref":"#/components/schemas/Address"},"externalId":{"type":"string","minLength":1,"description":"External Id in partner's system. This value has to be unique"}}},"NaturalPersonSourceOfIncomeEnum":{"title":"NaturalPersonSourceOfIncomeEnum","type":"string","enum":["INCOME_FROM_EMPLOYMENT","INCOME_FROM_CAPITAL_ASSETS","INCOME_FROM_RENTING_AND_LEASING","INCOME_FROM_AGRICULTURE_AND_FORESTRY","INCOME_FROM_BUSINESS_OPERATIONS","INCOME_FROM_SELF_EMPLOYMENT","OTHER_INCOME","SALES_OF_ASSETS","FAMILY_INCOME_OR_DONATIONS","INHERITANCE","PENSION","PUBLIC_SUBSIDES"],"description":"source of income"},"NaturalPersonAssetOriginEnum":{"title":"NaturalPersonAssetOriginEnum","type":"string","enum":["NON_EMPLOYED_LABOR","CAPITAL_ASSETS","REAL_ESTATE","INHERITANCE","DONATION","AGRICULTURE_AND_FORESTRY","TRADE","SELF_EMPLOYED_WORK"],"description":"source of income"},"Contact":{"title":"Contact","type":"object","description":"⚠️ **Important Note on Partial Updates:** Although update endpoints use the `PATCH` method, the `contact` object requires a **full representation** of the data. If optional fields (such as `fax` or `website`) are omitted from the request, they will be overwritten with `null` in the database. To preserve existing data, ensure all current contact values are included in your request payload.","properties":{"phone":{"type":"string","description":"Mobile telephone number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"email":{"type":"string","description":"E-mail address","maxLength":255,"pattern":"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"},"fax":{"type":"string","description":"Fax number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"website":{"type":"string","description":"website address","maxLength":320}},"required":["phone","email"]},"Address":{"title":"Address","type":"object","description":"Address","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"streetNumber":{"type":"string","minLength":1,"maxLength":20},"city":{"type":"string","minLength":1,"maxLength":255},"zip":{"type":"string","minLength":3,"maxLength":10},"state":{"type":"string","minLength":1,"maxLength":35},"country":{"$ref":"#/components/schemas/CountryEnum"},"additionalInfo":{"type":"string","minLength":1}},"required":["street","streetNumber","city","zip","country"]},"CountryEnum":{"title":"CountryEnum","type":"string","description":"Country code in **ISO 3166-1 alpha-2** standard","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","VG","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","HK","MO","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VI","WF","EH","YE","ZM","ZW","XK"]}}},"paths":{"/entities/joint-persons/{jointPersonId}":{"patch":{"summary":"Update Joint Person","operationId":"update-joint-person","parameters":[{"$ref":"#/components/parameters/requestorId"}],"responses":{"202":{"description":"Accepted","content":{}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JointPersonUpdate"}}}},"tags":["Joint Persons"],"description":"Update existing joint person"}}}}
```

## Get Joint Person

> Get joint person

```json
{"openapi":"3.0.1","info":{"title":"Entities","version":"1.0"},"tags":[{"name":"Joint Persons","description":"Joint Persons"}],"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":"https://tvdcustomauthdomain.auth.eu-central-1.amazoncognito.com/oauth2/token","scopes":{}}}}},"schemas":{"JointPerson":{"title":"JointPerson","type":"object","properties":{"annualIncomeNet":{"type":"number","multipleOf":0.01,"description":"Annual income net"},"sourceOfIncome":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonSourceOfIncomeEnum"}},"availableAssets":{"type":"number","multipleOf":0.01,"description":"Available assets"},"originOfAssets":{"type":"array","items":{"$ref":"#/components/schemas/NaturalPersonAssetOriginEnum"}},"firstNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the first **Natural Person**"},"secondNaturalPersonId":{"type":"string","format":"uuid","description":"Identifier for the second **Natural Person**"},"contact":{"$ref":"#/components/schemas/Contact"},"mainAddress":{"$ref":"#/components/schemas/Address"},"correspondenceAddress":{"$ref":"#/components/schemas/Address"},"externalId":{"type":"string","minLength":1,"description":"External Id in partner's system. This value has to be unique"},"jointPersonId":{"type":"string","format":"uuid","description":"Unique joint person identification number in UUID format"},"createdOn":{"type":"string","format":"date-time","description":"The date on which the joint person was created"},"modifiedOn":{"type":"string","format":"date-time","description":"The date on which the joint person was modified the last time"},"globalId":{"type":"string","minLength":12,"maxLength":12,"description":"Global ID of the joint person"},"jointPersonStatus":{"$ref":"#/components/schemas/JointPersonStatusEnum"}},"required":["contact","createdOn","firstNaturalPersonId","globalId","jointPersonId","jointPersonStatus","mainAddress","modifiedOn","secondNaturalPersonId"]},"NaturalPersonSourceOfIncomeEnum":{"title":"NaturalPersonSourceOfIncomeEnum","type":"string","enum":["INCOME_FROM_EMPLOYMENT","INCOME_FROM_CAPITAL_ASSETS","INCOME_FROM_RENTING_AND_LEASING","INCOME_FROM_AGRICULTURE_AND_FORESTRY","INCOME_FROM_BUSINESS_OPERATIONS","INCOME_FROM_SELF_EMPLOYMENT","OTHER_INCOME","SALES_OF_ASSETS","FAMILY_INCOME_OR_DONATIONS","INHERITANCE","PENSION","PUBLIC_SUBSIDES"],"description":"source of income"},"NaturalPersonAssetOriginEnum":{"title":"NaturalPersonAssetOriginEnum","type":"string","enum":["NON_EMPLOYED_LABOR","CAPITAL_ASSETS","REAL_ESTATE","INHERITANCE","DONATION","AGRICULTURE_AND_FORESTRY","TRADE","SELF_EMPLOYED_WORK"],"description":"source of income"},"Contact":{"title":"Contact","type":"object","description":"⚠️ **Important Note on Partial Updates:** Although update endpoints use the `PATCH` method, the `contact` object requires a **full representation** of the data. If optional fields (such as `fax` or `website`) are omitted from the request, they will be overwritten with `null` in the database. To preserve existing data, ensure all current contact values are included in your request payload.","properties":{"phone":{"type":"string","description":"Mobile telephone number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"email":{"type":"string","description":"E-mail address","maxLength":255,"pattern":"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"},"fax":{"type":"string","description":"Fax number","minLength":3,"maxLength":20,"pattern":"^[\\+\\-\\(\\)\\d ]{3,20}$"},"website":{"type":"string","description":"website address","maxLength":320}},"required":["phone","email"]},"Address":{"title":"Address","type":"object","description":"Address","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"streetNumber":{"type":"string","minLength":1,"maxLength":20},"city":{"type":"string","minLength":1,"maxLength":255},"zip":{"type":"string","minLength":3,"maxLength":10},"state":{"type":"string","minLength":1,"maxLength":35},"country":{"$ref":"#/components/schemas/CountryEnum"},"additionalInfo":{"type":"string","minLength":1}},"required":["street","streetNumber","city","zip","country"]},"CountryEnum":{"title":"CountryEnum","type":"string","description":"Country code in **ISO 3166-1 alpha-2** standard","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","VG","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","HK","MO","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VI","WF","EH","YE","ZM","ZW","XK"]},"JointPersonStatusEnum":{"title":"JointPersonStatusEnum","type":"string","enum":["CREATED","REVIEW","REJECTED","INACTIVE","PENDING","ACTIVE","SUSPENDED","ARCHIVED","RECEIVED","INVALID","SUSPENDED_COMPLIANCE"]},"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":{"/entities/joint-persons/{jointPersonId}":{"get":{"summary":"Get Joint Person","operationId":"get-joint-person","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JointPerson"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}}}},"description":"Get joint person","tags":["Joint Persons"]}}}}
```


---

# 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 dynamically by asking a question.

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

```
GET https://docs.tradevest.ai/api-reference/entities/joint-persons.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
