Financial Services
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 converts check data into structured JSON for payment processing and reconciliation workflows.
Validated JSON
Schema-enforced output; every field matches your contract
Source coordinates
Every value links back to page + bounding box for audit
Per-document pricing
Predictable cost. No token-volatility surprises
Trusted by teams turning documents into production data






Handwriting, MICR encoding, and tight layouts push past what plain OCR handles. We read the written and printed amounts, parse the MICR line, and cross-check the two before anything posts.
01
Payee names, dates, and dollar amounts are written by hand in thousands of different handwriting styles. LLM-based parsing reads the handwriting; confidence scores indicate extraction certainty so your review workflow catches any uncertainty.
02
Routing number, account number, check number: all encoded in the MICR line's specialized font at the bottom of the check. Each component is extracted and validated against expected formats. No manual lookup required.
03
Two amounts on every check: numeric and written. Both are extracted and cross-checked against each other. Mismatches get flagged automatically, catching errors that single-value extraction would miss.
Managed services
Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.
What's included
01Plan.Engineers review your samples and pick the right method
02Build.SenseML configs written from your samples
03Deploy.Same engine as self-serve, ready for production
04Adjust.We update configs when formats shift or new edge cases appear
05Integrate.Help with custom integration into your downstream systems
Every check is different, so we build the config around your exact schema rather than a fixed list. These are the fields payments teams request most; we map whatever else your reconciliation workflow needs.
01
Check detail
Check number, date, payee name, numeric amount, written amount, memo/for line
02
Bank information
Bank name, routing number (ABA), account number, fractional routing number, MICR line (full)
03
Payer information
Payer name, payer address, signature presence, bank branch
config.json
SenseML
{ /* SenseML: check extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "check_number", "description": "check number, check #, check no" },
{ "id": "payee", "description": "pay to the order of, payee name, payee" },
{ "id": "amount", "description": "dollar amount, numeric amount, $" },
{ "id": "routing_number", "description": "routing number, ABA number, bank routing" }
// + more fields, mapped to your schema
]
}
}
]
}Sensible processes personal, business, cashier's, and payroll checks. The hybrid approach handles both printed and handwritten content with confidence scoring on every field.
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
Answers about handwriting recognition, MICR parsing, and amount verification.
By default Sensible captures check number, date, payee name, numeric amount, written amount, memo, bank name, routing number, and account number. The fields live in configuration. Add, drop, or reshape them so the output matches what your workflow actually consumes.
Sensible uses LLM-based parsing for handwritten payee names, amounts, dates, and memo fields. Confidence signals 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.
Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.
Yes. Sensible offers a 14-day free trial on the Growth plan. 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 PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.
Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.
Start free
Free 14-day trial. No credit card required. Start extracting in minutes.