QuickBooks Online Integration
Connect Keito to QuickBooks Online (QBO) when you want invoices, customers, payments, item mappings, employee mappings, and approved time activity to stay aligned with accounting.
Note: Only one accounting integration can be active at a time. If you are currently connected to Xero, disconnect Xero before connecting QuickBooks.
Requirements
- A Keito Business plan subscription.
- A QuickBooks Online company.
- Administrator access in Keito.
- Permission in QuickBooks to authorise apps, create invoices, read customers, read employees, and create time activity records.
What It Does
The QuickBooks integration can:
- Copy Keito invoices to QuickBooks Online.
- Create or link QBO customers from Keito clients.
- Import QBO customers and link them to existing Keito clients.
- Reconcile QuickBooks payment state back into Keito.
- Set default Product/Service, Class, and tax code values for copied invoice lines.
- Map Keito tasks to QBO products and services.
- Map Keito team members to QBO employees.
- Sync approved Keito time entries as QBO TimeActivity records.
- Optionally use QBO sub-customers for project-level tracking.
How It Works
QuickBooks Online is a workspace-level accounting integration. A Keito admin authorises a QBO company, then Keito stores the realm and mapping IDs needed to link Keito clients, projects, tasks, team members, invoices, payments, and approved time entries to QBO records.
Keito remains the operating system for time tracking, approval, invoicing, and project context. QuickBooks remains the accounting system. Keito copies invoices and eligible approved time activity into QBO, and it can reconcile payment state from QBO back to the linked Keito invoice.
Connect QuickBooks
- Go to Settings > Integrations > QuickBooks.
- Click Connect to QuickBooks.
- Authorise Keito in Intuit.
- Return to Keito and review the connected company.
- Configure default income account, deposit account, Product/Service, Class, and tax code.
- Import or link customers if you already have QBO customers.
- Map employees before enabling time entry sync.
- Map tasks to QBO products and services.
The connection uses OAuth 2.0 with token refresh so you should not need to reconnect during normal use.
Configuration
| Setting | Purpose |
|---|---|
| Default income account | Account used for invoice revenue when no more specific mapping applies. |
| Deposit account | Account used for payment reconciliation. |
| Default Product/Service | Product or service shown on copied invoice lines when no task mapping applies. |
| Class | Optional QBO class used for reporting. |
| Default tax code | Tax code applied to taxed invoice lines. |
| Use sub-customers | Creates project-level QBO sub-customers under the parent customer. |
| Sync invoices | Allows Keito invoices to be copied to QBO. |
| Sync payments | Allows QBO payment state to update Keito invoices. |
| Sync time entries | Allows approved Keito time entries to be sent as QBO TimeActivity records. |
Default Product/Service
Select the QuickBooks Product/Service that should appear on copied invoice lines. This controls the value shown in the Product/Service column on the QuickBooks invoice.
If this is left unset, QuickBooks may apply its own fallback item. If your reporting depends on a specific service item, such as “Billable Hours - SE”, set it before copying invoices.
Class
If you use QuickBooks Classes for reporting, select the Class Keito should apply to copied invoice lines. Keito sends the Class on each invoice line, including when the Class column is hidden in the QuickBooks invoice form.
Default Tax Code
If Keito invoices include tax, select the QuickBooks tax code to apply to taxed invoice lines.
- For US companies using QuickBooks automated sales tax, use
TAX. - For non-US companies, VAT, GST, or classic tax setups, select the relevant QuickBooks tax code.
- Keito marks non-taxable invoice lines as
NONso QuickBooks does not infer tax from the customer or Product/Service defaults.
If an invoice includes tax and no default tax code is configured, Keito blocks the copy and asks an admin to set the QuickBooks tax code first.
Customer Import And Linking
If your QuickBooks company already has customers, import them before copying invoices. Keito can match QBO customers to existing Keito clients, or create Keito clients for customers that do not exist yet.
Linking customers prevents duplicate customer records in QuickBooks and ensures later invoices use the correct QBO customer ID.
Employee Mapping
Employee mapping is required before time entry sync can work. Keito can auto-match team members to QuickBooks employees by name, then you can manually correct any unmatched members.
Each synced time entry uses the mapped QBO employee so payroll, job costing, and time activity reports attribute the work to the correct person.
Sub-Customer Support
Optionally map Keito projects as QBO sub-customers under the parent client customer. This is useful for tracking revenue at the project level in QuickBooks.
Copying Invoices To QuickBooks
- Create and finalise an invoice in Keito.
- Open the invoice detail page.
- Choose Actions > Copy to QuickBooks.
- Keito creates the QBO invoice with client, line item, Product/Service, Class, tax code, due date, and mapping details.
- The invoice detail page shows the QuickBooks sync status.
If a Keito client has not been linked to a QBO customer, Keito creates or links the customer during invoice sync and stores the QBO customer ID for future invoices.
Sync Status
| Status | Meaning |
|---|---|
| Not synced | The invoice has not been copied to QuickBooks. |
| Pending | Keito is processing the sync. |
| Success | The invoice was created in QuickBooks. |
| Failed | QuickBooks rejected the sync or a required setting is missing. |
If a sync fails, review the error, correct the integration settings, and retry the copy.
Time Entry Sync
Approved Keito time entries can be pushed into QuickBooks as TimeActivity records. Before enabling this, confirm:
- Team members are mapped to QBO employees.
- Keito tasks are mapped to QBO products or services.
- Clients and projects are linked to QBO customers or sub-customers.
- The entries are approved and eligible for sync.
Payment Reconciliation
When payments are recorded or reconciled in QuickBooks against synced invoices, Keito can update the corresponding invoice status and payment details. This removes the manual step of checking the bank account, finding the invoice, and marking the Keito invoice paid separately.
Payments are routed to the configured deposit account. Partial payments are supported when QuickBooks records a partial payment against the synced invoice.
Disconnect QuickBooks
- Go to Settings > Integrations > QuickBooks.
- Click Disconnect QuickBooks.
- Confirm the disconnect.
Disconnecting revokes the active OAuth connection and stops new invoice, payment, customer, employee, item, and time activity syncs. Previously synced data remains in both systems. Keito keeps historical sync references for auditability, but it will not push or reconcile new QuickBooks changes until the integration is connected again.
Troubleshooting
Invoice sync fails
Common causes include:
- Missing income account - Ensure your default income account is configured.
- Missing Product/Service - Set the default Product/Service before copying invoices. The new default applies to future copies and failed sync retries.
- Missing tax code - Taxed invoices require a default QuickBooks tax code in the integration settings.
- Item mapping incomplete - Verify task-to-item mappings are set for all tasks used on the invoice.
- QuickBooks permissions - Ensure your QBO user has invoice and payment permissions.
- Rate limiting - QuickBooks has API rate limits. Retry after a brief wait.
Tax code errors
Use TAX for US automated sales tax, or select the relevant QuickBooks TaxCode for VAT, GST, or classic tax setups. Keito always sends NON on non-taxable lines to prevent QuickBooks from applying tax from item or customer defaults.
Time entry sync fails
Confirm the Keito member is mapped to a QBO employee and the task has a QBO product or service mapping.
Customer duplicates appear
Use the customer import and linking tools before copying more invoices. Keito stores QBO customer IDs after linking so future invoices reuse the same customer.
Existing invoice has already synced
Keito does not rewrite invoices that were copied successfully. Edit those invoices directly in QuickBooks, or update the integration defaults before retrying failed copies.
Payments are not updating Keito
Confirm the invoice was copied to QuickBooks and the payment is recorded against that QBO invoice. Then retry the payment sync or refresh the integration status.