Finch’s API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.
The diagrams below give you a working mental model of the Finch API. Each section explains the high-level functionality of Finch’s products, each of which contains multiple endpoints.
One Company contains many Individuals and many Employment records. Identity and employment are split so you can query them independently.
A Finch connection typically covers one Company, which can include one or many entities (separate EINs, divisions, or subsidiaries) with one or many employees. Each employee has two records that share the same individual_id: an Individual record for identity data (name, DOB, SSN, home address) and an Employment record for job data (title, manager, start date, income). Querying them separately means you can pull only what you need.To enumerate everyone at a connection, call GET /employer/directory first. It returns a paginated list of individual_ids you can then fetch in detail via the endpoints above.
The same person can have multiple Employment records over time (rehires, role changes, multi-EIN setups). Treat individual_id as the stable identity key and Employment as historical job state.
One Payment fans out into per-person Pay Statements, then into earnings, taxes, employee deductions, and employer contributions. Each line is also exposed as a flat Pay Statement Item.
A Payment is one payrun, and it’s the starting point for all payroll data. Each Payment contains one Pay Statement per person, broken down into earnings (base, overtime, bonus), taxes (federal, state, FICA), employee deductions (401k, health premiums, FSA), and employer contributions (401k match, employer-paid benefits). Deductions and contributions live in separate fields on the Pay Statement so you can read or aggregate each side cleanly.Use the Pay Statement Item endpoint to retrieve all payroll items that have appeared in a company’s processed payroll, including taxes, deductions, earnings, and employer contributions. For example, if your customer’s organization labels a health deduction as EE_MED_PPO_PREM in the provider system, this endpoint surfaces that name alongside its category and type. From there you can use the Rules endpoint to apply the right labels and context in your system.
Deductions: company benefits and per-employee contributions
A company-level deduction defines the benefit. An individual deduction record holds the per-person amounts. The per-paycheck amount appears as a Pay Statement Item.
Finch’s Deductions product represents benefits from the payroll side, in two connected views. A company-level deduction defines the benefit at the company: type (401k, HSA, FSA, etc.), frequency, and the employer’s contribution rule. An individual deduction record then holds the per-person amounts: employee contribution, employer contribution, and annual maximum. The per-paycheck amount itself lives on the Pay Statement Item. The deduction record tells you what should happen each pay period; the pay statement item tells you what actually happened.You can add individuals to a deduction, update contribution amounts, and remove individuals where the provider allows it. Call the /providers endpoint to see which deduction types and operations each provider supports before you build against them.
Benefits is in Early Access. Endpoint paths and field names are subject to change before general availability.
One Plan covers many Enrollments. Enrollment and Dependent records link to each other in both directions, and each Enrollment belongs to an individual_id.
Benefits is Finch’s source-of-truth product for benefits enrollment. Where Deductions (above) shows the payroll-side evidence of a benefit, like what’s being withheld each paycheck, Benefits returns the canonical plan and enrollment data directly from the benefits administration side of the employer’s system:
Plan: the company-level benefit plan, including type, carrier, plan year, deduction code, and available coverage tiers.
Enrollment: the individual’s actual enrollment in a plan, with coverage tier, effective dates, contribution amounts, and covered dependents.
Dependent: a spouse or child covered under an individual’s enrollment, linked back to its enrollment records.
Use Benefits when you need authoritative enrollment state, for example to verify coverage before quoting a benefit or to retrieve dependent details for compliance. Use Deductions when you need to see what’s actually being withheld each pay period. The two are complementary.
Queue a job, then list documents for an individual or document type, then fetch a specific document to read its parsed fields.
Finch’s Documents product reads structured data out of HR documents using ML-based parsing. Two endpoints carry the data: GET /employer/documents returns a list of available documents (filterable by individual or document type), and GET /employer/documents/{document_id} returns the parsed fields for one document.Documents is async. Before either read endpoint will return fresh data, queue an automated job with POST /jobs/automated so Finch can sync from the provider. The product is currently in beta with W-4 support; expect more document types over time.
Mint a sandbox token and pull your first employer record.
API reference
Every endpoint, request shape, and response field.
Finch Sandbox
Test the data model with realistic fixtures before wiring up production.
Glossary
Reference for every term used across the Finch API.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Finch","colors":{"primary":"#161616","light":"#FAFAFA","dark":"#3E4AE7"},"logo":{"light":"https://mintcdn.com/finch/ejF2Kw2CeeMQKCJw/logo/logo-black.svg?fit=max\u0026auto=format\u0026n=ejF2Kw2CeeMQKCJw\u0026q=85\u0026s=e490dba98fb7b16e8f9f5ab4a9a58a5c","dark":"https://mintcdn.com/finch/ejF2Kw2CeeMQKCJw/logo/logo-white.svg?fit=max\u0026auto=format\u0026n=ejF2Kw2CeeMQKCJw\u0026q=85\u0026s=9132a1fde9ad8880fbf81ac32e53e6b2"},"favicon":"https://mintcdn.com/finch/8U6M212KK5wde_yD/favicon.png?fit=max\u0026auto=format\u0026n=8U6M212KK5wde_yD\u0026q=85\u0026s=c54c63bf4768a5eb32ea7e306f52ed1e","navbar":{"links":[{"href":"https://dashboard.tryfinch.com/signup","label":"Sign Up"}],"primary":{"type":"button","label":"Sign In","href":"https://login.tryfinch.com/u/login?state=hKFo2SBmakdGQlE4STYwYzhmRkYzc0ZOTVV3c1VkX2F4UGhuTKFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIENuZ0NHU283dXV5YzlzczQtZFZxUmJQRElJUmt6UGpmo2NpZNkgTlZsT1hZN3N2R25xSlNHYkFSdE1Ga2tnMGJqMkJmbEk"}},"footer":{"socials":{"twitter":"https://twitter.com/tryfinch?lang=en","linkedin":"https://www.linkedin.com/company/finchapi","website":"https://tryfinch.com/"}},"integrations":{"amplitude":{"apiKey":"684ff58ac8711b102376cfd6ded7f199"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":{"style":"sharp-solid","name":"megaphone"},"color":{"light":"#3E4AE7","dark":"#3E4AE7"},"href":"https://developer.tryfinch.com/changelog"},{"anchor":"API Status","icon":{"style":"sharp-solid","name":"signal-bars"},"color":{"light":"#3E4AE7","dark":"#3E4AE7"},"href":"https://status.tryfinch.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"finch","hasAudioNarration":false,"actualSubdomain":"finch","customDomains":["developer.tryfinch.com"],"gitSource":{"type":"github","owner":"finch-api","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea501821f5e1fb9e87c3b5","collectionId":"fa4f2c75-e058-4e38-bab8-25ee92e85af1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea501821f5e1fb9e87c3b5"},"feedback":{"thumbs":true,"issues":false,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea501821f5e1fb9e87c3b5","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API Reference","count":61},{"language":"default","tag":"Documentation","count":55},{"language":"default","tag":"Implementation Guide","count":23},{"language":"default","tag":"Developer Resources","count":17},{"language":"default","tag":"Sandbox","count":11},{"language":"default","tag":"Management","count":10},{"language":"default","tag":"Payroll","count":10},{"language":"default","tag":"Deductions","count":9},{"language":"default","tag":"Development Guides","count":7},{"language":"default","tag":"Build Backend Application","count":7}]},"assistantConfig":{"deflection":{"enabled":true,"email":"developers@tryfinch.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--finch-purple:#3E4AE7;--finch-purple-dark:#7A84FF}.update-container [class*=bg-primary]{background-color:rgba(62,74,231,.08)!important;color:var(--finch-purple)!important}.dark .update-container [class*=bg-primary]{background-color:rgba(122,132,255,.15)!important;color:var(--finch-purple-dark)!important}#content-side-layout:empty,#table-of-contents-layout:empty{position:absolute}:is(.prose a):not(.dark .prose a):not(:where([aria-label=\"Navigate to header\"])){color:var(--finch-purple);border-bottom:1px solid var(--finch-purple)}:is(.dark .prose a):not(:where([aria-label=\"Navigate to header\"])){color:var(--finch-purple-dark);border-bottom:1px solid var(--finch-purple-dark)}.automated-badge{background-color:#ecfdf3;color:#027a48}.assisted-badge{background-color:#fffaeb;color:#b54708}.dark .automated-badge{background-color:#0c2119!important;color:#12b76a!important}.dark .assisted-badge{background-color:#21140f!important;color:#f79009!important}.pn-container{margin-top:1rem}.pn-search{width:100%;padding:10px 14px;font-size:15px;border:1px solid #d0d5dd;border-radius:8px;outline:0;background:#fff;color:#101828;transition:border-color .15s,box-shadow .15s}.pn-search:focus{border-color:var(--finch-purple);box-shadow:0 0 0 3px rgba(62,74,231,.12)}.pn-search::placeholder{color:#98a2b3}.dark .pn-search{background:#1d2939;border-color:#344054;color:#f2f4f7}.dark .pn-search:focus{border-color:var(--finch-purple-dark);box-shadow:0 0 0 3px rgba(122,132,255,.15)}.pn-filters{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0;align-items:flex-start}.pn-filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pn-filter-label,.pn-table thead th{font-weight:600;color:#475467;white-space:nowrap}.pn-filter-label{font-size:13px;margin-right:2px}.dark .pn-filter-label{color:#98a2b3}.pn-checkbox-label,.pn-export-btn,.pn-filter-btn{align-items:center;font-size:13px;font-weight:500;cursor:pointer}.pn-checkbox-label{display:flex;gap:6px;color:#344054}.dark .pn-checkbox-label{color:#d0d5dd}.pn-export-btn,.pn-filter-btn{display:inline-flex;padding:4px 12px;border:1px solid #d0d5dd}.pn-export-btn{gap:6px;border-radius:6px;background:0 0;color:#475467;margin-left:auto}.pn-export-btn:hover{background:#f2f4f7;border-color:#98a2b3}.dark .pn-export-btn{color:#d0d5dd;border-color:#475467}.dark .pn-export-btn:hover{background:#1d2939;border-color:#667085}.pn-filter-btn{border-radius:999px;background:#fff;color:#344054;transition:all .15s;line-height:1.5}.pn-filter-btn:hover{background:#f2f4f7;border-color:#98a2b3}.pn-filter-btn-active{background:var(--finch-purple)!important;color:#fff!important;border-color:var(--finch-purple)!important}.dark .pn-filter-btn{background:#1d2939;border-color:#344054;color:#d0d5dd}.dark .pn-filter-btn:hover{background:#344054;border-color:#475467}.dark .pn-filter-btn-active{background:var(--finch-purple-dark)!important;color:#101828!important;border-color:var(--finch-purple-dark)!important}.pn-results-count{font-size:14px;color:#475467;margin-bottom:12px;font-weight:500}.dark .pn-results-count{color:#98a2b3}.pn-table{width:100%;border-collapse:collapse;font-size:14px;table-layout:auto;margin-left:0!important;margin-right:0!important}#fsm-table-scroll table td,#fsm-table-scroll table th,.pn-table td,.pn-table th{min-width:0!important}.pn-col-narrow{width:1%!important}.pn-td-center,.pn-th-center{text-align:center!important;white-space:nowrap!important;padding-left:6px!important;padding-right:6px!important;width:1%!important;min-width:0!important;max-width:fit-content!important}.pn-th-link,.pn-th-link:link,.pn-th-link:visited,.prose .pn-th-link,.prose a.pn-th-link{color:inherit!important;text-decoration:none!important;border-bottom:none!important;box-shadow:none!important}.pn-th-link:hover,.prose .pn-th-link:hover,.prose a.pn-th-link:hover{text-decoration:underline!important}.pn-table thead th{text-align:left;padding:8px 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #e4e7ec}.dark .pn-table thead th{color:#98a2b3;border-bottom-color:#344054}.pn-table tbody tr{border-bottom:1px solid #f2f4f7;transition:background .1s}.pn-table tbody tr:hover{background:#f9fafb}.dark .pn-table tbody tr{border-bottom-color:#1d2939}.dark .pn-table tbody tr:hover{background:#1d2939}.pn-table td{padding:8px 4px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.pn-table td:first-child,.pn-table th:first-child{padding-left:0!important}.pn-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:13px;font-weight:500}.pn-product-pills{display:flex;flex-wrap:wrap;gap:4px}.pn-pill-automated{background:#ecfdf3;color:#027a48}.pn-pill-assisted{background:#fffaeb;color:#b54708}.dark .pn-pill-automated{background:#0c2119;color:#12b76a}.dark .pn-pill-assisted{background:#21140f;color:#f79009}.pn-name-row{display:flex;align-items:center;gap:8px}.pn-name-id{gap:6px}.pn-copy-btn,.pn-id-cell,.pn-name-id{display:inline-flex;align-items:center}.pn-id-cell{gap:4px}.pn-id-cell code{font-size:12px}.pn-copy-btn{justify-content:center;background:0 0;border:0;cursor:pointer;color:#98a2b3;padding:2px;border-radius:4px;transition:color .15s,background .15s}.pn-copy-btn:hover{color:var(--finch-purple);background:#f2f4f7}.dark .pn-copy-btn:hover{color:var(--finch-purple-dark);background:#344054}.assisted-fast-badge,.pn-badge-assisted,.pn-badge-assisted-fast,.pn-badge-automated{display:inline-block;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap}.assisted-fast-badge,.pn-badge-assisted-fast{background-color:#fffaeb;color:#b54708}.dark .assisted-fast-badge{background-color:#21140f!important;color:#f79009!important}.pn-badge-none{color:#98a2b3;font-size:11px}.pn-badge-request,.prose .pn-badge-request,.prose a.pn-badge-request{font-size:11px;color:#667085!important;text-decoration:none!important;border-bottom:none!important}.pn-badge-request:hover,.prose .pn-badge-request:hover,.prose a.pn-badge-request:hover{text-decoration:underline!important}.dark .pn-badge-request,.dark .prose .pn-badge-request,.dark .prose a.pn-badge-request{color:#667085!important}.pn-status-beta,.pn-status-ga{display:inline-block;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.03em}.pn-status-ga{background:#eff8ff;color:#175cd3;text-transform:uppercase}.pn-status-beta{background:#f4f3ff;color:#5925dc}.dark .pn-status-ga{background:#0c1f3d;color:#84adff}.dark .pn-status-beta{background:#1d1547;color:#bdb4fe}@media (max-width:768px){.pn-filters{flex-direction:column;gap:10px}.pn-table{font-size:12px}.pn-table td,.pn-table th{padding:8px 6px}}.fsm-auth-api_token,.fsm-auth-assisted,.fsm-auth-credential,.fsm-auth-oauth{font-size:11px;font-weight:500;padding:2px 8px;border-radius:9999px;display:inline-block}.fsm-auth-oauth{background:#f0fdf4;color:#15803d}.fsm-auth-credential{background:#eff6ff;color:#1d4ed8}.fsm-auth-api_token{background:#faf5ff;color:#7e22ce}.fsm-auth-assisted{background:#fefce8;color:#a16207}.dark .fsm-auth-oauth{background:#0a2618;color:#6ee7a0}.dark .fsm-auth-credential{background:#0c1a2e;color:#7db8f5}.dark .fsm-auth-api_token{background:#1a0e2e;color:#c4a5f5}.dark .fsm-auth-assisted{background:#231a0a;color:#e5b85c}.fsm-beta-callout{border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;padding:12px 16px;margin-bottom:16px;font-size:14px;color:#1e40af;display:flex;align-items:center;gap:10px}.fsm-beta-callout svg,.fsm-method{flex-shrink:0}.dark .fsm-beta-callout{border-color:#1e3a5f;background:#0c1a2e;color:#93c5fd}.dark .fsm-beta-callout circle{stroke:#60a5fa}.dark .fsm-beta-callout text{fill:#60a5fa}.fsm-method{font-size:9px;font-weight:700;line-height:1;padding:2px 5px;border-radius:3px;letter-spacing:.02em}.fsm-method-get{color:#16a34a;background:#f0fdf4}.fsm-method-post{color:#2563eb;background:#eff6ff}.fsm-method-del{color:#dc2626;background:#fef2f2}.dark .fsm-method-get{color:#6ee7a0;background:#0a2618}.dark .fsm-method-post{color:#7db8f5;background:#0c1a2e}.dark .fsm-method-del{color:#f87171;background:#2a0a0a}.fsm-csv-btn,.fsm-drop-item{align-items:center;font-size:13px;cursor:pointer;background:0 0}.fsm-csv-btn{display:inline-flex;gap:6px;padding:7px 12px;border:1px solid #e2e8f0;border-radius:8px;font-weight:500;color:#64748b}.fsm-csv-btn:hover{border-color:#94a3b8;color:#475569}.dark .fsm-csv-btn{border-color:#374151;color:#9ca3af}.dark .fsm-csv-btn:hover{border-color:#4b5563;color:#d1d5db}.fsm-drop-item{display:flex;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:6px;text-align:left;color:#4b5563}.fsm-drop-item:hover{background:#f8fafc}.fsm-drop-item-selected{background:#f0f1ff;color:#3e4ae7}.dark .fsm-drop-item{color:#e5e7eb}.dark .fsm-drop-item:hover{background:rgba(255,255,255,.08)}.dark .fsm-drop-item-selected{background:rgba(122,132,255,.15);color:#7a84ff}.fsm-tooltip-wrap{position:relative;display:inline-flex}.fsm-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#1e293b;color:#f1f5f9;font-size:12px;line-height:1.4;padding:8px 12px;border-radius:8px;width:220px;white-space:normal;text-align:left;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:100;pointer-events:none}.fsm-btn-tooltip-wrap:hover .fsm-btn-tooltip,.fsm-tip:hover .fsm-tip-text,.fsm-tooltip-wrap:hover .fsm-tooltip{display:block}.fsm-btn-tooltip-wrap{position:relative;display:inline-flex}.fsm-btn-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#1e293b;color:#f1f5f9;font-size:11px;padding:4px 8px;border-radius:4px;white-space:nowrap;z-index:100;pointer-events:none}.fsm-tip{color:#9ca3af}.dark .fsm-tip{color:#6b7280}.fsm-tip-text{display:none;position:absolute;bottom:calc(100% + 6px);right:-8px;background:#1e293b;color:#f1f5f9;font-size:11px;line-height:1.4;padding:6px 10px;border-radius:6px;text-align:left;width:max-content;max-width:320px;z-index:9999;pointer-events:none}#fsm-table-scroll,#fsm-top-scroll{margin-left:0!important;margin-right:0!important;max-width:100%!important}#fsm-table-scroll::-webkit-scrollbar,#fsm-top-scroll::-webkit-scrollbar{height:8px}#fsm-table-scroll::-webkit-scrollbar-track,#fsm-top-scroll::-webkit-scrollbar-track{background:0 0}#fsm-table-scroll::-webkit-scrollbar-thumb,#fsm-top-scroll::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}#fsm-table-scroll::-webkit-scrollbar-thumb:hover,#fsm-top-scroll::-webkit-scrollbar-thumb:hover{background:#9ca3af}.dark #fsm-table-scroll::-webkit-scrollbar-thumb,.dark #fsm-top-scroll::-webkit-scrollbar-thumb{background:#4b5563}.dark #fsm-table-scroll::-webkit-scrollbar-thumb:hover,.dark #fsm-top-scroll::-webkit-scrollbar-thumb:hover{background:#6b7280}"}],"page":{"pagePath":"how-finch-works/data-model","slug":"/how-finch-works/data-model","pageMetadata":{"title":"How the Finch API is organized","sidebarTitle":"Data model","description":"Finch's API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.","href":"/how-finch-works/data-model"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Finch’s API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The diagrams below give you a working mental model of the Finch API. Each section explains the high-level functionality of Finch’s products, each of which contains multiple endpoints.`}),`\n`,_jsx(Heading,{level:`2`,id:`organization-company-individual-and-employment`,children:`Organization: company, individual, and employment`}),`\n`,_jsx(Frame,{caption:`One Company contains many Individuals and many Employment records. Identity and employment are split so you can query them independently.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=4c16308fafb43245f95d895a2b812454`,alt:`Company maps one-to-many to Individual and Employment, which share an individual_id`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`500`,height:`500`,\"data-path\":`images/how-finch-works/data-model-org.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=280\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=8b2a5afe096e0c9d366eb7fc9fb4b0b0 280w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=560\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=9523262498964bd79cb3ff36093052fa 560w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=840\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=d730a9b258a40650bd69cb699bd2795b 840w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=2bd4131c46d0254c57735b44cba26086 1100w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=9cbdd3d506a6d9c57bd6acec4929c4fc 1650w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-org.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=d54c81b74aaf70452105d19b6b7f7871 2500w`})}),`\n`,_jsxs(_components.p,{children:[`A Finch `,_jsx(_components.a,{href:`/implementation-guide/Backend-Application/Manage-Connections`,children:`connection`}),` typically covers one `,_jsx(_components.a,{href:`/api-reference/organization/company`,children:`Company`}),`, which can include one or many entities (separate EINs, divisions, or subsidiaries) with one or many employees. Each employee has two records that share the same `,_jsx(_components.code,{children:`individual_id`}),`: an `,_jsx(_components.a,{href:`/api-reference/organization/individual`,children:`Individual`}),` record for identity data (name, DOB, SSN, home address) and an `,_jsx(_components.a,{href:`/api-reference/organization/employment`,children:`Employment`}),` record for job data (title, manager, start date, income). Querying them separately means you can pull only what you need.`]}),`\n`,_jsxs(_components.p,{children:[`To enumerate everyone at a connection, call `,_jsx(_components.a,{href:`/api-reference/organization/directory`,children:_jsx(_components.code,{children:`GET /employer/directory`})}),` first. It returns a paginated list of `,_jsx(_components.code,{children:`individual_id`}),`s you can then fetch in detail via the endpoints above.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The same person can have multiple Employment records over time (rehires, role changes, multi-EIN setups). Treat `,_jsx(_components.code,{children:`individual_id`}),` as the stable identity key and Employment as historical job state.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`payroll-payments-and-pay-statements`,children:`Payroll: payments and pay statements`}),`\n`,_jsx(Frame,{caption:`One Payment fans out into per-person Pay Statements, then into earnings, taxes, employee deductions, and employer contributions. Each line is also exposed as a flat Pay Statement Item.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=e0423768fb715d5c011034c91352b17a`,alt:`Payment contains pay statements, which contain earnings, taxes, employee deductions, and employer contributions, all flattened into pay statement items`,\"data-og-width\":`880`,width:`880`,\"data-og-height\":`780`,height:`780`,\"data-path\":`images/how-finch-works/data-model-payroll.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=280\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=98dae0cc6f5d0344a703ad79b5e49ab3 280w, https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=560\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=66375b6328ba12f6edfde0ebf2d59be1 560w, https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=840\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=94b51bb85034d55a9b3eaf4fdd62fac9 840w, https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=88e22579945055e8ef49985e2f9440f8 1100w, https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=01701991a9626a5f09d32d239b7f0fe7 1650w, https://mintcdn.com/finch/qVypC4iNFFCY2LRz/images/how-finch-works/data-model-payroll.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=qVypC4iNFFCY2LRz\u0026q=85\u0026s=17440f3d3a092d87a6b8c8066318abd4 2500w`})}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.a,{href:`/api-reference/payroll/payment`,children:`Payment`}),` is one payrun, and it’s the starting point for all payroll data. Each Payment contains one `,_jsx(_components.a,{href:`/api-reference/payroll/pay-statement`,children:`Pay Statement`}),` per person, broken down into earnings (base, overtime, bonus), taxes (federal, state, FICA), employee deductions (401k, health premiums, FSA), and employer contributions (401k match, employer-paid benefits). Deductions and contributions live in separate fields on the Pay Statement so you can read or aggregate each side cleanly.`]}),`\n`,_jsxs(_components.p,{children:[`Use the `,_jsx(_components.a,{href:`/api-reference/payroll/get-pay-statement-items`,children:`Pay Statement Item`}),` endpoint to retrieve all payroll items that have appeared in a company’s processed payroll, including taxes, deductions, earnings, and employer contributions. For example, if your customer’s organization labels a health deduction as `,_jsx(_components.code,{children:`EE_MED_PPO_PREM`}),` in the provider system, this endpoint surfaces that name alongside its category and type. From there you can use the `,_jsx(_components.a,{href:`/api-reference/payroll/get-rules`,children:`Rules endpoint`}),` to apply the right labels and context in your system.`]}),`\n`,_jsx(Heading,{level:`2`,id:`deductions-company-benefits-and-per-employee-contributions`,children:`Deductions: company benefits and per-employee contributions`}),`\n`,_jsx(Frame,{caption:`A company-level deduction defines the benefit. An individual deduction record holds the per-person amounts. The per-paycheck amount appears as a Pay Statement Item.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=34ba8f8f87f9430114e8662c2a9caf89`,alt:`Company deduction maps to per-individual deduction records, which are referenced by pay statement items as deduction or contribution lines`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`640`,height:`640`,\"data-path\":`images/how-finch-works/data-model-deductions.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=280\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=4b6b9799a9ebd64d5b73c61bf7150f0c 280w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=560\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=918bccf1978e1e9a4feb3241fee8112e 560w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=840\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=ffeb33ec35fa4776ade52eefc2bc85b1 840w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=ceacd992317c9253cf729b4ae71caef5 1100w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=e5518a6d1b24f72d14dc3a253a481a11 1650w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-deductions.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=7967aa2fb9f5c8a87687e9163563d610 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Finch’s `,_jsx(_components.a,{href:`/products/deductions/Overview`,children:`Deductions`}),` product represents benefits from the payroll side, in two connected views. A company-level deduction defines the benefit at the company: type (401k, HSA, FSA, etc.), frequency, and the employer’s contribution rule. An `,_jsx(_components.a,{href:`/api-reference/deductions/get-enrolled-individuals`,children:`individual deduction record`}),` then holds the per-person amounts: employee contribution, employer contribution, and annual maximum. The per-paycheck amount itself lives on the Pay Statement Item. The deduction record tells you what should happen each pay period; the pay statement item tells you what actually happened.`]}),`\n`,_jsxs(_components.p,{children:[`You can `,_jsx(_components.a,{href:`/api-reference/deductions/enroll-individuals-in-deductions`,children:`add individuals to a deduction`}),`, `,_jsx(_components.a,{href:`/api-reference/deductions/update-deduction`,children:`update contribution amounts`}),`, and `,_jsx(_components.a,{href:`/api-reference/deductions/unenroll-individuals-from-deductions`,children:`remove individuals`}),` where the provider allows it. Call the `,_jsx(_components.a,{href:`/api-reference/management/providers`,children:_jsx(_components.code,{children:`/providers`})}),` endpoint to see which deduction types and operations each provider supports before you build against them.`]}),`\n`,_jsx(Heading,{level:`2`,id:`benefits-plans-enrollments-and-dependents`,children:`Benefits: plans, enrollments, and dependents`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Benefits is in Early Access. Endpoint paths and field names are subject to change before general availability.`})}),`\n`,_jsx(Frame,{caption:`One Plan covers many Enrollments. Enrollment and Dependent records link to each other in both directions, and each Enrollment belongs to an individual_id.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=308c3250db5795dc1989898cb618f32b`,alt:`Plan maps one-to-many to Enrollment records, which link bidirectionally to Dependent records`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`620`,height:`620`,\"data-path\":`images/how-finch-works/data-model-benefits.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=280\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=1575adaa01d54c58619881934fe22865 280w, https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=560\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=5a568c649c948f3fb01396825dc81b2e 560w, https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=840\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=8b11016ff71036928c172ca50e040512 840w, https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=da20996a192f183408cde318ddb71921 1100w, https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=4418c7198b5abf5abdd9361329e4be1a 1650w, https://mintcdn.com/finch/GlG5ls0KmiLqPIoY/images/how-finch-works/data-model-benefits.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=GlG5ls0KmiLqPIoY\u0026q=85\u0026s=c88b9d2f5c18959d4d74ad4b777fd4d4 2500w`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/products/benefits/Overview`,children:`Benefits`}),` is Finch’s source-of-truth product for benefits enrollment. Where Deductions (above) shows the payroll-side evidence of a benefit, like what’s being withheld each paycheck, Benefits returns the canonical plan and enrollment data directly from the benefits administration side of the employer’s system:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Plan`}),`: the company-level benefit plan, including type, carrier, plan year, deduction code, and available coverage tiers.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Enrollment`}),`: the individual’s actual enrollment in a plan, with coverage tier, effective dates, contribution amounts, and covered dependents.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dependent`}),`: a spouse or child covered under an individual’s enrollment, linked back to its enrollment records.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use Benefits when you need authoritative enrollment state, for example to verify coverage before quoting a benefit or to retrieve dependent details for compliance. Use Deductions when you need to see what’s actually being withheld each pay period. The two are complementary.`}),`\n`,_jsx(Heading,{level:`2`,id:`documents-parsed-data-from-hr-forms`,children:`Documents: parsed data from HR forms`}),`\n`,_jsx(Frame,{caption:`Queue a job, then list documents for an individual or document type, then fetch a specific document to read its parsed fields.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=24d78057125a2109d79a3601db2b6f07`,alt:`Queue a job leads to a documents list, then drill into a specific document to read parsed fields`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`480`,height:`480`,\"data-path\":`images/how-finch-works/data-model-documents.svg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=280\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=e6c59ad29f459283ee5954de377dfe55 280w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=560\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=93debbfb525c90614948b49ad446a689 560w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=840\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=2951c210dfb894198cc2a4946b9011ac 840w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=1100\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=b60865a382aec4f8b20249e6d7a30c05 1100w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=1650\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=880227e55d2c9da169f5a45b71495b73 1650w, https://mintcdn.com/finch/08B9OENKYadKN_zD/images/how-finch-works/data-model-documents.svg?w=2500\u0026fit=max\u0026auto=format\u0026n=08B9OENKYadKN_zD\u0026q=85\u0026s=3c14e9d852b8124546a677cb5c3c8eda 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Finch’s `,_jsx(_components.a,{href:`/products/documents/Overview`,children:`Documents`}),` product reads structured data out of HR documents using ML-based parsing. Two endpoints carry the data: `,_jsx(_components.a,{href:`/api-reference/documents/get-documents`,children:_jsx(_components.code,{children:`GET /employer/documents`})}),` returns a list of available documents (filterable by individual or document type), and `,_jsx(_components.a,{href:`/api-reference/documents/get-document`,children:_jsx(_components.code,{children:`GET /employer/documents/{document_id}`})}),` returns the parsed fields for one document.`]}),`\n`,_jsxs(_components.p,{children:[`Documents is async. Before either read endpoint will return fresh data, queue an automated job with `,_jsx(_components.a,{href:`/api-reference/management/enqueue-a-new-automated-job`,children:_jsx(_components.code,{children:`POST /jobs/automated`})}),` so Finch can sync from the provider. The product is currently in beta with W-4 support; expect more document types over time.`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Quickstart`,icon:`rocket`,href:`/how-finch-works/quickstart`,children:_jsx(_components.p,{children:`Mint a sandbox token and pull your first employer record.`})}),_jsx(Card,{title:`API reference`,icon:`code`,href:`/api-reference`,children:_jsx(_components.p,{children:`Every endpoint, request shape, and response field.`})}),_jsx(Card,{title:`Finch Sandbox`,icon:`flask`,href:`/implementation-guide/Test/Finch-Sandbox`,children:_jsx(_components.p,{children:`Test the data model with realistic fixtures before wiring up production.`})}),_jsx(Card,{title:`Glossary`,icon:`book`,href:`/how-finch-works/unified-employment-api-glossary`,children:_jsx(_components.p,{children:`Reference for every term used across the Finch API.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How the Finch API is organized","sidebarTitle":"Data model","description":"Finch's API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.","href":"/how-finch-works/data-model"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Organization: company, individual, and employment","slug":"organization-company-individual-and-employment","depth":2,"children":[]},{"title":"Payroll: payments and pay statements","slug":"payroll-payments-and-pay-statements","depth":2,"children":[]},{"title":"Deductions: company benefits and per-employee contributions","slug":"deductions-company-benefits-and-per-employee-contributions","depth":2,"children":[]},{"title":"Benefits: plans, enrollments, and dependents","slug":"benefits-plans-enrollments-and-dependents","depth":2,"children":[]},{"title":"Documents: parsed data from HR forms","slug":"documents-parsed-data-from-hr-forms","depth":2,"children":[]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"finch","siteName":"Finch","title":"How the Finch API is organized - Finch","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-11T19:46:50.110Z","originalFileLocation":"how-finch-works/data-model.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Finch\u0026#x27;s API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Finch\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How the Finch API is organized - Finch\">\u003cmeta data-mint-head property=\"og:description\" content=\"Finch\u0026#x27;s API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Finch\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.tryfinch.com/how-finch-works/data-model\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://finch.mintlify.app/_mintlify/api/og/v2?division=How+Finch+Works\u0026amp;title=How+the+Finch+API+is+organized\u0026amp;description=Finch%27s+API+data+model+normalizes+payroll%2C+HR%2C+and+benefits+data+from+250%2B+providers.+Walk+through+the+core+entities+and+how+they+connect+in+one+map.\u0026amp;theme=833c5e58755e897492517fe7\u0026amp;signature=9eb1f4ec6d837b124d48aea92fbf060d69b07b8b72eeeb86892888d691774d97\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How the Finch API is organized - Finch\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Finch\u0026#x27;s API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://finch.mintlify.app/_mintlify/api/og/v2?division=How+Finch+Works\u0026amp;title=How+the+Finch+API+is+organized\u0026amp;description=Finch%27s+API+data+model+normalizes+payroll%2C+HR%2C+and+benefits+data+from+250%2B+providers.+Walk+through+the+core+entities+and+how+they+connect+in+one+map.\u0026amp;theme=833c5e58755e897492517fe7\u0026amp;signature=9eb1f4ec6d837b124d48aea92fbf060d69b07b8b72eeeb86892888d691774d97\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/finch/uhsSWlAJd6T26wSS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Finch\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#161616\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.tryfinch.com/how-finch-works/data-model\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/how-finch-works/data-model.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.tryfinch.com/#organization\",\"name\":\"Finch\",\"url\":\"https://developer.tryfinch.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/finch/ejF2Kw2CeeMQKCJw/logo/logo-black.svg?fit=max\u0026auto=format\u0026n=ejF2Kw2CeeMQKCJw\u0026q=85\u0026s=e490dba98fb7b16e8f9f5ab4a9a58a5c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.tryfinch.com#website\",\"name\":\"Finch\",\"url\":\"https://developer.tryfinch.com\",\"publisher\":{\"@id\":\"https://developer.tryfinch.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.tryfinch.com/how-finch-works/data-model#webpage\",\"url\":\"https://developer.tryfinch.com/how-finch-works/data-model\",\"name\":\"How the Finch API is organized\",\"description\":\"Finch's API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\",\"dateModified\":\"2026-09-11T19:46:50.110Z\",\"isPartOf\":{\"@id\":\"https://developer.tryfinch.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.tryfinch.com/how-finch-works/data-model#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.tryfinch.com/how-finch-works/data-model#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How Finch Works\",\"item\":\"https://developer.tryfinch.com/how-finch-works/quickstart\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How the Finch API is organized\",\"item\":\"https://developer.tryfinch.com/how-finch-works/data-model\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developer.tryfinch.com/how-finch-works/data-model#article\",\"headline\":\"How the Finch API is organized\",\"name\":\"How the Finch API is organized\",\"description\":\"Finch's API data model normalizes payroll, HR, and benefits data from 250+ providers. Walk through the core entities and how they connect in one map.\",\"url\":\"https://developer.tryfinch.com/how-finch-works/data-model\",\"mainEntityOfPage\":{\"@id\":\"https://developer.tryfinch.com/how-finch-works/data-model#webpage\"},\"dateModified\":\"2026-09-11T19:46:50.110Z\",\"publisher\":{\"@id\":\"https://developer.tryfinch.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.tryfinch.com#website\"}}]}\u003c/script>","siteName":"Finch","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":{"style":"sharp-solid","name":"megaphone"},"color":{"light":"#3E4AE7","dark":"#3E4AE7"},"href":"https://developer.tryfinch.com/changelog"},{"anchor":"API Status","icon":{"style":"sharp-solid","name":"signal-bars"},"color":{"light":"#3E4AE7","dark":"#3E4AE7"},"href":"https://status.tryfinch.com"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"How Finch Works","pages":[{"title":"Quickstart","href":"/how-finch-works/quickstart"},{"title":"What is Finch?","description":"The Finch API powers integrations to employment systems through a single, standardized data model.","href":"/how-finch-works/finch-overview"},{"title":"How the Finch API is organized","sidebarTitle":"Data model","href":"/how-finch-works/data-model"},{"title":"Connect an Employer","description":"Finch Connect is an embedded onboarding flow that enables employers to connect their HR or payroll system to your app.","href":"/how-finch-works/finch-connect"},{"title":"Unified API Glossary","sidebarTitle":"Glossary","href":"/how-finch-works/unified-employment-api-glossary"}]},{"group":"Integrations","pages":[{"title":"Integration Types","href":"/integrations/integration-types"},{"title":"Provider Network","href":"/integrations/providers"},{"title":"Field Support","mode":"wide","href":"/integrations/field-support"},{"title":"Provider Setup Instructions","href":"/integrations/provider-setup"}]},{"group":"Products","pages":[{"title":"Organization","href":"/products/organization/Overview"},{"title":"Payroll","href":"/products/payroll/Overview"},{"title":"Deductions","href":"/products/deductions/Overview"},{"title":"Benefits","href":"/products/benefits/Overview"},{"title":"Recordkeeper","href":"/products/recordkeeper/Overview"},{"title":"Documents","href":"/products/documents/Overview"}]},{"group":"Implementation Guide","pages":[{"title":"Implementation with Finch","href":"/implementation-guide/go-live-checklist"},{"group":"Implement Finch Connect","pages":[{"title":"Create a Finch Developer Account","href":"/implementation-guide/Connect/Create-Account"},{"title":"Create a Finch Connect Session","href":"/implementation-guide/Connect/Set-Up-Finch-Connect"},{"title":"Retrieve Access Token","href":"/implementation-guide/Connect/Retrieve-Access-Token"}]},{"group":"Test","pages":[{"title":"Environments","href":"/implementation-guide/Test/Environments"},{"title":"Finch Sandbox","href":"/implementation-guide/Test/Finch-Sandbox"},{"title":"Provider Sandboxes","href":"/implementation-guide/Test/Provider-Sandboxes"}]},{"group":"Build Backend Application","pages":[{"title":"Backend Security","href":"/implementation-guide/Backend-Application/Backend-Security"},{"title":"Store Tokens","href":"/implementation-guide/Backend-Application/Store-Tokens"},{"title":"Disconnect Connections","href":"/implementation-guide/Backend-Application/Disconnect-Connections"},{"title":"Mitigate Errors","href":"/implementation-guide/Backend-Application/Mitigate-Errors"},{"title":"Monitor Usage","href":"/implementation-guide/Backend-Application/Monitor-Usage"},{"title":"Control Access (Optional)","href":"/implementation-guide/Backend-Application/Control-Access"},{"title":"Manage Connections","href":"/implementation-guide/Backend-Application/Manage-Connections"}]},{"group":"Make Finch API Calls","pages":[{"title":"Read Organization and Payroll Data","href":"/implementation-guide/API-Calls/Read-Data"},{"title":"Batch Requests","href":"/implementation-guide/API-Calls/Batch-Requests"},{"title":"Write Deductions","href":"/implementation-guide/API-Calls/Write-Data"}]},{"group":"Integration Preparation","pages":[{"title":"Email Forwarding","href":"/implementation-guide/Integration-Preparation/Email-Forwarding"},{"title":"Manage Integrations","href":"/implementation-guide/Integration-Preparation/Manage-Integrations"},{"title":"Configure Auth Methods","href":"/implementation-guide/Integration-Preparation/Configure-Auth-Methods"},{"title":"Security Reviews","href":"/implementation-guide/Integration-Preparation/Security-Reviews"}]},{"group":"Deploy and Manage","pages":[{"title":"Increase Employer Adoption","href":"/implementation-guide/Deploy-and-Manage/Increase-Employer-Adoption"},{"title":"Get support","href":"/implementation-guide/Deploy-and-Manage/Support"}]}]},{"group":"Developer Resources","pages":[{"title":"API Changes and Updates","href":"/developer-resources/api-changes"},{"title":"SDKs","href":"/developer-resources/SDKs"},{"title":"MCP","href":"/developer-resources/Finch-MCP-Server"},{"title":"Build or audit a Finch integration with AI agents","sidebarTitle":"Build or Audit with AI","href":"/developer-resources/Build-or-Audit-with-AI"},{"title":"Webhooks","href":"/developer-resources/Webhooks"},{"title":"Request Forwarding","href":"/developer-resources/Request-Forwarding"},{"title":"Data Access Controls","href":"/developer-resources/Data-Access-Controls"},{"title":"Data Syncs","href":"/developer-resources/Data-Syncs"},{"title":"Reauthentication","href":"/developer-resources/Reauthentication"},{"title":"Reconcile Employees","href":"/developer-resources/Reconcile-Employees"},{"title":"Enable Social Security Number (SSN) Field","href":"/developer-resources/Enable-SSN-Field"},{"title":"Calculate Year-To-Date (YTD) Wages","href":"/developer-resources/Calculating-YTD-Wages"},{"title":"W-2 Box 1","href":"/developer-resources/Calculating-W2-Box1-value"},{"title":"Pay Statement Type Classification","href":"/developer-resources/Pay-Statement-Type-Classification"},{"title":"Pay Statement Items \u0026 Rules","href":"/developer-resources/Pay-Statement-Items-Rules"},{"title":"Tiered Employer Matching","sidebarTitle":"Tiered Employer Matching","href":"/developer-resources/Tiered-Employer-Matching"},{"title":"Developer FAQs","href":"/developer-resources/Developer-FAQs"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/organization/company"}]}]},"basePath":"","title":"How the Finch API is organized - Finch","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}