curl -X POST https://api.vouchmark.com/v1/verify-utility-bill/image \
-H "Authorization: Bearer $TOKEN" \
-F "bill=@./utility-bill.jpg"
{
"success": true,
"billInfo": {
"meterNumber": "0123456789",
"provider": "IKEJA",
"billDate": "2026-05-01"
},
"verificationResult": {
"status": true,
"address": "14 Marina Road, Lagos",
"provider": "IKEJA",
"meterNumber": "0123456789"
}
}
Verifications
Verify utility bill (image)
Extract meter and provider from a utility bill image and verify the meter.
POST
/
v1
/
verify-utility-bill
/
image
curl -X POST https://api.vouchmark.com/v1/verify-utility-bill/image \
-H "Authorization: Bearer $TOKEN" \
-F "bill=@./utility-bill.jpg"
{
"success": true,
"billInfo": {
"meterNumber": "0123456789",
"provider": "IKEJA",
"billDate": "2026-05-01"
},
"verificationResult": {
"status": true,
"address": "14 Marina Road, Lagos",
"provider": "IKEJA",
"meterNumber": "0123456789"
}
}
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, 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
When the meter cannot be verified the response is
Verification is rate limited to 10 attempts per hour per caller.
multipart/form-data. Image only — JPEG or PNG, up to 5 MB.
Form fields
file
required
The utility bill image. JPEG or PNG, up to 5 MB.
curl -X POST https://api.vouchmark.com/v1/verify-utility-bill/image \
-H "Authorization: Bearer $TOKEN" \
-F "bill=@./utility-bill.jpg"
Response
{
"success": true,
"billInfo": {
"meterNumber": "0123456789",
"provider": "IKEJA",
"billDate": "2026-05-01"
},
"verificationResult": {
"status": true,
"address": "14 Marina Road, Lagos",
"provider": "IKEJA",
"meterNumber": "0123456789"
}
}
400 with the extracted billInfo and suggestions.
Verification failed
{
"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. |
