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

# Dismiss Pending Verification

> Close a queued KYC approval without registering it

<Warning>
  A dismissal cannot be undone, and no endpoint restores the row. [Build Pending Registration](/endpoints/customers/build-pending-registration) and [Confirm Pending Registration](/endpoints/customers/confirm-pending-registration) act only on `PENDING` rows. The approval's `kycHash`, expiries and residency claim therefore never reach the register from the queue.

  Verifying the wallet later with [Verify Identity](/endpoints/customers/verify-identity) or [Batch Verify](/endpoints/customers/batch-verify) settles only `PENDING` rows. The follow-ups of a confirmed row therefore never run for this one. Its hosted verification checkout does not turn `VERIFIED`, stock escrow deposits waiting on its ID link are not bound to the wallet, and the customer is not emailed.

  A new KYC approval for the customer queues a fresh row. The dismissed one stays as it is.
</Warning>

Closes one queued approval from [List Pending Verifications](/endpoints/customers/list-pending-verifications) without registering it. Use it for an approval you have decided not to put on chain. The row turns `DISMISSED` and stays listable under that status.

Nothing else changes. No transaction is built, nothing on chain moves, and the customer record keeps its status. A `REGISTER_SWITCH` row's customer therefore still reads `verified`, although nothing put the wallet on your new register.

The dismissal is written to the customer audit log as `ON_CHAIN_VERIFICATION_DISMISSED`, with the row `id` and its `source`.

## Path Parameters

<ParamField path="id" type="string" required>
  The row `id` from [List Pending Verifications](/endpoints/customers/list-pending-verifications). The row must still be `PENDING`.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="message" type="string">`Pending verification dismissed`.</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.trusset.org/customers/api/identity/pending/cmg1u9q2m0007l80hc4t8z3wa/dismiss" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    'https://api.trusset.org/customers/api/identity/pending/cmg1u9q2m0007l80hc4t8z3wa/dismiss',
    {
      method: 'POST',
      headers: { 'X-API-Key': 'trusset_your_key_here' }
    }
  );
  const { success, error } = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "message": "Pending verification dismissed"
    },
    "error": null,
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2026-09-30T10:00:00.000Z"
    }
  }
  ```

  ```json Error - Not Found theme={null}
  {
    "success": false,
    "data": null,
    "error": {
      "code": "NOT_FOUND",
      "message": "Pending verification not found"
    },
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2026-09-30T10:00:00.000Z"
    }
  }
  ```
</ResponseExample>

## Error Codes

| Code | HTTP | Cause |
| - | - | - |
| `NOT_FOUND` | `404` | No `PENDING` row with this `id` on your instance, including one already confirmed or dismissed, or the instance no longer exists |
| `PENDING_DISMISS_FAILED` | `500` | The row could not be updated |
