Skip to main content

QuickBooks

The QuickBooks integration connects Timesheet to QuickBooks Online. Tracked time syncs to QuickBooks as time activities, so you can invoice clients and run payroll from the hours your team already logged, without entering them twice. Changes can flow in both directions.

Pro plan

The QuickBooks integration requires a Pro plan or above. See the Plans page for the full comparison.

Before you start

  • A QuickBooks Online account. QuickBooks Desktop is not supported.
  • Admin access to the QuickBooks company, so you can authorize the connection.
  • A Timesheet Pro plan.

Install and connect

In the web app, open Integrations, select Browse Marketplace, and install QuickBooks Online. Open the integration and select Connect, then sign in to your Intuit account, choose the QuickBooks company, and authorize access.

QuickBooks integration with its sync dashboard

The connection uses OAuth, so Timesheet never sees your QuickBooks password. Once connected, the header shows Connected and Sync Enabled, with Sync Now and an Actions menu. The integration is organized into five tabs: Sync Dashboard, Settings, Triggers, Mappings, and Logs.

Choose how time syncs

On the Settings tab, set the direction and the rate source.

QuickBooks settings with sync direction and billing rate source

  • Sync Direction: bidirectional (both ways), timesheet-to-qb (Timesheet to QuickBooks only), or qb-to-timesheet (QuickBooks to Timesheet only).
  • Billing Rate Source: where the billable rate on QuickBooks time entries comes from. quickbooks-service uses the sales price of the mapped QuickBooks service; timesheet-rate uses the Timesheet rate calculated for each task.

Select Save to apply.

Map your data

On the Mappings tab, match your Timesheet data to QuickBooks. Only mapped items sync.

Mapping Timesheet projects, users, and rates to QuickBooks

  • Projects: link each Timesheet project to a QuickBooks customer or project.
  • Users: link each Timesheet team member to the matching QuickBooks employee.
  • Rates: link each Timesheet rate to a QuickBooks service.

Select + Add to create a pair in each section, then Save. Map your data before your team starts tracking so every entry lands correctly.

When it syncs

The Triggers tab controls what starts a sync. You can turn each trigger on or off.

QuickBooks sync triggers

  • Task Changed: syncs task.create, task.update, and task.delete to QuickBooks as they happen.
  • QuickBooks Webhook: receives inbound time activity changes from QuickBooks automatically.
  • Scheduled Full Sync: runs a complete reconciliation on a schedule, by default daily at 02:00.
  • Manual Sync: runs when you select Sync Now or Run Full Sync.

Monitor syncs

The Sync Dashboard shows the health of the integration: how many of the recent runs succeeded or failed, how many items synced, the connection state, the scheduled sync time, and the last sync result. Select Run Full Sync to reconcile everything now.

The Logs tab lists each run with its status, trigger, date, and duration, so you can see exactly what synced and when.

QuickBooks sync logs

Use the synced time

Once your projects and members are mapped, their time entries sync to QuickBooks as time activities. From there you can build invoices from the billable hours, include the hours in payroll, and review or approve timesheets. With bidirectional sync, edits made in QuickBooks flow back to Timesheet so the records match.

Remove the integration

Use the Actions menu in the header, or the Uninstall Integration option on the integration page. This removes the integration and its mappings in Timesheet. Time already synced stays in QuickBooks, so remove it there if you no longer want it.

Troubleshooting

The integration shows as disconnected. Open the integration and select Connect again. OAuth access can expire after a long period without syncing.

Time is not appearing in QuickBooks. Check that the project and the team member are both mapped, and that the sync direction allows Timesheet to write to QuickBooks. Open the Logs tab to look for failed runs.

A customer, employee, or service is missing. Confirm it still exists in QuickBooks, then update the mapping to point at the correct one.

For anything else, contact support@timesheet.io with your Timesheet account email and QuickBooks company name.

See also

  • Integrations: install integrations and manage API keys and webhooks.
  • Google Calendar: sync tracked time with Google Calendar.
  • Plans: compare what each plan includes.