by Profiden

Bank Statement Analysis

Banking & Credit

Turn PDF statements into categorised transactions, income and risk indicators.

Upload bank statements, or fetch them with consent, and receive parsed transactions, categorised inflows and outflows, salary detection, EMI obligations, bounces and balance trends. Underwrite on real cash flow instead of declared income.

Endpoint

POST https://app.emver.io/api/sandbox/v1/bank-statement-analysis
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json

Request parameters

FieldTypeDescription
statement_p_d_fs_with_password_if_protected required string Statement PDFs (with password if protected)
consent_reference_for_account_aggregator_fetch optional string Consent reference for account-aggregator fetch

Example request

cURL
curl -X POST https://app.emver.io/api/sandbox/v1/bank-statement-analysis \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "statement_p_d_fs_with_password_if_protected": "string",
    "consent_reference_for_account_aggregator_fetch": "string"
}'

Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.

Response

Structure · 200

{
  "status": INTEGER,
  "message": STRING,
  "data": {
    "parsed_transactions": STRING,
    "categorised_inflows_and_outflows": STRING,
    "detected_salary_credits_and_employer": STRING,
    "e_m_i_and_loan_obligations": STRING,
    "bounces_and_penalties": STRING,
    "average_and_minimum_balances": STRING,
    "tamper_check_result": STRING
  }
}

Example · 200

{
  "status": 200,
  "message": "string",
  "data": {
    "parsed_transactions": "string",
    "categorised_inflows_and_outflows": "string",
    "detected_salary_credits_and_employer": "string",
    "e_m_i_and_loan_obligations": "string",
    "bounces_and_penalties": "string",
    "average_and_minimum_balances": "string",
    "tamper_check_result": "string"
  }
}

Error · 4xx / 5xx

{
  "status": INTEGER,
  "message": STRING
}

See Errors & status codes for what each status means and which calls are billed.

About this API

Bank statements are the richest financial document a lender or employer can hold, and the hardest to read at scale. The Bank Statement Analysis API parses statements from every major bank, detects tampering, categorises transactions and computes the indicators credit and HR teams rely on.

It supports uploaded PDFs, including password-protected ones with the password supplied, and consented fetch through the account aggregator ecosystem where enabled.

Consent. Financial data is sensitive personal data. Capture the person's consent before analysis; the consent record is stored with the request.

Typical uses

  • Personal and business lending. Income, obligations and bounces at a glance.
  • Salary verification. Confirm declared salary and employer from credits.
  • Tenant screening. Affordability evidence for rentals.
  • Insurance underwriting. Financial stability signals for large policies.

Questions

Can it fetch statements directly?
With the person's consent through the account aggregator ecosystem, yes, where your organisation is enabled for it. Uploaded PDFs are supported for everyone.
What happens to the statements after analysis?
They are purged under your retention policy. The structured output is returned to you.