Stripe logoXero logoStripe to Xero
AvailableNative · StripeNative · Xero

Connect Stripe to Xero with Well

Every Stripe charge collapses onto the right customer match inside Well; the resulting documents arrive at Xero as drafts with vendor, amount, and date pre-filled by Xero's own OCR.

About Stripe and Xero

Stripe logo
Stripe
Source

The Stripe integration connects your payment infrastructure to Well via MCP, pulling charges, invoices, subscriptions, refunds, and payout data into your workspace automatically.

Xero logo
Xero
Target

The Xero integration connects Well to your accounting platform for bidirectional data flow.

Why this pair

Connect Stripe to Xero through Well so records flow without manual rework.

What Well does between Stripe and Xero

  • One-way: Stripe into Well into Xero
  • Sync mode: Real-time MCP push
  • Events arrive in seconds
Stripe logo
Trigger from Stripe
14 events · pick one
Well engine·recipe·When a Stripe charge succeeds
Source
from payment · live webhook
Lemon Studio
via Stripe
Charge
When a Stripe charge succeeds
ch_1q5nk · 22 Apr 2026€1,284.00
Extract
6 fields read from Stripe
6 fields read
  • CustomerLemon Studio
  • Charge date22 Apr 2026
  • Charge amount€1,284.00
  • CurrencyEUR
  • Processing fee€37.24
Enrich
against your historical record graph
4 fields added
  • Customer recordLemon Studio
  • Domainlemonstudio.io
  • Tax idFR42514682431
  • Sales journalVE · 2026
Confidence97%
<55% refused5585% review85% auto-posts
Post
post as draft bills
Create a draft bill in Xero
auto-posted
posted
  • TypeBill
  • VendorLemon Studio
  • Amount€1,284.00
  • LedgerVE · 2026
  • Source docattached
  • Confidence97%
audit linkto Xero
Xero logo
Action in Xero
2 compatible with this trigger
Create a draft bill in XeroResolve a Xero contact from the document

Reconcile Stripe multi-currency charges to Xero entries.

01Featured

Resolve refund and dispute writebacks

Refunds and chargebacks from Stripe land as reversing entries in Xero the moment the dispute is opened, with the original charge auto-linked so the audit trail keeps both sides of the trade. The reversal carries the dispute reason so the accounting team does not have to dig through Stripe to write the note.

02

Bring multi-currency charges into one ledger

Each Stripe charge keeps its original transaction currency on the matched document. Well stamps the FX rate at the timestamp of the event and attaches both the source and converted amounts to the document forwarded to Xero, so the draft your team confirms stands up to audit.

03

Surface jurisdiction for tax-code routing

Stripe charges carry the customer billing country in their metadata; Well stamps the jurisdiction (EU / US / AU / etc.) on the document forwarded to Xero, with reverse-charge context on cross-border charges so your team can apply the right tax code in Xero in one click.

04

Decompose fees from a card payment

Every Stripe card charge is split inside Well into the gross amount, the processor fee, and the net deposit. The fee context is broken out on the document forwarded to Xero, ready for your team to route it onto the processor-fee account on confirmation.

18 signals and actions across Stripe and Xero

  • When a Stripe customer is updated

    Pulls from the Stripe events feed. Detects changes to customer name, billing address, or tax id. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Company
  • When a Stripe subscription starts

    Pulls from the Stripe events feed. Tracks new subscription records with cadence, amount, and customer. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Invoice
  • When a Stripe payout is created

    Pulls from the Stripe events feed. Triggers on every payout batch with the underlying charges and fees. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Transaction
  • When a Stripe refund is issued

    Pulls from the Stripe events feed. Captures partial and full refunds with the originating charge id. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Transaction
  • When a Stripe invoice is marked paid

    Pulls from the Stripe events feed. Pulls the paid invoice with its line items, customer, and applied tax. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Invoice
  • When a Stripe payout lands in your bank

    Pulls from the Stripe events feed. Detects the bank arrival of a Stripe payout to anchor the deposit. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Transaction
  • When a Stripe subscription cycle renews

    Pulls from the Stripe events feed. Detects renewal cycles and links the new invoice to the recurring contract. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Invoice
  • When a Stripe customer is created

    Pulls from the Stripe events feed. Pulls new customer records with name, email, and tax id where set. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Company
  • When a Stripe charge succeeds

    Pulls from the Stripe events feed. Captures successful card and bank charges with currency, fee, and customer reference. Forwarded to Xero's email-in via Hubdoc; Hubdoc extracts contact, dates, totals, and tax type into a draft bill.

    Trigger·Transaction
Reference
Field mapping for StripeXero
15 fields across 3 record types, open to see the full table.

Transaction fields

5 fields flow from Stripe into Xero.

Stripe fieldXero field
charge.amountTotal
charge.currencyCurrencyCode
charge.createdDate
charge.descriptionReference
charge.idBankTransactionID

Invoice fields

7 fields flow from Stripe into Xero.

Stripe fieldXero field
invoice.currencyCurrencyCode
invoice.numberInvoiceNumber
invoice.issue_dateDate
invoice.due_dateDueDate
invoice.taxTotalTax
invoice.subtotalSubTotal
invoice.customerReference

Company fields

3 fields flow from Stripe into Xero.

Stripe fieldXero field
customer.nameName
customer.tax_idTaxNumber
customer.metadata.domainWebsite

Connect Stripe and Xero in three steps.

  1. Stripe logo1

    Connect Stripe

    Click Connect with Stripe; Stripe's MCP server handles authorisation. Stripe's MCP server registers a read-scoped Well client through DCR; no credential paste, no shared secret.

    • AuthOAuth 2.0
  2. 2

    Map your accounts

    Well discovers Stripe's charges, refunds, payouts, customers, disputes, and subscription events and the the Xero draft bills queue populated by Hubdoc. Match candidates are scored on counterparty name, amount, currency, and reference; you approve any that need a human eye and Well saves the rule for the next batch.

    • Auto-post above85% confidence
    • Overridemanual anytime
  3. Xero logo3

    Connect Xero

    Click Connect with Xero; Well's OAuth proxy handles Xero authorisation through Dynamic Client Registration. Xero's MCP server registers a write-scoped Well client through DCR; no credential paste, no shared secret.

    • AuthOAuth 2.0
    • First syncup to an hour

How Stripe and Xero stay secure with Well

Well connects to Stripe through its MCP server, which issues short-lived access tokens via Dynamic Client Registration. Well never holds a long-lived Stripe secret; the server refreshes its own tokens on each session. Well's storage region is configured per workspace regardless of where Stripe and Xero host theirs.

MCP server authStorage region per workspaceGDPR-aligned
Scopes Well requestsmcp.stripe.com
  • Read Stripe records

    Scoped to charges, refunds, payouts, customers, and related records. No access to anything else in your Stripe account.

    granted
  • Deliver documents to your Xero inbox

    Well forwards the extracted document to your Xero email-in address; Xero reads draft bills via email-in, with contact, dates, totals, and related records from it and you review and post. No write credential to Xero is requested.

    granted
  • Modify or delete Stripe records

    Not granted. Stripe is read-only on Well's side; the source of truth never moves.

    refused
  • Read other workspaces' data

    Encryption keys are per-workspace; another tenant's records are inaccessible by design.

    refused
Disconnect any time from Well settings or Stripe’s admin panel.

Frequently asked questions about Stripe and Xero on Well

01Will every Stripe record post to Xero automatically?
Not always. Within seconds of Stripe firing the event, Well scores the record on field completeness, counterparty strength, and policy fit. Above the 85% default auto-link threshold Well forwards the reconciled document to your Xero email-in address and Xero drafts the record from it for you to confirm. Between 55% and 85% the record waits in the review queue with the alternative matches ranked. Below the 55% default review threshold the record is refused and the candidate list kept so you can pin the right entry by hand.
02How does Well match Stripe records to entries in Xero?
Every Stripe charge is scored against your open Xero sales invoices and existing customer records on customer name, amount, currency, and reference. Above 85% the charge collapses onto the right invoice and Stripe reconciliation builds the matched journal entry in Well's ledger, the ledger accounts mapped and the matched customer and payment pre-filled, ready for you to post to Xero. Between 55% and 85% the candidate list is queued for review with the alternative customers ranked.
03What happens to historical Stripe data when I first connect to Xero?
Stripe exposes the last two years through its API on a connected account. The window Well actually pulls is configurable from the integration settings page; each record is matched against your existing Xero ledger, and re-running the backfill is safe because Well tracks the Stripe record IDs and updates existing Xero entries instead of duplicating them.
04How does Well prevent duplicates when posting Stripe records to Xero?
Stripe sends each event with a stable resource ID that Well tracks against the Xero ledger. Webhook replays (which Stripe can issue for delivery retries) are recognised by ID and either skipped or used to update the existing Xero entry. Distinct records that look similar are caught by Well before posting, with the candidates surfaced in the review queue when confidence is ambiguous.
05Can I customise which Stripe fields are sent to Xero?
The default mapping covers every Stripe field your Xero chart of accounts accepts (counterparty, amount, currency, reference, tax). From the integration settings page you can override mappings field-by-field, attach computed values from your connected data (GL code, project tag, tax bucket), or ignore fields Xero does not need. Custom mappings are versioned and apply only to records reconciled after the change, so anything you have already reviewed and posted in Xero is left exactly as it stands.
06How does Well authenticate with Stripe and Xero?
Stripe's MCP server handles authorisation directly; Well receives an access token through Dynamic Client Registration and never sees raw user credentials. For the delivery side, Well forwards the reconciled document to your Xero email-in address once it clears the matching threshold; Xero creates the draft record from it and you confirm and post it. Well holds no write credential to Xero. Tokens are encrypted at rest and in transit under TLS 1.3. Stripe and Xero together cover multiple regions; Well's storage region is configured per workspace.
Stripe logoXero logo

Connect Stripe to Xero

Start routing data between Stripe and Xero through Well in minutes.

  • Read-only scopes on Stripe
  • AES-256 at rest, TLS 1.3 in transit
  • GDPR-aligned
  • Revocable Xero access in one click