AI-Process Bank Statement in Make
What this module does
PDF4me AI-Process Bank Statement extracts structured financial data from PDF or image bank statements inside your Make scenario using AI. Supply a statement and the module returns bank name, account details, statement period, opening and closing balances, a complete transactions array, checks paid, recurring payment patterns, and category summary analytics, ready for bank reconciliation, cash-flow forecasting, accounts receivable matching, fraud detection, and lending or credit-decision workflows. No template setup. Works with statements from major US, UK, European, Indian, and Canadian banks, including multi-page statements with 50+ pages of activity.
Authenticating Your API Request
Every PDF4me module in Make requires a valid Connection. Create or select one that holds your PDF4me API key so the scenario can authenticate AI bank statement extraction requests securely.
Important Facts You Should Not Miss

Set File to Map, wire Statement Name and Document from the prior module. Output exposes the full transactions array, balances, checksPaid, patterns, and summary analytics for reconciliation workflows.
Parameters
Required: Connection, Statement Name, and Document must always be provided. The matching input field (Binary Property, Base64 Content, or Statement URL) is required based on the chosen Input Data Type.
| Parameter | Required | What it does | Example |
|---|---|---|---|
| Connection | Yes | PDF4me API connection. Click Add and paste your API key the first time. Reused automatically across all PDF4me modules in your scenarios. | My PDF4me connection |
| Input Data Type | Yes | How the statement file is supplied. Binary Data reads from a previous module (most common). Base64 String accepts encoded payloads. URL downloads from a public link. | Binary Data |
| Input Binary Field | Conditional | Binary content of the bank statement. Required when Input Data Type is Binary Data. Wire from Dropbox, Google Drive, OneDrive Data field, or any email/HTTP module that returns file bytes. | 1. Data |
| Base64 Statement Content | Conditional | Base64-encoded statement content. Required when Input Data Type is Base64 String. Useful for statements arriving via secure webhook or API integration. | JVBERi0xLjQK... |
| Statement URL | Conditional | Public URL to the statement file. Required when Input Data Type is URL. The URL must not require authentication. | https://example.com/statement.pdf |
| Statement Name | Yes | Filename of the statement with proper extension (.pdf, .png, .jpg, .jpeg). Used for format detection and AI processing optimization. | statement-jan-2024.pdf |
Output Fields
| Field | Type | What it contains |
|---|---|---|
bankName | String | Name of the issuing bank as printed on the statement header. |
accountHolderName | String | Name of the account holder. |
accountNumber | String | Bank account number (may appear masked depending on the bank). |
accountType | String | Type of bank account: Checking, Savings, Money Market, Credit Card, etc. |
statementPeriod | Object | Object with startDate and endDate (ISO 8601) defining the statement window. |
balances | Object | Object containing openingBalance, closingBalance, totalDeposits, and totalWithdrawals for the period. |
currency | String | Currency code in ISO 4217 format (USD, EUR, GBP, INR, etc.). |
transactions | Array | Array of every transaction in chronological order. Each entry contains date, description, amount, and type (debit or credit). |
checksPaid | Array | Array of cheques paid during the statement period: useful for cheque-to-statement reconciliation when paired with AI-Process Bank Cheque. |
patterns | Object | Pattern analysis identifying recurring transactions (subscriptions, payroll, regular bills) by merchant, amount, and interval. |
summary | Object | Summary analytics with category totals (groceries, utilities, payroll, transfers, etc.) and aggregate metrics. |
success | Boolean | True if the AI extraction completed successfully; false if it failed. |
message | String | Human-readable status message confirming success or describing the error. |
Quick Setup
- Add PDF4me → AI-Process Bank Statement to your Make scenario.
- Select Connection (or click Add to create one with your PDF4me API key).
- Choose Input Data Type: Binary Data for files from a previous module, Base64 String, or URL.
- Under File, choose Map to reveal Statement Name and Document fields.
- Map Statement Name to the filename with extension (
.pdf,.png,.jpg, or.jpeg). - Map Document to the binary content from the source module: typically the Data field of Dropbox, Google Drive, OneDrive, or email attachment modules.
- Click Save and run the scenario. Wire the output bundle into QuickBooks, Xero, Airtable, Google Sheets, or any reconciliation system. Use an Iterator over
transactionsto process each line individually.
Workflow Examples
Workflow ExamplesCommon Make scenario patterns using AI-Process Bank Statement.
- A scheduled trigger fires on the 5th of every month to process the previous month's bank statement after it has been downloaded to Dropbox.
- AI-Process Bank Statement extracts balances, transactions, and checksPaid for the full period.
- A Make Iterator loops over transactions. For each transaction, a QuickBooks search step looks for a matching transaction by amount and approximate date.
- Matched transactions are marked Reconciled in QuickBooks. Unmatched transactions are routed to a Google Sheets exceptions tab for the bookkeeper to review.
- A Slack summary message reports the reconciliation outcome, total matched, total unmatched, and any patterns detected (e.g. new recurring charges that need investigation).
- An applicant uploads 3 months of bank statements via a lending portal webhook into Make.
- AI-Process Bank Statement runs on each statement. The summary object provides category totals (income, rent, debt service); the patterns object identifies recurring income and obligations.
- A Tools Set Variable step calculates a debt-to-income ratio from the extracted recurring income vs recurring debt payments.
- A Router branches on the DTI ratio. Applications under 35% auto-approve; 35-45% require manual review; above 45% auto-decline with a follow-up email explaining requirements.
- The full transaction array is stored in Snowflake or BigQuery for compliance audit and the decision rationale is logged with the extracted summary metrics.
- A finance team uploads the company bank statement to a SharePoint folder once a quarter.
- AI-Process Bank Statement returns the patterns object listing every recurring charge with merchant, amount, and frequency detected.
- A Make Iterator compares each pattern against an Airtable register of approved SaaS subscriptions. Unknown recurring charges flag as potential shadow IT or duplicate subscriptions.
- A consolidated report is generated showing total monthly recurring spend, approved vs unapproved subscriptions, and an estimated annual cost-saving from cancelling duplicates.
- The report is emailed to the CFO; high-value unapproved subscriptions trigger Slack approval requests to the department heads for review and either approval or cancellation.