{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-agen-for-work/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["Notification","LightboxImage"]},"type":"markdown"},"seo":{"title":"Xero integration","siteUrl":"https://developers.frontegg.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"xero-integration","__idx":0},"children":["Xero integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Xero is a cloud-based accounting platform for small and medium businesses that enables invoicing, expense tracking, payroll, and financial reporting. Integrating Xero with Frontegg allows your application to manage invoices, contacts, accounts, bank transactions, and reports on behalf of your users using OAuth 2.0."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Prerequisites","type":"attention"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.xero.com/signup/"},"children":["Xero account"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Access to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com"},"children":["Xero Developer Portal"]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"connect-xero","__idx":1},"children":["Connect Xero"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-1-open-the-developer-portal","__idx":2},"children":["Step 1: Open the developer portal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com"},"children":["developer.xero.com"]}," and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Log in"]},". Enter your Xero email address and password, then click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Log in"]},"."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-1.692c6461d11948771bdc11a1137c9952cb4c9fc51786c1a29f7007e3600cfae7.1ce25488.png","alt":"Xero developer portal login page"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-2-open-my-apps","__idx":3},"children":["Step 2: Open My Apps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After signing in, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Apps"]}," in the top navigation bar. The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Apps"]}," page lists all your existing Xero applications."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New app"]}," to create a new OAuth application."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-2.d45cf04477b0be986afddef2aca642128b799589d1f6ec85ca1c74b2335e3b19.1ce25488.png","alt":"Xero My Apps page with New app button highlighted"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-3-fill-in-the-new-app-form","__idx":4},"children":["Step 3: Fill in the new app form"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add a new Xero app"]}," dialog, fill in the following fields:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["App name"]}," — Enter a descriptive name, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Frontegg Integration"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integration type"]}," — Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Web app"]}," (standard authorization code flow)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Will you use Xero data to train an AI model?"]}," — Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do you understand and agree to meet Xero's minimum security requirements?"]}," — Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Yes"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Company or application URL"]}," — Enter your application's website URL."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth 2.0 redirect URI"]}," — Enter the following URI:"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://YOUR_MCP_GATEWAY_URL/integration-callback"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Check ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["I have read and agree to the Xero Developer Platform Terms & Conditions"]},", then click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create app"]},"."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-3.16f4c89752630f0856116b275bacc7b9ef9e0db66689cd8fb98d77b12ab504a5.1ce25488.png","alt":"Xero new app form filled in"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-4-view-the-app-details-page","__idx":5},"children":["Step 4: View the app details page"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After clicking ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create app"]},", you are taken to the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["App details"]}," page for your new application. This confirms the app was created successfully."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Configuration"]}," in the left menu to proceed."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-4.f19fcb8d12ed9ad7d02c42b3b644dae34d56bf8ca6318a55c724f0b65a842f58.1ce25488.png","alt":"Xero app details page after creation"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-5-configure-redirect-uris-and-copy-your-client-id","__idx":6},"children":["Step 5: Configure redirect URIs and copy your Client ID"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["On the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Configuration"]}," page:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Redirect URIs"]}," section, confirm that the redirect URI you entered in Step 3 is present: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://YOUR_MCP_GATEWAY_URL/integration-callback"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Copy your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," — you will need it when configuring the Frontegg portal."]}]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-5.3a2f048a40e4187d3af82483d68540f794339ea74af267aad9397369ffcb756f.1ce25488.png","alt":"Xero configuration page with redirect URIs and Client ID"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-6-generate-a-client-secret","__idx":7},"children":["Step 6: Generate a Client Secret"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate a secret"]},". Xero generates a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," and displays it once."]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Copy your Client Secret now","type":"attention"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Client Secret is shown only once. Copy it immediately and store it in a secure location. If you lose it, you must delete the secret and generate a new one."]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-6.b4720b8cfc8e6210ec9f110ec78e2b747574454a5b4c4fdcbd07f6e108955495.1ce25488.png","alt":"Xero Client Secret generated"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-7-save-the-configuration","__idx":8},"children":["Step 7: Save the configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]}," at the top of the Configuration page to apply your changes."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/xero-7.71ed60f3bcf275ce904c32e10e962c2537c9ae08ad24424d372cdc66aa4ceb2e.1ce25488.png","alt":"Xero configuration saved"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"configure-the-frontegg-portal","__idx":9},"children":["Configure the Frontegg portal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once you have obtained your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," from the steps above, enter them in the integration configuration page of the Frontegg portal:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Frontegg portal"]}," and navigate to [ENVIRONMENT] → Integrations → Xero."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Enter the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," in the corresponding fields."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the required ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["scopes"]},":"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scope"},"children":["Scope"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["openid"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required for OpenID Connect authentication"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["profile"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Access user profile information"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["email"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Access user email address"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["offline_access"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Obtain refresh tokens for long-lived access"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.transactions"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read and write invoices, bank transactions, and payments"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.transactions.read"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read-only access to invoices, bank transactions, and payments"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.contacts"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read and write contacts"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.contacts.read"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read-only access to contacts"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.settings"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read and write accounts and inventory items"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.settings.read"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read-only access to accounts, inventory items, and organisation details"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["accounting.reports.read"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Read-only access to financial reports"]}]}]}]}]},{"$$mdtype":"Tag","name":"ol","attributes":{"start":4},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]},"."]}]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Keep your credentials secure","type":"attention"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never share or commit your Client Secret to version control."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"additional-resources","__idx":10},"children":["Additional resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com/documentation/guides/oauth2/overview"},"children":["Xero OAuth 2.0 documentation"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com/documentation/guides/oauth2/scopes/"},"children":["Xero API scopes reference"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com"},"children":["Xero developer portal"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.xero.com/documentation/api/accounting/overview"},"children":["Xero Accounting API reference"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/agen-for-work/connectors/redirect-url"},"children":["How to get your Redirect URL"]}]}]}]}]},"headings":[{"value":"Xero integration","id":"xero-integration","depth":2},{"value":"Connect Xero","id":"connect-xero","depth":3},{"value":"Step 1: Open the developer portal","id":"step-1-open-the-developer-portal","depth":4},{"value":"Step 2: Open My Apps","id":"step-2-open-my-apps","depth":4},{"value":"Step 3: Fill in the new app form","id":"step-3-fill-in-the-new-app-form","depth":4},{"value":"Step 4: View the app details page","id":"step-4-view-the-app-details-page","depth":4},{"value":"Step 5: Configure redirect URIs and copy your Client ID","id":"step-5-configure-redirect-uris-and-copy-your-client-id","depth":4},{"value":"Step 6: Generate a Client Secret","id":"step-6-generate-a-client-secret","depth":4},{"value":"Step 7: Save the configuration","id":"step-7-save-the-configuration","depth":4},{"value":"Configure the Frontegg portal","id":"configure-the-frontegg-portal","depth":3},{"value":"Additional resources","id":"additional-resources","depth":3}],"frontmatter":{"seo":{"title":"Xero integration"}},"lastModified":"2026-05-01T18:45:25.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/agen-for-work/connectors/marketplace/xero","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}