The Xero integration keeps your books up to date without any double entry. This guide covers what moves from Programa to Xero, what comes back, and what stays in Programa only.
Note: The sync goes both ways. Invoices flow from Programa into Xero, and anything you record in Xero — 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: Map two accounts first. Payments need a bank account, and write-offs need a bad debt account. You set both under Settings > Integrations > Xero. See How to integrate Programa with Xero for the steps.
What syncs to Xero
Invoices
Draft invoices: As soon as you create an invoice in Programa, it shows up as a draft in Xero. Drafts don't touch your accounts.
Issued invoices: When you send the invoice from Programa, Xero marks it as authorised and records it in your accounts (accounts receivable, sales, and tax).
Line items: The description, quantity, unit price, and the Xero account code you pick for each line.
Discounts: Any discount carries across — a percentage or a set dollar amount, on one line or the whole invoice.
Tax rates: Each line uses the matching tax rate synced from Xero.
Note: If you created a draft in Programa before connecting Xero, it won't show up in Xero on its own. Just make a small edit — change a line, the due date, a memo, or the footer — and it'll sync.
Payments
Payments you take through Programa Pay, or enter by hand in Programa, push to Xero automatically — including part-payments. If a client pays in installments, each one syncs across and lowers the balance owing.
Xero doesn't have a "partially paid" status. So a part-payment sits on the invoice while Xero keeps it as Authorised, until it's fully paid. Programa still shows it as Partially paid.
Payments only sync if you've set a default bank account in your Xero settings — see the note at the top of this guide.
Voids and deletions
Void an invoice in Programa and it's voided in Xero too, which undoes the accounting entries. (If the Xero invoice is still a draft, it's deleted instead.)
Delete a draft in Programa and the matching Xero draft is deleted. Drafts never reach your accounts, so nothing there is affected.
Write-offs (mark as uncollectible)
When you mark an invoice as uncollectible in Programa, Xero creates a credit note 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.
You need a bad debt account set in your Xero settings first, or Mark as uncollectible won't be available. If you set one but later delete or rename it in Xero, the write-off won't go through until you pick it again. See How to integrate Programa with Xero.
What syncs back from Xero
Do any of these in Xero and Programa updates on its own:
Full payment — once the invoice is paid off in Xero, it's marked Paid in Programa.
Part-payment — when a payment covers part of the invoice, it becomes Partially paid in Programa (even though Xero still says Authorised).
Voids — void an invoice in Xero and it's marked Void in Programa, whatever it was before.
Write-offs — writing an invoice off in Xero shows up as Uncollectible in Programa.
Memos — memo and note changes on drafts come back to Programa. You can't edit an issued invoice on either side.
What doesn't sync
Invoice edits made in Xero — if you change line items, quantities, prices, or dates in Xero, those changes don't come back. Make edits in Programa and they'll push to Xero.
Deletions in Xero — deleting a draft in Xero doesn't delete it in Programa.
Invoices raised in Xero — only invoices created in Programa stay in sync. Anything you raise straight in Xero won't come into Programa.
Overdue status — each system works this out from the due date, so there's nothing to sync.
Bank reconciliation — matching payments to your bank feed still happens in Xero, the usual way.
Renamed accounts are fine; deleted ones aren't — renaming a mapped account in Xero is no problem, because Programa remembers the account's ID, not its name. Deleting one is the issue: the link breaks and write-offs fail until you pick the account again.
Programa-only features — project details, pinboards, and tasks stay in Programa.
How long does syncing take?
Programa → Xero: about 1–2 minutes
Xero → Programa: usually under a minute
If something hasn't synced after a few minutes, re-sync the invoice from its page in Programa, or contact our support team.
Need more help with the Xero integration? Contact our support team via live chat.