Skip to main content

How to integrate Programa with Xero

Connect your Programa account to Xero to sync your financial data with your accounting software.

Written by Gail Esterhuyse

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

  1. Navigate to Studio Settings > Integrations > Xero

  2. Click Connect and enter your Xero login details

  3. 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:

    1. Navigate to Settings > Tax

    2. Click the three-dot menu next to the Xero rate you want to use as default

    3. Select Set as default

    To archive a Xero tax rate:

    1. Navigate to Settings > Tax

    2. Click the three-dot menu next to the rate

    3. 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:

  1. Navigate to Settings > Integrations > Xero > Settings

  2. 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:

  1. Navigate to Settings > Integrations > Xero > Settings

  2. Click Disconnect

  3. 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:

  1. Add your line items as usual

  2. For each line item, select the corresponding Xero account from the dropdown

  3. Only your Revenue accounts will appear in this list


How synchronization works

Programa syncs with Xero automatically in the background:

  1. 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.

  2. Issued invoices: When you send the invoice through Programa, the Xero draft is authorised and posts to your ledger.

  3. 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.

  4. Voids: Voiding an invoice in Xero marks it Void in Programa, and vice versa.

  5. 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.

Did this answer your question?