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

# Simulate client identity approval or rejection

> Simulate approving or rejecting a client identity (KYC) for a card account in the Sandbox environment.

This endpoint allows you to test your integration by triggering KYC approval or rejection without manual intervention. 
Webhooks will be sent as they would in production, enabling you to test your complete integration flow.
**Note:** This endpoint is only available in Sandbox mode.



## OpenAPI

````yaml /issuing/api-reference/openapi.yaml post /cardaccounts/simulate-client-identity-status
openapi: 3.1.0
info:
  title: API Reference
  version: '1.0'
servers:
  - url: https://access.utgl.io/v1
  - url: https://sandbox.access.utgl.io/v1
security:
  - Basic: []
  - Bearer: []
tags:
  - name: Accounts
  - name: Transactions
  - name: Card Accounts
  - name: Card Products
  - name: Cards
  - name: Digital Custody
  - name: Fee
  - name: Payout
paths:
  /cardaccounts/simulate-client-identity-status:
    post:
      tags:
        - Card Accounts
      summary: Simulate client identity approval or rejection
      description: >-
        Simulate approving or rejecting a client identity (KYC) for a card
        account in the Sandbox environment.


        This endpoint allows you to test your integration by triggering KYC
        approval or rejection without manual intervention. 

        Webhooks will be sent as they would in production, enabling you to test
        your complete integration flow.

        **Note:** This endpoint is only available in Sandbox mode.
      operationId: simulateClientIdentityStatus
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - cardAccountId
                - action
              properties:
                cardAccountId:
                  type: string
                  format: uuid
                  description: >-
                    The card account ID whose client identity will be approved
                    or rejected
                  example: 6e519e8e-15ac-483e-b6ac-d0f42aee36b2
                action:
                  type: string
                  enum:
                    - approve
                    - reject
                  description: The action to simulate on the client identity
                rejectedReason:
                  type: string
                  maxLength: 500
                  description: Required when action is `reject`. The reason for rejection.
                  example: Document expired
                rejectionAdditionalInfo:
                  type: string
                  maxLength: 1000
                  description: >-
                    Optional additional details about the KYC rejection, such as
                    documents or follow-up instructions.
                  example: >-
                    Please update your proof of address and resubmit within 14
                    days.
      responses:
        '200':
          description: Successfully simulated client identity status change
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: The client identity ID
                  cardAccountId:
                    type: string
                    format: uuid
                    description: The card account ID
                  kycStatus:
                    type: string
                    description: The updated KYC status after the simulated action
        '400':
          description: >-
            Bad request. Possible error codes:

            - `BAD_REQUEST` — Validation error (e.g. missing rejectedReason when
            action is reject)

            - `INVALID_CARD_ACCOUNT` — Card account not found or does not belong
            to the authenticated user

            - `ERR_CLIENT_IDENTITY_IS_NOT_FOUND` — No client identity associated
            with the card account
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code
                    enum:
                      - BAD_REQUEST
                      - INVALID_CARD_ACCOUNT
                      - ERR_CLIENT_IDENTITY_IS_NOT_FOUND
                  message:
                    type: string
                    description: Human-readable error message
        '403':
          description: Sandbox mode is not enabled (CMS_SANDBOX != 1)
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code
                    example: ERR_SANDBOX_ONLY
                  message:
                    type: string
                    description: Human-readable error message
                    example: This endpoint is only available in sandbox mode
components:
  securitySchemes:
    Basic:
      type: http
      scheme: basic
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````