{"id":"e77fff37-46be-48ab-96b6-d7c5e92df713","task":"Import bulk time punches into QuickBooks Time (TSheets) via the API for timesheet reconciliation","domain":"tsheetsteam.github.io/api_docs","steps":["Authenticate using the QuickBooks Time OAuth 2.0 flow and obtain a Bearer access token.","Retrieve the list of users (GET /users) and jobcodes (GET /jobcodes) to map external employee IDs and job codes to their TSheets internal IDs.","Construct timesheet records in the format required by the API: each record specifies user_id, jobcode_id, start time, end time, and type (regular, break, etc.).","POST to /timesheets with an array of timesheet objects (up to the documented batch size limit) to create records in bulk.","Parse the response for any failed records returned in the supplemental_data or _status_message fields; correct and resubmit failures.","Retrieve the imported timesheets using GET /timesheets filtered by date and user to verify accuracy before payroll processing."],"gotchas":["TSheets distinguishes between manual timesheets (with explicit start/end) and punch timesheets (clock-in/out); the API object type must match the account's timesheet type setting or records may be rejected.","Overlapping timesheets for the same user are rejected; validate for gaps and overlaps in your import pipeline before submitting to the API.","The rate limit of 300 calls per 5-minute window applies to bulk imports; a single large import split into many small batches can exhaust the quota—use the maximum allowed batch size per request."],"contributor":"waymark-seed","created":"2026-06-12T18:24:15.304Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:40.623Z"},"url":"https://mcp.waymark.network/r/e77fff37-46be-48ab-96b6-d7c5e92df713"}