· 13 min read

Salesforce Xero Integration: Apps, API and Setup Guide

A Salesforce Xero integration turns a won deal into a Xero contact and invoice, then shows sales whether the customer paid. For most US small businesses, an app from the Xero App Store or AppExchange (now AgentExchange), such as Breadwinner or TwoCanConnect, is the fastest route. Build on the Xero API only when your billing logic is unusual, and price in Xero’s 2026 developer tiers first.
A CRM window with a quote, a cloud ledger and an invoice linked by arrows, with a payment returning, illustrating a Salesforce Xero integration
Connecting Salesforce and Xero?Tell us how quotes turn into invoices today. We’ll map the data flow, build the integration and support it after launch.
Plan my Salesforce Xero sync

What a Salesforce Xero integration should do

Many small businesses sell in Salesforce and keep their books in Xero, where invoices, payments and sales tax live. With no link between the two, every won deal gets typed into Xero by hand, and reps have to ask the bookkeeper who has paid.

A good integration covers the quote-to-invoice loop and little else:

  1. Quote or deal is accepted in Salesforce. The opportunity is Closed Won, or a Salesforce quote is accepted, with products, quantities and prices.
  2. Xero gets a contact and an invoice. The account becomes a Xero contact (or matches an existing one), and the quote or opportunity lines become invoice lines.
  3. Payment status comes back. Xero’s invoice status, amount paid and amount due show on the Salesforce account and opportunity.

Resist syncing more than this. Mirroring all of Xero inside Salesforce leaves your bookkeeper reconciling two versions of the same figures.

Quote-to-invoice between Salesforce and Xero Salesforce Account Opportunity or Quote Line items Invoice status and payments, read-only Integration layer app, iPaaS or custom stores IDs, logs errors Xero Contact Invoice Payment Items, sales tax deal invoice paid? status Stays in Xero only: bank reconciliation, bills and suppliers, payroll, journals, chart of accounts
Deals and quotes flow into Xero once; invoice and payment status flow back. Bookkeeping data that sales doesn’t need never leaves Xero.

Your Salesforce Xero integration options

Neither Salesforce nor Xero ships a free connector between the two. Xero’s app store has an “Integrate Xero with Salesforce” collection, and some Salesforce apps listed in the store, such as Breadwinner, are built as Salesforce apps on AppExchange. That leaves four routes:

OptionWhat syncsDirectionCost levelEffortLimits
Salesforce Xero app (Breadwinner, TwoCanConnect, SFX Connect)Contacts, invoices, payments, credit notes; some add quotes, bills and purchase ordersTwo-way, with Xero data stored as Salesforce recordsLow to medium: monthly subscriptionDays to a few weeks, mostly configurationYour process must fit the app’s data model; pricing grows with users or orgs
No-code automation (Zapier, Make)What you build: usually “closed won → contact → invoice”One-way flows chained togetherLowHours to daysWeak on multi-line invoices, partial payments and duplicate matching
iPaaS (Workato and similar)Anything both APIs expose, plus other systems in the same flowTwo-way, event-driven or scheduledHigh: annual platform licenseWeeks; needs an integration ownerWorth it only if Xero is one of several connected systems
Custom build on the Xero Accounting APIExactly what you defineTwo-way; webhooks for some Xero eventsMedium to high: build, maintenance and a Xero developer tierWeeks to a few monthsXero’s per-organization rate limits; you own monitoring and API changes

The main Xero apps for Salesforce

  • Breadwinner. According to its Xero App Store listing, it is a native AppExchange app that brings Xero contacts, invoices, payments and credit notes into Salesforce objects. It creates invoices from accounts, opportunities, orders or custom objects, and supports several Xero organizations and currencies. The listing offers a 15-day free trial.
  • TwoCanConnect. Listed as a two-way Salesforce sync for invoices, payments, quotes and purchase orders, without middleware; quotes and purchase orders come with its higher plans.
  • SFX Connect. Listed as syncing invoices, bills and credit notes between Salesforce and Xero.

Xero states that it reviews apps but does not guarantee them, and listings and prices change. Check the current listing, reviews and plan before you commit, and test in a sandbox.

No-code and iPaaS tools fill the gaps. Zapier and Make both list Salesforce triggers and Xero actions such as creating contacts and invoices, and Workato has a Xero connector with triggers for new or updated contacts, invoices and payments.

Which Salesforce Xero integration fits you?

Xero API pricing and limits in 2026

If you plan to build your own integration, read this section first. Xero moved from revenue share to tiered developer pricing: the change was announced on December 4, 2025 and took effect on March 2, 2026, according to Xero’s developer FAQ. New apps start on the Starter tier.

Xero developer tierMonthly fee (Australian dollars, tax exclusive)Max connectionsAPI calls per day, per organization
StarterNo charge51,000
CoreA$35505,000
PlusA$2451,0005,000
AdvancedA$1,44510,0005,000
EnterprisePrice on applicationNo limit5,000

Source: Xero’s developer pricing page, as of October 2026. Xero publishes these fees in Australian dollars (A$), not US dollars. Paid tiers include a monthly data egress allowance with an overage fee per GB; incoming data is unlimited on every tier.

What this means for a US small business connecting one Xero organization:

  • Starter may be enough for a light sync, but 1,000 calls a day goes fast if you poll for payment changes every few minutes or backfill history.
  • Rate limits per organization still apply. Xero’s developer documentation lists 5 concurrent calls and 60 calls per minute for each connected organization, plus 10,000 calls per minute across all of an app’s organizations, on top of your tier’s daily limit. Xero says it can’t raise these limits on request.
  • Custom Connections are a separate option. Xero offers them for machine-to-machine integrations with a single organization in the US, UK, Australia and New Zealand. They are a paid monthly subscription for each connection, need no refresh tokens, and can be tested free on the demo company. Xero says they keep their existing commercial terms; check the current price in Xero before you decide.
  • Scopes changed too. According to Xero’s developer documentation, Custom Connections created from April 29, 2026 use granular scopes. Request only the scopes the sync needs.

If you use an app from the Xero App Store, the developer tier is the vendor’s cost and is built into its pricing.

Which system owns what: object mapping

For a small business the split is usually clear: sales data starts in Salesforce, money data lives in Xero. For each object, the system of record is the only place edits happen; the other system just displays a copy.

SalesforceXeroDirectionSystem of record
Account (plus billing contact)Contact (customer)Salesforce → Xero on first invoiceSalesforce for name and owner; Xero for payment terms and tax status
Quote or Closed Won OpportunityInvoice (draft or approved), or a Xero quoteSalesforce → Xero, onceSalesforce until sent; Xero after the invoice exists
Quote Line Item / Opportunity ProductInvoice line itemSalesforce → XeroXero after creation
Product2ItemXero → SalesforceXero (item carries sales account and tax)
App’s or custom Invoice objectInvoice number, status, amount due, amount paid, due dateXero → SalesforceXero
App’s or custom Payment objectPaymentXero → SalesforceXero
Account field “Xero Contact ID”ContactID; Contact Number holds the Salesforce IDWritten back after createThe link itself; never edited by hand

The last row prevents most duplicate problems. Xero’s API documents a Contact Number field meant to identify contacts in external systems; it can only be set through the API and shows as Contact Code in Xero. Store the Salesforce account ID there and the Xero ContactID on the account, and later syncs match exactly.

Two Xero terms to know. Xero uses one contact list for customers and suppliers; a contact is flagged as a customer once it has a sales invoice. Invoices move through statuses such as DRAFT, SUBMITTED, AUTHORISED, PAID and VOIDED, so decide whether the integration creates drafts for review or approved invoices.

How to set up the integration, step by step

These steps follow the most common path, a Salesforce Xero app. The order is the same for an iPaaS or custom build.

  1. Agree ownership with your bookkeeperDecide which system owns each object (use the table above), what triggers an invoice (Closed Won, accepted quote, signed order), whether invoices land as drafts or approved, and who fixes sync errors.
  2. Check your Xero planOn Xero’s US pricing page, the Early plan lists a limit of 20 invoices, and Xero notes that transactions from connected apps may count toward that limit. Multiple currencies are only on the Established plan. Upgrade before go-live if either applies.
  3. Clean both sidesDeduplicate Salesforce accounts and Xero contacts, and archive Xero contacts you no longer use. Align the Salesforce price book with Xero items, or plan to pull items from Xero.
  4. Create a dedicated integration userConnect the app with a dedicated Salesforce user, not an admin’s login. Supported editions include a limited number of free API-only Salesforce Integration user licenses, according to Salesforce. Give it a permission set with only the objects the sync touches. In Xero, authorize the app with a user account the bookkeeper controls, not a salesperson’s.
  5. Install in a sandbox and connect the Xero demo companyInstall the app in a Salesforce sandbox and connect it to Xero’s demo company, not your live books. Load a handful of real accounts and products.
  6. Map contacts and matching rulesMap account fields to contact fields. Match on the stored Xero ContactID first, then on an exact field you trust, and send anything unmatched to a review queue instead of creating a new contact.
  7. Map invoices, items and taxMap quote or opportunity lines to Xero item codes, set payment terms and decide on discounts. Let Xero calculate US sales tax; send the address and exempt status, not tax amounts.
  8. Set up the return flowBring invoice number, status, amount due and payments back to Salesforce, read-only, on the account and opportunity layouts. Use Xero webhooks or a schedule; stay well under the daily call limit.
  9. Test the awkward cases, then go live in stepsPick ten real deals that cover a new customer, an existing one, a five-line quote with a discount, a tax-exempt customer, a foreign-currency deal, a partial payment, a credit note. Have the bookkeeper check each in Xero. Then start production with deals created after a cut-off date, and read the error log every day for the first two weeks.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Pitfalls and how to fix them

ProblemWhy it happensFix
Duplicate contact name errorsXero requires a contact name to be unique across all active contacts, while Salesforce allows two accounts named “Acme Inc”. The second invoice fails, or lands on the wrong contact.Match on the stored ContactID, not the name. Add a naming rule for clashes (for example, add the city).
Customers and suppliers mixedXero keeps one contact list for both, so a vendor that is also a customer already exists.Search Xero contacts before creating; link to the existing contact.
Wrong sales taxTax amounts pushed from Salesforce don’t match Xero. Xero’s US auto sales tax, powered by Avalara, sets rates from your business address, the customer’s location and the item.Let Xero calculate tax. Sync addresses and exempt status; test invoices created by the integration in the sandbox.
Items vs. productsA Salesforce product has no matching Xero item. Xero item codes are capped at 30 characters in its API, so long Salesforce product codes don’t fit.Make Xero the source of items, keep a code mapping field and block closing deals with unmapped products.
Currency mismatchSalesforce multi-currency is on, but the Xero plan or contact uses only USD.Confirm the Xero plan supports multiple currencies, set the contact’s default currency on first sync and send the invoice currency from the opportunity.
Sync loopsBoth systems can edit the same field, so each sync sets off another one in the opposite direction.Let each field flow one way only, and have the sync skip edits made by its integration user.
Partial payments shown as paidThe sync reads only a “paid” flag.Sync amount due and amount paid, not just status.
Rate limit errors (HTTP 429)Backfills or frequent polling exceed 60 calls a minute or the daily limit.Backfill overnight in batches, use Xero’s 100-record pages and the If-Modified-Since header, and prefer webhooks.
Sync silently stopsThe Xero connection is revoked or the authorizing user leaves.Use a dedicated integration user, send errors to a shared channel, review the log weekly.

What not to sync

  • Bank reconciliation, bills and payroll. These are bookkeeping work, not sales information, and parts of them are sensitive.
  • Journals and the chart of accounts. A CRM should never post accounting entries; that is a fast way to damage the books. The sales account belongs on the Xero item.
  • Tax amounts. Send the inputs; let Xero calculate.
  • Years of invoice history. Twelve to twenty-four months usually covers renewals and collections, and keeps you inside the daily call limit.

When a custom integration makes sense

Apps fit most small businesses. A custom build on the Xero Accounting API pays off when:

  • Billing follows rules an app can’t express: milestones, usage lines, deposits, revenue split across several Xero organizations.
  • Deal data lives in custom Salesforce objects the apps don’t handle well.
  • The same quote-to-invoice logic must feed other systems, such as a customer portal or a payment platform.

A typical build covers OAuth 2.0 or a Custom Connection, contact matching using Contact Number, and idempotent invoice creation so a retry never creates a second invoice. It also needs Xero webhooks plus a scheduled check for payments, a retry queue that respects rate limits, and an error view for the bookkeeper.

$2–10kTypical simple one-way flow, such as closed won to invoice
$10–40kTypical two-way CRM and accounting sync
60/minXero API calls per minute per connected organization, per Xero’s developer FAQ
15–25%Of the build cost per year for maintenance and API changes

For cost ranges by integration type, see our API integration cost guide. Comparing accounting systems? The Salesforce QuickBooks integration guide covers the same flow for QuickBooks Online, and the Salesforce ERP integration guide covers the move up when Xero no longer fits.

Go-live checklist

Salesforce Xero go-live readiness

FAQ

Does Xero integrate with Salesforce?
Yes, but not through a free connector from either company. Xero’s app store has a collection of apps for Salesforce, including TwoCanConnect and SFX Connect, plus general tools such as Zapier, and Breadwinner has its own listing there. You can also connect them through an iPaaS like Workato or Make, or build a custom integration on the Xero Accounting API and the Salesforce APIs.
What is the best Salesforce Xero integration app?
It depends on where your team wants to work and what must sync. Breadwinner keeps Xero contacts, invoices, payments and credit notes as Salesforce records and creates invoices from accounts, opportunities or orders. TwoCanConnect advertises two-way sync of invoices and payments, with quotes and purchase orders on its higher plans. Shortlist two, run both on a Salesforce sandbox and the Xero demo company, and test your own awkward invoices before you buy.
Can Zapier connect Salesforce and Xero?
Yes. Zapier lists Salesforce triggers such as a new record and Xero actions such as creating or updating a contact and creating a draft quote, plus Xero triggers for new sales invoices and payments. It works for low volume and simple, one-line invoices. It gets fragile with multi-line invoices, partial payments and duplicate contact names.
How much does the Xero API cost in 2026?
Since March 2, 2026, Xero prices developer access in tiers. As of October 2026, its developer pricing page lists Starter at no charge (5 connections, 1,000 calls per day per organization), Core at A$35 a month (50 connections) and higher tiers up to Advanced at A$1,445 a month, priced in Australian dollars and tax exclusive, with paid tiers getting 5,000 calls per day per organization. Custom Connections, Xero’s single-organization option, are a separate paid subscription.
What are the Xero API rate limits?
According to Xero’s developer FAQ, each connected organization allows 5 concurrent calls and 60 calls per minute, and an app can make up to 10,000 calls per minute across all organizations. The daily limit per organization depends on your developer tier: 1,000 calls on the free Starter tier and 5,000 on paid tiers. Plan backfills and polling around the daily limit.
How much does a Salesforce Xero integration cost?
An app subscription is the cheapest route and is usually priced per month; vendors change plans often, so check their listings. A simple custom flow typically costs $2,000–10,000 to build, a two-way CRM and accounting sync $10,000–40,000, plus 15–25% a year for maintenance. Add Xero’s developer tier fee if you build your own app.

Where Gilzor fits

Most Xero users should start with an app; a custom build earns its cost only when your billing rules don’t fit one. In that case Gilzor, a software development company with engineers in Poland and Cyprus and not a Salesforce reseller, can map the Salesforce to Xero data flow, build the integration on the Xero API and support it after launch. See our Salesforce integration services, or the Salesforce integration guide for the patterns that repeat across every system.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Andrew Laminsky
Written byAndrew Laminsky

CTO of Gilzor. Responsible for architecture and the engineering standards our teams work by.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights