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

> Upload a utility bill and verify the printed address against the company on file.

Upload a utility bill image. The bill is read by the verification model and its address is checked against the company's address on file. On a pass, the company's `utility_bill` and `address_verified` flags are set. The request is `multipart/form-data` and the company must already have an address.

## Form fields

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

<ParamField body="bill" type="file" required>
  The utility bill. PDF, JPEG, or PNG, up to 10 MB.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.vouchmark.com/v1/verifyBill \
    -H "Authorization: Bearer $TOKEN" \
    -F "companyId=cmp_aBcD..." \
    -F "bill=@./utility-bill.jpg"
  ```
</RequestExample>

## Response

A pass returns a short success message. The TIN/address details are written to the company record, not echoed back.

<ResponseExample>
  ```json Verified theme={null}
  {
    "success": true,
    "message": "Utility bill verified successfully"
  }
  ```
</ResponseExample>

When the bill cannot be matched the response is `400` with a `reason` and `suggestions`.

```json Failed theme={null}
{
  "success": false,
  "error": "Bill verification failed",
  "reason": "The address on the bill does not match the company address",
  "suggestions": [
    "Make sure the bill is authentic and recent (within 6 months)",
    "Check that the address on the bill matches your company address",
    "Ensure the image is clear and shows all details"
  ]
}
```

## Errors

| Status | Body                                                                                                | When                                                   |
| ------ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| `400`  | `{ "success": false, "error": "Please upload a utility bill image" }`                               | No file was sent.                                      |
| `400`  | `{ "success": false, "error": "Company information is required" }`                                  | `companyId` was omitted.                               |
| `400`  | `{ "success": false, "error": "Company address not found", "reason": "...", "suggestions": [...] }` | The company has no address on file to compare against. |
| `401`  | `{ "success": false, "error": "Unauthorized" }`                                                     | No authenticated user.                                 |
| `404`  | `{ "success": false, "error": "Company not found. Please check your company details" }`             | No company matches `companyId`.                        |
| `500`  | `{ "success": false, "error": "...", "reason": "...", "suggestions": [...] }`                       | Processing failed.                                     |

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