Skip to content

Accounting Self-Serve (config-driven accounting)

The Accounting Self-Serve (config-driven) panel lets you (or VMX, working with you) take direct control of how VMX builds your nightly journal entries — which QuickBooks accounts and classes each sale books to, how finely the numbers split, and which overall posting strategy is used. Find it under Admin → Configuration, at the bottom of the Accounting tab.

Every store starts out running on VMX's built-in accounting setup (the "code fallback"). You only need this panel if you want to change how your books are built — and every change is validated against your real sales history before it's allowed to save, so a bad edit can't silently break your journal entries.

Most stores set this up together with VMX. If you'd like help, contact help@vmxllc.com.

The four accounting layers

The Accounting Self-Serve panel (on Admin → Configuration → Accounting) shows four independent layers. Each controls one aspect of how VMX builds your daily journal entry:

  1. Accounting: Account Mappings (symbolic key → QuickBooks account, by scope) — which QuickBooks account each VMX category (sales income, cost of goods, inventory, tenders, tax, and so on) posts to. Mappings can differ by scope — for example, one department or store can post its sales to a different income account than the rest.
  2. Accounting: Resolution Granularity (store/dept/subdept dimensions per account) — how finely each account is broken out: one combined line, or separate lines per store, per department, or per sub-department.
  3. Accounting: Classes (dept / store×division → QuickBooks class) — which QuickBooks class is stamped on journal-entry lines, assigned by department or by store-and-division combination.
  4. Accounting: JE Strategies & Flags (cogs/sales strategy + behavior flags) — which overall posting strategy VMX uses for cost-of-goods and sales, plus individual behavior toggles.

Each layer is edited as a structured (JSON) value in its own text box. The exact contents are usually prepared with VMX — you don't need to write them from scratch.

"code fallback" vs "config-driven" — what the badges mean

In the Accounting Self-Serve panel, each of the four layers shows a status badge:

  • code fallback (gray) — the layer's box is empty, so this part of your accounting runs from VMX's built-in setup (for stores that have the row-by-row Account Mappings table editor, that includes the table's rows). This is the starting state for every store, and it's a perfectly normal place to stay.
  • config-driven (green) — a value has been saved for this layer, and that value now controls this part of your accounting instead of the built-in setup.

Layers are independent: you can run one layer config-driven while the other three stay on the code fallback.

Saving a layer — validation and replay before anything changes

When you edit a layer in the Accounting Self-Serve panel and click Save, VMX does not simply accept the new value. Every save must pass two checks first:

  1. Validation — the value must be well-formed, and (for account mappings on QuickBooks Online) every account number in it must actually exist in your QuickBooks chart of accounts.
  2. Smoke replay — VMX re-builds journal entries for a sample of your recent real business days using the new value, and confirms the result is clean: no errors, no lines left without an account, and no day thrown out of balance that was balanced before.

If either check fails, nothing is saved — your accounting keeps running exactly as it did — and the page shows an error beginning with:

Nothing saved — accounting.mappings is invalid: … (fix it and save again).

(with the failing layer's name and the specific reason). If you save changes to more than one layer at once, they are checked together: either every change passes and all are saved, or none are.

Saving requires the admin permission to edit Configuration. Without it, the save is refused with "Not permitted."

Rolling back a layer (instant rollback)

To undo a config-driven accounting layer and return to VMX's built-in behavior, in the Accounting Self-Serve panel (Admin → Configuration → Accounting):

  1. Delete everything in that layer's text box so it is completely blank.
  2. Click Save.

As the panel's help text says: "Blank and save to clear (rolls back to the code fallback, still history-logged)." The layer's badge returns to code fallback and that part of your accounting immediately runs from the built-in setup again. The rollback itself is recorded in the save history, so nothing is lost — the cleared value can be restored later.

Save history for accounting layers

Every save in the Accounting Self-Serve panel — including clearing a layer back to the code fallback — is recorded with the complete value that was saved, who saved it, and when. Nothing is ever overwritten without a trace.

That means any earlier version of an accounting layer can be recovered. If you need to see what changed, when a layer was modified, or restore a previous version, contact help@vmxllc.com.

Error: "not valid JSON (the value must be a JSON object)"

Seen when saving a layer in the Accounting Self-Serve panel (Admin → Configuration → Accounting). The text in the layer's box isn't valid JSON — usually a stray character, a missing brace or comma, or a partial paste. Nothing was saved. Fix the value (or re-paste the version you were given) and save again. If you're stuck, contact help@vmxllc.com.

Error: "these QBO account ids do not exist in the chart of accounts"

Seen when saving the account-mappings layer in the Accounting Self-Serve panel for a store connected to QuickBooks Online. One or more account numbers in the value don't match any account in your QuickBooks chart of accounts — the error lists which ones. Common causes: the account was deleted or made inactive in QuickBooks, or a number was mistyped. Nothing was saved. Correct the account numbers (or restore the account in QuickBooks) and save again.

Error: "these account keys resolve to NOTHING under the candidate config (would book as Unmapped)"

Seen when saving a layer in the Accounting Self-Serve panel. During the pre-save replay of your recent business days, some real activity had no account to post to under the new value — those lines would have booked as "Unmapped" in your journal entries. The error lists which categories were left uncovered. Nothing was saved. Add mappings for the listed categories and save again, or contact help@vmxllc.com for help filling the gaps.

How this relates to the Account Mappings editor

Some stores also see a row-by-row Account Mappings editor on the same Admin → Configuration → Accounting tab (a filterable table with pencil-icon editing — see Account Mappings (QuickBooks)). That editor and the Accounting Self-Serve panel are separate tools: the table editor manages individual category-to-account rows, while the Accounting Self-Serve layers control the accounting setup as whole, versioned values with validation, replay checks, and instant rollback.

For stores that have the table editor, the two interact in one important way: while the Accounting Self-Serve account-mappings layer is empty (code fallback), the table rows are what's live; once that layer is saved (config-driven), the saved value takes precedence and the table rows no longer drive the nightly journal entry — until the layer is cleared back to code fallback. If you're unsure which one applies to your store, contact help@vmxllc.com.