Skip to content
Constaia
us_utility_bill

Utility bill

Proof of address: provider, account holder, service address and date.

Category
Proof of address
Country
United States
Extracted fields
11 fields
Cost
1 credit
us_utility_billspecimen
Provider
Service type
Account holder
Account number
Service address
Postal code
Issue date
Due date
Service period start

Electric, gas, water, internet or phone bills are the usual proof of address. Constaia extracts the provider, account holder and service address, checks that the bill is recent and compares the address with the one you expect.

  • Pass the expected address in checks.expected_address: abbreviations such as St and Street or Apt and # are normalized.

What it checks

  • National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).us_zip
  • Postal code. Postal code format of the country.
  • Holder. Name, number or date of birth match what you expect.
  • Recency. Issued less than N days ago.

Extracted fields

  • Providerprovider
  • Service typeservice_type
  • Account holderaccount_holder
  • Account numberaccount_number
  • Service addressservice_address
  • Postal codepostal_code
  • Issue dateissue_date
  • Due datedue_date
  • Service period startservice_period_start
  • Service period endservice_period_end
  • Amount dueamount_due

Where it is used

Sample request

curl https://api.constaia.com/v1/analyze \
  -H "Authorization: Bearer $CONSTAIA_API_KEY" \
  -F "file=@us_utility_bill_specimen.pdf" \
  -F 'options={
    "expect": "us_utility_bill",
    "checks": {
      "max_age_days": 90,
      "holder": {
        "full_name": "Jordan Specimen"
      },
      "expected_address": "742 Example Ave, Springfield, OR 97477"
    },
    "storage": "none"
  }'

Try it for free with a ck_test_ key and the file us_utility_bill_specimen.pdf.

Sample response

Fictitious data. Shortened response.

200 OK · application/json
{
  "id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
  "object": "analysis",
  "status": "completed",
  "livemode": false,
  "document": {
    "type": "us_utility_bill",
    "label": "Utility bill",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "us_utility_bill"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: Utility bill."
      }
    ]
  },
  "fields": {
    "provider_name": {
      "value": "EXAMPLE POWER & LIGHT",
      "confidence": 0.99,
      "validated": true
    },
    "account_holder": {
      "value": "JORDAN SPECIMEN",
      "confidence": 0.98,
      "validated": null
    },
    "service_address": {
      "value": "742 EXAMPLE AVE, SPRINGFIELD, OR 97477",
      "confidence": 0.97,
      "validated": null
    },
    "account_number_last4": {
      "value": "0917",
      "confidence": 0.96,
      "validated": null
    },
    "issue_date": {
      "value": "2026-09-05",
      "confidence": 0.99,
      "validated": null
    },
    "due_date": {
      "value": "2026-09-26",
      "confidence": 0.98,
      "validated": null
    },
    "amount_due": {
      "value": 84.37,
      "confidence": 0.97,
      "validated": null
    }
  },
  "checks": [
    {
      "code": "max_age_days",
      "passed": true,
      "message": "The issue date is within the limit."
    },
    {
      "code": "holder_match",
      "passed": true,
      "message": "The holder matches."
    },
    {
      "code": "address_match",
      "passed": true,
      "message": "The address matches the expected one."
    }
  ],
  "warnings": [],
  "storage": {
    "mode": "none",
    "file_deleted_at": "2026-09-29T10:00:02Z",
    "expires_at": null
  },
  "usage": {
    "credits": 1,
    "pages": 2
  }
}

FAQ

Does Constaia prove the document is authentic?

No. It checks the type, data consistency and your rules, and flags signals such as a possible edit or a screen photo. That does not prove authenticity.

Is a copy of the document kept?

No, unless you ask for it. With storage "none" (the default) the file is deleted when the analysis ends.

Other documents

And for the record…

Create your account, copy the test key and validate your first document in five minutes.