Authenticate to the QuickBooks Time API using the OAuth 2.0 Bearer token for the target company.
GET /timesheets with on_the_clock=no (to exclude in-progress punches), and filter by date range and optionally by approved status to retrieve finalized timesheets for the pay period.
For each timesheet record, capture employee user_id, jobcode_id, start, end, and duration; map jobcodes to payroll earning codes in your system.
Aggregate regular and overtime hours per employee for the pay period; QuickBooks Time stores raw punch durations but does not itself perform FLSA overtime calculation—this must be done in your pipeline.
Construct payroll import records in the format required by your payroll provider's API and POST them to the payroll system's time-import endpoint.
Mark or archive the exported timesheets to prevent double-processing in future export runs; QuickBooks Time does not have a built-in export-lock mechanism.
Known gotchas
QuickBooks Time does not calculate overtime automatically in the API response; you must apply FLSA or state rules in your export pipeline before submitting to payroll.
Deleted timesheets are included in results only when the supplemental_data parameter requests them; if you rely on GET responses only, soft-deleted records are invisible and can cause reconciliation gaps.
The API rate limit of 300 requests per 5-minute window can be reached during large historical exports; implement backoff and resumable export checkpointing to handle throttling gracefully.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp