Extract checks to structured JSON
Checks contain payee, amount, date, and routing information in a compact format that mixes printed and handwritten content. Layout variation creates unique parsing challenges. Sensible extracts check data into validated JSON for payment processing and reconciliation workflows.

Why checks challenge automated extraction
Handwritten content, MICR line encoding, and compact layouts create unique OCR and parsing challenges.

Payee names, dates, and amounts are often handwritten. Sensible uses LLM parsing with confidence scoring to flag uncertain reads.

The MICR line encodes routing number, account number, and check number. Sensible extracts and validates each field.

Checks contain both a numeric amount and a written-out amount. Sensible extracts both and flags discrepancies between the two values.
Fields we extract
Extract any data you need from checks into your desired output schema
Check number, date, payee name, numeric amount, written amount, memo/for line
Bank name, routing number (ABA), account number, fractional routing number, MICR line (full)
Payer name, payer address, signature presence, bank branch
Corporate or business check often including remittance detail.
Bank-issued cashier's check with verification number and issuing institution.
Standard personal check with MICR line, payee, amount, and date fields.
Supported check types
Sensible processes all standard check formats including personal, business, and cashier's checks. Any check layout can be custom configured within a couple of hours.
Personal checks, business checks, cashier's checks, certified checks, money orders
Printed checks, handwritten checks, laser-printed checks, multi-part check stubs with remittance detail



Common Questions
How Sensible extracts and validates check data.
Sensible captures check number, date, payee name, numeric amount, written amount, memo, bank name, routing number, and account number.
Sensible uses LLM-based parsing for handwritten payee names, amounts, dates, and memo fields. Confidence scores indicate extraction certainty on handwritten content.
Yes. Sensible extracts the routing number, account number, and check number from the MICR (Magnetic Ink Character Recognition) line at the bottom of the check.
Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.
Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.
Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.
Documents are deleted after 30 days by default. You can configure shorter retention periods or request immediate deletion via API.
Yes. Sensible offers a free tier with 50 documents per month. No credit card required to start.
Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.
Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.
Sensible processes PDF, PNG, JPG, and TIFF files. PDFs can be native or scanned.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence scoring.
Most documents process in 2 to 10 seconds depending on complexity and page count.
