Job ledger-sync-account-code-mapping-table · revised 11 October 2026
Replace hard-coded account codes in a finance sync with a checked mapping table
Up to 25 source categories map to active ledger accounts through one reviewed table, and an unmapped or archived account is held with its name instead of posting to a default.
You might be seeing
- A run fails with a message that an account code is not valid or has been archived
- New product or expense categories appear under a catch-all account
- Nobody can say which source category is meant to post to which account
No passwords, keys, card details or admin invites needed to start.
What usually happened
Account codes are scattered through code or a loose spreadsheet, a default stands in for any category without a mapping, and the sync never checks the mapping against the current chart of accounts. A change to the chart, or a new category, therefore breaks runs or posts money to the wrong account without a visible error.
Who it’s for: A bookkeeper, operations lead or developer whose sync posts invoice or expense lines with account codes written into code or a spreadsheet and who has seen lines land in the wrong account or runs fail after the chart of accounts changed.
Usually starts when: An account was archived, renamed or reused and the next run fails or posts to a default account, or a new product category quietly lands in the general sales account.
The result: Each of up to 25 source categories maps to exactly one active account in a reviewed table keyed by the account's stable identifier, and a category without a mapping or whose account is archived stops that line, names the category and account, and posts nothing to a default.
Check whether this job fits
Answer these from what you can see without sending logins, invoices or customer data. Nothing is submitted unless you choose to contact us; this is a fit check, not permission for us to touch your systems.
Checks you can run yourself
List the accounts a sync actually uses
Ask your developer, or read the sync settings, for the distinct account codes or names used for one month of posted lines. In the accounting system, check each is active.
Look for: Codes that are archived, shared by unrelated categories, or missing from the list entirely.
What you get
- The change as a pull request or exported configuration with the mapping table in a form your bookkeeper can read and edit
- A test log for the unmapped, archived and renamed cases, redacted
- A one-page procedure for adding a category and for what to do when a line is held
Included
- One sync, one source of categories and one Xero organisation or QuickBooks Online company
- A mapping table of up to 25 source categories to account identifiers, with tax type or tracking fields only where the sync already sets them
- A check of the table against the live chart of accounts before each run, filtering out archived and unsuitable account types
- A held-line list for unmapped categories and unusable accounts, with no fallback account
- Tests on a demo or sandbox file that archive and rename mapped accounts
Not included
- Designing or restructuring your chart of accounts, or choosing which account a category belongs in
- Tax rate set-up or tax treatment of any category
- More than 25 categories, or several unrelated syncs, without a new quote
- Moving history that was posted to the wrong account: your accountant decides
- Bookkeeping, tax, audit or any accounting advice, including deciding how a transaction should be treated in your accounts
- Changing posted, reconciled or locked-period transactions: your accountant or account holder decides and performs those
- Live changes: your authorised account holder applies any agreed change and holds the production keys
How we know it’s done
Agreed with you before work starts. Each check produces evidence you keep.
Every one of the agreed categories resolves to exactly one active account identifier in the table, and the table shows account name and code beside each.
Evidence: The table as handed over and the live chart extract used to validate it, redacted.
A source line with a category that has no mapping posts nothing and appears in the held list with the category name.
Evidence: The run log and the held list.
Archiving a mapped account in the demo or sandbox file before a run holds the affected lines naming the category and the account, and the rest of the batch still posts.
Evidence: The before and after account status, the run log and the posted-line count.
Changing a mapped account's code in the test file does not change where its category posts, because the table uses the identifier.
Evidence: The account before and after the change and the posted lines.
Sign-off. You inspect the named test evidence and sign off before payment. Your authorised account holder performs and verifies any live change, and decides what happens to records already posted.
If it fails. If an agreed check does not pass, you do not pay for this fixed scope. We hand over the findings and agree whether to stop or re-quote; no surprise work and no change to your live records.
When it fits, and when we stop
It fits when
- Your bookkeeper or accountant provides the intended category-to-account list, or approves one we draft from invented categories
- A demo organisation or sandbox company with a similar chart of accounts exists for the tests
- The sync lets the posting step take an account from a table rather than from fixed code
- A person on your side can approve the table and the held-line procedure
- Real financial records, customer data and keys are handled only after written agreement, through a secure handoff we agree with you; the first enquiry and the fit check use invented or redacted examples
We stop and tell you if
- The intended mapping is unknown and nobody can decide it; the first step is your accountant's decision
- The sync posts through a closed connector that cannot take a mapping table
- The chart of accounts changes daily by design, which needs a different approach
What could go wrong
Before merge, closing the pull request leaves the sync unchanged. After merge, your developer can revert to the previous codes; the table is a plain file or sheet that can be restored from its history. Posted history is not changed by this job.
Scroll the table sideways to read it all.
| Risk | How we handle it |
|---|---|
| A category is approved against the wrong account and money posts consistently to the wrong place. | Your accountant approves the table; the job records decisions and shows the table in a readable form before go-live. |
| A code is reused for a new account while the table still points at the old one. | The table is keyed by the account's stable identifier, and a rename-and-reuse case is a named acceptance test. |
| A held line is ignored and revenue or expenses are understated. | Held lines are listed with a count in every run summary, and the procedure names who clears them. |
An independent reviewer checks that no category can reach a default account, that archived accounts are really rejected in the live-chart check, and that the table is readable and editable by a non-developer.
How we deliver
We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.
- Agree the category list, the account for each and the held-line procedure with your accountant in writing
- Reproduce the failing or mis-posted case on a demo or sandbox file by archiving a mapped account
- Build the mapping table keyed by stable account identifier and load it from one place
- Validate the table against the live chart of accounts before each run and hold lines that fail
- Run the unmapped, archived and renamed cases and capture what is posted and what is held
- Independent review of the table, the diff and the test log, then hand over for your developer to merge and your accountant to approve the table
This is a one-off job, not emergency cover or a subscription. We confirm eligibility, the total price, a start window and a delivery date before you accept. Work starts only after agreed inputs, secure access, any licences and necessary permissions are in place. Platform and supplier charges are excluded unless the written quote includes them. No charge or booking is created by an enquiry.
Need to keep it working?
If categories change often, discuss a standing check of the table against the chart each month as a separate agreement.
Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.
Explore an ongoing engineering lane, or mention the responsibility you need in your enquiry.
What you can check
This is a new service. We have not delivered this job for a client yet.
Other ways to get this done
- Xero's account-mapping guidance for integrations says to let users pick accounts from a filtered list, filter out archived accounts and re-validate stored mappings; your developer can follow it directly. developer.xero.com
- Ask your accountant to keep a simple category-to-account list in one place, even before any code changes.
Questions
Will you decide which account each category uses?
No. That is an accounting decision for your accountant or bookkeeper. The job builds the table, checks it and records their decisions.
What happens to lines that were posted to the wrong account before?
They are not touched. Correcting history is for your accountant, who can use the held and mapped lists as a starting point.
Why not a default account as a safety net?
A default hides errors. Holding the line makes the gap visible the same day, which is easier to fix than a month-end surprise.
Send an enquiry
Send us
- Roughly how many source categories exist and how they reach the sync
- A few invented categories with the account each should use
- What happened when an account was last archived or renamed
- Do not send credentials, bank details, invoices, customer records or confidential code in the first enquiry
Later, once you agree
- Read access to the sync definition or code through the agreed route, with secrets held by you
- A demo organisation or sandbox company created by you, with a chart of accounts resembling yours
- Your accountant's approved mapping list for the first 25 categories
- A secure, company-controlled handoff route agreed in writing before any access; no passwords, keys or customer records by ordinary email
You keep the live accounting organisation, payment accounts, production keys and every customer and financial record. We work on an authorised demo, sandbox or synthetic copy through a company-controlled handoff, never a personal login. Your authorised account holder approves and performs any live change and checks the result under their own keys.
Email fallback: open your mail app
If website submission is unavailable, review and send the fallback email yourself. An email fallback is not a website receipt. Or write to hello@syntheticindustry.ai with “ledger-sync-account-code-mapping-table” as the subject.