Skip to main content

How Programa syncs with QuickBooks

Understand what syncs, how it works, and what to expect when using the QuickBooks integration.

Written by Mariana Moraes

Programa's QuickBooks integration keeps your accounting records aligned with your billing activity without manual data entry. This guide explains what syncs, how it works, and what stays in Programa only.

Note: Syncing is two-way. Invoices push from Programa to QuickBooks, and payments, voids, and memo updates recorded in QuickBooks sync back to Programa automatically. Programa remains the source of truth for invoice content.


When do Invoices Sync?

Programa only syncs invoices to QuickBooks once they reach Issued or Sent status. Invoices in Draft status are not synced by default.

This is by design. QuickBooks Online does not have a concept of draft invoices — any invoice synced to QuickBooks is treated as a live document and posts directly to your ledger. Syncing drafts would create unintended accounting entries before an invoice is ready to be issued to a client.

Invoice status in Programa

Syncs to QuickBooks (default)

Draft

No

Issued

Yes

Sent

Yes

Want to sync draft invoices?


This can be enabled in your QuickBooks integration settings via Settings > Integrations > QuickBooks Settings > Sync draft invoices. Please read the warnings carefully before enabling this option, and consult your bookkeeper if you're unsure.

⚠️ Important: If you enable draft syncing, all existing draft invoices in your Programa account will also sync to QuickBooks and post to your ledger as revenue. We recommend keeping the default Invoice Issued setting unless your bookkeeper advises otherwise.


What Data Gets Synced

Invoices

When an invoice in Programa reaches Issued or Sent status, the following details are synced to QuickBooks:

  • Invoice number

  • Transaction date (when the invoice was created)

  • Due date (set in Programa)

  • Linked customer in QuickBooks

  • Tax settings (based on your project setup)

  • Project address- becomes the shipping address on the invoice in quickbooks

Tax details vary by region:

  • US: Total tax + a single tax code per project

  • Outside US: Total tax + detailed breakdown by rate

Payments

  • Payments collected through Programa Pay, or recorded manually in Programa, push to QuickBooks automatically — including partial payments.

  • QuickBooks updates the invoice status automatically as payments arrive: Open / Partially paid for partial payments, and Paid when the balance reaches zero.

Line Items

Each item on the invoice includes:

  • Description (up to 100 characters)

  • Quantity and unit price (excluding tax)

  • Total amount (excluding tax)

  • Standard Programa category in QuickBooks (based on item type - see Products & Services below)

  • Tax code (e.g., 'TAX', 'NON', or country-specific codes)

Note: For tax-inclusive invoices, tax is removed before syncing to show the base amount.

Client Details

If the customer doesn't exist in QuickBooks, Programa creates them using information from your Address Book:

  • Company name (with "Customer - " prefix if the company is also a vendor)

  • Contact name, email, and phone number

Programa checks for existing customers by company name before creating new ones.

Products & Services

Rather than creating an individual named product in QuickBooks for each line item, Programa maps each item to one of four standard categories based on its type:

  • Programa Sales of Product Income — product line items from schedules

  • Programa Income from services — service and time entry line items (time entries are automatically categorised here)

  • Programa Generic Income — custom line items

  • Programa Discount Income — discounts applied to invoices

The income accounts configured in your QuickBooks settings are assigned to each category by default. To use a different account for a specific line item, you can override it directly on that line when creating your invoice in Programa.


What Syncs Back from QuickBooks

When any of the following happen in QuickBooks, Programa updates automatically:

  • Full payment — when a payment settles the invoice balance in QuickBooks, the invoice is marked Paid in Programa.

  • Partial payment — when a payment covers part of the invoice, it becomes Partially paid in Programa.

  • Voids — when an invoice is voided in QuickBooks, it's marked Cancelled in Programa, whatever its previous status.

  • Memos — memo updates on draft invoices sync back to Programa. This only applies when draft syncing is enabled — sent invoices can't be edited in either platform.


What Doesn't Sync

Some information stays in Programa only:

  • Payment terms (only the due date syncs). Payments and payment statuses now sync in both directions.

  • Invoice content changes made in QuickBooks — line item descriptions, quantities, prices, dates, and product information are managed in Programa and won't sync back. Make content changes in Programa and they'll push to QuickBooks.

  • Invoices created directly in QuickBooks — these are not imported into Programa. Only invoices created in Programa are kept in sync.

  • Custom fields and attachments

  • Bank deposits and reconciliation — matching payments against your bank feed continues to happen in QuickBooks; deposit status isn't tracked in Programa.


Key Takeaways

  • The sync is two-way: invoices push to QuickBooks; payment statuses, voids, and memos sync back to Programa.

  • Invoices sync at Invoice Issued by default — QuickBooks has no draft status, so synced invoices post to your ledger immediately. Draft syncing can be enabled in settings (with a retroactive sync warning).

  • Invoice content (line items, quantities, dates, product info), custom fields, and attachments are managed in Programa, which remains the source of truth.

  • Invoices created directly in QuickBooks don't import into Programa.

  • Syncing happens automatically in the background.


Need more help with the QuickBooks integration? Contact our support team via live chat for personalized assistance.

Did this answer your question?