Accounting & Bookkeeping - Xero
V3 Xero capability pack for the SMB-finance wedge — the second conformant accounting vendor alongside accounting-quickbooks. Declares the same canonical accounting operations (invoice, bill, expense, payment, refund, customer, vendor, ledger_account) over the Xero Accounting API 2.0 so smb-invoice-finance recipes read AR / AP / cash-in the same way they do on QuickBooks. Adds daily bookkeeping views for open receivables/payables, recent payments/spend, active contacts, catalog/settings lookups, and financial reports without exposing arbitrary where/filter passthrough. Reads flow after connection grant; invoice/bill/expense/customer/vendor writes ask + diff; customer-payment, refund (credit note), and invoice-void are destructive/always-ask so money movement never rides a session grant. Mirrors the shipped Stripe + QuickBooks entity_platform by-value composition pattern. AUTHORED-TO-DOCS, RUNTIME-UNVERIFIED (F4): no live Xero org was available this build. Xero specifics encoded here: base https://api.xero.com/api.xro/2.0, OAuth via login.xero.com + identity.xero.com with offline_access + accounting.transactions/contacts/settings scopes, list responses wrapped under a PascalCase plural key (result_path Invoices/Contacts/Payments/BankTransactions/Accounts), AR vs AP split by Invoice.Type (ACCREC/ACCPAY) and customer vs vendor split by Contact IsCustomer/IsSupplier (Xero unifies both, unlike QuickBooks' separate entities), filtering via the where query param. KNOWN runtime wrinkles to close on a live org (documented, not blockers): (1) every call needs a per-connection Xero-tenant-id header resolved post-OAuth from GET https://api.xero.com/connections — the tenant-header substrate is the slice-5a wiring follow-up (Xero carries the org in a header, not the URL path like QuickBooks' realm); (2) Xero defaults to XML, so calls need Accept: application/json; (3) Xero JSON dates come back in the /Date(ms)/ form, so a date-bearing canonical field needs a parse transform before is_past. This is the Xero catalog + money-write surface ONLY — the two vendor-agnostic accounting workflows (overdue-invoice-chase, accounting-daily-back-office) ship in the vendor-neutral `acct` pack (install it alongside this one for the workflows); their canonical `core.acct.*` read op-steps resolve against THIS vendor's catalog at run (dispatch-time), projecting Xero's raw records to the canonical accounting fields. Canonical accounting op-steps are read-only; money writes ride the gated ingredient binding. See docs/unified-pack-exploration/smb-finance-wedge.spec.md.
What this pack installs
- xero-accounting Ingredient
Builds on
Trust & control
What installing this whole pack would let it do. Recued grants these permissions at install — review them there before approving.