Payroll requires a lot of complicated paperwork from both employers and the people they’re paying. A company needs to fill out multiple forms before it can start running payroll, every employee needs to provide withholding forms when they start, and then every quarter (and at year end) the company must generate and file tax forms with the relevant authorities. Multiply those forms across all 50 states and thousands of local jurisdictions, and you start to get a sense of why payroll is hard.
At Check, we’re guided by our mission to make paying people simple, and a big part of that commitment is managing this proverbial paper trail, making it accessible to developers. That’s why we manage and render all the tax and authorization documents related to companies, employees, and contractors — throughout the entire lifecycle. A new employee can submit withholding forms through Check Onboard, for example, get paid throughout the year, then the following January, Check will automatically generate and file that person’s W2 form with the government.
Of course, while we handle document management in the background, we also want to make it easy for teams using Check to track that activity, including when documents are submitted or generated. Beginning today, Check will send webhook events whenever company, employee, or contractor documents are created in our system. By listening to these events, you can also easily notify relevant parties when these documents are ready to be viewed — for example triggering an email to an employee that their W2 is available, or to a company that their quarterly tax documents have been filed. These sorts of webhooks are a great example of our platform-first approach to payroll, and the powerful workflows you can build on Check as a result.
Each webhook request payload will contain a snapshot of the newly created document resource. For example, when an employee fills out and submits their federal withholding form, you can expect an event that looks something like this:
By default, these events are already being sent to all configured webhooks. To distinguish these from other webhook events, like our payroll status updates, you can use the X-Topic header. For more information about our webhooks or documents, head over to our API documentation.