Skip to content
Constaia
bank_statement

Bank statement

Bank account statement from any country: bank, holder, IBAN, period, balances and transactions.

Category
Payments and finance
Country
International
Extracted fields
11 fields
Cost
1 credit
bank_statementspecimen
Bank name
Account holder
Address
IBAN
Bic
Period start
Period end
Opening balance
Closing balance

What it checks

  • National identifiers. Official checksum or format of the number (NIF, CPF, CURP, RUT, SSN…).iban, bic
  • IBAN. ISO 13616 check digits and length per country.
  • Holder. Name, number or date of birth match what you expect.
  • Recency. Issued less than N days ago.

Extracted fields

  • Bank namebank_name
  • Account holderaccount_holder
  • Addressaddress
  • IBANiban
  • Bicbic
  • Period startperiod_start
  • Period endperiod_end
  • Opening balanceopening_balance
  • Closing balanceclosing_balance
  • Currencycurrency
  • Transactionstransactions

Sample request

curl https://api.constaia.com/v1/analyze \
  -H "Authorization: Bearer $CONSTAIA_API_KEY" \
  -F "file=@document.pdf" \
  -F 'options={
    "expect": "bank_statement",
    "checks": {
      "max_age_days": 90,
      "holder": {
        "full_name": "Carmen Especimen Ruiz"
      }
    },
    "storage": "none"
  }'

Sample response

Fictitious data. Shortened response.

200 OK · application/json
{
  "id": "an_01J9Z3K8QW4T6Y2B7N5M1R0PXC",
  "object": "analysis",
  "status": "completed",
  "livemode": false,
  "document": {
    "type": "bank_statement",
    "label": "Bank statement",
    "confidence": 0.97
  },
  "verdict": {
    "expected": [
      "bank_statement"
    ],
    "match": true,
    "status": "valid",
    "reasons": [
      {
        "code": "type_match",
        "severity": "info",
        "message": "The document is: Bank statement."
      }
    ]
  },
  "fields": {
    "bank_name": {
      "value": "BANCO ESPECIMEN",
      "confidence": 0.99,
      "validated": true
    },
    "account_holder": {
      "value": "JUAN ESPAÑOL ESPAÑOL",
      "confidence": 0.98,
      "validated": null
    },
    "iban": {
      "value": "ES9121000418450200051332",
      "confidence": 0.97,
      "validated": null
    },
    "bic": {
      "value": "CAIXESBBXXX",
      "confidence": 0.96,
      "validated": null
    },
    "period_start": {
      "value": "2026-08-01",
      "confidence": 0.99,
      "validated": null
    },
    "period_end": {
      "value": "2026-08-31",
      "confidence": 0.98,
      "validated": null
    },
    "opening_balance": {
      "value": 2450.1,
      "confidence": 0.97,
      "validated": null
    },
    "closing_balance": {
      "value": 3120.75,
      "confidence": 0.96,
      "validated": null
    },
    "currency": {
      "value": "EUR",
      "confidence": 0.99,
      "validated": null
    }
  },
  "checks": [
    {
      "code": "id_number",
      "passed": true,
      "message": "id_number"
    },
    {
      "code": "iban_checksum",
      "passed": true,
      "message": "iban_checksum"
    }
  ],
  "warnings": [],
  "storage": {
    "mode": "none",
    "file_deleted_at": "2026-09-29T10:00:02Z",
    "expires_at": null
  },
  "usage": {
    "credits": 1,
    "pages": 1
  }
}

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.