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 is being returned:

"uboResponse": {
    "error_message": "string", // If there was a fatal error in processing, it will appear here

    "asic_search_timestamp": "2016-08-29T09:12:33.001Z",// The time the ASIC search was conducted

    "supplied_data": { //If you supplied data initially to be verified, it will appear here.
      "name": "Worldwide Widget Pty. Ltd.",
      "company_type": "PRV",
      "acn": 342225,
      "abn": 99001234321,
      "customer_reference": "WBC000ABC123"
    },


    "supplied_data_matches": { //If there is supplied data to verify, then the results appear here.
      "matched_name": true,
      "matched_acn": true,
      "matched_company_type": true
    },


    "issues_list": [
      {
        "issue_location": "ultimate_beneficial_owner.0.date_of_birth",
        "issue_description": "Date of birth not found",
        "issue_severity": "INFO"
      }
    ],

// An array of issues found throughout the end-to-end query and check process. 
// Issues can be trivial (INFO) that have little to no impact on the process, 
// or they could ultimately be a block to completing checks.
// See the API 

    "business_details": {
      "entity_id": "84a9a860-68ae-4d7d-9a53-54a1116d5051", //The Frankie entity ID number.
      "registered_name": "string",
      "business_names": [
        "string"
      ],
      "trading_names": [
//If the company has any additional registered business names or trading names associated with it's ABN, then these are listed here.
        "string"
      ],


      "ABN": "string",
      "ACN": "string",
      "ARBN": "string",

      "asic_company_type": "string",
      "public_company": true,
      "registered_office": {
        "addressId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "addressType": "RESIDENTIAL1",
        "startDate": "2020-07-20",
        "endDate": "2020-07-20",
        "careOf": "string",
        "unitNumber": "Suite 1006",
        "streetNumber": "42a",
        "streetName": "Test Eagle West",
        "streetType": "Road",
        "buildingName": "Tower of Babel",
        "suburb": "Testburb",
        "town": "Testville",
        "region": "Test County",
        "state": "TS",
        "country": "TST",
        "postalCode": "123-TST",
        "longForm": "42a Test Eagle Road, Testville, TST 123-TST, Testalia"
      },

//The company's registered office.
// Note: the address object is a standard used across Frankie APIs, 
// so we'll now denote it in the remaining descriptions with a <<address object>>

      "place_of_business": {
        <<address object>>
      },
      "date_registered_with_asic": "2020-07-20", // The date the entity was registered with ASIC
      "state_registered_with_asic": "string", //The state the entity registered in. 

      "giin": "string",

// If this is a foreign company, it may be registered with the IRS for 
// cross-border tax purposes as part of FATCA.  The GIIN is the Global Intermediary Identification Number

      "anzsic_code": "string",// If the company has an ANZSIC code at ASIC, this is given here.

      "stock_exchange_data": {
// If the company is listed on a stock exchange, that data is given here.        
        "exchange": "string",
        "exchange_ticker": "string",
        "approved_exchange": true,
        "supporting_evidence_in_pdf": true,
        "supporting_document_links": [
          "string"
        ]
      },

      "regulatory_information": {
//If the business is regulated, then that data is found here
        "regulatory_body": "string",
        "licence_details": "string",
        "licence_number": "string",
        "licence_verified": true
      }
    },


    "business_screening_result": {

// If the business has been checked for sanctions or adverse media, then the
// summary of those details are given here. Full details of the screening 
// are given in the check results and can also be seen in the Frankie portal.

      "aml_result": {
        "check_result": "NOT_SCREENED",
        "media_hit_count": 0
      }
    },
    "ultimate_beneficial_owners": [

// This section will list all those individuals who have been determined to 
// have a controlling interest in the company of 25% or more.

      {
        "name": "JAN MICHAEL VINCENT",
        "role": "Director",
        "percent_owned": 60,
        "beneficially_held": true,
        "date_of_birth": "1969-01-01",
        "addresses": [
          { 
             <<address object>>
          }
        ],
        "screening_result": {

// If requested, the KYC (Know Your Customer) check summary can be found here,
// along with any AML (PEP, Sanctions, Watchlist or Adverse Media) checks 
// performed. 

          "kyc_result": {
            "check_result": "PASS",
            "name_match_count": 2,
            "dob_match_count": 1,
            "address_match_count": 1,
            "matching_sources": [
              "au-elec",
              "ntd",
              "dvs"
            ]
          },
          "aml_result": {
            "check_result": "NOT_SCREENED",
            "media_hit_count": 0
          }
        }
      }
    ],
    "non_individual_beneficial_owners": [

// If there are any corporate owners of a company with a controlling interest, 
// then these are listed here

      {
        "name": "Widget Trust Corpoation Inc.",
        "entity_type": "APUB",
        "percent_owned": 0,
        "beneficially_held": true,

// If the owning company is listed, then the exchange details are provided.

        "stock_exchange_data": {
          "exchange": "string",
          "exchange_ticker": "string",
          "approved_exchange": true,
          "supporting_evidence_in_pdf": true,
          "supporting_document_links": [
            "string"
          ]
        }
      }
    ],
    "officeholders": [

// Directors and optionally, company secretaries are listed here.
//They too can be KYC/AML check as well, and the summary provided below.

      {
        "name": "JAN MICHAEL VINCENT",
        "role": "Director",
        "percent_owned": 0,
        "beneficially_held": true,
        "date_of_birth": "1969-01-01",
        "addresses": [
          {
             <<address object>>
          }
        ],
        "screening_result": {
          "kyc_result": {
            "check_result": "PASS",
            "name_match_count": 2,
            "dob_match_count": 1,
            "address_match_count": 1,
            "matching_sources": [
              "au-elec",
              "ntd",
              "dvs"
            ]
          },
          "aml_result": {
            "check_result": "NOT_SCREENED",
            "media_hit_count": 0
          }
        }
      }
    ]
  },

If there's a wish to drill into the details of any of these checks, or the overall ownership structure, it is 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": {
    "associatedEntities": {
      <entityId1>: { <entityDetails> },
      <entityId2>: { <entityDetails> },
      <entityId3>: { <entityDetails> },
      ...
    },
    "blockingEntityIds": [],
		"ownershipDetails": {
      <entityId2>: <ownershipDetails>,
      <entityId5>: <ownershipDetails>,
      <entityId9>: <ownershipDetails>,
      ...
    },
}

Of interest are blockingEntityIds, which lists entities that could not 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.

"shareholdings":
    [
        {
            "beneficiallyOwned": bool,
            "docNumber": "string",
            "docNumberQualifier": "string",
            "fullyPaid": bool,
            "jointHolding": bool,
            "members":
            [
                <entityId>
            ],
            "numberHeld": number,
            "shareCapitalClassCode": "string"
        }
    ],

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.

"ownershipQueryResult": {
  "associatedEntities": {
    "companyA": { <entityDetails> },
    "companyB": { <entityDetails> },
    "individualC": { <entityDetails> }
  },
  "blockingEntityIds": [],
	"ownershipDetails": {
    "companyA": { <ownershipDetails> },
    "companyB": { <ownershipDetails> },
  }
{
  "shareholdings":
  [
    {
        "beneficiallyOwned": true,
        "members":
        [
            "companyB"
        ],
        "numberHeld": 1,
        "shareCapitalClassCode": "A"
    }
	]
}
{
  "shareholdings":
  [
    {
        "beneficiallyOwned": true,
        "members":
        [
            "individualC"
        ],
        "numberHeld": 1,
        "shareCapitalClassCode": "A"
    }
	]
}