Method: GET /company/{registryCode}/beneficialOwners
According to § 9(1) of the Money Laundering and Terrorist Financing Prevention Act (RahaPTS), a beneficial owner is a natural person who has ultimate control over a natural or legal person, or in whose interests, benefit or name a transaction or operation is made. Ultimate control arises from ownership or through other means of controlling another person.
The service returns the beneficial owners of a company, including the beneficial owner’s personal data, the method of exercising control or influence, the validity period, and information about discrepancy notices. The service supports queries for both current and historical beneficial owner records.
Further guidance on identifying a beneficial owner: e-Business Register guidance.
Access and visibility of data
The visibility of beneficial owner data depends on the requester’s access rights. The service verifies the requester’s right of access and returns the data according to the assigned access scope. Viewing the data is logged.
| Access basis | Short description | Visible data |
|---|---|---|
| Competent authorities | The broadest access scope for competent authorities that are entitled to view beneficial owner data for the performance of their statutory tasks. | Name, personal identification code, country of the personal identification code, date of birth, method of exercising control or influence, start date and end date. Hidden beneficial owner data is shown only if a separate right exists. |
| Obliged entities | Access for obliged entities that need to use the data for fulfilling obligations arising from anti-money laundering and counter-terrorist financing rules. Before viewing the data, the user must provide a justification. | Name, personal identification code, country of the personal identification code, date of birth, method of exercising control or influence, start date and end date. |
| Legitimate interest | Limited access for users with an established legitimate interest. A contractual user must justify viewing the data and, where required, provide the connection to the queried legal person. Exceptions may apply for journalism/media and non-profit/research categories. | Name, date of birth, method of exercising control or influence, start date and end date. |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| registryCode | integer | Required | Company registry code. The registry code is generally an 8-digit numeric code. |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| queryReason | string | Optional | Reason for querying beneficial owners data. Depending on the requester’s access basis, this may be used to justify access to the data. |
| connectionToCompany | string | Optional | Connection to the company for which beneficial owners data is being queried. |
| firstName | string | Required | First name of the person making the query. |
| lastName | string | Required | Last name of the person making the query. |
| birthday | string (date) | null | Optional | Date of birth of the person making the query. |
| identityCode | string | null | Optional | Personal identification code or foreign personal identification code of the person making the query. |
| identityCodeCountry | string | Required | Country of the identity code of the person making the query. For foreign codes, use the relevant country code. |
| onlyValid | boolean | Optional | Shows only valid data. Default: true. If set to false, the response may also include expired or invalid beneficial owner records; in that case, see startDate, endDate and terminationType. |
Header parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| apiVersion | ApiVersions | Optional | API version header. Default: V1. |
| acceptLanguage | AcceptLanguage | Optional | Language of classifier translations (est – Estonian, eng – English). Default: est. |
Response schema
BeneficialOwnersResponse
| Field | Type | Description |
|---|---|---|
| beneficiariesTotal | integer (int64) | Required. Number of beneficiaries in the response. |
| hiddenBeneficiariesNumber | integer (int64) | Required. Number of hidden beneficial owners. |
| filedNoBeneficiaryNotice | boolean | Required. Indicates whether a notice of no beneficiaries has been filed. |
| mustSubmitBeneficialOwners | boolean | Required. Indicates whether the entity is required to submit beneficial owner information. |
| beneficiary | array[Beneficiary] | Required. Beneficiaries in the response. |
Beneficiary
| Field | Type | Description |
|---|---|---|
| person | PersonInfo | Required. Person information. |
| country | string | Required. Country code. |
| countryAsText | string | Required. Country as text. |
| authorityMethod | string | Required. Method of exercising control or influence. |
| authorityMethodAsText | string | Required. Method of exercising control or influence as text. |
| terminationType | string | null | Termination type. |
| terminationTypeAsText | string | null | Termination type as text. |
| beneficiaryDiscrepancyFiled | boolean | Required. Indicates whether a discrepancy notice has been filed for the beneficiary. |
| recordId | integer | null | Record ID. |
| startDate | string (date) | null | Start date. |
| endDate | string (date) | null | End date. |
PersonInfo
| Field | Type | Description |
|---|---|---|
| type | string | Required. Person type. |
| firstName | string | null | First name. |
| surnameLegalEntityName | string | Required. Family name or legal entity name. |
| identityCode | string | null | Personal identification code or registry code. |
| foreignCode | string | null | Foreign identification code. |
| foreignCodeCountry | string | null | Country of the foreign identification code. |
| foreignCodeCountryAsText | string | null | Country of the foreign identification code as text. |
| birthday | string (date) | null | Date of birth. |
JSON Schema
{
"BeneficialOwnersResponse": {
"type": "object",
"required": [
"beneficiariesTotal",
"hiddenBeneficiariesNumber",
"filedNoBeneficiaryNotice",
"mustSubmitBeneficialOwners",
"beneficiary"
],
"properties": {
"beneficiariesTotal": {
"type": "integer",
"format": "int64",
"description": "Number of beneficial owners in the response"
},
"hiddenBeneficiariesNumber": {
"type": "integer",
"format": "int64",
"description": "Number of hidden beneficial owners"
},
"filedNoBeneficiaryNotice": {
"type": "boolean",
"description": "Whether a notice of no beneficial owners has been filed"
},
"mustSubmitBeneficialOwners": {
"type": "boolean",
"description": "Whether the legal person must submit beneficial owner data"
},
"beneficiary": {
"type": "array",
"items": { "$ref": "#/components/schemas/Beneficiary" },
"description": "List of beneficial owners"
}
}
},
"Beneficiary": {
"type": "object",
"required": [
"person",
"country",
"countryAsText",
"authorityMethod",
"authorityMethodAsText",
"beneficiaryDiscrepancyFiled"
],
"properties": {
"person": { "$ref": "#/components/schemas/PersonInfo" },
"country": { "type": "string", "description": "Country code" },
"countryAsText": { "type": "string", "description": "Country name as text" },
"authorityMethod": { "type": "string", "description": "Code of the method of exercising control or influence" },
"authorityMethodAsText": { "type": "string", "description": "Name of the method of exercising control or influence" },
"terminationType": { "type": ["string", "null"], "description": "Termination type" },
"terminationTypeAsText": { "type": ["string", "null"], "description": "Termination type as text" },
"beneficiaryDiscrepancyFiled": { "type": "boolean", "description": "Whether a discrepancy notice has been filed for the beneficial owner" },
"recordId": { "type": ["integer", "null"], "format": "int64", "description": "Record ID" },
"startDate": { "type": ["string", "null"], "format": "date", "description": "Start date" },
"endDate": { "type": ["string", "null"], "format": "date", "description": "End date" }
}
},
"PersonInfo": {
"type": "object",
"required": ["type", "surnameLegalEntityName"],
"properties": {
"type": { "type": "string", "description": "Person type" },
"firstName": { "type": ["string", "null"], "description": "First name" },
"surnameLegalEntityName": { "type": "string", "description": "Family name or legal entity name" },
"identityCode": { "type": ["string", "null"], "description": "Personal identification code or registry code" },
"foreignCode": { "type": ["string", "null"], "description": "Foreign identification code" },
"foreignCodeCountry": { "type": ["string", "null"], "description": "Country of the foreign code" },
"foreignCodeCountryAsText": { "type": ["string", "null"], "description": "Country of the foreign code as text" },
"birthday": { "type": ["string", "null"], "format": "date", "description": "Date of birth" }
}
}
}
Responses
200 OK
Successful request — returns beneficial owner data. The response is not an empty object; it contains summary fields and the beneficiary array.
{
"beneficiariesTotal": 1,
"hiddenBeneficiariesNumber": 0,
"filedNoBeneficiaryNotice": false,
"mustSubmitBeneficialOwners": true,
"beneficiary": [
{
"person": {
"type": "P",
"firstName": "Mari",
"surnameLegalEntityName": "Maasikas",
"identityCode": "46205020001",
"foreignCode": null,
"foreignCodeCountry": null,
"foreignCodeCountryAsText": null,
"birthday": null
},
"country": "EST",
"countryAsText": "Estonia",
"authorityMethod": "J",
"authorityMethodAsText": "senior managing official",
"terminationType": null,
"terminationTypeAsText": null,
"beneficiaryDiscrepancyFiled": false,
"recordId": 9000806161,
"startDate": "2018-10-23",
"endDate": null
}
]
}
204 No Content
The request was successful, but no data matching the query exists.
// No response body
404 Not Found
The company with the given registry code was not found, or the query returned no matches. The response uses the CustomValidationError schema.
{
"message": "Registry code 100453924 did not return any matches",
"code": 4043,
"id": "COMPANY_NOT_FOUND",
"timestamp": "2026-06-09T12:02:55.733698+03:00"
}
422 Validation Error
Invalid request — parameters do not meet the OpenAPI validation rules. The response uses the HTTPValidationError schema.
{
"detail": [
{
"loc": ["path", "registryCode"],
"msg": "Input should be a valid integer",
"type": "int_parsing"
}
]
}
Related classifiers
The classifiers below are related to beneficial owner data and help interpret coded fields in the response.
Method of exercising control or influence
| Code | Name EST | Name ENG |
|---|---|---|
| C | Juhatuse liige või liikmed | Member or members of management board |
| F | Muul viisil kontroll või mõju (lepingulised, perekondlikud vm suhted) | Control or influence through other means (contractual, family relations etc) |
| J | Kõrgema juhtorgani liige, s.o juhatuse liige või nõukogu liige | Senior managing official i.e. management board member or member of the supervisory board |
| K | Kaudne osalus | Indirect ownership |
| O | Otsene osalus | Direct ownership |
| S | Soodustatud isik | The beneficiary |
| Z | Asutajaõiguste teostaja, nõukogu liige, juhatuse liige | Person who exercises founder's right in a company, member of supervisory board, member of management board |
| X | Suurem kui 50%-line osalus konsolideeritava üksuse hääleõiguses | A holding of more than 50 per cent of the voting rights in the consolidated entity |
| Y | Õigus nimetada või tagasi kutsuda enamikku tegevjuhtkonnast või kõrgema juhtorgani liikmeist | Right to appoint or remove a majority of the members of the management or the highest supervisory body |
Beneficial owner person status
| Code | Name EST | Note |
|---|---|---|
| E | Ekslik | Erroneous record |
| K | Kehtetu | Invalid record |
| R | Registris | Record in the register |
| U | Kehtetu, uuem olemas | Invalid record for which a newer record exists |