Synthetic Industry

Inspectable example · updated 2026-10-11

Synthetic mapping table: eight categories and what a sync should do with each

An invented category-to-account table shows mapped, unmapped, archived, renamed and reused-code cases, with the disposition a checked mapping should give each line.

An example, not a customer case study. Scope and evidence limitations are described below.

An invented table and chart

Every name, code and identifier here is made up. The table is keyed by account identifier; codes and names are shown for people. The chart at the time of the run has account identifiers ACC-1 to ACC-6, where ACC-4 has been archived and ACC-6 has had its code changed since the table was approved.

If the matrix is wider than the box, scroll horizontally to read every column. Keyboard: focus the matrix and use Left/Right.

category          account id   chart status       disposition
online-sales      ACC-1        active             post
shipping-income   ACC-2        active             post
refunds-issued    ACC-3        active             post
event-tickets     ACC-4        ARCHIVED           hold line; name category and account
gift-cards        (no row)     -                  hold line; no default account
Online Sales UK   (no row)     -                  hold: renamed in source, treated as new
subscriptions     ACC-6        active, code moved post; identifier unchanged
bank-fees         ACC-5        active, type=income hold: account type unsuitable for an expense line

What each disposition means

A line posts only if its category has a row and the row's account is active and of a suitable type. Everything else is held with the category and account named, and the rest of the batch still posts. A renamed source category has no row until a person adds one, because guessing that it is the same category is exactly how misposting happens.

  • Every line either posts or is held by an explicit rule; none posts to a default.
  • The run summary reports the held count and lists each held category.
  • A code change on ACC-6 does not move where subscriptions post, because the table uses the identifier.

What was and was not exercised

This is a specification written for review. It was not run against a Xero organisation or a QuickBooks company and no integration was exercised. Xero's guidance that integrations should exclude archived accounts and validate stored mappings is the basis for the dispositions, but your accountant decides which categories map to which accounts and whether a category should exist at all.

Using the example

If a table like this would help your sync, the fixed-price job "Replace hard-coded account codes in a finance sync with a checked mapping table" is £345 for up to 25 categories, an untested published price confirmed after your enquiry, with payment after the agreed checks pass and you sign off. Send invented examples and counts first, never credentials, bank details, invoices or customer records; real records are handled only after written agreement through a secure handoff.

Sources and limits

  • Xero: account and payment mapping Checked 2026-10-11.
    • Xero says developers should not rely on the default chart of accounts because users often customise it or import different account codes, that users should choose accounts from drop-downs populated from their own chart of accounts rather than typing account codes, and that accounts with status ARCHIVED should be filtered out.
    • Users can change their chart of accounts after set-up, so Xero advises validating stored mappings, before each call for infrequent integrations, and sending the user back to fix a missing or archived account.
    • Payment accounts are filtered by account type BANK or by EnablePaymentsToAccount.
  • Xero: creating invoices best practice Checked 2026-10-11.
    • Xero's invoice guidance lists the validation error returned for an account code that is not valid or has been archived (for example "Account code '1234' is not valid, or has been archived").