Generate Printable Paper Checks
Gusto's API allows you to generate two types of check PDFs based on an employerβs preference: check at the bottom stock or check at the top stock. Once generated, employers can print the generated checks and provide them to employees.
Gusto performs payroll calculations and remits taxes for all employees, regardless of their payment method. For employees who are paid via check, employers are expected to pay employees their net pay amount outside of the standard Gusto ACH process.
Printable PDFs are also included in the Gusto Embedded Run Payroll Flow, as well as in the off-cycle and payroll history Flows.
1. Create printable paper check
To create a printable paper check through the Gusto API, use the POST payroll/{payroll_uuid}/generated_documents/printable_payroll_checks
endpoint. The payroll_uuid
must be the uuid of a processed payroll (i.e. one that has been successfully submitted).
The endpoint accepts the following body params:
printing_format
- either βtopβ or βbottomβ to indicate placement of the recipient's address. Note: βbottomβ includes the routing number while βtopβ does not.starting_check_number
- optionally set a starting check number. Note: only available forprinting_format: βbottomβ
.
The response will contain the following information:
payroll_uuid
printing_format
- top or bottomstarting_check_number
- nil ifprinting_format: βtopβ
or if not passedrequest_uuid
- to be used in the Step 2status
- pending, succeeded, or failed
2. Get printable paper check
To get the generated document, use the GET /generated_documents/printable_payroll_check/{request_uuid}
endpoint using the request_uuid
returned from Step 1.
The response will contain the following information:
request_uuid
report_urls
- an array that is either empty whenstatus: βpendingβ
, or contains the URL of the printable check whenstatus: βsucceededβ
status
- pending, succeeded, or failed
3. Monitor webhook for approval
Payroll check generation falls under our generated documents category, and is created through an async request. You can subscribe to the GeneratedDocument Entity webhook and listen for the printable_payroll_checks.generated_document.generated
event to get notified when a payroll check has finished generating.
Alternatively, you can handle this using polling. Once Step 1 is successful, repeat Step 2 every few seconds to verify whether check generation is complete.
Updated about 2 years ago