Add-on: Xero
Prerequisites
- This Add-on is only available to self-storage operators
- You must have a Xero business account
- Storeganise must enable the Add-on for your account
Key integration details
- One-way sync: Data flows from Storeganise to Xero only
- Scope:
- Invoices (sent, paid, pending, failed, credit notes)
- Payments (manual and automatic)
- Invoice-related contacts
- Not synced: draft invoices, delayed invoices, deleted invoices, and $0 invoices with no line items. If Skip zero amount invoices is on, all $0 invoices are skipped too.
- Sync direction: one-way, from Storeganise to Xero only.
- Sync timing: invoices sync once a day at 3:00 AM, in your business time zone (set in Main settings → Advanced). Invoices created or updated during the day appear in Xero after the next daily sync. You can also start a sync yourself with the manual resync option.
- Why batch syncing: a daily batch avoids Xero rate limits during busy periods, such as monthly recurring billing.
- Account link: all your Storeganise sites connect to the same Xero organization. You can't connect different sites to different Xero organizations.
How syncing works
The Xero Add-on syncs your data in a daily batch:- Sync schedule: every day at 3:00 AM in your business time zone.
- What syncs: invoices in Sent, Pending, Paid or Failed status that were created or updated since the previous daily sync, plus the payments on them. Each sync looks back an extra 15 minutes so that nothing is missed between runs.
- Automatic retries:if an invoice fails to sync, the Add-on tries it again on later syncs.
- If it still fails after several attempts, the Add-on stops retrying and updates the error task on the invoice to Xero: Sync failed, action needed.
- See Troubleshooting common errors.
- First sync: after setup, the first sync runs at the next 3:00 AM batch (up to 24 hours later). To sync sooner, use the manual resync option.
- Manual resync:turn onResync invoices to Xero(
resync) in the Add-on settings and clickUpdate.- The Add-on syncs invoices updated in roughly the last 24 hours, retries invoices that previously failed, and then switches the field back off.
- It doesn't resync your full invoice history.
Important: neither the daily sync nor a manual resync goes through your full invoice history. To sync an older invoice, see Syncing historical data.
Syncing historical data
The Xero Add-on only syncs invoices created or updated since the previous daily sync. To sync an older invoice:Option 1: Update invoices in Storeganise- Change the invoice status to "Draft"
- Change it back to "Sent"
- This updates the invoice timestamp and includes it in the next sync window
Before you start: prepare Xero and Storeganise
The setup wizard checks that every account code and manual payment method in Storeganise has a matching account in Xero. It only writes to the Add-on settings, and you can't finish step 1 while any code is missing or doesn't match. Complete these steps first.1. Match your account codes
- In Storeganise, go to Main settings → Accounting → Accounting codes and tax rates and note every account code.
- In Xero, go to Accounting → Chart of accounts.
- For each Storeganise code, create or edit a Xero account with exactly the same Code. Codes are case-sensitive:
rentandRentdon't match. - Set the Tax rate on each Xero account to match the tax rate for that code in Storeganise.


Important: Tick Enable payments to this account on each account.


Match your manual payment methods
Every manual payment method in Storeganise (for example cash, cheque or bank transfer) needs a Xero account with the same code, so payments are recorded against the right account.- In Storeganise, go to Main settings → Accounting → Manual payment methods and note each code.
- In Xero, create or edit an account with the same code and tick Enable payments to this account.
For bank transfers, use your bank account in Xero
- In Xero, go to Accounting → Bank accounts → Add bank account and follow the prompts.
- Go to Accounting → Chart of accounts, open the new bank account, and enter a Code, for example
hsbc. - In Storeganise, create a manual payment method with the same code,
hsbc.
Set up your automatic payment account
If customers pay automatically through Stripe or another payment gateway (such as Cybersource), choose the Xero account those payments go to. You'll select it as the Default payment account in step 2 of the wizard.- In Xero, add Stripe as its own bank account with a direct feed. See Xero's guide to Stripe direct feeds. Don't rely on the Stripe payouts that land in your main bank account: those are lump sums of many payments, so they can't match individual invoices.
- In Xero, go to Accounting → Chart of accounts, find the Stripe account and check its Code column, for example
stripeorstripe_gbp. If it's blank, add a code. - Use that code as the Default account for payments in the Add-on (step 2 of the setup wizard, or the Add-on settings later). Enter the code, not the account name. A name such as "Stripe EUR-acct_18W95..." won't match.
Note: changing this setting only affects payments synced afterwards. Payments that synced before the change stay against the old account, so reconcile those the way you did before.
Match your tax settings
Tax must be set up the same way in both systems:In Storeganise, go to Main settings → Accounting → Self-storage tax settings and check whether tax is Inclusive (included in the line price) or Exclusive (added on top).
- In Storeganise, check the tax rate on each account code (Accounting codes and tax rates) and each system charge (System charges).
- In Xero, go to Accounting → Advanced → Tax rates and make sure the same rates exist.
- In Xero, go to Settings → Invoice settings, click Options → Edit on your invoice theme, and set Show taxes as to the same option as Storeganise.

Viewing site tracking in Xero
Site tracking tags each invoice line in Xero with the site it belongs to, using a Xero tracking category. This lets you run Xero reports by site when all your sites share one Xero organization.
Successful invoice sync example

- Customer name, followed by their Storeganise customer ID in brackets
- Invoice date and due date, both set to the invoice date in Storeganise
- Invoice number, which matches the invoice number in Storeganise (in capitals)
- The account code for each line item
- The tax rate for each line item
- The site tracking option for each line item, if you use site tracking Whether taxes in Xero are inclusive or exclusive
- Link to view the payment
Viewing payments
Payments on invoices can be viewed in the payment view, not in the invoice view. Click the payment link in the invoice to see its details.



Understanding the reconciliation process
The Add-on sends Xero the accounting side of each transaction: the invoice and the payment against it. Your bank feeds send Xero the money side: what reached your bank or payment gateway. Reconciling in Xero means matching the two.How payments reach Xero
- Each payment on a Storeganise invoice is created in Xero as a separate payment against that invoice, including partial payments. Each payment is sent once, even when the invoice syncs again later.
- The payment's Reference in Xero contains the Storeganise invoice ID and payment ID, so you can trace it back.
- The Xero account a payment goes to is decided like this:
- A Xero account whose code (or name) matches the Storeganise payment method code, for example
cashorhsbc. - Otherwise, your Default payment account. Payments through Stripe and other gateways usually land here.
- A Xero account whose code (or name) matches the Storeganise payment method code, for example
Matching bank feed lines
When a customer pays through Stripe (or another gateway), Storeganise marks the invoice as paid and the Add-on records the payment in Xero. If your Stripe feed is connected to Xero, the same money also appears as a bank feed line.These are two records of the same transaction, not two payments:- The payment from Storeganise is an accounting entry. It shows which invoice was paid.
- The bank feed line is a bank transaction. It shows the money arriving.
- Stripe fees: the Stripe feed brings in fees as separate lines. Code them to your bank fees account. A Xero bank rule can do this for you.
- Payouts: when Stripe pays out to your main bank account, reconcile it as a transfer between the Stripe account and your bank account, not as income.
- Payments taken outside Storeganise: a payment taken directly in Stripe (not through a Storeganise invoice, saved card or Customer Portal payment link) never reaches Storeganise, so it isn't synced to Xero and won't match. Ask those customers to add their card in the Customer Portal so future payments go through Storeganise.

Credit notes and refunds
Storeganise invoices with a negative total sync to Xero as credit notes.- Refunds: a refund payment on a credit note is recorded in Xero as money paid out against that credit note, using the same account rules as other payments.
- Credit notes linked to an invoice: when a credit note in Storeganise is linked to its original invoice, the Add-on applies (allocates) the credit note to that invoice in Xero, so the invoice balance goes down without a separate payment. If the original invoice isn't in Xero yet, the Add-on tries again on the next sync.
- Offset or write-off credit notes: see Credit notes and refunds for how offset and refund credit notes work in Storeganise. For Stripe refunds, see Process refunds for credit notes via Stripe.
Avoid paying invoices twice
Don't mark Add-on invoices as paid directly in Xero. If an invoice is already paid in Xero, the payment from Storeganise is skipped and the two systems no longer agree. Record payments in Storeganise and let the Add-on sync them.Error tasks on invoices
When an invoice or its payment fails to sync, the Add-on adds a task to that invoice (Xero: Errors in sync or Xero: Errors in Payment sync) with the error message from Xero. The Add-on retries the invoice on later syncs. When the invoice syncs successfully, the task closes on its own.If an invoice keeps failing after several attempts, the task changes to Xero: Sync failed, action needed and the Add-on stops retrying it. Fix the cause in Xero or in your Add-on settings (usually an account code, tax rate or tracking option), then turn on Resync invoices to Xero to try again. Editing the invoice in Storeganise also puts it back in the queue.Paused Add-on
The Add-on pauses itself to stop the same error hitting your whole invoice list. When this happens, a Xero Sync Paused task appears on the Add-on. There are two cases:- Paused during a sync: 10 or more invoices failed in a single sync run. The task lists every invoice that failed in that run, with a link to each one. Open each invoice to read its error task.
- Paused before a sync started: 10 or more invoice error tasks were already open when the daily sync was due. The task shows how many are open but doesn't list them. Find them in your task list, filtered to Xero error tasks.

- Fix the cause of the errors. Most come from account codes, tax rates or payment accounts that don't match between Storeganise and Xero.
- Go to Main settings → Add-ons → Xero and enable the Add-on again. You don't need to repeat the setup wizard. Your settings are kept.
- Turn on Resync invoices to Xero to sync the invoices that failed. A manual resync runs even if 10 or more error tasks are still open. Tasks close on their own as their invoices sync.
Xero connection about to expire
If the Add-on hasn't been able to refresh its Xero connection for 53 days, it adds the task Xero: Refresh token nearing expiry. Reconnect Xero within 7 days to avoid losing the connection.Invalid configuration
If the Category option field doesn't contain valid JSON, the Add-on adds the task Xero: Invalid addon configuration and stops syncing until you fix the field. See Site tracking.
Map Xero payments to Storeganise invoices using Zapier
Automate adding payments to Storeganise invoices whenever they're received in Xero, using Zapier.This Zap is available as a template. Start automating in Storeganise here.
- Select Xero as the trigger app.
- Set the trigger event as New Payment.
- Connect your Xero account.
- Choose Formatter by Zapier to format dates correctly.
- Select Format under Transform.
- Input the date from the Xero payment and format it to
YYYY-MM-DD. - Set Timezone fields appropriately (typically UTC).
- Select Storeganise app.
- Use action Find invoice.
- Match the Invoice ID from the Xero payment data.
- Set the option If no search results are found to your preference (typically "False").
- Add a Filter by Zapier step.
- Set filter conditions to proceed only if the invoice state is not already "paid". (This prevents double-payment issues.)
- Choose Storeganise again.
- Action: Add a Payment to an Invoice.
- Populate fields as follows:
- Invoice ID: use Invoice ID from earlier Xero lookup.
- Method: Provide the payment method details from Xero (account code and payment ID)
- Date: Use the formatted date from Step 2.
- Amount: Map the payment amount from Xero payment details.

Troubleshooting common errors
My invoice hasn't synced to Xero yet
Invoices sync once a day at 3:00 AM in your business time zone. If you created or updated the invoice today, it syncs in the next daily batch.To sync now:- Go to Main settings → Add-ons → Xero.
- Turn on Resync invoices to Xero.
- Click Update.
- Wait a few minutes. The field switches back off when the resync is done.
Invoices not syncing
- Only invoices in Sent, Pending, Paid or Failed status sync. Draft invoices never sync.
- $0 invoices with no line items are never sent to Xero. This is expected and doesn't create an error task. If Skip zero amount invoices is on, all $0 invoices are skipped.
- Line items whose account code has no match in Xero go to your Default account code.
Understanding resync behavior
- How the Add-on decides what to sync:The Add-on looks at invoices in Storeganise that were created or updated since the last sync, plus invoices that failed beforeIt does NOT check what exists in Xero - it only looks at Storeganise invoice timestampsIf an invoice was updated in Storeganise within the sync window, it will attempt to sync to Xero
- If you deleted invoices from Xero:Invoices deleted from Xero only re-sync if they've been updated in Storeganise since the previous daily syncTo force a resync of deleted invoices, you must update them in Storeganise (e.g., change them to draft, then back to sent)The Add-on will skip creating duplicates if the invoice already exists in Xero
- Manual resync limitations:Manual resync covers invoices updated in roughly the last 24 hours, plus invoices that failed beforeIt does NOT resync your entire invoice history
Tax errors:
- See Match your tax settings above
Default tax typeshould be left blank during setup.- Verify tax settings (inclusive/exclusive) are consistent across Storeganise and Xero.
- Ensure all account codes and tax rates in Xero align with Storeganise.
- If troubleshooting, set
Default tax typetoOUTPUTin the Add-on settings and re-test. - Avoid using
INPUT, which causes sync failures for sent and paid invoices.
Account code or tax code errors
- Ensure codes exactly match between Storeganise and Xero (case-sensitive).
- Check that all accounts in Xero have "Enable payments to this account" selected.
Payments going to the wrong account in Xero
- Each manual payment method in Storeganise needs a Xero account with exactly the same code. The setup wizard checks this, but if you add a payment method later, create the matching account in Xero too.
- Payments with no matching account, including automatic card payments unless they match an account by name, are recorded against your Default payment account.
Stripe payments don't match in Xero
If you have to find and match each Stripe payment by hand:- Check you're reconciling in the Stripe bank account in Xero, not the main bank account where Stripe payouts arrive.
- Check Default account for payments in the Add-on settings is the Code of your Stripe account in Xero (from Chart of accounts), not its name.
- Payments synced before you changed the setting stay against the old account. Matching should work for payments synced afterwards.
- Payments taken directly in Stripe, outside Storeganise, can't be matched. See Matching bank feed lines.
Limitations
- Once an invoice is in Xero, later edits in Storeganise (line items, amounts, custom fields or changing it back to Draft) don't update the Xero invoice. New payments on the invoice still sync.
- Draft invoices never sync. Invoices created before the Add-on was enabled only sync if they're updated afterwards.
- $0 invoices with no line items are never sent to Xero.
- A payment that would take a Xero invoice above its amount due (for example, because the invoice was already marked paid in Xero) is skipped without an error task.
- All sites connect to one Xero organization.
- The setup wizard only maps codes that already match. It doesn't create or rename accounts in Xero or Storeganise.
FAQs
1. What is the Storeganise Xero Add-on and who can use it?
The Storeganise Xero Add-on is a tool that allows self-storage operators using Storeganise to seamlessly integrate their financial data with their Xero business accounting software. The Add-on is available to self-storage operators. To have it installed, contact support@storeganise.com.
2. How does the data synchronization between Storeganise and Xero work?
The integration features a one-way synchronization. This means that payments, invoices (excluding draft invoices and those created before the Add-on was enabled), credit notes (as negative invoices), and customer contacts related to invoices are automatically synced from your Storeganise account to your Xero account. Importantly, data does not sync from Xero back to Storeganise. Invoices and payments sync automatically once a day in a batch, and you can start a manual resync from the Add-on settings at any time.
3. What key configurations are necessary to ensure the Storeganise Xero Add-on works correctly?
Several key configurations are crucial for accurate data synchronization. Firstly, you must map your Storeganise account codes and tax rates to their exact equivalents in Xero, paying close attention to case sensitivity. For manual payment methods and account codes added in Xero, you must also ensure that the "Enable payments to this account" option is checked. Additionally, the tax settings in both Storeganise (inclusive or exclusive) must be identical to avoid calculation errors. The setup wizard checks that your account codes and payment methods match and asks you for a default account code and a default payment account. Any line item or payment without a matching code goes to these defaults.
4. How are payments handled and reconciled between Storeganise and Xero, especially with payment gateways like Stripe?
Payments recorded in Storeganise, whether manual or automatic (e.g., via Stripe), are synchronized to the payment view in Xero, not directly within the invoice view. A payment link is available within the Xero invoice to view payment details. When using payment gateways like Stripe, transactions will appear twice in Xero: once as an accounting entry from Storeganise linked to the invoice, and again through the Stripe bank feed as a bank transaction. Xero's reconciliation process is designed to match these two records, ensuring that a single financial transaction is not counted as two separate entries in your reports.
5. Can I track financial data by individual storage site using this integration?
Yes, the Storeganise Xero Add-on offers an optional site tracking feature. To utilize this, you need to first set up tracking categories in Xero, defining a category name (e.g., "Site") and adding each of your storage sites as category options (e.g., "Broadway storage"). You then enter the tracking category name in step 3 of the setup wizard, which builds the site mapping for you. The category options in Xero must match your Storeganise site names exactly (case-sensitive). This setup allows invoices in Xero to be tagged with the corresponding site, enabling detailed financial reporting per location.
6. What are some common issues I might encounter, and how can I troubleshoot them?
Common issues often arise from incorrect mapping of account codes, tax rates, or payment methods. Ensure that all codes in Storeganise and Xero match precisely, including capitalization, and that all relevant accounts in Xero have "Enable payments to this account" selected. Invoices will only sync if they are non-draft and created after the Add-on is enabled. Tax errors can occur if the inclusive/exclusive settings are inconsistent between the two platforms or if tax rates are not correctly mapped. The Add-on will automatically pause after 10 errors, requiring you to resolve the issues and reactivate it. Error details are typically available on the failed invoice in Storeganise.
7. Are there any limitations to the Storeganise Xero integration that I should be aware of?
Yes, there are several limitations. The synchronization is strictly one-way from Storeganise to Xero. Changes made to invoices in Storeganise that have already been synced as "paid" in Xero (such as reverting to draft) will not be reflected in Xero. Draft invoices and invoices created before the Add-on was activated will not be synchronized. Furthermore, once an invoice has been created and synced, any subsequent edits to invoice lines or custom fields in Storeganise will not update the corresponding invoice in Xero; only payment updates will sync after the initial invoice creation.
8. Can I automate the process of applying Xero payments to Storeganise invoices?
Yes, you can automate this process using Zapier. By setting up a Zap, you can trigger an action in Storeganise to add a payment to a specific invoice whenever a new payment is recorded in Xero. This involves steps such as selecting Xero as the trigger (New Payment), formatting the date if necessary, finding the corresponding invoice in Storeganise based on the Xero invoice ID, filtering to avoid applying payments to already paid invoices, and finally, adding the payment details (method, date, amount) to the found invoice in Storeganise.
Ready to get started?
Send us your request and the Storeganise team will install the Xero Add-on for you.
Note: This Add-on is only available to self-storage operators.