> ## 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.

# Generate Individual Verification Report

> ## (**ALPHA**): This endpoint is in alpha.

Generate an Individual Verification Report for an entity. The report contains all the latest personal information and the check results ran on the entity.

You can generate the report in two ways:

Asynchronous: You receive a requestID in the response. Once the PDF is generated, a notification will be sent to your web-hook endpoint. The notification includes a downloadable URL.
More info on the web-hook set up here: https://docs.frankieone.com/docs/notifications-webhooks.

Synchronous: Once the PDF is generated, you will receive a downloadable link in the response.

Please note, the link expires after a configurable time.
Either way, the generated report is also attached to the entity as a document object under idType “kyc-report”. The scanData is a base64 encoded blob.




## OpenAPI

````yaml POST /entity/{entityId}/report
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:
  /entity/{entityId}/report:
    post:
      tags:
        - Entity
      summary: Generate Individual Verification Report
      description: >
        ## (**ALPHA**): This endpoint is in alpha.


        Generate an Individual Verification Report for an entity. The report
        contains all the latest personal information and the check results ran
        on the entity.


        You can generate the report in two ways:


        Asynchronous: You receive a requestID in the response. Once the PDF is
        generated, a notification will be sent to your web-hook endpoint. The
        notification includes a downloadable URL.

        More info on the web-hook set up here:
        https://docs.frankieone.com/docs/notifications-webhooks.


        Synchronous: Once the PDF is generated, you will receive a downloadable
        link in the response.


        Please note, the link expires after a configurable time.

        Either way, the generated report is also attached to the entity as a
        document object under idType “kyc-report”. The scanData is a base64
        encoded blob.
      operationId: EntityKycReport
      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: >
            If this header parameter is supplied and set to 1, then the request
            will not wait for the process to finish, and will return a 202 if
            there are no obvious errors in the input. The request will then run
            in the background and send a notification back to the customer. See
            out callback API for details on this.


            See more details here:
              https://docs.frankieone.com/docs/asynchronous-calls-backgrounding-processes
          name: X-Frankie-Background
          in: header
          schema:
            type: integer
            minimum: 0
            maximum: 1
        - description: >-
            The entityId returned previously from an earlier call to /check or
            /entity
          name: entityId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          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/EntityReportResultObject'
        '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'
        '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'
components:
  schemas:
    EntityReportResultObject:
      description: >
        The following fields represent the fields needed in order to retrieve
        the downloadable link and its expiry date.
      type: object
      properties:
        documentId:
          description: |
            The document id where the report is saved in the entity.
          type: string
          format: uuid
        entityId:
          description: |
            The entityId that this report was generated from.
          type: string
          format: uuid
          example: 84a9a860-68ae-4d7d-9a53-54a1116d5051
        linkExpiry:
          description: |
            Timestamp when the link expires.
          type: string
          format: date-time
        linkURL:
          description: |
            Downloadable link to the report.
          type: string
        requestId:
          $ref: '#/components/schemas/RequestIDObject'
        scanDocId:
          description: |
            The doc scan id where the report is saved in the document.
          type: string
          format: uuid
    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

````