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

# Check every field of the submission's own subjects across the sources that ran

> Get the submission's company and each owner a form declared, with every field read against every source that could speak to it. A field is verified when a second source agrees with the claim, and in conflict when one disagrees. A source that stated nothing has contradicted nothing, so its line says why it is silent and the field's state ignores it.
This is not `matched_by` on the v2 payload. That names only the fields a resolver needed to decide two records are one thing, and is silent on every field it did not need.




## OpenAPI

````yaml https://app.herondata.io/swagger get /api/end_users/{end_user_heron_id}/background_check/verification
openapi: 3.0.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data API
  version: '2021-07-19'
servers:
  - description: Production
    url: https://app.herondata.io
security:
  - ApiKeyAuth:
      - key_XXX
externalDocs:
  description: Read Tutorial
  url: https://docs.herondata.io/
paths:
  /api/end_users/{end_user_heron_id}/background_check/verification:
    get:
      tags:
        - EndUsers
      summary: >-
        Check every field of the submission's own subjects across the sources
        that ran
      description: >
        Get the submission's company and each owner a form declared, with every
        field read against every source that could speak to it. A field is
        verified when a second source agrees with the claim, and in conflict
        when one disagrees. A source that stated nothing has contradicted
        nothing, so its line says why it is silent and the field's state ignores
        it.

        This is not `matched_by` on the v2 payload. That names only the fields a
        resolver needed to decide two records are one thing, and is silent on
        every field it did not need.
      parameters:
        - description: The Heron ID of the end user
          in: path
          name: end_user_heron_id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerificationResponseSchema'
          description: OK
        '404':
          description: End user not found, or verification is not enabled for this account
      security:
        - ApiKeyAuth: []
components:
  schemas:
    VerificationResponseSchema:
      properties:
        business:
          allOf:
            - $ref: '#/components/schemas/BusinessVerification'
          description: >-
            The company the deal applied as. Null when no source named one,
            which leaves nothing to verify.
          nullable: true
        owners:
          description: >-
            Every person the deal's sources put at a share of the company,
            best-attested first. The ones a form declared come before the ones
            only a source found.
          items:
            $ref: '#/components/schemas/OwnerVerification'
          type: array
      type: object
    BusinessVerification:
      properties:
        billing_address:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Where the business is billed.
        business_address:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Where the business operates from.
        business_email:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The business's email address.
        business_phone:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The business's phone number.
        dba:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: DBA or trade name.
        display_name:
          description: The name a reader shows the subject under.
          nullable: true
          type: string
        ein:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: US EIN.
        entity_type:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Legal form, such as LLC.
        key:
          description: The v2 payload key for this subject's row, so a reader can open it.
          type: string
        legal_name:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Legal business name.
        standing:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Whether the company's filings are in good standing.
        started_on:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Business start date.
        state_of_incorporation:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: State the company was formed in.
        subject_type:
          enum:
            - owner
            - business
        website:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The business's website.
      type: object
    OwnerVerification:
      properties:
        date_of_birth:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's date of birth.
        declared:
          description: >-
            False for a person the sources tie to a share of the company the
            deal never declared them at.
          type: boolean
        display_name:
          description: The name a reader shows the subject under.
          nullable: true
          type: string
        email:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's email address.
        home_address:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Where the owner lives.
        home_phone:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's home number.
        key:
          description: The v2 payload key for this subject's row, so a reader can open it.
          type: string
        mobile_phone:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's mobile number, and any number no source gave a type.
        name:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's name.
        ownership_percentage:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The share of the company the deal stated for them.
        position:
          description: >-
            Their place in the list, which is what `Owner 1` means. Not an
            identity: owners are ordered by how well attested each is, so a
            re-run can move someone.
          type: integer
        relationship:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: Whether a source puts this person at a share of the company.
        ssn:
          allOf:
            - $ref: '#/components/schemas/FieldCheck'
          description: The owner's US social security number.
        subject_type:
          enum:
            - owner
            - business
      type: object
    FieldCheck:
      properties:
        chosen_by:
          description: >-
            The source `value` was taken from: the first this field prefers that
            stated anything. Not the source the others are read against, which
            is whichever channel the deal stated it through and is the line
            marked `stated`. Null when nothing stated the field.
          enum:
            - tin
            - sos
            - court
            - background_check
            - web_presence
            - bank_statement
            - manual
            - broker_submission
            - application
            - null
          nullable: true
        label:
          description: The field as a reader reads it, such as `Legal business name`.
          type: string
        sources:
          description: One line per source, in the order this field prefers them.
          items:
            $ref: '#/components/schemas/SourceVerification'
          type: array
        state:
          description: >-
            `verified` when a source independent of the deal confirms what it
            claimed, `conflict` when any source contradicts it, the deal's own
            other channels included. `not_verified` means nothing independent
            confirmed it: nothing else spoke to the claim, or only another
            channel of the deal restated it, or the deal claimed nothing to
            check. `blank` means nobody stated a value at all.
          enum:
            - verified
            - conflict
            - not_verified
            - blank
        value:
          description: >-
            The best answer the sources hold: the value of the first one this
            field prefers that stated anything. Not what the deal claimed, which
            `state` reports on instead, so a field can show a registry's value
            and read `conflict`. Null when no source stated the field.
          nullable: true
          type: string
      type: object
    SourceVerification:
      properties:
        source:
          description: The source this line speaks for.
          enum:
            - tin
            - sos
            - court
            - background_check
            - web_presence
            - bank_statement
            - manual
            - broker_submission
            - application
        source_inputs:
          additionalProperties:
            nullable: true
            type: string
          description: >-
            What this source was searched on, keyed by the field name in that
            source's own spelling, such as `ein` and `legal_name` for the IRS or
            `name` and `state` for the registry. Null where the source was sent
            nothing, which is every line the deal stated itself: those are the
            input. **A key present with a null value means the field was sent
            and its value is not printed; a key absent means the field was not
            sent.** The two are different answers, and the reason this is a map
            rather than fixed columns: a background check is searched on an SSN
            that must never be echoed back, so its key carries no value. Not the
            same as `value`, which is what the source returned.
          nullable: true
          type: object
        value:
          description: >-
            The one value this source is read on, as it wrote it: the one that
            met the field's `value` where it states one, and its own leading
            answer where it does not. Null when it stated nothing, which
            `verification_status` then explains.
          nullable: true
          type: string
        verification_status:
          description: >-
            `agree` and `disagree` are this source read against what the deal
            claimed, not against `value`. `stated` marks the claim itself, which
            is compared against nothing: the application on every field it can
            state, and otherwise the first source this field prefers that spoke.
            `silent` means the source ran and returned no value for this field,
            `not_run` that no run of it reached the deal, and `cannot` that this
            source states no such field at all.
          enum:
            - agree
            - disagree
            - stated
            - silent
            - not_run
            - cannot
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey

````