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

# Verify or reject that an individual operates a business

> Records your organization's own decision on whether the individual behind `individual_ref` operates the business behind `business_ref` — for example after your own due diligence. The decision applies to your organization only: it never changes what another organization sees. `VERIFIED` affirms the relationship only: business credentials assert and are dated by what your own sessions found, so if that is more than a year old, re-verify the individual before minting. `REJECTED` stops new business credentials for the pair until you decide again, whatever later sessions score; credentials already minted stay valid until they expire or you revoke them. A later decision replaces an earlier one, with its decider, time and reason; repeating the link's current status records them again without changing it. You can decide a pair only once one of your own sessions has covered it. Returns the link as the list shows it.



## OpenAPI

````yaml /api-reference/openapi.json post /issuance/identities/businesses/{business_ref}/operator_links/{individual_ref}/decide
openapi: 3.1.0
info:
  title: baselayer-api-service
  version: 0.1.0
servers:
  - url: https://api.baselayer.com/
security: []
paths:
  /issuance/identities/businesses/{business_ref}/operator_links/{individual_ref}/decide:
    post:
      tags:
        - Identities
      summary: Verify or reject that an individual operates a business
      description: >-
        Records your organization's own decision on whether the individual
        behind `individual_ref` operates the business behind `business_ref` —
        for example after your own due diligence. The decision applies to your
        organization only: it never changes what another organization sees.
        `VERIFIED` affirms the relationship only: business credentials assert
        and are dated by what your own sessions found, so if that is more than a
        year old, re-verify the individual before minting. `REJECTED` stops new
        business credentials for the pair until you decide again, whatever later
        sessions score; credentials already minted stay valid until they expire
        or you revoke them. A later decision replaces an earlier one, with its
        decider, time and reason; repeating the link's current status records
        them again without changing it. You can decide a pair only once one of
        your own sessions has covered it. Returns the link as the list shows it.
      operationId: issuance_identities_businesses_operator_links_decide
      parameters:
        - name: business_ref
          in: path
          required: true
          schema:
            type: string
            title: Business Ref
        - name: individual_ref
          in: path
          required: true
          schema:
            type: string
            title: Individual Ref
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.BusinessOperatorLinkDecisionRequest'
          application/vnd.baselayer.v1+json:
            schema:
              $ref: '#/components/schemas/v1.BusinessOperatorLinkDecisionRequest'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.OperatorLinkResponse'
            application/vnd.baselayer.v1+json:
              schema:
                $ref: '#/components/schemas/v1.OperatorLinkResponse'
        '404':
          description: >-
            A ref is unknown or was issued to another organization, or your
            organization holds no link for the pair — all indistinguishable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                title: ResourceNotFound
                description: Could not locate the resource for the given URI.
                examples:
                  - type: resource_not_found
                    code: 1
                    message: Could not locate the resource for the given URI.
                    metadata: {}
        '422':
          description: The request is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                title: ValidationFailed
                description: The request is invalid.
                examples:
                  - type: validation_failed
                    code: 7112
                    message: The request is invalid.
                    metadata: {}
      security:
        - APIKeyHeader: []
components:
  schemas:
    v1.BusinessOperatorLinkDecisionRequest:
      additionalProperties: false
      description: Body for verifying or rejecting your organization's operator link.
      properties:
        decision:
          $ref: '#/components/schemas/v1.BusinessOperatorLinkDecision'
          description: >-
            `VERIFIED` to affirm that the individual operates the business,
            `REJECTED` to refuse it. Applies to your organization only.
        reason:
          anyOf:
            - maxLength: 2000
              type: string
            - type: 'null'
          default: null
          description: Optional internal reason, kept with the decision.
          title: Reason
      required:
        - decision
      title: BusinessOperatorLinkDecisionRequest (v1)
      type: object
    v1.OperatorLinkResponse:
      description: |-
        One operator link your organization holds, naming both ends: a row
        of the link requests list.
      properties:
        status:
          $ref: '#/components/schemas/v1.BusinessOperatorLinkStatus'
          description: Your organization's current status for the link.
        review_flagged_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          default: null
          description: >-
            When a later evaluation flagged this verified link for review; null
            when it never was.
          title: Review Flagged At
        decided_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          default: null
          description: >-
            When your organization last verified or rejected the link by hand;
            null while only the evidence has decided it.
          title: Decided At
        decided_by:
          anyOf:
            - $ref: '#/components/schemas/v1.ActedBy'
            - type: 'null'
          default: null
          description: >-
            Who made that decision, as stamped when they made it; null when no
            one has.
        decision_reason:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: The reason recorded with that decision, if any.
          title: Decision Reason
        created_at:
          description: When the link was first recorded.
          format: date-time
          title: Created At
          type: string
        source_verification_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          default: null
          description: >-
            The verification that established the link; null when that
            verification no longer exists. A direct verification reads at `GET
            /issuance/identities/verifications/{verification_id}`; a hosted one
            is an onboarding session and reads at `GET
            /onboarding/sessions/{session_id}`.
          title: Source Verification Id
        individual_ref:
          description: Pairwise reference to the linked individual.
          title: Individual Ref
          type: string
        individual_display_name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            The individual's verified name from your organization's current
            verification; null when it has been superseded and not yet replaced.
          title: Individual Display Name
        business_ref:
          description: Pairwise reference to the linked business.
          title: Business Ref
          type: string
        business_legal_name:
          description: The linked business's current legal name.
          title: Business Legal Name
          type: string
        shortfalls:
          description: >-
            What your newest evaluation of the pair fell short on, in recipe
            order: the reason a link is under review or flagged. Empty when it
            met the recipe.
          items:
            $ref: '#/components/schemas/v1.BusinessOperatorLinkShortfall'
          title: Shortfalls
          type: array
      required:
        - status
        - created_at
        - individual_ref
        - business_ref
        - business_legal_name
        - shortfalls
      title: OperatorLinkResponse (v1)
      type: object
    Error:
      properties:
        type:
          type: string
          title: Type
          description: >-
            Stable snake_case name of the error. Branch on this, never on
            `message`.
        code:
          type: integer
          title: Code
          description: Integer catalog code of the error.
        message:
          type: string
          title: Message
          description: For a human reading a log; not stable and not localized.
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
          description: Context documented per `type`.
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Id
          description: The `X-Request-ID` of the failed request.
      type: object
      required:
        - type
        - code
        - message
      title: Error
      description: The one body of every error a KYA route answers.
    v1.BusinessOperatorLinkDecision:
      description: |-
        An organization's manual decision on its operator link.

        Deliberately narrower than the status vocabulary: UnderReview is the
        absence of a decision, so a decision can only verify or reject.
      enum:
        - VERIFIED
        - REJECTED
      title: BusinessOperatorLinkDecision
      type: string
    v1.BusinessOperatorLinkStatus:
      description: |-
        Your organization's status for the link between an individual and a
        business they operate.

        VERIFIED is earned by the full evidence recipe (TIN provided +
        IRS-matched + KYB-verified) on one of your own sessions, or decided by
        your organization; UNDER_REVIEW is every automatic shortfall; REJECTED
        is your organization's refusal, which stands until you decide again.
        Another organization's evidence or decision never changes it.
      enum:
        - VERIFIED
        - UNDER_REVIEW
        - REJECTED
      title: BusinessOperatorLinkStatus
      type: string
    v1.ActedBy:
      description: |-
        Who acted on a record, as they were named when they acted: the one actor
        shape every route answers.
      properties:
        kind:
          $ref: '#/components/schemas/v1.ActedByKind'
          description: '`USER` for a console user, `API_KEY` for a key.'
        label:
          description: >-
            The user's first and last name or the API key's name, as they were
            when they acted; never rewritten by a later rename or deletion.
          title: Label
          type: string
      required:
        - kind
        - label
      title: ActedBy (v1)
      type: object
    v1.BusinessOperatorLinkShortfall:
      description: >-
        Which leg of the operator-link evidence recipe a covering evaluation

        failed.


        Reviewer-facing: a session whose evaluation reports any shortfall
        records

        an UNDER_REVIEW link, and these name what a reviewer would be overriding

        by verifying it anyway. An evaluation that reports none earns VERIFIED
        on

        its own.
      enum:
        - TIN_NOT_PROVIDED
        - TIN_NOT_MATCHED
        - KYB_NOT_VERIFIED
      title: BusinessOperatorLinkShortfall
      type: string
    v1.ActedByKind:
      description: 'Who acted on a record: a console user or an API key.'
      enum:
        - USER
        - API_KEY
      title: ActedByKind
      type: string
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.