Beneficial Owner

Method: GET /company/{registryCode}/beneficialOwners

Documentation: OpenAPI

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.

For X-Road usage, the access scope is determined per institution.

If the requester does not have the required access right, beneficial owner will not be returned.

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