us_bank_statementBank statement
Holder, period, routing number and balances reconciled.
- Category
- Payments and finance
- Country
- United States
- Extracted fields
- 14 fields
- Cost
- 2 credits
us_bank_statementspecimen- Bank name
- Account holder
- Address
- Postal code
- Account number
- ABA routing number
- Account type
- Period start
- Period end
For rental applications, proof of funds or onboarding. Constaia extracts the holder, statement period, routing number and totals, validates the ABA routing checksum and checks that opening balance plus deposits minus withdrawals equals the closing balance.
- Pages count: every 2 extra pages add 1 credit.
- Constaia does not connect to the bank. If you need confirmed balances, use an account data provider.
What it checks
- National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).
us_aba, 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
- Bank name
bank_name - Account holder
account_holder - Address
address - Postal code
postal_code - Account number
account_number - ABA routing number
routing_number - Account type
account_type - Period start
period_start - Period end
period_end - Opening balance
opening_balance - Closing balance
closing_balance - Total deposits
total_deposits - Total withdrawals
total_withdrawals - Transactions
transactions
Where it is used
Sample request
curl https://api.constaia.com/v1/analyze \
-H "Authorization: Bearer $CONSTAIA_API_KEY" \
-F "file=@us_bank_statement_specimen.pdf" \
-F 'options={
"expect": "us_bank_statement",
"checks": {
"max_age_days": 60,
"holder": {
"full_name": "Jordan Specimen"
}
},
"storage": "none"
}'Try it for free with a ck_test_ key and the file us_bank_statement_specimen.pdf.
Sample response
Fictitious data. Shortened response.
{
"id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
"object": "analysis",
"status": "completed",
"livemode": false,
"document": {
"type": "us_bank_statement",
"label": "Bank statement",
"confidence": 0.97
},
"verdict": {
"expected": [
"us_bank_statement"
],
"match": true,
"status": "valid",
"reasons": [
{
"code": "type_match",
"severity": "info",
"message": "The document is: Bank statement."
}
]
},
"fields": {
"bank": {
"value": "EXAMPLE NATIONAL BANK",
"confidence": 0.99,
"validated": true
},
"account_holder": {
"value": "JORDAN SPECIMEN",
"confidence": 0.98,
"validated": null
},
"account_number_last4": {
"value": "4821",
"confidence": 0.97,
"validated": null
},
"routing_number": {
"value": "123456780",
"confidence": 0.96,
"validated": null
},
"statement_period_start": {
"value": "2026-08-01",
"confidence": 0.99,
"validated": null
},
"statement_period_end": {
"value": "2026-08-31",
"confidence": 0.98,
"validated": null
},
"opening_balance": {
"value": 3210.44,
"confidence": 0.97,
"validated": null
},
"total_deposits": {
"value": 4852.1,
"confidence": 0.96,
"validated": null
},
"total_withdrawals": {
"value": 4101.72,
"confidence": 0.99,
"validated": null
},
"closing_balance": {
"value": 3960.82,
"confidence": 0.98,
"validated": null
}
},
"checks": [
{
"code": "aba_routing_checksum",
"passed": true,
"message": "The ABA routing number is correct."
},
{
"code": "totals_balance",
"passed": true,
"message": "Base, VAT and total add up."
},
{
"code": "max_age_days",
"passed": true,
"message": "The issue date is within the limit."
},
{
"code": "holder_match",
"passed": true,
"message": "The holder matches."
}
],
"warnings": [],
"storage": {
"mode": "none",
"file_deleted_at": "2026-09-29T10:00:02Z",
"expires_at": null
},
"usage": {
"credits": 2,
"pages": 3
}
}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.