Extract pay stubs to structured JSON
Pay stubs detail earnings, deductions, taxes, and net pay for a given pay period. Every employer and payroll provider formats them differently. Sensible extracts pay stub data into validated JSON for income verification, lending decisions, and payroll auditing.

Why pay stubs resist standardized extraction
Thousands of employer formats and inconsistent deduction labels make pay stubs a normalization problem.

ADP, Paychex, Gusto, and others each generate different layouts and field labels. Sensible handles all major providers and custom formats.

Pre-tax and post-tax deductions use different labels per employer. Sensible normalizes categories across formats.

Year-to-date totals must reconcile with current period amounts. Sensible extracts both and validation rules flag inconsistencies.
Fields we extract
Extract any data you need from pay stubs into your desired output schema
Employee name, employer name, pay period dates, pay date, gross pay, regular hours/rate, overtime hours/rate, bonuses, commissions
Federal tax, state tax, local tax, Social Security, Medicare, health insurance, dental, vision, 401k, HSA, garnishments
Net pay, current period totals, YTD gross, YTD net, YTD federal tax, YTD state tax, YTD Social Security, YTD Medicare
Intuit QuickBooks payroll stub with customizable earnings categories.
Non-standard employer-generated pay stub with variable formatting.
Gusto-generated pay statement with earnings breakdown and tax withholdings.
ADP-generated pay stub with earnings, deductions, taxes, and YTD totals.
Paychex format covering gross pay, net pay, and benefit deductions.
Supported pay stub formats
Sensible processes pay stubs from any employer or payroll provider, many of which can be found in Sensible's template library. Any format can be custom configured within hours.
ADP, Paychex, Gusto, QuickBooks, Paylocity, Rippling, custom employer formats
Salaried, hourly, commission-based, mixed compensation, contractor payment summaries



Common Questions
How Sensible extracts data from any pay stub.
Yes. Validation rules can check that gross minus deductions equals net, that YTD totals are consistent, and that tax withholding percentages fall within expected ranges.
Yes. Pay stubs vary by payroll provider (ADP, Paychex, Gusto, QuickBooks) and employer. Sensible adapts to any format and outputs consistent JSON.
Yes. Sensible captures current period and YTD totals for gross pay, net pay, federal tax, state tax, Social Security, Medicare, and each deduction line.
Sensible extracts each deduction line with type (health insurance, 401k, HSA, garnishment), current period amount, and YTD total.
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.
