> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frankieone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# (AUS Only) Run KYC/AML Checks on Organisation and/or Associated Individuals.

> Run KYC/AML for a selection of entities associated with an organisation and/or the organisation itself based on a previous ownership query.
By default AML will be checked for just the organisation itself. If a list of entity categories is given then default checks based on configuration will be run for those categories. If a check type is also provided in the request then that type will be used for entities representing individual entities, and the AML subset of that check will be used for organisations if any.
If no ownership query has been run, then this operation will return an error.

*NOTE:* This will only return check details for an Australian Organisation that has previously called:

  * Create Business and Query UBO call (/reference/businessownershipquery)




## OpenAPI

````yaml POST /business/{entityId}/verify
openapi: 3.0.0
info:
  description: >
    ------  

    This API allows developers to integrate the Frankie Financial Compliance
    Utility into their applications. The API allows:
      - Checking name, address, date of birth against national databases
      - Validating Australian driver's licences, passports, medicare, visas and other Australian national ID documents
      - Validating Australian electricity bills
      - Validating NZ driver's licences
      - Validating Chinese bank cards and national ID card
      - Validating International passports and national ID documents
      - PEP, Sanctions, Watchlist and adverse media checking
      - Australian visa checks 
      - Fraud list and fraud background checks
      - ID validation and selfie check comparisons.
      
    ------  
     
    KYB specific services

      - Query organisation ownership
      - Perform KYC & AML checks on shareholders, beneficial owners and office bearers.
      - Query credit score and credit reports
      - International company searches
      - International company profiles
      
    ------  

    The full version of this documentation along with supplemental articles can
    be found here:
      - https://docs.frankieone.com/

    ------

    Sandbox base URL is:
      - https://api.uat.frankie.one/compliance/v1.2
      
      - All calls are the same as production, only with test data. You can download the latest test data here: https://docs.frankieone.com/docs/test-data

      - Full Swagger definition, along with test data for playing in the sandbox can be obtained once initial commercial discussions have commenced.

      - Production and optional UAT access will be opened up only to those with a signed commercial contract.
      
    ------  

    Contact us at hello@frankiefinancial.com to speak with a sales rep about
    issuing a Customer ID and Sandbox api key.
  title: Frankie Financial API
  contact:
    email: help@frankieone.com
  version: 1.15.3
servers:
  - url: https://api.uat.frankie.one/compliance/v1.2
security:
  - api_key: []
tags:
  - description: >-
      Service status functions you can use to make sure things are up and
      running.
    name: Status
  - description: Operations on specific ID documents, specific to an entity (people).
    name: Document
  - description: Operations on specific entities (people / companies / etc)
    name: Entity
  - description: Operations on entities that are set to type ORGANISATION
    name: Business
  - description: >-
      These are callback/webhook functions. If you've requested a callback, this
      will be what is sent to you. You do not need to implement these as a
      client, but you do need to be able to accept them as a server.
    name: Push Notification
  - description: Functions used for retrieving past results
    name: Retrieve
  - description: Operations on entities to set specific flags and states.
    name: Flag
paths:
  /business/{entityId}/verify:
    post:
      tags:
        - Business
      summary: >-
        (AUS Only) Run KYC/AML Checks on Organisation and/or Associated
        Individuals.
      description: >
        Run KYC/AML for a selection of entities associated with an organisation
        and/or the organisation itself based on a previous ownership query.

        By default AML will be checked for just the organisation itself. If a
        list of entity categories is given then default checks based on
        configuration will be run for those categories. If a check type is also
        provided in the request then that type will be used for entities
        representing individual entities, and the AML subset of that check will
        be used for organisations if any.

        If no ownership query has been run, then this operation will return an
        error.


        *NOTE:* This will only return check details for an Australian
        Organisation that has previously called:

          * Create Business and Query UBO call (/reference/businessownershipquery)
      operationId: CheckOrganisation
      parameters:
        - description: >
            Customer ID issued by Frankie Financial. This will never change.
            Your API key, which is mapped to this identity, will change over
            time.
          name: X-Frankie-CustomerID
          in: header
          required: true
          schema:
            type: string
            format: uuid
        - description: >
            If, as a Frankie Customer, you are acting on behalf of your own
            customers, then you can populate this field with a Frankie-assigned
            ID.


            Note: If using a CustomerChildID, you will also need a separate
            api_key for each child.


            Any documents, checks, entities that are created when this field has
            been populated will now be tied to this CustomerID + CustomerChildID
            combination. Just as Customers cannot see data created by other
            Customers, so too a Customer's Children will not be able to see each
            other's data.


            A Customer can see the documents/entities and checks of all their
            Children.
          name: X-Frankie-CustomerChildID
          in: header
          schema:
            type: string
            format: uuid
        - description: >
            Open string that can be used to define the "channel" the request
            comes in from.

            It can potentially be used in routing and risk calculations upon
            request.

            Default values that can be used are:
              - api
              - portal
              - smartui

            Any alphanumeric string is supported though. Anything over 64
            characters will be truncated.
          name: X-Frankie-Channel
          in: header
          schema:
            type: string
        - description: >-
            The entityId returned previously from an earlier call to /check or
            /entity
          name: entityId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - description: >
            When creating a new check, we need to define the checks we wish to
            run. If this parameter is not supplied then the check will be based
            on a configured check type for each entity category.
              
            The checkType is make up of a comma separated list of the types of
            check we wish to run.


            The order is important, and must be of the form:
              - Entity Check (if you're running this). Choose one from the available options
              - ID Check (If you want this)
              - PEP Checks (again if you want this, choose one of the options)

            Entity Checks - One of:
              - "one_plus": Checks name, address and DoB against a minimum of 1 data source. (also known as a 1+1)
              - "two_plus": Checks name, address and DoB against a minimum of 2 independent data sources (also known as a 2+2)

            ID Checks - One of:
              - "id": Checks all of the identity documents, but not necessarily the entity itself independently. Use this in conjunction with a one_plus or two_plus for more.
              
            Fraud Checks - One or more  of:
              - "fraudlist": Checks to see if the identity appears on any known fraud lists. Should be run after KYC/ID checks have passed.
              - "fraudid": Checks external ID services to see if details appear in fraud detection services (e.g. EmailAge or FraudNet)
              
            PEP Checks - One of:
              - "pep": Will only run PEP/Sanctions checks (no identity verification)
              - "pep_media": Will run PEP/Sanctions checks, as well as watchlist and adverse media checks. (no identity verification)
              
              * NOTE: These checks will ONLY run if either the KYC/ID checks have been run prior, or it is the only check requested.

            Pre-defined combinations (deprecated):
              - "full": equivalent to "two_plus,id,pep_media" or "pep_media" if the target is an organisation.
              - "default": Currently defined as "two_plus,id" or "pep" if the target is an organisation.

              * NOTE: These options are now deprecated and support for these options will be eventually halted. Please specify check_types explicitly.
              
            Custom:
              - By arrangement with Frankie you can define your own KYC check type.
              
              This will allow you to set the minimum number of matches for:
                - name 
                - date of birth
                - address
                - government id
              
              This allows for alternatives to the "standard" two_plus or one_plus (note, these can be overridden too).
              
            Profile:
              - "profile": By arrangement with Frankie you can have a "profile" check type that applies checks according to a profile that you assign to the entity from a predefined set of profiles.
              
              The profile to use will be taken from the entity.entityProfile field if set, or be run through a set of configurable rules to determine which one to use.
              
              Profiles act a little like the Pre-defined combinations above in that they can map to a defined list. But they offer a lot more besides, including rules for determining default settings, inbuild data aging and other configurable features.
              They also allow for a new result set top be returned that provides a more detailed and useful breakdown of the check/verification process.
              
              Entity Profiles are the future of checks with Frankie Financial.
          name: checkType
          in: query
          style: form
          explode: false
          schema:
            type: array
            items:
              enum:
                - one_plus
                - two_plus
                - id
                - fraudlist
                - fraudcheck
                - pep
                - pep_media
                - profile
                - full
                - default
              type: string
            uniqueItems: true
        - description: >
            A comma separated list that specifies the categories of entities
            associated with the target organisation that will be checked.

              - organisation - Just the organisation itself.
              - ubos - All ultimate beneficial owners.
              - pseudo_ubos - Use an alternative category when an organisation has no actual UBOs. The actual category to use is defined via configuration, default is no alternative category.
              - nibos - Non-Individual Beneficial Owners
              - bos_associated - Beneficial owners that have been manually associated, rather than retrieved from registry sources
              - direct_owners - All direct owners of the company, both organisations and individuals, may include UBOs for for simple ownership.
              - officers - All officers of the company
              - officers_directors - All directors of the company
              - officers_secretaries - All secretaries of the company
              - officers_other - All non-director officers of the company
              - officers_associated - All officers of the company that were associated manually, rather than retrieved from registry sources
              - all - All direct and indirect owners, both organisations and individuals (including UBOs), and officers of all organisations.
          name: entityCategories
          in: query
          style: form
          explode: false
          schema:
            type: array
            items:
              enum:
                - organisation
                - ubos
                - pseudo_ubos
                - nibos
                - bos_associated
                - direct_owners
                - officers
                - officers_directors
                - officers_secretaries
                - officers_other
                - officers_associated
                - all
              type: string
            uniqueItems: true
        - description: >
            The result level allows you to specify the level of detail returned
            for the entity check. You can choose summary or full.
          name: resultLevel
          in: query
          schema:
            type: string
            enum:
              - summary
              - full
            default: summary
        - description: >
            The type of human readable report, if any, to generate based on the
            ownership query results.

            Options are:
              - SINGLE-LEVEL-AML: ASIC report
              - UBO: UBO report
          name: generateReport
          in: query
          schema:
            type: string
            enum:
              - SINGLE-LEVEL-AML
              - UBO
        - description: >
            Name of configured preset query parameters to use. Any individual
            parameters provided in the

            request will override the same parameter in the configured preset.
          name: preset
          in: query
          schema:
            type: string
      responses:
        '202':
          description: >-
            The request was valid and can potentially be fulfilled. The Frankie
            service has now accepted responsibility for processing and we will
            either push the results to you, or send you a notification,
            depending on the request and your configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptedEntityResultObject'
        '400':
          description: >-
            Bad request. One or more request fields is either missing or
            incorrect. Details are in the error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '401':
          description: >
            The request has failed an authorisation check. This can happen for a
            variety of reasons, such as an invalid or expired API key, or
            invalid Customer/CustomerChildIDs. 

            * NOTE: This does not include attempts to read/write data you don't
            have access to - that's a 404 error (as we don't want to leak
            information through guessing)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '404':
          description: >-
            Cannot return response. In the case of a query, or reference to a
            specific entity/check/etc, it means that the requested item was not
            found, or you don't have access to it. Please check your query
            before trying again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '405':
          description: >-
            A request to POST an update to an object was not allowed due to it's
            state. This may indicate an already completed check, or a document
            that has been processed. You need to create a new document/check if
            you wish to update the object in question.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '429':
          description: >-
            The API client is making too many concurrent requests, and some are
            being throttled. Throttled requests can be retried after a short
            delay.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '500':
          description: Unexpected error. Something went wrong during the checking process.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
        '503':
          description: >-
            All of the ID sources configured by the customer are unavailable, or
            there is no available document processor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorObject'
components:
  schemas:
    AcceptedEntityResultObject:
      description: >
        The following fields represent the data you need in order to retrieve
        the results of the requested function. See the details of the
        notification API for more.
      type: object
      properties:
        checkId:
          description: >
            If you're calling a processing function of some kind, a check number
            will be issued. This field will only be present if the function
            you're calling would normally return a checkId (such as scan,
            verify, and compare).
          type: string
          format: uuid
        entityId:
          description: >
            When an entity is created/uploaded, or generated from a document
            scan, it is assigned an entityId. This can then be referenced in
            subsequent calls if you're uploading more/updated data.
          type: string
          format: uuid
          example: 84a9a860-68ae-4d7d-9a53-54a1116d5051
        function:
          description: |
            Short description of the function called.
          type: string
        linkURL:
          description: >
            Optional link that can be returned - used by the Push To Mobile
            service to allow API users to manage the use of the onboarding link
            themselves.
          type: string
        requestId:
          $ref: '#/components/schemas/RequestIDObject'
    ErrorObject:
      type: object
      required:
        - requestId
        - errorCode
        - errorMsg
      properties:
        commit:
          description: Server version indication
          type: string
          example: 2af478ed
        errorCode:
          description: Frankie error code
          type: string
          example: CORE-5990
        errorMsg:
          description: Will describe the error
          type: string
          example: Everything went kaflooey. Stay clam.
        httpStatusCode:
          description: |
            Deprecated:
            HTTP status code. Same as that which is passed back in the header.
          type: integer
          example: 501
        issues:
          type: array
          items:
            $ref: '#/components/schemas/ErrorObjectIssues'
          x-omitempty: true
        requestId:
          $ref: '#/components/schemas/RequestIDObject'
      x-go-type:
        import:
          alias: models_common
          package: bitbucket.org/ff_common/models/common
        type: ErrorObject
    RequestIDObject:
      description: >
        Unique identifier for every request. Can be used for tracking down
        answers with technical support. 


        Uses the ULID format (a time-based, sortable UUID)


        Note: this will be different for every request.
      type: string
      format: ulid
      x-go-type:
        import:
          alias: models_common
          package: bitbucket.org/ff_common/models/common
        type: RequestIDObject
      example: 01BFJA617JMJXEW6G7TDDXNSHX
    ErrorObjectIssues:
      type: object
      required:
        - issueLocation
      properties:
        issue:
          description: Description of the problem
          type: string
          example: Invalid format. Must be YYYY-MM-DD
        issueLocation:
          description: Will describe the field or data location of the issue
          type: string
          example: dateOfBirth
      x-go-type:
        import:
          alias: models_common
          package: bitbucket.org/ff_common/models/common
        type: ErrorObjectIssues
  securitySchemes:
    api_key:
      description: API key issued by Frankie Financial. This will rotate regularly.
      type: apiKey
      name: api_key
      in: header

````