Xero Accounting
Post your orders, payments, fees and payouts to Xero, set up once and approved by you
Xero Accounting
SKU Manager posts every order to Xero as a sales invoice. It then records the payment, any refund, the gateway fees and the payout. You choose your accounts once, preview everything, and approve. Nothing reaches Xero before you approve it.
What It Does
Each kind of money movement becomes a record in Xero, and SKU Manager keeps it in step with the order.
Every order
- Order confirmed or fulfilled → one sales invoice per order
- Customer pays → a payment against the invoice
- Refund issued → a credit note, plus the refund payment
- Order edited or cancelled → the invoice is updated, deleted or voided
Shopify Payments
- Card payments land in your clearing account
- Payout fees → a bill, paid from the clearing account
- Payout → moves the balance to your bank account
PayPal
- PayPal payments → into the PayPal account for their currency
- PayPal fees → spend money to your fees account
- Currency conversions → a transfer between your PayPal balances, never a sale
Gift cards post to a liability account with no tax. Other payment methods (a bank deposit, cash, a manual payment) post to one account you choose.
What Gets Posted
Every record carries a predictable number or reference, so you can search for it in Xero, and SKU Manager can recognise records that are already there. These examples use a store whose orders look like #1001, with the invoice prefix WEB_.
| Record | Xero record | Number or reference | Posted to |
|---|---|---|---|
| Invoice | Sales invoice | WEB_#1001 | Your sales and shipping accounts, with the tax the order charged |
| Credit note | Sales credit note | WEB_#1001_CN1 | Against the order's invoice |
| Payment | Payment | Against the invoice or credit note | The account for its payment provider |
| Payout fees | Bill (or spend money) | SPYFEES-<payout id> | Your payment processing fees account |
| Payout | Receive money (or bank transfer) | PAY-<payout id> | Your payout bank account |
| PayPal fee | Spend money | paypal | <transaction id> | Your PayPal fees account |
| Currency conversion | Spend money and receive money | PPCONV-<transaction id> | Through your conversion clearing account, which returns to zero |
Before You Start
- A Xero login that can open the organisation you want to connect.
- Administrator access to your organisation in SKU Manager.
- Your organisation currency, set under Settings → Organization → General. SKU Manager never assumes one. It must be a currency your Xero organisation can post in: its base currency, or one enabled under Xero's Settings → Currencies.
- Your time zone, set in the same place. It decides which day each order falls on, and SKU Manager never assumes UTC.
- If you use PayPal, connect PayPal to SKU Manager too. That is how SKU Manager reads conversions and PayPal fees.
Connecting Xero
SKU Manager connects through a Xero app that you create and own. Its rate limits and its access belong to your business alone, and you can revoke it in Xero at any time.
- Copy your redirect URI. In SKU Manager, open Integrations → Xero and click Connect Xero. Copy the Redirect URI exactly as shown. Xero rejects any difference, even a trailing slash.
- Create the app in Xero. At developer.xero.com, open My Apps → New app. Name it (for example "SKU Manager – Northwind Labs"), choose Web app, enter your website, paste the redirect URI, and create it.
- Copy the client ID and a secret. In the app's configuration, copy the Client ID. Then click Generate a secret and copy it straight away; Xero shows the secret only once.
- Approve the connection. Paste both into SKU Manager and click Continue to Xero. Approve the access requested. If your app asks which scopes it may use, allow all seven. Then choose the organisations to connect. Each one becomes its own connection.
SKU Manager stores the client secret encrypted and never shows it again. To rotate it, click Update app credentials. SKU Manager tests the new secret with Xero before saving it.
Setting It Up
Every choice is on the Setup tab, in the order you'd think about them. Press Refresh from Xero to read your chart of accounts and tax rates; this also happens once a day. Each choice saves as you make it, and every picker lists only the accounts that can be used.
Invoices
| Setting | What it means |
|---|---|
| Invoices start from | The first day whose orders are posted, in your time zone. Connecting never posts your order history. |
| Raise an invoice | When the order is confirmed, or when it is fulfilled (dated the day it shipped). |
| Post invoices as | Draft, so your accountant reviews them first, or Approved. Start with Draft. |
| Order sources | Tick each store, and hand-entered orders, that post here. Give each one an invoice-number prefix, and choose who its invoices are addressed to: each order's customer, or one contact. |
| Another connector | Answer Yes if another app posts your orders today. See Switching From Another Connector below. |
Sales Accounts and Tax
| Setting | What it means |
|---|---|
| Sales and shipping | A revenue account for each, for example 200 Sales. Shipping posts as its own line. |
| Domestic tax | Your sales tax rate (for example GST on Income), and a 0% rate for tax-free and export orders. |
| Tax checklist | Tick which tax lines on your orders are your domestic tax, then confirm. SKU Manager suggests one but saves nothing until you confirm. |
| Foreign sales tax | Only shown when your orders carry other tax, such as US state tax. It posts as money you owe, not as income. |
| Walk-in contact | The Xero contact for orders with no customer. Only shown when you have such orders. |
Payment Providers
A provider only appears when your orders use it, so you only see what applies to you.
- Shopify Payments. A clearing account where card payments wait for the payout, a fees account, a payout bank account for each currency you're paid in, and the contacts fees are paid to and payouts come from. A disputes account appears once a dispute has been seen.
- PayPal. A PayPal account in Xero for each currency balance, suggested when there's an obvious match. You also choose a PayPal fees account and the contact fees are paid to. For the conversion clearing account, click Create it in Xero for me.
- Gift cards. A gift card liability account. Selling a gift card isn't a sale, so it posts there with no tax. When the card is spent, that's recorded as a payment from the liability account.
- Other payment methods. One account for bank deposits, cash and manual payments. Store credit and exchange credit aren't money, so they're never posted. Each one is listed so you can record it by hand.
Advanced
Collapsed by default. Here you can pause any kind of record, choose how Xero contacts become customers or suppliers, and push your products to Xero as items.
If you archive an account in Xero that one of your choices uses, the choice is marked Needs a new choice, and the records that use it wait until you pick another.
Preview and Approve
- Preview. On the Activity tab, click Preview. SKU Manager checks every kind of record against Xero without writing anything, and shows one table: how many would post, how many are already in Xero, and how many are blocked, waiting or skipped. A count that isn't fully known yet shows as "at least N".
- Clear the blockers. Each blocker says what's missing and has a Fix in Setup link that opens the exact choice that needs making.
- Approve and start posting. Click Approve and start posting. Each kind of record is approved in turn and re-checked against Xero as it goes. From then on, new orders post within minutes, and anything waiting is retried every hour.
Changing a setting withdraws only the approvals it affects, and you preview those again before they resume. Push now posts what's waiting straight away, without waiting for the hourly run.
Switching From Another Connector
Before posting any record, SKU Manager looks it up in Xero. If it's already there under the same invoice number or reference, the record is adopted: it's linked to the order and left exactly as it is.
- Invoices are adopted by their number, even when the total differs from the order. Any difference is listed on Issues.
- Fees, payouts and conversions are adopted only when the account, currency and amount match too. A record that carries the reference but differs in any of these is a different record, so it's never adopted. Instead it's listed for you to look at.
- Pick a cut-over date and switch the other connector off on that date. If both ran at once, fees and payouts would be counted twice.
- Tell SKU Manager. Set Invoices start from to that date and answer Yes to "Another connector already posts these orders".
- Check what will be adopted. Run Preview. The "already in Xero" column shows each record that will be linked instead of posted.
- Start in Draft. Post invoices as Draft for a week, let your accountant review them, then switch to Approved.
If an adopted invoice's total differs from the order, it's listed on Issues with both totals. This is usually rounding by the previous connector, or an invoice it posted before a refund. Click Accept difference once you've checked it. It reappears only if either total changes.
How It Stays Safe
- No defaults on your books. Anything that's yours to choose waits until you choose it, with the reason shown. Nothing is posted to a fallback account.
- Never posted twice. Every record is looked up before it's created, and claimed so that two runs can't both send it.
- Conversions aren't sales. Xero's bank-feed auto-reconcile often records the money from a PayPal currency conversion as a receipt coded to Sales. If Xero already holds such a receipt, SKU Manager holds the conversion back and shows you the entry. For 14 days after posting a conversion, it keeps checking for a copy that arrives later.
- Nothing fails silently. If Xero can't be read for a check, the record waits, and the Activity tab lists it under Not checked in Xero with the time and the reason.
- Totals you can trust. After posting, SKU Manager reads back what Xero holds and lists any invoice whose total differs from the order.
- Edits follow the order. An edited order updates a draft or unpaid invoice. A paid invoice is left alone and listed. A cancelled order's invoice is deleted or voided.
Issues
The Issues tab lists everything SKU Manager couldn't do on its own, each with what happened and what to do. Where there's a one-click fix, it's on the issue.
| You'll see | What it means | What to do |
|---|---|---|
| Adopted invoice differs | An invoice another connector posted has a different total from the order | Check it, then click Accept difference |
| Already in Xero | Xero holds a receipt that matches a PayPal conversion | Remove the receipt in Xero (Remove & Redo), or click Not this conversion — post it |
| Recorded twice in Xero | A matching receipt appeared after the conversion posted | Remove the receipt, then match the bank line to the PPCONV- entry |
| Record by hand | A PayPal fee refund or dispute fee | Record it in Xero, then click Mark recorded |
| Refused by Xero | Xero rejected a record, with Xero's own message | Fix the cause, then click Push now |
Choices Made for You
These are worked out from your data, so they never need a setting:
- Credit notes are applied to the invoice only when the refund wasn't paid back through a gateway and the invoice still owes at least the credit.
- Fees post as a bill when your clearing account isn't a bank account in Xero, and as spend money when it is.
- Payouts post as receive money, or as a bank transfer when the clearing account is a bank account.
- Fee tax is the default tax rate of the fees account you chose.
- One invoice per order, always.
Contacts and Items
Contacts. SKU Manager reads your Xero contacts when you connect and checks for changes every 15 minutes. It links a contact to a customer when the email matches exactly. It never merges anyone automatically, and suppliers are imported only if you turn that on. When an invoice needs a contact, SKU Manager reuses one with the same name and email if it exists. Otherwise it creates one.
Items. Under Setup → Advanced, you can push each product variant with a SKU to Xero as an untracked item. Items have their own preview and approval. SKU Manager keeps your stock, so Xero items are never tracked or deleted.
Limits
- Xero's rate limits apply to your own app, so they're yours alone. To save your daily quota, Preview doesn't re-check kinds of record that are already approved.
- A rounding difference of up to 0.10 is posted with Xero's rounding adjustment. Xero applies it to Approved invoices when its rounding option is on.
- Stripe and Square payouts aren't read yet. Their payments post to your other payment methods account.
- SKU Manager doesn't post withdrawals from PayPal to your bank. Record each one in Xero as a transfer from your PayPal account to your bank account. If you use Xero's PayPal bank feed, the withdrawal arrives as a statement line, and you create or match the transfer when you reconcile it.