Index
What is this integration?
The Xero integration connects Golfmanager with the Xero accounting software. It sends the day's sales and payment totals to Xero as draft manual journals, grouped, so the club can review and approve them inside Xero. The connection is direct (you authenticate once in Xero and authorize Golfmanager).
Xero is a cloud accounting program. A draft manual journal is an accounting entry that arrives in Xero pending your review: you check it and approve it before it is recorded.
What problem does it solve?
Eliminates manual entry of sales and payments into the accounting.
Daily summary: it sends the grouped totals, not invoice by invoice, easier to reconcile.
You stay in control: the journals arrive as drafts and you approve them in Xero.
Reduces errors and saves time at the close.
Which systems does it connect and in which direction does the data flow?
It connects Golfmanager with Xero, in one direction only:
Golfmanager sends the day's totals to Xero as draft journals.
The first time you will have to log in to Xero and authorize the connection; afterwards, the send is direct.
Xero does not return data to Golfmanager.
What information is sent?
Data | What it includes |
Day's sales | Totals grouped by family (family code = account) with their VAT rate |
Day's payments | Totals by payment method |
Everything travels as one draft manual journal per day to Xero (with the narration "Golf Manager-date").
Prerequisites (before activating the integration)
Have a Xero account.
Have the Xero module installed, together with the billing modules.
An application registered in the Xero developer portal, which gives you the Client ID and the Client Secret.
Have the accounts, families and taxes aligned between Golfmanager and Xero (see setup).
Administration permissions to configure.
How to set it up (step by step)
Step 1 — Connection data
Go to the Xero settings in Golfmanager.
Enter the Client ID and the Client Secret of your Xero application.
Indicate the Redirect URL (it must match exactly the one in your app in the Xero portal).
Enter the Scope (the access permissions); it must include
offline_access.Save the changes.
Step 2 — Align accounts, families and taxes
For the journals to be created correctly, the data must match exactly between Golfmanager and Xero:
In Golfmanager | In Xero |
Family code and name | Account (code and name) with its VAT rate |
Payment method name | Account with the same name, VAT exempt (0%) |
VAT rates (name and %) | Tax rates with the same name and percentage |
Step 3 — Authorize the connection
Go to the "Xero Journal" screen, choose a date and click "Send Diary".
The first time, you will be asked to log in to Xero and authorize Golfmanager. Afterwards, the send is direct.
⚠️ The match must be exact: if the code, the name or the tax are not identical in both systems, the journals will not be created correctly. It is best to prepare this mapping with your accountant before starting.
Explanation of each field
Below is a description of each field in the integration: where it is, what it means, its impact on the system, and a usage example (what happens when it is used and how the system behaves).
A) Xero settings
1. Client ID and 2. Client Secret
Description: the credentials of your Xero application (from the developer portal).
Impact on the system: essential to connect with Xero.
Usage example: you copy them from your app in the Xero portal.
What happens when it is used: they are used to authorize the connection and send the journals.
System behavior: if they are missing, "Error: Missing payload in Xero configuration" (Client ID) or "Error: User field missing in Xero settings" (Client Secret) appears.
3. Redirect URL
Description: the address Xero returns the user to after authorizing.
Impact on the system: it must match exactly the one configured in the Xero app.
Usage example: you put the same URL in Golfmanager and in the Xero portal.
What happens when it is used: on authorizing, Xero returns you to that address.
System behavior: if it is missing, "Error: Secret field missing in Xero settings" appears; if it does not match Xero's, the authorization fails.
4. Scope
Description: the access permissions requested from Xero.
Impact on the system: it must include
offline_accessto keep the connection without logging in every time.Usage example: you enter the permissions your implementation team indicates (with
offline_access).What happens when it is used: it defines what Golfmanager can do in your Xero.
System behavior: if it is missing, "Error: Scope field missing in Xero settings" appears; if it does not include
offline_access, "Xero did not return a refresh token. Add 'offline_access' to the Scope setting and try again" appears.
B) On the "Xero Journal"
Field name: Date.
Description: the day whose sales and payments you want to send.
Impact on the system: a journal with that day's totals is sent.
Usage example: you select the previous day and click "Send Diary".
What happens when it is used: the draft journal with that date's sales and payments is created in Xero.
System behavior: if you leave it empty, "The date must not be empty" appears; if that day has no movements, it warns that "no data available to send".
C) On the send log
Each send is recorded with: the Status (success or failed), the Error (detail if it failed) and the date of the journal sent. Behavior: it is read-only and serves to review the history and diagnose.
How to use it day to day
Go to the "Xero Journal" screen.
Choose the date you want to send and click "Send Diary".
The first time, authorize the connection by logging in to Xero.
Golfmanager sends the day's totals to Xero as a draft manual journal. You will see the message "Journals sent to Xero".
In Xero, review and approve that journal.
⚠️ Do not resend the same date unnecessarily: the system does not prevent duplicates, so sending the same day twice creates two journals in Xero.
Send log
Each send to Xero is recorded (success or failed), with the journal date and the error detail if any. It is the first screen to check when a send has not been completed.
Variant: exporting invoices to CSV
In addition to the direct connection, there is a variant that exports the invoices to a CSV file compatible with Xero, to import it manually. From the invoice list, you select the invoices and use the "Export Xero" action; the file xeroInvoices.csv is downloaded. This variant does not need a connection to Xero (it does not use the authorization). It is useful if you prefer to work with invoices in a file rather than with daily journals. Your implementation team will tell you which one fits your case.
Limitations to keep in mind
The mapping must be exact: families, accounts, payment methods and taxes have to match between Golfmanager and Xero.
It is a one-way export: Golfmanager sends to Xero; Xero does not return data.
It is manual and per day: you choose a date and send it; it is not automatic.
It does not prevent duplicates: resending the same date creates another journal.
It requires authorizing the connection (logging in to Xero) the first time, and reconnecting if the session expires.
The journals arrive as drafts: they must be approved in Xero.
It depends on Xero: if the service is unavailable, it cannot be sent at that moment.
Frequently asked questions
The authorization with Xero fails.
The most common cause is that the Redirect URL does not match the one in your Xero app, or that the Client ID/Secret are not correct. Notices like "Xero did not return an access token. Check the Client ID, Client Secret and Redirect URI in settings" appear. Put the same URL in Golfmanager and in the Xero portal and review the credentials.
"Xero did not return a refresh token…" appears.
The offline_access permission is missing from the Scope. Add it to the Scope field and authorize again.
Errors like "… field missing in Xero settings" appear.
You have not filled in one of the connection data items (Client ID, Client Secret, Redirect URL or Scope). Complete them in the Xero settings.
"Xero session expired" appears.
The connection has expired. Go back to the "Xero Journal" screen and authorize again by logging in to Xero.
The journals are not created in Xero.
Almost always it is because the families, accounts or taxes do not match. Check that the code, the name and the VAT are identical in both systems and that the accounts exist in Xero.
A payment method does not reconcile.
The account for that payment method in Xero must be VAT exempt (0%) and named the same as in Golfmanager. Create it that way in Xero.
It says there is no data to send.
That day has no sales or payments. Choose a date with movements.
I have sent the same date twice.
The system does not prevent duplicates: two journals will have been created in Xero. Review them in Xero and delete the extra one (they remain as drafts until you approve them).
Are the invoices sent one by one?
No. The direct connection sends a daily journal with the grouped totals (sales by family and payments by payment method). If you need to work invoice by invoice, use the CSV export variant.
Where do I check whether a send went well?
In the send log: it shows the status (success or failed), the journal date and the error detail if any.
Does Xero return anything to Golfmanager?
No. The integration is one-way (Golfmanager → Xero). You review and approve the journals inside Xero.
Can I test before operating for real?
Yes. Register your app against a Xero demo company and validate the process before connecting the real company.
Recommended best practices
Prepare the mapping with your accountant (families, accounts, payment methods and taxes) before starting.
Use a Xero demo company to validate the process before operating for real.
Send and approve the journal in Xero daily, and avoid resending the same date.
Include
offline_accessin the Scope so you do not have to reconnect continuously.Keep the mapping up to date if you create new families or payment methods.
