Overview
The Xero integration is a native OAuth connector. After a business admin connects their Xero organisation, Audara Pay pushes invoices when you send them and records payments when an invoice is marked paid.
What this integration does
- Create or update Xero sales invoices from Audara Pay invoices
- Record Xero payments when AUDD settlement is confirmed
- Store the Xero invoice ID on each Audara Pay record for sync status and retry
- Keep amounts in AUD with transaction hash in references for audit
What it does not do
- Hold or move AUDD. Settlement stays on-chain between wallets
- Import your full Xero history into Audara Pay
- Replace your bookkeeper or chart of accounts decisions
How it works
- 1
Connect Xero
Admin clicks "Connect Xero" in Settings, signs in, selects an organisation, and approves scopes.
- 2
Invoice sent
When you send an invoice, Audara Pay creates an ACCREC invoice in Xero.
- 3
Payment confirmed
When AUDD settlement is confirmed, Audara Pay posts a payment against the linked Xero invoice.
- 4
Sync status
Invoice detail shows sync status and Xero invoice number. Failed syncs can be retried.
| Event in Audara Pay | Action in Xero |
|---|---|
| Invoice sent | Create ACCREC invoice |
| Invoice updated (before paid) | Update linked Xero invoice |
| Payment confirmed | Create payment against invoice |
| Invoice voided | Void or credit workflow (TBD) |
Setup
- 1
Connect Xero
Settings → Integrations → Xero → Connect. Sign in, select organisation, approve scopes. Status should show Connected.
- 2
Map defaults
Set revenue account, GST tax type, payment/clearing account, and contact matching (create vs match by email/ABN).
- 3
Send an invoice
Create and send as usual. On send, the connector pushes to Xero. Invoice detail shows sync status and Xero invoice number.
- 4
Confirm payment
When AUDD is confirmed, Audara Pay records payment in Xero with amount, date, reference, and tx hash in notes.
OAuth scopes
| Scope | Use |
|---|---|
| accounting.invoices | Create invoices |
| accounting.payments | Record payments against invoices |
| accounting.contacts | Create or match contacts |
| offline_access | Background sync via refresh token |
Field mapping
Invoice
| Audara Pay | Xero | Notes |
|---|---|---|
| invoice_number | InvoiceNumber | Unique per org |
| customer.name | Contact.Name | Created if not matched |
| customer.email | Contact.EmailAddress | Used for matching |
| issue_date | Date | ISO date |
| due_date | DueDate | ISO date |
| line_items | LineItems | Description, qty, unit AUD, tax |
| hosted_payment_url | Reference | Optional payer link |
Payment
| Audara Pay | Xero | Notes |
|---|---|---|
| amount_aud | Amount | AUD |
| paid_at | Date | |
| payment_reference | Reference | |
| tx_hash + network | Notes / reference | Audit trail |
API reference
You do not call Xero directly from the browser. Audara Pay's connector runs server-side using the Xero Accounting API.
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /Invoices | Create sales invoice |
| POST | /Invoices/{InvoiceID} | Update draft invoice |
| POST | /Payments | Record payment |
| GET | /Contacts | Match or list contacts |
Troubleshooting
| Symptom | Likely cause | Action |
|---|---|---|
| Connect fails | Redirect URI mismatch | Verify Xero app config |
| Invoice missing in Xero | Tax or account validation | Check integration mapping |
| Payment not applied | Already paid in Xero | Reconcile manually; check duplicates |
| Token expired | Access revoked | Reconnect in Settings → Integrations |
| Rate limit | Xero API throttle | Automatic retry with backoff |
FAQ
Will Xero show AUDD as a currency?
No. Invoices and payments are recorded in AUD. AUDD settlement details appear in references and notes.
One Xero org per Audara Pay org?
Yes, in the initial release.
Does this replace my bookkeeper?
No. It reduces manual entry. Your bookkeeper still owns chart of accounts, BAS, and compliance.
