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 Gail Esterhuyse

The QuickBooks integration keeps your books up to date without any double entry. This guide covers what syncs, how it works, and what stays in Programa only.

Note: The sync goes both ways. Invoices flow from Programa into QuickBooks, and anything you record in QuickBooks — payments, voids, write-offs, and memo changes — flows back to Programa on its own. Programa is always the source of truth for what's on the invoice.

Before you start: Write-offs need a bad debt account, and you can choose which account payments land in. You set both under Settings > Integrations > QuickBooks. See How to integrate Programa with QuickBooks for the steps.


When do invoices sync?

By default, Programa only sends an invoice to QuickBooks once it's Issued or Sent. Invoices still in Draft don't sync.

There's a reason for this. QuickBooks Online has no draft invoices — anything you send to QuickBooks counts as a real invoice and goes straight into your books. Syncing drafts would create accounting entries before the invoice is ready to go to a client.

Invoice status in Programa

Syncs to QuickBooks (default)

Draft

No

Issued

Yes

Sent

Yes

Want to sync draft invoices?


You can change when invoices sync under Settings > Integrations > QuickBooks Settings > Invoice syncing to QuickBooks > Sync invoices at. You get two choices: Invoice issued (recommended) and Draft. If you pick Draft, Programa asks you to confirm. Please read the warning below first, and check with your bookkeeper if you're not sure.

⚠️ Important: If you switch Sync invoices at to Draft, every draft you already have in Programa syncs to QuickBooks at once and goes into your books as revenue. We suggest keeping the default Invoice issued setting unless your bookkeeper says otherwise.


What gets synced

Invoices

Once an invoice is Issued or Sent, these details go to QuickBooks:

  • Invoice number

  • Transaction date (when the invoice was created)

  • Due date (set in Programa)

  • The linked customer in QuickBooks

  • Tax settings (based on your project setup)

  • Project address — becomes the shipping address on the QuickBooks invoice

How tax shows up depends on your region:

  • US: total tax, with one tax code per project

  • Outside the US: total tax, broken down by rate

Payments

  • Payments you take through Programa Pay, or enter by hand in Programa, push to QuickBooks automatically — including part-payments. If a client pays in installments, each one syncs across and lowers the balance owing.

  • QuickBooks updates the status as payments come in: Partially paid for a part-payment, and Paid once it's fully covered. QuickBooks has its own partially-paid status, so it matches Programa exactly.

Line items

Each line on the invoice includes:

  • Description (up to 100 characters)

  • Quantity and unit price (before tax)

  • Total (before tax)

  • Discounts — a percentage or a set dollar amount, on one line or the whole invoice

  • The standard Programa category in QuickBooks (based on the item type — see Products & services below)

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

Note: For tax-inclusive invoices, the tax is stripped out before syncing so the base amount shows.

Client details

If the customer isn't already in QuickBooks, Programa creates them from your Address Book:

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

  • Contact name, email, and phone number

Programa checks for an existing customer by company name before creating a new one.

Products & services

Instead of creating a separate named product in QuickBooks for every line, Programa sorts each line into one of four standard categories, based on its type:

  • Programa Sales of Product Income — product lines from schedules

  • Programa Income from services — service and time-entry lines (time entries go here automatically)

  • Programa Generic Income — custom lines

  • Programa Discount Income — discounts on invoices

Each category uses the income accounts set in your QuickBooks settings by default. To use a different account for one line, change it right there on the line when you build the invoice in Programa.


Write-offs (mark as uncollectible)

When you mark an invoice as uncollectible in Programa, QuickBooks creates a credit memo for the amount still owing, puts it against your bad debt account, and applies it to the invoice. That clears the balance instead of voiding the invoice.

  • In QuickBooks, the credit memo uses a service item called Programa Bad Debt. Programa creates it automatically the first time it's needed.

  • You need a bad debt account set in your QuickBooks settings first, or Mark as uncollectible won't be available. If you set one but later delete or rename it in QuickBooks, the write-off won't go through until you pick it again. See How to integrate Programa with QuickBooks.


What syncs back from QuickBooks

Do any of these in QuickBooks and Programa updates on its own:

  • Full payment — once the invoice is paid off in QuickBooks, it's marked Paid in Programa.

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

  • Voids — void an invoice in QuickBooks and it's marked Void in Programa, whatever it was before.

  • Write-offs — writing an invoice off in QuickBooks shows up as Uncollectible in Programa.

  • Memos — memo changes on drafts come back to Programa. This only works when draft syncing is on — you can't edit a sent invoice on either side.


What doesn't sync

Some things stay in Programa only:

  • Payment terms (only the due date syncs). Payments and payment statuses do sync both ways.

  • Invoice edits made in QuickBooks — if you change line items, quantities, prices, or dates in QuickBooks, those changes don't come back. Make edits in Programa and they'll push to QuickBooks.

  • Invoices raised in QuickBooks — only invoices created in Programa stay in sync. Anything you raise straight in QuickBooks won't come into Programa.

  • Custom fields and attachments

  • Bank deposits and reconciliation — matching payments to your bank feed still happens in QuickBooks; Programa doesn't track deposit status.

  • Renamed accounts are fine; deleted ones aren't — renaming a mapped account in QuickBooks is no problem, because Programa remembers the account's ID, not its name. Deleting one breaks the link and write-offs fail until you pick the account again.


Limits at this stage

  • QuickBooks Online only — every plan works, including Simple Start. The self-employed / Sole Trader version can't connect, because it has no API.

  • Invoices only — purchase orders don't sync yet.

  • Who can invoice — only Admins and Owners can create, edit, and send invoices.


How long does syncing take?

  • Programa → QuickBooks: about 1–2 minutes

  • QuickBooks → Programa: usually under a minute

If something hasn't synced after a few minutes, re-sync the invoice from its page in Programa. If a new QuickBooks income account isn't showing up in Programa, disconnect and reconnect QuickBooks — see How to integrate Programa with QuickBooks. Still stuck? Contact our support team.


Key takeaways

  • The sync goes both ways: invoices push to QuickBooks, and payments, voids, write-offs, and memos come back to Programa.

  • Invoices sync once they're issued — QuickBooks has no draft status, so anything that syncs goes straight into your books. You can turn on draft syncing under Sync invoices at (but read the warning first).

  • A write-off isn't a void — it adds a credit memo to your bad debt account to clear the balance, so you need a bad debt account set up first.

  • What's on the invoice (line items, quantities, dates), plus custom fields and attachments, is managed in Programa, which is always the source of truth.

  • Invoices raised straight in QuickBooks don't come into Programa.


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

Did this answer your question?