Flows and Sequence Diagram

Sequence Diagram

KYB Sequence Diagram

KYB Sequence Diagram

Explanation of steps

  1. Search for Company: /data/v2/businesses?search=(name | abn | acn)
    1. The following endpoint can be used to search a company using it’s name.
      1. https://apidocs.frankiefinancial.com/docs/business-look-up
      2. As a response you will get a list of companies that match your criteria
    2. If you enter an ABN then you only get the one company with it basic details.
    3. This step is optional and only required if you don’t have the companies ABN/ ACN to query Single Level or UBO report
    4. Request ASIC or UBO report: /business/ownership/query
  2. The following endpoint can be used to generate an ASIC or UBO report.
    1. <https://api.demo.frankiefinancial.io/compliance/v1.2/business/ownership/query>
  3. Use the following Query Parameters for generating the UBO Report
    1. onlyProfile=false
    2. generateReport=UBO
    3. checkType=pep_media This will ensure we are doing AML checks on categories listed in entityCategories
    4. entityCategories=organisation,officers_directors,direct_owners,ubos AML checks will be performed on these categories of entity from the UBO report.
    5. resultLevel=full This will ensure the detailed level of result is sent back which contains the AML verification results
      Use the following Query Parameters for generating an ASIC extract
    6. onlyProfile=true
    7. generateReport=SINGLE-LEVEL-AML
    8. entityCategories=organisation
    9. resultLevel=full This will ensure the detailed level of result is sent back which contains the AML verification results
    10. Using this endpoint you can also request verification of UBO/ officeholder by adding checkType query param. This is purely optional and depends on your organisation’s use case. Endpoint mentioned in step 3 is specifically for verifying individuals and organisations that the report is generated for.
    11. It is important to note that this is an asynchronous call and you will never receive a report as the response of /business/ownership/query. As a response to this request you will only receive a requestId and entityId. You will need to keep track of these values to fetch the report. Refer to Asynchronous Calls (Backgrounding Processes) for more details on async calls.
    12. You have the option to configure a webhook so Frankie will notify you once the report is ready.
  4. Retrieve API Response: https://apidocs.frankiefinancial.com/docs/when-can-i-retrieve-data
  5. Run KYC/ AML checks: https://apidocs.frankiefinancial.com/docs/perform-checks-for-associated-individuals
    1. If KYC/ AML checks were not run as part of report generation (Step 2). You can run them as part of this step.
    2. Set the following Query Parameters to verify the individuals and/ or organisation
      1. entityCategories
      2. checkType
      3. Once the AML/KYC results are ready you will receive a web-hook notification and you can retrieve the results then (Step 3)


When requesting a UBO report using the following endpoint:
POST /business​/ownership​/query, depending on the organization type and company structure then FrankieOne shall only perform the checks based on the organization type data returned from creditor watch.

FrankieOne will determine if the organization is suitable for an ownership query based on if an ACN is provided or through credit checks.

  • As a sole trader would not usually be registered with ASIC unless operating under a different trading name and would result in a simple report being generated showing the sole trader as 100% owner.
  • A proprietary limited company with a simple organizational structure with only direct owners would result in an ASIC report being generated.
  • A complex company structure with multiple levels of ownership would result in a UBO report being generated.


curl --location --request POST 'https://api.demo.frankiefinancial.io/compliance/v1.2//business/ownership/query?generateReport=UBO&checkType=pep_media&resultLevel=full&entityCategories=organisation,ubos' \
--header 'api_key: <key>' \
--header 'X-Frankie-CustomerId: customer_id' \
--header 'Content-Type: application/json' \
--data-raw '{
    "organisation": {
        "entityType": "ORGANISATION",
        "extraData": [
                "kvpKey": "ABN",
                "kvpValue": "98008659596",
                "kvpType": "id.external"
                "kvpKey": "customer.reference",
                "kvpValue": "customer-01",
                "kvpType": "id.external"