> ## 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 (image)

> Extract meter and provider from a utility bill image and verify the meter.

Upload a utility bill image. The bill is read to extract the meter number, provider, and bill date, and the meter is then verified with the provider. Unlike [Verify utility bill](/api-reference/verifications/verify-bill), this endpoint returns the extracted bill details and the meter verification result rather than tying the bill to a company address.

Send the request as `multipart/form-data`. **Image only** — JPEG or PNG, up to 5 MB.

## Form fields

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

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

## Response

<ResponseExample>
  ```json Verified theme={null}
  {
    "success": true,
    "billInfo": {
      "meterNumber": "0123456789",
      "provider": "IKEJA",
      "billDate": "2026-05-01"
    },
    "verificationResult": {
      "status": true,
      "address": "14 Marina Road, Lagos",
      "provider": "IKEJA",
      "meterNumber": "0123456789"
    }
  }
  ```
</ResponseExample>

When the meter cannot be verified the response is `400` with the extracted `billInfo` and `suggestions`.

```json Verification failed theme={null}
{
  "success": false,
  "billInfo": {
    "meterNumber": "0123456789",
    "provider": "IKEJA",
    "billDate": "2026-05-01"
  },
  "error": "Verification failed",
  "suggestions": [
    "The meter number is correctly visible in the image",
    "The utility bill is recent and valid",
    "The image is clear and not blurry",
    "The provider information is correct",
    "The bill date is within the last 3 months"
  ],
  "verificationResult": { "status": false }
}
```

## Errors

| Status | Body                                                                                                     | When                                            |
| ------ | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `400`  | `{ "success": false, "error": "Please upload a utility bill image." }`                                   | No file was sent.                               |
| `400`  | `{ "success": false, "error": "Bill is older than 3 months", "extractedInfo": {...} }`                   | The bill date is outside the last three months. |
| `400`  | `{ "success": false, "error": "Valid bill but can't extract the meter number", "extractedInfo": {...} }` | The meter number could not be read.             |
| `400`  | `{ "success": false, "error": "Failed to extract required information from the bill." }`                 | No usable meter or provider could be extracted. |
| `500`  | `{ "success": false, "error": "An error occurred while processing the bill image." }`                    | Unexpected error.                               |

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