Explore Finch developers’ most frequently asked questions (FAQ) and answers. Topics include Products & Integrations, API & Data Model, Security, and more.
Finch is a unified API for employment systems, meaning that the developer is only ever interacting with our single API to GET or POST data to any provider. Depending on which provider is set up, Finch will do one of two things:
In the Finch API, some endpoints are GET requests (/company and /directory endpoints) while some are POST requests (/individual and /employment endpoints). The latter are POSTs because a request body containing ids needs to be sent.
Additionally, the /individual
, /employment
, and /pay-statement
endpoints are special because they are “batch” endpoints, meaning you can send as many ids as you want in the body, and get a single response back containing the information for as many individuals/pay-statements as you sent. Query parameters can’t handle 1000 ids in the URL, hence the need for POSTs using request bodies.
No, Finch only includes payments to persons who show up in the employee directory with an associated individual_id. This applies across all providers.
It is usually 1-2 days after payroll end date between end_date
and debit_date
.
Finch looks at two broad categories when defining data quality:
NULL
fields when values exist in the system andNULL
can be potentially indicative of 4 things:The goal is to decrease the rate of NULL
over time; if the data is available in the provider’s system, Finch should be returning that data. Keep in mind that the status of an employee (full-time vs contractor) can also affect which fields return NULL.
Finch defines the “rate of incorrect data” as data that does not match what is reported in the provider’s system. This could either mean the field returns blank indicating a potential bug in our code (e.g.: a pay statement array returns empty), or the field returns a value that does not reflect what is reported in the system. We have an internal dashboard where we track data field coverage and correctness in real-time. We have alerts defined to notify us of any anomalies detected which we proactively investigate and fix.
There are several ways developers can validate data coming from Finch:
There are two ways to conduct an audit of Finch data:
Similarly, if a customer notices a potential data discrepancy, building and including a way for customers to report errors to you is also beneficial. Any errors reported to you can be directly forwarded to Finch for internal investigation. While we don’t ever want inaccurate data returned by our API, we are committed to fixing any errors rapidly and continue to proactively invest in automated tests, checks, and audits internally to catch any data quality errors proactively.
If there are any audits or data fields that are important to your business, we want to hear from you so that we can better support you.
You can bypass the provider screen if you already know the provider name by passing payroll_provider=<your_provider_name>
into the /authorize
url when opening Finch Connect.
A Finch access_token
lifetime is infinite; it does not expire, unless you disconnect it. If a 401 Re-authentication
error is received (either by a user changing their security setting or an employment system makes an infrastructure change), Finch’s connection can get disconnected, which requires a user to reauthenticate and a new Finch access_token will be created and sent back to your app.
Finch utilizes various encryption protocols to protect data at rest and in transit.