Skip to main content

Concepts

A book is a container for one deal one or more documents that get parsed together. Books have a parse_status that progresses through: Documents can be bank statements, credit reports, tax forms, or loan applications. The book API returns different output shapes depending on which document types were parsed.

Submit a book

Multipart form upload. Pathway creates the book, uploads the files to S3, and starts parsing in the background. Returns a book_id immediately.
files
file[]
required
One or more PDF files. Pathway auto-classifies each file as bank statement, credit report, tax form, or loan application.
book_name
string
required
Name for the book.
description
string
Optional description.
webhook_url
string
If provided, Pathway will POST to this URL when parsing completes. If omitted, poll GET /books/:id.
Submit response
Webhook payload (POST to your webhook_url when done)

Get a book

Returns the Book object parse status, name, timestamps, and book_meta.
Book fields book_meta keys For computed analytics, use /analytics and /tax-analytics rather than reading raw book_meta.

Bank statement analytics

Returns BookAnalytics computed metrics across all bank statements in the book. Applies your org’s exclusion config (excluded documents, excluded accounts, excluded positions, revenue exclusion tags) before computing. This is the primary endpoint for underwriting data.
Top-level fields statements[] per-document breakdown All documents appear in this array, including excluded ones. Excluded documents will still show their statement_period and document_name, but their metrics are zeroed. Filter by excluded_document_ids from book_meta if you want to exclude them. Each statement has document_id, document_name, statement_start_date, statement_end_date, statement_period, and an accounts[] array. Each account has: loan_summary[] loan type rollup average_statement_metrics average row across all statements An AccountStatementMetrics object representing the per-statement average. Same fields as the per-account table above. Used for the Average row in CSV exports. positions[] detected debt positions Each position is a group of transactions the parser identified as belonging to the same loan or MCA. merged_accounts transaction-level data Keyed by account number. Each account has a transactions[] array. Each transaction: Transaction tags Tags classify what a transaction represents. Revenue computation excludes all tags in revenue_exclusion_tags. Tag-based aggregate fields on BookAnalytics:
The nsf_overdraft tag is a single tag applied to transactions. The aggregate splits into nsf_total and overdraft_total at the metrics level.

Bank statement detailed view

Account-centric view of the same parsed data. Structured as a list of accounts, each with their full statement history. Useful when you need transaction-level data, daily balance maps, or per-lender activity broken down by month. Two key differences from /analytics:
  • Organized by account first, then statements under each account (vs /analytics which groups by document first)
  • Does not apply org-level exclusions — all documents and accounts are included
  • Includes daily_balances (a full {"YYYY-MM-DD": balance} map for every day in the period) and funders[] (per-lender activity within that statement)
SimpleAccount fields SimpleStatement fields SimpleFunder fields (inside funders[]) Each entry represents one detected loan or MCA position and its activity within this specific statement month.

Credit report data

Credit report data lives in book_meta from GET /books/:id. Access it at book["book_meta"]["parser_v2_credit_report"].
CRMeta shape (inside book_meta.parser_v2_credit_report):
Account status values: current, delinquent, charged_off, collection, bankruptcy, foreclosure, repossession, settled, closed, unknown Account type values: revolving, installment, mortgage, charge, other Collateral type values: unsecured, real_estate, vehicle, cash_deposit, education

Tax form analytics

Returns TaxCashFlowAnalysis Fannie Mae 1084-style qualifying income computation from parsed 1040, Schedule C, 1065, and 1120S forms.
TaxCashFlowAnalysis fields TaxYearAnalysis per year

Export as CSV

Downloads the bank statement UW table as a CSV. Applies org-level exclusions (same as /analytics).
table_format
string
default:"month_as_row"
month_as_row one row per statement period per account (default).
month_as_col metrics as rows, months as columns (pivoted). Uses the combined account (account_id=0) per statement.
Columns: Period, Document, Account, Starting Balance, Deposits, Deposit Count, Withdrawals, Withdrawal Count, Ending Balance, Loan In, Loan Out, Avg Daily Balance, Days Negative, True Revenue, DTI % Includes NET and Average summary rows.

Export as Excel

Returns an .xlsx file using your org’s configured spreadsheet template.
sheet_type
string
required
mca bank statements. vlad credit reports. tax tax forms.