# Falcon Docs > Bank statement extraction for agents. Bank-statement PDF in, every transaction plus underwriting metrics (average daily balance, NSF/overdrafts, revenue deposits, MCA/loan positions, DSCR inputs, integrity flags) out as JSON/CSV/XLSX. Also extracts invoices, receipts, POs, W-9s and generic PDFs with per-field confidence and arithmetic cross-checks. Paid per call with x402 v2 in USDC on Solana or Base. No account. ## Endpoints - POST https://falcondocs.vercel.app/v1/preview (free): page 1 only. Statement previews show 5 transactions and no metrics. - POST https://falcondocs.vercel.app/v1/extract ($0.03, x402): all pages (max 60), auto-detected type. Optional type=invoice|receipt|purchase_order|w9|bank_statement|generic. - POST https://falcondocs.vercel.app/v1/bank-statement ($0.40, x402): transactions[{date,description,amount,balance,category}], metrics{average_daily_balance, lowest_daily_balance, negative_balance_days, nsf_overdraft_count, nsf_overdraft_fees, monthly{deposits,revenue_deposits,withdrawals}, avg_monthly_revenue_deposits, deposit_trend_first_to_last_month, debt_positions{lender:{count,total,typical_payment,frequency}}, monthly_existing_debt_service, dscr_inputs, reconciled, integrity_flags[]}. - Input: multipart field "file", raw application/pdf body, or JSON {"url":"https://..."} / {"file_base64":"..."}. Add ?format=csv or ?format=xlsx for files. Max 4 MB. - Invalid input returns 400 before payment. Extraction failure returns 4xx and the payment is not settled. - MCP (streamable HTTP): https://falcondocs.vercel.app/mcp. Tools: preview_document (free), extract_document ($0.03), spread_bank_statement ($0.40); args {url|file_base64, type?}. - Samples: https://falcondocs.vercel.app/samples/bank-statement.pdf, /samples/invoice.pdf, /samples/receipt.pdf, /samples/w9.pdf, /samples/purchase-order.pdf ## Accuracy Holdout field accuracy 100.0% on synthetic digital PDFs (bank_statement 100%, invoice 100%, receipt 100%, purchase_order 100%, w9 100%). Raw data: https://falcondocs.vercel.app/accuracy. Scanned PDFs use a vision model and score lower. ## Pay 1. POST to a paid endpoint; get HTTP 402 with PAYMENT-REQUIRED (x402 v2; solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, eip155:8453). 2. Sign with @x402/fetch wrapFetchWithPayment and retry. Settlement only after a 2xx. ## Machine-readable - [OpenAPI 3.1](https://falcondocs.vercel.app/openapi.json) - [x402 discovery](https://falcondocs.vercel.app/.well-known/x402) - [JSON-LD](https://falcondocs.vercel.app/catalog.jsonld) - [bank-statement-to-excel](https://falcondocs.vercel.app/bank-statement-to-excel) - [docparser-alternative](https://falcondocs.vercel.app/docparser-alternative) - [ocrolus-alternative](https://falcondocs.vercel.app/ocrolus-alternative) - [nanonets-alternative](https://falcondocs.vercel.app/nanonets-alternative) ## Terms Automated extraction; verify before relying on it. Not credit, legal, tax or investment advice. Files are processed in memory and not stored. ## Contact falcon.sol