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

> Paginated list of KYB verifications for the organization, mirroring the KYC (docver) verifications list. Returns a {data, has_next} envelope. 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 /webapi/v4/kyb/organization/{organizationId}/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` (lifecycle): pending | in_progress | completed | error. pending/in_progress rows carry no severity/verdict; error rows carry an errors[] entry and no severity/verdict. `checks[].severity` (normalized outcome — drives the badge COLOR and the passed/review/failed counters, only when completed): low → passed (green); medium → review (yellow); high → failed (red). An error status is counted separately (errored), not as a business failure. `checks[].verdict` (only when completed) is the normalized lower_snake verdict to render verbatim as the badge TEXT (registry: `active`/`inactive`/`dissolved`/`not_found`/`found_similar`/`no_data`; tin: `match`/`mismatch`/`not_issued`/`no_data`; document_verification: `verified`/`not_verified`/`no_data`; doc_manipulation: `authentic`/`suspicious`/`tampered`; aml_company/aml_person: `no_hits`/`potential_match`/`confirmed_hit`; cross_check: `match`/`partial_match`/`mismatch`; agentic_verification: `no_findings`/`findings`; website_triage: `legitimate`/`content_mismatch`/`category_mismatch` (the site backs the business but not the declared MCC)/`parked`/`unreachable`/`prohibited_content`/`inconclusive` (the site could not be inspected — blocked, no readable content, or not classified); business_risk_score carries NO verdict — severity is the risk level). `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 /webapi/v4/kyb/organization/{organizationId}/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:
  /webapi/v4/kyb/organization/{organizationId}/verifications:
    get:
      tags:
        - KYB Verifications
      summary: List KYB verifications
      description: >-
        Paginated list of KYB verifications for the organization, mirroring the
        KYC (docver) verifications list. Returns a {data, has_next} envelope.
        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
        /webapi/v4/kyb/organization/{organizationId}/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` (lifecycle): pending | in_progress | completed
        | error. pending/in_progress rows carry no severity/verdict; error rows
        carry an errors[] entry and no severity/verdict. `checks[].severity`
        (normalized outcome — drives the badge COLOR and the
        passed/review/failed counters, only when completed): low → passed
        (green); medium → review (yellow); high → failed (red). An error status
        is counted separately (errored), not as a business failure.
        `checks[].verdict` (only when completed) is the normalized lower_snake
        verdict to render verbatim as the badge TEXT (registry:
        `active`/`inactive`/`dissolved`/`not_found`/`found_similar`/`no_data`;
        tin: `match`/`mismatch`/`not_issued`/`no_data`; document_verification:
        `verified`/`not_verified`/`no_data`; doc_manipulation:
        `authentic`/`suspicious`/`tampered`; aml_company/aml_person:
        `no_hits`/`potential_match`/`confirmed_hit`; cross_check:
        `match`/`partial_match`/`mismatch`; agentic_verification:
        `no_findings`/`findings`; website_triage:
        `legitimate`/`content_mismatch`/`category_mismatch` (the site backs the
        business but not the declared
        MCC)/`parked`/`unreachable`/`prohibited_content`/`inconclusive` (the
        site could not be inspected — blocked, no readable content, or not
        classified); business_risk_score carries NO verdict — severity is the
        risk level). `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_/webapi/v4/kyb/organization/:organizationId/verifications
      parameters:
        - description: Organization id.
          in: path
          name: organizationId
          required: true
          schema:
            type: string
        - 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 session).
          in: query
          name: is_sandbox
          schema:
            type: boolean
        - description: >-
            Keep only cases with a reviewer-set status (approved_manually /
            rejected_manually).
          in: query
          name: by_manual
          schema:
            type: boolean
        - description: >-
            Filter by case status. `approved` and `rejected` also match their
            _manually variant.
          in: query
          name: status
          schema:
            type: string
      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:
        - Session: []
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:
    Session:
      description: Session cookie for web dashboard authentication.
      in: cookie
      name: ds-prod-session
      type: apiKey

````