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

# Verify one CAC document

> Submit a single CAC document for asynchronous verification.

Submit one CAC document at a time instead of the full batch. Like [Verify CAC documents](/api-reference/verifications/verify-cac), this endpoint is **asynchronous**: it queues the document and returns immediately with a `pending` status. The result is emailed and reflected in [Get CAC verification status](/api-reference/verifications/cac-status).

Send the request as `multipart/form-data`. You must own the company.

## Form fields

<ParamField body="companyId" type="string" required>
  The company the document belongs to.
</ParamField>

<ParamField body="document" type="file" required>
  The CAC document. PDF, JPEG, or PNG, up to 25 MB.
</ParamField>

<ParamField body="documentType" type="string" required>
  Which document is being submitted. One of `cacert`, `cacReport`, or `memartDocument`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.vouchmark.com/v1/verifyCacDocument \
    -H "Authorization: Bearer $TOKEN" \
    -F "companyId=cmp_aBcD..." \
    -F "documentType=cacert" \
    -F "document=@./cacert.pdf"
  ```
</RequestExample>

## Response

`progress` reports how many of the required documents are verified so far. `total` is `3` for RC companies (certificate, report, MEMART) and `2` otherwise.

<ResponseExample>
  ```json Accepted theme={null}
  {
    "message": "CAC Certificate submitted for verification. You will receive an email notification once verification is complete.",
    "status": "pending",
    "companyId": "cmp_aBcD...",
    "documentType": "cacert",
    "progress": {
      "verified": 0,
      "total": 3
    }
  }
  ```
</ResponseExample>

## Errors

| Status | Body                                                                                      | When                                   |
| ------ | ----------------------------------------------------------------------------------------- | -------------------------------------- |
| `400`  | `{ "error": "Company ID and document type are required." }`                               | `companyId` or `documentType` missing. |
| `400`  | `{ "error": "Invalid document type. Must be one of: cacert, cacReport, memartDocument" }` | `documentType` not recognised.         |
| `400`  | `{ "error": "Document file is required." }`                                               | No file was sent.                      |
| `404`  | `{ "error": "Company not found." }`                                                       | No company matches `companyId`.        |
| `403`  | `{ "error": "You do not have permission to submit documents for this company." }`         | You do not own the company.            |
| `409`  | `{ "error": "CAC Certificate is already verified." }`                                     | That document is already verified.     |

Verification is rate limited to 10 attempts per hour per caller.
