This guide shows you how to connect your Programa account to Xero so your invoicing, accounting and tax rates stay automatically synced.
Connecting your Xero account
Navigate to Studio Settings > Integrations > Xero
Click Connect and enter your Xero login details
Choose your organization from the dropdown
Your accounts are now connected! Programa will automatically pull your tax rates from Xero - they'll appear in your Tax Settings straight away.
Xero Tax rates
When you connect Xero, your tax rates are automatically synced from Xero into Programa and displayed in Settings > Tax with a Xero icon.
Synced Xero tax rates are read-only - the name, rate, and description cannot be edited in Programa, as these are managed in Xero. You can:
To set a Xero tax rate as your default:
Navigate to Settings > Tax
Click the three-dot menu next to the Xero rate you want to use as default
Select Set as default
To archive a Xero tax rate:
Navigate to Settings > Tax
Click the three-dot menu next to the rate
Select Archive
The rate will move to the Archived tab and will no longer be available for new use. It will remain on any projects it was previously applied to.
💡 If the auto-sync doesn't complete when you first connect, you can manually resync from the Xero settings page at any time.
Choosing accounts for payments and write-offs
Two accounts need to be set for the full sync to work. You'll find both under Settings > Integrations > Xero > Settings. The accounts come from Xero — you just pick them here in Programa.
Bank account (needed for payments) — under Payment deposits, pick the bank account your Stripe payments go to in Xero.
Bad debt account (needed for write-offs) — under Bad debt write-off account, pick the expense account you write bad debts off to.
What happens if you skip these:
No bank account → payments won't sync. Programa has nowhere to record the payment. The invoice shows a sync warning with a Retry sync button that reads: "Your Stripe payment couldn't be recorded in Xero because no bank account is configured. Select a default bank account in your Xero settings." Pick the account, then hit Retry sync.
No bad debt account → you can't mark anything as uncollectible. The option is greyed out, with a tip pointing you back to this page.
Note: Programa remembers the account's ID, not its name — so renaming an account in Xero is fine. Deleting one breaks the link, and write-offs will fail until you pick the account again.
Managing your Xero connection
To access your Xero settings, go to Settings > Integrations and click the Settings button on the Xero tile.
To resync your tax rates:
Navigate to Settings > Integrations > Xero > Settings
Click Resync Tax Rates
Programa will re-pull the latest tax rates from your Xero account. The last synced timestamp will update once complete.
To disconnect from Xero:
Navigate to Settings > Integrations > Xero > Settings
Click Disconnect
Confirm in the modal that appears
Your Xero connection will be removed. Existing Xero tax rates will remain in Programa but will no longer update.
When creating an invoice in Programa:
Add your line items as usual
For each line item, select the corresponding Xero account from the dropdown
Only your Revenue accounts will appear in this list
How synchronization works
Programa syncs with Xero automatically in the background:
Draft invoices: When you create an invoice in Programa, it's automatically saved as a draft in Xero. Xero drafts don't affect your ledger.
Issued invoices: When you send the invoice through Programa, the Xero draft is authorised and posts to your ledger.
Payments: Payments recorded in Xero sync back to Programa automatically — the invoice is marked Paid or Partially paid depending on the amount received. Payments collected through Programa Pay or recorded in Programa also sync to Xero, including partial payments.
Voids: Voiding an invoice in Xero marks it Void in Programa, and vice versa.
Write-offs: Mark an invoice as uncollectible in Programa and Xero adds a credit note to your bad debt account and applies it to the invoice — clearing the balance rather than voiding it.
Note: Draft invoices created in Programa before connecting Xero won't appear in Xero automatically. Making a small edit to the draft — a line item, due date, memo, or footer — will trigger the sync.
Syncing from Programa to Xero takes around 1–2 minutes; changes made in Xero usually appear in Programa in under a minute. Payment reconciliation continues to work with Xero's standard bank feed reconciliation workflow. For the full picture of what moves in each direction, see How Programa syncs with Xero.
Need more help with the Xero integration? Contact our support team via live chat for personalized assistance.