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

# List KYB verifications

> Server-to-server (API key) twin of the dashboard KYB verifications list: same {data, has_next} envelope and per-row schema, the only difference is tenancy — the organization comes from the API key (not a path param) and sandbox from the key / the is_sandbox query param.

Paginated list of KYB verifications for the organization, mirroring the KYC (docver) verifications list. Each row carries the table columns (company name, status, decision, risk) PLUS the expanded-row blocks: `company` (Company/Application cards), `form_progress` (widget stepper), `checks_summary` (checks badges + N/M progress) and `stage` — so the expanded row renders without a detail round-trip. Each row's `id` is the KYB CASE id — use it to drill in via GET /api/v4/kyb/verifications/{caseId}.

**Vocabularies.** `status` (stored case lifecycle): draft → under_review (Submit locked the form) → the pipeline writes a terminal status from the risk score: approved (low) | manual_review (medium) | rejected (high) | failed (checks could not be scored). A compliance officer's decision writes approved_manually / rejected_manually (the _manually suffix marks a reviewer-set status). remediation_requested is stamped when a remediation ticket is raised. `stage` (derived, expanded-row header): collecting_data | running_checks | manual_review | in_remediation | completed. `checks_summary.checks[].type`: registry | tin | document_verification | doc_manipulation | aml_company | aml_person | cross_check (the last four appear as their pipeline steps ship). `checks[].status` (execution): pending | completed | failed | skipped | timeout — pending rows carry no result/verdict. `checks[].result` (normalized outcome — drives the badge COLOR and the passed/review/failed counters): clear, not_applicable → passed (green); warning, inconclusive → review (yellow); failed → failed (red). `checks[].verdict` is NOT an enum — it is the provider's normalized verdict to render verbatim as the badge TEXT (registry: `Active`/`Dissolved`/`not_found`/…; tin: `TIN Matched`/`Did Not Match`/`irs_code_<N>`; document_verification: `VERIFIED`/`NOT_VERIFIED`; doc_manipulation later: `AUTHENTIC`/`SUSPICIOUS`/`LIKELY_FORGED`). `form_progress.sections[].state`: completed | current | pending, plus action_required on the synthetic `kyc` step when the representative's KYC came back failed (that one is NOT a remediation). It always describes the ORIGINAL application; a live round has its own stepper in `form_progress_remediation`, covering only the sections it asks about, whose entries are completed | in_remediation. `checks_summary` likewise stays the run a remediation interrupted, and `checks_summary_remediation` is the run its re-submit earned: that one is absent for the whole time the case sits in `in_remediation`, because no such run exists yet. `risk_level` (Low|Medium|High) comes from the business_risk_score severity once it runs, else null (render 'Not scored'). `risk_score`/`decision` (the full numeric RiskResult) stay null — the KYB score is a level, not a number; the stored `status` carries the decision.



## OpenAPI

````yaml https://api.dataspike.io/openapi/kyb/public.json get /api/v4/kyb/verifications
openapi: 3.1.0
info:
  description: Know Your Business (KYB) — case creation and the embedded onboarding widget.
  title: Dataspike KYB API
  version: '1.0'
servers: []
security: []
paths:
  /api/v4/kyb/verifications:
    get:
      tags:
        - KYB Verifications
      summary: List KYB verifications
      description: >-
        Server-to-server (API key) twin of the dashboard KYB verifications list:
        same {data, has_next} envelope and per-row schema, the only difference
        is tenancy — the organization comes from the API key (not a path param)
        and sandbox from the key / the is_sandbox query param.


        Paginated list of KYB verifications for the organization, mirroring the
        KYC (docver) verifications list. Each row carries the table columns
        (company name, status, decision, risk) PLUS the expanded-row blocks:
        `company` (Company/Application cards), `form_progress` (widget stepper),
        `checks_summary` (checks badges + N/M progress) and `stage` — so the
        expanded row renders without a detail round-trip. Each row's `id` is the
        KYB CASE id — use it to drill in via GET
        /api/v4/kyb/verifications/{caseId}.


        **Vocabularies.** `status` (stored case lifecycle): draft → under_review
        (Submit locked the form) → the pipeline writes a terminal status from
        the risk score: approved (low) | manual_review (medium) | rejected
        (high) | failed (checks could not be scored). A compliance officer's
        decision writes approved_manually / rejected_manually (the _manually
        suffix marks a reviewer-set status). remediation_requested is stamped
        when a remediation ticket is raised. `stage` (derived, expanded-row
        header): collecting_data | running_checks | manual_review |
        in_remediation | completed. `checks_summary.checks[].type`: registry |
        tin | document_verification | doc_manipulation | aml_company |
        aml_person | cross_check (the last four appear as their pipeline steps
        ship). `checks[].status` (execution): pending | completed | failed |
        skipped | timeout — pending rows carry no result/verdict.
        `checks[].result` (normalized outcome — drives the badge COLOR and the
        passed/review/failed counters): clear, not_applicable → passed (green);
        warning, inconclusive → review (yellow); failed → failed (red).
        `checks[].verdict` is NOT an enum — it is the provider's normalized
        verdict to render verbatim as the badge TEXT (registry:
        `Active`/`Dissolved`/`not_found`/…; tin: `TIN Matched`/`Did Not
        Match`/`irs_code_<N>`; document_verification: `VERIFIED`/`NOT_VERIFIED`;
        doc_manipulation later: `AUTHENTIC`/`SUSPICIOUS`/`LIKELY_FORGED`).
        `form_progress.sections[].state`: completed | current | pending, plus
        action_required on the synthetic `kyc` step when the representative's
        KYC came back failed (that one is NOT a remediation). It always
        describes the ORIGINAL application; a live round has its own stepper in
        `form_progress_remediation`, covering only the sections it asks about,
        whose entries are completed | in_remediation. `checks_summary` likewise
        stays the run a remediation interrupted, and
        `checks_summary_remediation` is the run its re-submit earned: that one
        is absent for the whole time the case sits in `in_remediation`, because
        no such run exists yet. `risk_level` (Low|Medium|High) comes from the
        business_risk_score severity once it runs, else null (render 'Not
        scored'). `risk_score`/`decision` (the full numeric RiskResult) stay
        null — the KYB score is a level, not a number; the stored `status`
        carries the decision.
      operationId: GET_/api/v4/kyb/verifications
      parameters:
        - description: Page size (5–25, default 20).
          in: query
          name: limit
          schema:
            type: integer
        - description: Zero-based page number.
          in: query
          name: page
          schema:
            type: integer
        - description: Sandbox scope (also inferred from the API key).
          in: query
          name: is_sandbox
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: d5293a33-1d10-4aa2-8ff9-4a2c9a2d1e19
            application/xml:
              schema:
                $ref: d5293a33-1d10-4aa2-8ff9-4a2c9a2d1e19
          description: OK
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponse_kyb.VerificationListItem'
            application/xml:
              schema:
                $ref: '#/components/schemas/PagedResponse_kyb.VerificationListItem'
          description: KYB verifications page.
      security:
        - ApiKey: []
components:
  schemas:
    PagedResponse_kyb.VerificationListItem:
      description: PagedResponse_kyb.VerificationListItem schema
      properties:
        data:
          items:
            example:
              id: 019f179b-0fa7-72c8-818e-819652540477
              verification_id: 019f17a0-5b3d-72c8-818e-819652540900
              public_id: KYBC8274B9CF4907859
              organization_id: o6e501dc4d3c6d9a4
              applicant_id: 019f1383-8f38-7d31-b921-39310a19b444
              external_id: bolt-merchant-123
              company_name: Acme Holdings Inc.
              country: US
              status: under_review
              stage: manual_review
              is_sandbox: false
              created_at: '2026-07-01T08:10:00Z'
              submitted_at: '2026-07-01T08:15:00Z'
              last_activity_at: '2026-07-01T08:15:00Z'
              company:
                legal_name: Acme Holdings Inc.
                form_type: US - Limited Liability Company (LLC)
                entity_type: Limited Liability Company (LLC)
                registration_type: EIN
                registration_number: 16-1782204
                country: US
                state: NY
                representative_name: Joe Marrano
                representative_email: joe@acme.com
              form_progress:
                sections_completed: 7
                sections_total: 7
                sections:
                  - key: business
                    title: Business details
                    state: completed
                  - key: registration
                    title: Business registration
                    state: completed
                  - key: address_contact
                    title: Business address
                    state: completed
                  - key: representative
                    title: Representative
                    state: completed
                  - key: people
                    title: Beneficial owners
                    state: completed
                  - key: volume_banking
                    title: Volumes & banking
                    state: completed
                  - key: documents
                    title: Documents
                    state: completed
              checks_summary:
                expected: 3
                completed: 3
                passed: 2
                review: 1
                failed: 0
                errored: 0
                checks:
                  - type: registry
                    status: completed
                    severity: low
                    verdict: active
                    completed_at: '2026-07-01T08:16:05Z'
                  - type: tin
                    status: completed
                    severity: medium
                    verdict: not_issued
                    completed_at: '2026-07-01T08:16:07Z'
                  - type: document_verification
                    status: completed
                    severity: low
                    verdict: verified
                    completed_at: '2026-07-01T08:16:31Z'
            properties:
              applicant_id:
                example: 019f1383-8f38-7d31-b921-39310a19b444
                type: string
              checks_summary:
                nullable: true
                properties:
                  checks:
                    items:
                      properties:
                        completed_at:
                          format: date-time
                          nullable: true
                          type: string
                        instances:
                          nullable: true
                          properties:
                            completed:
                              example: 3
                              type: integer
                            expected:
                              example: 8
                              type: integer
                          type: object
                        severity:
                          example: low
                          nullable: true
                          type: string
                        status:
                          example: completed
                          type: string
                        type:
                          example: registry
                          type: string
                        verdict:
                          example: active
                          nullable: true
                          type: string
                      type: object
                    type: array
                  completed:
                    example: 6
                    type: integer
                  errored:
                    example: 0
                    type: integer
                  expected:
                    example: 7
                    type: integer
                  failed:
                    example: 0
                    type: integer
                  passed:
                    example: 4
                    type: integer
                  review:
                    example: 2
                    type: integer
                type: object
              checks_summary_remediation:
                nullable: true
                properties:
                  checks:
                    items:
                      properties:
                        completed_at:
                          format: date-time
                          nullable: true
                          type: string
                        instances:
                          nullable: true
                          properties:
                            completed:
                              example: 3
                              type: integer
                            expected:
                              example: 8
                              type: integer
                          type: object
                        severity:
                          example: low
                          nullable: true
                          type: string
                        status:
                          example: completed
                          type: string
                        type:
                          example: registry
                          type: string
                        verdict:
                          example: active
                          nullable: true
                          type: string
                      type: object
                    type: array
                  completed:
                    example: 6
                    type: integer
                  errored:
                    example: 0
                    type: integer
                  expected:
                    example: 7
                    type: integer
                  failed:
                    example: 0
                    type: integer
                  passed:
                    example: 4
                    type: integer
                  review:
                    example: 2
                    type: integer
                type: object
              company:
                nullable: true
                properties:
                  country:
                    example: US
                    nullable: true
                    type: string
                  dba:
                    nullable: true
                    type: string
                  entity_type:
                    example: Limited Liability Company (LLC)
                    nullable: true
                    type: string
                  form_type:
                    example: US - Limited Liability Company (LLC)
                    nullable: true
                    type: string
                  legal_name:
                    example: Acme Holdings Inc.
                    nullable: true
                    type: string
                  registration_number:
                    example: 16-1782204
                    nullable: true
                    type: string
                  registration_type:
                    example: EIN
                    nullable: true
                    type: string
                  representative_email:
                    example: joe@acme.com
                    nullable: true
                    type: string
                  representative_name:
                    example: Joe Marrano
                    nullable: true
                    type: string
                  state:
                    example: NY
                    nullable: true
                    type: string
                type: object
              company_name:
                example: Acme Holdings Inc.
                nullable: true
                type: string
              country:
                example: US
                nullable: true
                type: string
              created_at:
                format: date-time
                type: string
              decision:
                example: manual_review
                nullable: true
                type: string
              external_id:
                example: bolt-merchant-123
                nullable: true
                type: string
              form_progress:
                nullable: true
                properties:
                  current_section:
                    example: volume_banking
                    nullable: true
                    type: string
                  sections:
                    items:
                      properties:
                        key:
                          example: volume_banking
                          type: string
                        state:
                          example: current
                          type: string
                        title:
                          example: Volumes & banking
                          type: string
                      type: object
                    type: array
                  sections_completed:
                    example: 4
                    type: integer
                  sections_total:
                    example: 7
                    type: integer
                type: object
              form_progress_remediation:
                nullable: true
                properties:
                  current_section:
                    example: volume_banking
                    nullable: true
                    type: string
                  sections:
                    items:
                      properties:
                        key:
                          example: volume_banking
                          type: string
                        state:
                          example: current
                          type: string
                        title:
                          example: Volumes & banking
                          type: string
                      type: object
                    type: array
                  sections_completed:
                    example: 4
                    type: integer
                  sections_total:
                    example: 7
                    type: integer
                type: object
              id:
                example: 019f179b-0fa7-72c8-818e-819652540477
                type: string
              is_sandbox:
                example: false
                type: boolean
              last_activity_at:
                format: date-time
                type: string
              organization_id:
                example: o6e501dc4d3c6d9a4
                type: string
              public_id:
                example: KYBC8274B9CF4907859
                type: string
              risk_level:
                example: medium
                nullable: true
                type: string
              risk_score:
                example: 42
                nullable: true
                type: integer
              stage:
                example: manual_review
                type: string
              status:
                example: under_review
                type: string
              submitted_at:
                format: date-time
                nullable: true
                type: string
              verification_id:
                nullable: true
                type: string
            type: object
          type: array
        has_next:
          type: boolean
      type: object
  securitySchemes:
    ApiKey:
      description: API token passed in the request header.
      in: header
      name: ds-api-token
      type: apiKey

````