Kordano Founding 25 for teams of 6+: $3/user/month, month to month, locked for 24 months
Kordano
Kordano Insights

Practical guidance for running clearer, more accountable teams.

Workforce Management

QuickBooks Time Tracking Integration: 8 Payroll Tests

By Haris Ali D. · Published September 3, 2026

Share

A green “Connected” badge proves an authorization handshake. It does not prove that payroll can trust the hours on the other side.

That distinction gets expensive late. An employee can exist in both systems under different identities. Regular time can arrive while overtime fails. An approved correction can change the tracker but leave the accounting record untouched. A retry can recover a rejected row or send an accepted row twice.

The right test is not “Did something sync?” It is: Did every approved hour reach the intended QuickBooks record once, under the right worker, customer, service, pay type, and pay period, with every exception visible?

Run the following eight tests in a bounded pay period before the integration becomes the normal payroll path. This is an operating checklist, not accounting, tax, or legal advice. QuickBooks products, payroll rules, and third-party connectors vary by country and subscription.

TL;DR: Treat the connection as unproved until one awkward pay period balances. Test identity, pay and work codes, period boundaries, approvals, partial failures, corrections, and duplicates. Cut over only when approved source totals equal accepted final QuickBooks totals plus named exclusions.

In this guide

  • Start with the eight-test decision table.
  • Define the exact QuickBooks destination and data direction.
  • Run the identity, field, boundary, approval, failure, correction, and reconciliation tests.
  • Finish with the One-Pay-Period Integration Receipt and a cutover decision.

The eight-test decision table

Use a small test group that includes ordinary and awkward records. One clean salaried worker is not a useful sample.

TestFailure to injectEvidence required to passStop condition
1. DestinationSend one ordinary entry through the advertised connectionThe exact QuickBooks product, company, and destination record are namedThe connector reaches invoices or reports but not the payroll input you need
2. IdentityInclude an employee, contractor, rehire, and renamed workerEach source identity maps to one active destination identityA worker is missing, duplicated, or changes type
3. Pay and work codesUse regular, overtime, leave, customer, service, and class fields that matterEvery required value lands in the intended field, or an explicit exclusion is documentedA payroll-critical field is dropped or silently replaced
4. Period boundaryInclude an overnight shift, cutoff-day entry, and late arrivalDates, pay period, duration, and totals stay correct across the boundaryTime lands in the wrong pay period or changes without an exception
5. ApprovalSubmit, reject, correct, approve, and attempt a post-approval editOnly the intended approved version becomes payroll-readyDraft or rejected time crosses the boundary
6. Partial failureBreak one mapping and expire or revoke the connectionAccepted and rejected rows are separately visible with ownersThe batch says success while a row disappears
7. CorrectionChange an entry after its first transferOriginal value, correction, approver, destination action, and final version remain traceableThe two systems disagree with no repair path
8. ReconciliationCompare source, accepted, rejected, and payroll totalsThe control equation balances by worker and pay typeAny unexplained difference remains at cutover

The stop conditions matter more than a weighted score. A polished mobile clock cannot compensate for missing overtime, an invisible rejected employee, or a duplicate payroll row.

First decide what “QuickBooks integration” means

The QuickBooks logo does not describe one workflow.

Reading current setup pages beside troubleshooting pages, I found the operating contract split across them: setup explains what should move, while exception guidance names what can stop it.

Harvest documents an integration that copies invoices and recorded payments into QuickBooks Online. Clockify documents a time-entry transfer with employee, date, customer or project, duration, description, billable state, and billable rate. Hubstaff describes hourly transfers to QuickBooks Online and an IIF export for QuickBooks Desktop. These are useful connections, but they do different jobs.

Before setup, write one sentence:

Approved employee time moves from [source] into [exact QuickBooks product and company] as [destination record] for [payroll, job cost, client billing, or accounting].

Do not allow “payroll and billing” to share the same sentence unless both paths are tested separately. Payroll needs worker and pay-type accuracy. Client billing needs customer, service, billable state, rate, and invoice treatment. Accounting may receive only a summary or journal entry. A CSV export is a handoff too, but its mapping, rejection, and version controls belong in the test.

OnTheClock's current QuickBooks Online help page makes the scope problem unusually clear: its documented connection excludes contractor hours, job-cost details, departments, overtime, paid time off, and salaried employees. That does not make the connection bad. It makes it specific. The buyer's job is to compare that scope with the records payroll actually needs.

I expected transfer frequency to separate these connections. It did not. Destination, excluded fields, and correction behavior decide whether a connection fits the payroll job at all.

Test 1: prove the destination, direction, and owner

Connect a non-production company or a controlled test company where the product permits it. Record the QuickBooks company identifier or unmistakable company name, the QuickBooks product, the source workspace, the connection owner, and the authorized account.

Then send one ordinary entry and inspect the destination. Do not infer destination behavior from the source application's success message. Open QuickBooks and find the employee, date, hours, and destination record.

This catches four common misunderstandings:

  • QuickBooks Online support is mistaken for QuickBooks Desktop support.
  • Invoice sync is mistaken for payroll-time sync.
  • A one-way push is mistaken for two-way synchronization.
  • A summary import is mistaken for a row-level record with customer and pay-type detail.

TimeCamp's QuickBooks documentation illustrates why the exact path belongs in writing. It supports QuickBooks Online, imports clients and products or services, exports approved time to reports, and can export invoices. Those actions share a connection but not a destination or control purpose.

Name a business owner for the connection and a payroll owner for the resulting hours. The person allowed to authorize an app does not automatically own the pay-period decision.

Test 2: map people by durable identity

Names are convenient for humans and fragile for systems. A middle initial, married name, duplicate display name, inactive profile, or contractor-to-employee change can split one person into two records or leave the person unmatched.

Use at least four test identities:

  1. An ordinary active employee.
  2. A contractor or vendor, if the workflow supports one.
  3. A rehire or reactivated person.
  4. A person whose display name changed.

For each person, preserve the source identifier, destination identifier, worker type, active state, and mapping decision. If the connector matches only by name or email, document that as a dependency and test the exact mismatch behavior.

A current QuickBooks community thread about vendors appearing as workers is anecdotal, not a product specification. Its useful warning is the historical edge case: someone who moved from contractor to employee can carry an old classification into a current payroll review. Clean new profiles will not reveal that.

My rule is simple: an unmatched worker blocks the batch. Payroll should never guess which person a row belongs to.

Test 3: map pay types and work dimensions separately

An hour is not yet a payroll instruction. It may need a regular, overtime, double-time, leave, or other earning classification. The same time may also carry a customer, job, service item, class, location, billable state, or description for costing and invoicing.

Build a mapping sheet before the test:

Source fieldQuickBooks destinationRequired forSource of truthOwner
WorkerEmployee or contractor recordPayrollHR or payroll rosterPayroll
Time typePay or earning typePay calculationPayroll policyPayroll
Customer or projectCustomer, subcustomer, or jobJob cost and billingAccounting customer listFinance
Service or taskProduct or service itemJob cost and billingAccounting service listFinance
Approval stateTransfer eligibilityPayroll controlTimesheet workflowOperations
Notes or descriptionContext onlyReview and dispute handlingTime recordManager

Current Intuit troubleshooting guidance names several distinct failure families: unmapped pay items, closed accounting periods, unsupported features, insufficient permissions, disabled billable settings, missing employees, and expired authorization. That list is the argument for testing the field map, not merely the connection.

The surprising detail is how many failures can sit behind a successful sign-in. Authorization opens the path. It does not validate the worker, pay type, accounting period, plan, or field configuration.

Include one deliberately unmapped pay type. The correct result is a visible exception with the affected worker, hours, reason, and repair step. Automatic substitution into regular time is not a pass.

Test 4: cross the pay-period boundary on purpose

Use a controlled overnight entry, a correction on cutoff day, and one approved entry that arrives after the first export. Record the source date, start and stop time if the connector carries them, duration, time zone policy, target pay period, and destination date.

The test is not trying to prove every labor rule. It asks whether the integration preserves the company's already approved classification and period treatment.

A recurring pattern in support threads is to test the connector during a quiet afternoon, then discover the real boundary during the first close. Use the awkward shift first. For an 18-person home-services team, that might be a technician who starts before midnight, finishes after midnight, records leave elsewhere in the same period, and corrects the customer code after manager review. This is a labeled composite, not Kordano customer data.

The US Department of Labor's recordkeeping guidance requires accurate hours and wage records for covered nonexempt workers, while allowing employers to choose the record format. Other countries apply their own rules. The transferable operating point is that the integration does not reduce the employer's responsibility for a complete and accurate record.

Test 5: prove approval means transfer eligibility

Run the full state sequence with one entry:

  • employee submits;
  • manager rejects with a reason;
  • employee or authorized manager corrects;
  • manager approves;
  • someone attempts another edit;
  • payroll selects the approved period for transfer.

The accepted behavior must be stated before the test. Does approval lock the source? Does an edit revoke approval? Can a bulk approval hide an exception? Can time transfer automatically, or only after a payroll reviewer starts the export?

I think this is where “automatic” deserves suspicion. Automatic transfer is useful only after the approval state has earned it. If the connection sends draft time faster, it has made the wrong part efficient.

The source system should keep the approval event, approver, time, and version. The destination should show which version arrived. Payroll needs a deliberate cutoff rather than a moving target.

For the wider approval design, use these time tracking software buying questions and keep submission, manager approval, reconciliation, and export as separate states.

Test 6: force a partial failure and watch the retry

Break one record without breaking the whole batch. Use an inactive customer, an unmapped worker, an unsupported class, a closed date, or a revoked authorization in the test company.

The integration passes only if it answers five questions:

  1. Which rows were accepted?
  2. Which rows were rejected?
  3. Why was each row rejected?
  4. Who owns the repair?
  5. What prevents an accepted row from being duplicated on retry?

“27 of 28 rows sent” is not enough if nobody can identify the missing person. “Batch failed” is not enough if 27 rows actually arrived and the next click will send them again.

The control principle is older than cloud software. The GAO Financial Audit Manual, written for public-sector audit work, describes completeness controls through accepted-once processing, rejected-item correction, duplicate checks, reconciliations, control totals, and exception reporting. A small private company is not bound by that manual. The pattern is still a sound way to test a payroll interface.

From a product builder's perspective, row-level visibility is the useful feature here. A fast sync with one hidden rejection creates more risk than a slower handoff with an exact exception record.

Store the source batch ID, destination reference where available, attempt number, accepted count, rejected count, and final disposition. Good. Now a retry is a controlled event rather than another hopeful click.

Test 7: correct an approved and transferred entry

Corrections reveal whether the integration has one record or two competing truths.

After the first successful transfer, change one entry's duration and another entry's customer or service code. Follow the documented repair path. Do not delete history merely to make the totals look clean.

The correction record should retain:

  • original source value and version;
  • reason for change;
  • person who changed it;
  • approval effect;
  • destination action, such as update, reversal, replacement, or manual edit;
  • final payroll version.

Reading the current correction guidance beside the connection setup steps, I found the useful rule only after the initial handoff: Clockify says changes made in Clockify after an entry is sent do not update that QuickBooks entry, so the QuickBooks record must be corrected manually. That is workable if the procedure names the owner and preserves the cross-system link. It fails if the manager edits the tracker and everyone assumes payroll followed.

The final record must answer a dispute without reconstructing the week from chat messages: what changed, why, who approved it, and which value was paid?

Test 8: reconcile with a One-Pay-Period Integration Receipt

Finish the trial with one compact receipt. This is the proof that turns a successful connector run into a payroll decision.

Receipt fieldRequired result
ScopeSource workspace, QuickBooks company, pay-period dates, included workers
Source control totalApproved hours by worker and pay type before transfer
Attempt recordBatch or export identifier, start time, initiator, integration version if available
Accepted totalHours and rows confirmed in the intended QuickBooks destination
ExceptionsRejected or excluded rows with reason, owner, and disposition
CorrectionsOriginal and final values plus approval and destination action
Duplicate checkNo source row maps to more than one active destination row
Final control equationSource approved total = accepted final total + documented exclusions
ReleasePayroll reviewer, decision time, and cutover or rollback result

Reconcile by worker and pay type, not just one grand total. Forty regular hours lost from one employee and added to another still produce the same company total. The same is true when two overtime hours become regular hours.

I would rather delay cutover than explain an unexplained hour after payroll has closed (and that is the whole point of running the ugly test early).

The receipt should point to records, not copy sensitive payroll detail into a new uncontrolled document. Restrict access to the people who perform setup, payroll review, and investigation. Keep credentials and tokens out of screenshots, support tickets, spreadsheets, and chat.

The IRS employment-tax record page lists records US employers must retain and a general four-year retention period for employment-tax records. That is a US requirement, not a universal schedule for every integration log. Set the receipt's retention and access with the payroll, tax, and privacy owners for the jurisdictions involved.

Decide cutover before the test begins

Define three outcomes in advance:

Cut over: all eight tests pass, control totals balance, no payroll-critical exclusion remains, and the payroll reviewer signs the receipt.

Repair and rerun: every failed row is visible, the cause is understood, the destination contains no unexplained duplicate, and there is enough time to repeat the complete test before cutoff.

Roll back: an identity, pay type, approval, period, correction, or accepted-once control cannot be proved. Use the documented manual or export process for this payroll and reopen the integration after the pay run is safe.

Keep the old path available through at least the first controlled cycle. Parallel totals are tedious. A wrong live payroll is worse.

This test also connects with the BPO evidence chain: captured time, exception history, approval, payroll handoff, client proof, and service quality are related records, not one interchangeable score.

Where KordanoTime fits

KordanoTime opens access on December 1, 2026. The first release carries online and offline time capture, daily timelines, schedules, attendance, approvals, leave, breaks, payroll integrations or payroll-ready exports, and QuickBooks as part of more than 60 integrations. It also covers office-versus-remote reporting, multiple currencies, custom subdomains, admin impersonation controls, screenshot and screen-video evidence, and jiggler detection.

That release gives an operator the source records for the eight-test sequence: worker, work date, project context, approval state, correction path, export, and exception review. The judgement stays yours: you define the pay-type map, name the destination, set the cutoff, reconcile the totals, and authorize payroll.

Early Access includes 500 screenshots per company each month. The Team plan includes unlimited screenshots. Company-owned storage supports Amazon S3 and Cloudflare R2 for screenshots and screen recordings only, never the KordanoTime database. Kordano-managed media in Cloudflare R2 is encrypted at rest with AES-256, travels over TLS connections, and remains behind organization-scoped viewing permissions. Keep media outside the payroll receipt unless it is genuinely needed to resolve a time-record exception.

GPS, geofencing, and employee-location tracking are outside the December 1 first release and are planned for a 2027 release. A QuickBooks handoff should pass on its time, approval, mapping, exception, and reconciliation evidence, not on a future location feature.

If this is the payroll handoff your team needs to prove, join the Founding list.

Frequently asked questions

Can a time tracking app send hours to QuickBooks Payroll?

Some can, but a QuickBooks logo alone does not prove payroll compatibility. Confirm the exact QuickBooks product and plan, whether the connector creates payroll-ready time or only invoices and reports, and which worker and pay-type fields it excludes.

Why are employee hours not syncing to QuickBooks?

Common causes include an unmatched employee, missing pay-type mapping, a closed accounting period, insufficient permissions, an unsupported field, a disabled billable setting, or expired authorization. Read the row-level sync log before reconnecting or sending the batch again, because a retry can duplicate rows that already arrived.

Should timesheets be approved before they sync to QuickBooks?

For payroll, approved time should be the declared transfer boundary. Test whether rejection, correction, reapproval, and post-approval edits change eligibility as expected; an automatic connection that moves draft time is not payroll-ready.

How do I test a QuickBooks time tracking integration safely?

Use a test company or a bounded pilot pay period with ordinary and edge-case workers. Reconcile approved source hours against accepted destination hours by person and pay type, document every exclusion, and keep the existing payroll path available until the receipt balances.

Workforce ManagementPayroll Operations
Become a founding member

Companies with teams of 6 or more can lock $3 per person per month for 24 months.

Claim your spot
Limited to 25 qualifying companies
Haris Ali D.
Haris Ali D.
Co-Founder at Kordano
Get in touch

Haris Ali D. is the Founder of Kordano, a workforce operating system for modern teams. He focuses on building practical tools for time tracking, attendance, productivity visibility, and team operations.

He also brings experience in branding, digital strategy, and software development through FullStop, a company he co-founded in 2012.

World-class productivity advice

Practical tips in your inbox. No spam.