Understanding business ownership query results

Learn what each field within the business ownership query response means.

Australian Businesses Only

These results are applicable only to Australian Businesses queried using the Business Ownership Query.

Summary Information

The results of a full Business Ownership Query can be difficult to interpret correctly, as it mostly contains raw data.

But in order to make sense of the response, we include a summary section that provides an already processed version of the results that allows you to determine:

  • High-level company details.
  • Office bearers and their contact details.
  • Listing details for publicly traded companies.
  • KYC/AML summaries.
  • Shareholdings and (ultimate) beneficial owners.
  • Any issues that may have occurred throughout the check process

The summary is found in the uboResponse field of the response object retrieved from the /retrieve API call. See KYB Functional Call Flow for more.

Let’s break down each part of the uboResponse in order to gain more perspective of what’s being returned:

uboResponse Object
1"uboResponse": {
2 "error_message": "string", // If there was a fatal error in processing, it will appear here
3
4 "asic_search_timestamp": "2016-08-29T09:12:33.001Z",// The time the ASIC search was conducted
5
6 "supplied_data": { //If you supplied data initially to be verified, it will appear here.
7 "name": "Worldwide Widget Pty. Ltd.",
8 "company_type": "PRV",
9 "acn": 342225,
10 "abn": 99001234321,
11 "customer_reference": "WBC000ABC123"
12 },
13
14
15 "supplied_data_matches": { //If there is supplied data to verify, then the results appear here.
16 "matched_name": true,
17 "matched_acn": true,
18 "matched_company_type": true
19 },
20
21
22 "issues_list": [
23 {
24 "issue_location": "ultimate_beneficial_owner.0.date_of_birth",
25 "issue_description": "Date of birth not found",
26 "issue_severity": "INFO"
27 }
28 ],
29
30// An array of issues found throughout the end-to-end query and check process.
31// Issues can be trivial (INFO) that have little to no impact on the process,
32// or they could ultimately be a block to completing checks.
33// See the API
34
35 "business_details": {
36 "entity_id": "84a9a860-68ae-4d7d-9a53-54a1116d5051", //The Frankie entity ID number.
37 "registered_name": "string",
38 "business_names": [
39 "string"
40 ],
41 "trading_names": [
42//If the company has any additional registered business names or trading names associated with it's ABN, then these are listed here.
43 "string"
44 ],
45
46
47 "ABN": "string",
48 "ACN": "string",
49 "ARBN": "string",
50
51 "asic_company_type": "string",
52 "public_company": true,
53 "registered_office": {
54 "addressId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
55 "addressType": "RESIDENTIAL1",
56 "startDate": "2020-07-20",
57 "endDate": "2020-07-20",
58 "careOf": "string",
59 "unitNumber": "Suite 1006",
60 "streetNumber": "42a",
61 "streetName": "Test Eagle West",
62 "streetType": "Road",
63 "buildingName": "Tower of Babel",
64 "suburb": "Testburb",
65 "town": "Testville",
66 "region": "Test County",
67 "state": "TS",
68 "country": "TST",
69 "postalCode": "123-TST",
70 "longForm": "42a Test Eagle Road, Testville, TST 123-TST, Testalia"
71 },
72
73//The company's registered office.
74// Note: the address object is a standard used across Frankie APIs,
75// so we'll now denote it in the remaining descriptions with a <<address object>>
76
77 "place_of_business": {
78 <<address object>>
79 },
80 "date_registered_with_asic": "2020-07-20", // The date the entity was registered with ASIC
81 "state_registered_with_asic": "string", //The state the entity registered in.
82
83 "giin": "string",
84
85// If this is a foreign company, it may be registered with the IRS for
86// cross-border tax purposes as part of FATCA. The GIIN is the Global Intermediary Identification Number
87
88 "anzsic_code": "string",// If the company has an ANZSIC code at ASIC, this is given here.
89
90 "stock_exchange_data": {
91// If the company is listed on a stock exchange, that data is given here.
92 "exchange": "string",
93 "exchange_ticker": "string",
94 "approved_exchange": true,
95 "supporting_evidence_in_pdf": true,
96 "supporting_document_links": [
97 "string"
98 ]
99 },
100
101 "regulatory_information": {
102//If the business is regulated, then that data is found here
103 "regulatory_body": "string",
104 "licence_details": "string",
105 "licence_number": "string",
106 "licence_verified": true
107 }
108 },
109
110
111 "business_screening_result": {
112
113// If the business has been checked for sanctions or adverse media, then the
114// summary of those details are given here. Full details of the screening
115// are given in the check results and can also be seen in the Frankie portal.
116
117 "aml_result": {
118 "check_result": "NOT_SCREENED",
119 "media_hit_count": 0
120 }
121 },
122 "ultimate_beneficial_owners": [
123
124// This section will list all those individuals who have been determined to
125// have a controlling interest in the company of 25% or more.
126
127 {
128 "name": "JAN MICHAEL VINCENT",
129 "role": "Director",
130 "percent_owned": 60,
131 "beneficially_held": true,
132 "date_of_birth": "1969-01-01",
133 "addresses": [
134 {
135 <<address object>>
136 }
137 ],
138 "screening_result": {
139
140// If requested, the KYC (Know Your Customer) check summary can be found here,
141// along with any AML (PEP, Sanctions, Watchlist or Adverse Media) checks
142// performed.
143
144 "kyc_result": {
145 "check_result": "PASS",
146 "name_match_count": 2,
147 "dob_match_count": 1,
148 "address_match_count": 1,
149 "matching_sources": [
150 "au-elec",
151 "ntd",
152 "dvs"
153 ]
154 },
155 "aml_result": {
156 "check_result": "NOT_SCREENED",
157 "media_hit_count": 0
158 }
159 }
160 }
161 ],
162 "non_individual_beneficial_owners": [
163
164// If there are any corporate owners of a company with a controlling interest,
165// then these are listed here
166
167 {
168 "name": "Widget Trust Corpoation Inc.",
169 "entity_type": "APUB",
170 "percent_owned": 0,
171 "beneficially_held": true,
172
173// If the owning company is listed, then the exchange details are provided.
174
175 "stock_exchange_data": {
176 "exchange": "string",
177 "exchange_ticker": "string",
178 "approved_exchange": true,
179 "supporting_evidence_in_pdf": true,
180 "supporting_document_links": [
181 "string"
182 ]
183 }
184 }
185 ],
186 "officeholders": [
187
188// Directors and optionally, company secretaries are listed here.
189//They too can be KYC/AML check as well, and the summary provided below.
190
191 {
192 "name": "JAN MICHAEL VINCENT",
193 "role": "Director",
194 "percent_owned": 0,
195 "beneficially_held": true,
196 "date_of_birth": "1969-01-01",
197 "addresses": [
198 {
199 <<address object>>
200 }
201 ],
202 "screening_result": {
203 "kyc_result": {
204 "check_result": "PASS",
205 "name_match_count": 2,
206 "dob_match_count": 1,
207 "address_match_count": 1,
208 "matching_sources": [
209 "au-elec",
210 "ntd",
211 "dvs"
212 ]
213 },
214 "aml_result": {
215 "check_result": "NOT_SCREENED",
216 "media_hit_count": 0
217 }
218 }
219 }
220 ]
221 },

If there’s a wish to drill into the details of any of these checks, or the overall ownership structure, it’s recommended you download the PDF report.

To obtain that data from the API response, please contact FrankieOne dev support for more information.

Understanding the full ownership tree

Understanding of the investigation of ownership is returned as part of the ownershipQueryResult structure. ownershipQueryResult.ownershipDetails is a map of entityIds to an object listing out officeholders, shareholders, shareCapital, as well as organisational information and any statically associated entities, and is read in a recursive manner.

ownershipQueryResult Object
1"ownershipQueryResult": {
2 "associatedEntities": {
3 <entityId1>: { <entityDetails> },
4 <entityId2>: { <entityDetails> },
5 <entityId3>: { <entityDetails> },
6 ...
7 },
8 "blockingEntityIds": [],
9 "ownershipDetails": {
10 <entityId2>: <ownershipDetails>,
11 <entityId5>: <ownershipDetails>,
12 <entityId9>: <ownershipDetails>,
13 ...
14 },
15}

Of interest are blockingEntityIds, which lists entities that couldn’t be investigated further, requiring manual intervention. eg: foreign companies or trusts.

To understand beneficial ownership, you can recursively look through the ownershipDetails of the root investigated organisation, and understand the shareholdings list of objects.

ownershipDetails.<entitiyId>.shareholdings Object
1"shareholdings":
2 [
3 {
4 "beneficiallyOwned": bool,
5 "docNumber": "string",
6 "docNumberQualifier": "string",
7 "fullyPaid": bool,
8 "jointHolding": bool,
9 "members":
10 [
11 <entityId>
12 ],
13 "numberHeld": number,
14 "shareCapitalClassCode": "string"
15 }
16 ],

shareholdings will reference members by entityId, the details of which you can look up under the associatedEntities map. However, where this entity is also an organisation with shares above the investigation threshold, you can see their shareholding details under a separate entry under the ownershipDetails map.

In this way, you can follow the trail of shareholding from the root entity under investigation to the individuals involved.

Consider an example of companyA owned wholly by companyB owned wholly by a single individual. The ownershipQueryResult structure may look something like the following.

Simple Example of a nested company
1"ownershipQueryResult": {
2 "associatedEntities": {
3 "companyA": { <entityDetails> },
4 "companyB": { <entityDetails> },
5 "individualC": { <entityDetails> }
6 },
7 "blockingEntityIds": [],
8 "ownershipDetails": {
9 "companyA": { <ownershipDetails> },
10 "companyB": { <ownershipDetails> },
11 }
ownershipDetails.companyA.shareholdings snippet
1{
2 "shareholdings": [
3 {
4 "beneficiallyOwned": true,
5 "members": ["companyB"],
6 "numberHeld": 1,
7 "shareCapitalClassCode": "A"
8 }
9 ]
10}
ownershipDetails.companyB.shareholdings snippet
1{
2 "shareholdings": [
3 {
4 "beneficiallyOwned": true,
5 "members": ["individualC"],
6 "numberHeld": 1,
7 "shareCapitalClassCode": "A"
8 }
9 ]
10}
Built with