Skip to main content
Utility verification ties a company to a physical location. There are three paths: upload a bill and match it to the company’s address, verify an electricity meter directly, or submit the address for a physical visit.

Match a bill to the company address

POST /v1/verifyBill reads an uploaded bill and checks its printed address against the company’s address on file. On a pass, the company’s utility_bill and address_verified flags are set. The company must already have an address on file.
Upload a bill
curl -X POST https://api.vouchmark.com/v1/verifyBill \
  -H "Authorization: Bearer $TOKEN" \
  -F "companyId=cmp_aBcD..." \
  -F "bill=@./utility-bill.jpg"
Verified
{
  "success": true,
  "message": "Utility bill verified successfully"
}
A failure returns 400 with a reason and suggestions. The file is PDF, JPEG, or PNG up to 10 MB. See Verify utility bill.

Verify a meter from a bill image

POST /v1/verify-utility-bill/image reads a bill image (JPEG or PNG, up to 5 MB), extracts the meter number, provider, and bill date, and verifies the meter with the provider. It returns the extracted billInfo and the verificationResult rather than matching against a company address.
Verify from image
curl -X POST https://api.vouchmark.com/v1/verify-utility-bill/image \
  -H "Authorization: Bearer $TOKEN" \
  -F "bill=@./utility-bill.jpg"
See Verify utility bill (image).

Verify a meter manually

POST /v1/verify-utility-bill/manual skips the upload entirely. Supply the meter number and provider code and the meter is verified directly. Valid providers: ABUJA, KADUNA, JOS, PH, IBADAN, IKEJA, EKO, ENUGU, KANO.
Verify manually
curl -X POST https://api.vouchmark.com/v1/verify-utility-bill/manual \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"meterNumber":"0123456789","provider":"IKEJA"}'
See Verify utility bill (manual).

Physical address visit

When no bill is available, submit the company’s address for a physical visit through the KYC provider. Submit with POST /v1/physicalAddress and poll GET /v1/physicalAddress with the returned reference_id (or the companyId). Submission returns a reference_id and a pending status; once the visit completes, the status response carries the captured applicant, location, and photos.
Submit address
curl -X POST https://api.vouchmark.com/v1/physicalAddress \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "companyId": "cmp_aBcD...",
    "business_name": "Tekcify Technologies Ltd",
    "business_mobile": "08030000000",
    "first_name": "Jane",
    "last_name": "Doe",
    "mobile": "08031111111",
    "street": "14 Marina Road",
    "landmark": "Opposite the City Mall",
    "lga": "Lagos Island",
    "city": "Lagos",
    "state": "Lagos"
  }'
Poll status
curl "https://api.vouchmark.com/v1/physicalAddress?companyId=cmp_aBcD..." \
  -H "Authorization: Bearer $TOKEN"
All ten address fields are required. Submission is rate limited to 5 attempts per 24 hours. See Physical address verification.

Reference