Quickbooky

Accounting News

SDK & Integration

Importing Commissions Through the QuickBooks SDK: A Known Dead End

Developers discover that QuickBooks payroll items are locked down from the SDK, forcing workaround approaches for commission imports tied to employee pay.

Importing Commissions Through the QuickBooks SDK: A Known Dead End

QuickBooks users attempting to automate commission imports through the QuickBooks SDK are running into a hard structural wall: the development toolkit deliberately blocks access to payroll items and payroll checks, leaving integration teams with no clean path for pushing commission data into employee compensation.

The issue surfaces when a developer tries to push commission amounts earned in an external system — a CRM, a sales platform, or a custom internal product — into QuickBooks Desktop payroll. The SDK exposes objects for querying existing wage and non-wage payroll items, and it allows adding new wage items. What it does not provide is a way to add or modify non-wage payroll items, which is the category commissions typically fall under. That asymmetry — query capability without corresponding add or modify capability — is not a gap waiting to be patched. It is a deliberate restriction.

Why Payroll Is Walled Off

Intuit has historically treated payroll as a protected functional area within QuickBooks. The SDK reflects that posture by locking down programmatic access to payroll items and payroll checks. A developer can read certain payroll-related data in some contexts, but writing to payroll through the API is off the table. This means there is no supported SDK call to create a commission payroll item, add a commission amount to a paycheck, or otherwise push commission data directly into the payroll module the way a user could by hand in the QuickBooks interface.

The restriction applies regardless of how the commission is structured. Whether the commission is a flat dollar amount, a percentage of sales, or a tiered structure calculated externally, the SDK offers no native object or method to deliver it into payroll as a commission type.

The Timesheet Workaround

One avenue the SDK does leave open is timesheet data. The toolkit provides reasonably good access to timesheets, and timesheets can feed into payroll. The practical implication is that a developer who can express commission earnings as a time-based entry — a number of hours at a calculated rate — may be able to route that data through the timesheet mechanism and ultimately into payroll processing.

This is essentially the approach many integration teams settle on, and community discussion confirms it is the least objectionable option available. The developer converts the commission amount into an equivalent hourly figure tied to a wage pay type, records it on a timesheet, and lets QuickBooks process it through normal payroll runs. It works, but it carries obvious fragility. The conversion math must be precise, edge cases around rounding and rate calculations can introduce discrepancies, and the underlying pay type does not truly represent what it is modeling.

The Expense Check Alternative — and Its Drawback

Another approach floating around community discussions is paying commissions through expense checks rather than payroll checks. The SDK has broader access to the check-writing and expense side of QuickBooks, so programmatically generating a check for a commission amount is technically more feasible than touching payroll directly.

The problem is identity. If the commission is owed to an employee — someone already set up in the QuickBooks employee list and processed through standard payroll — paying them with an expense check pulls them out of the payroll system entirely. The payment will not appear on pay stubs, will not factor into payroll tax calculations, and will not integrate with the reporting and compliance features tied to payroll. For commissions paid to true outside contractors or vendors, expense checks may be adequate. For employee commissions, the approach creates more problems than it solves.

What This Means in Practice

For development teams building integrations that must move commission data into QuickBooks Desktop, the reality is that no clean, fully supported method exists through the SDK. The payroll lockdown is intentional and comprehensive. Teams are left choosing between a timesheet-based workaround that misrepresents commission data as hourly wages, or an expense-check approach that sidesteps payroll entirely and breaks the link between the payment and the employee’s payroll record.

Neither option is elegant, and both carry risks that should be weighed against the business requirement driving the integration in the first place.

← Back to Community Issues