Implementation Guide

Small Business Accounting Enterprise Implementation Guide

Comprehensive v1.1.19 implementation manual for multi-company architecture, edition replacement, company isolation, permissions, settings, customer copying, sales channels, API keys and remote fulfilment.

23 chapters3,356 wordsPublic guide
Complete online manual

This guide covers implementation, configuration, daily use and troubleshooting for Small Business Management โ€“ Accounting Enterprise.

Small Business Accounting Enterprise Implementation Guide

Nomad Small Business Accounting EnterpriseVersion 1.1.19Enterprise administrators, implementation partners, finance managers and systems integrators

This guide explains how to implement the multi-company edition safely. It covers edition replacement, company isolation, company creation and switching, permissions, company-specific settings and email, customer copying, multi-company upgrades, sales channels, scoped API keys, remote fulfilment, testing and operational governance.

1. Enterprise architecture in plain language

Enterprise runs one WordPress plugin but maintains multiple accounting company contexts. Each company has its own operational and ledger records, company settings, branding, email profile, currencies and reporting context. The active company selector determines which companyโ€™s books the user is working in.

The active company is a security and accounting boundary

Before creating, editing, importing, reporting or sending any document, confirm the active company shown in the Enterprise navigation. A correct record in the wrong company is still a serious error.

Company registry

Creates, switches and archives company contexts. It is not the place to maintain duplicate company profile fields.

Company Settings

The authoritative identity, tax, banking, document and reporting profile for the active company.

Company-scoped tables/options

Store transactions and settings separately so Company A does not share books with Company B.

Company permissions

Control which users may access which companies.

Sales Channel

A company-specific remote marketplace or website allowed to see selected products and send scoped orders/sales.

Scoped API key

A credential tied to one company, one Sales Channel and optionally one exact source domain.

2. Requirements, licence and edition replacement

ItemEnterprise value / guidance
Product Codesmall-business-accounting-enterprise
Nomad Product IDnsbs_prod_223f6bf039d175017893accee870a904
Edition ruleEnterprise replaces Free and Pro; do not keep lower editions active.
LicenceActivate through Small Business Management Hub โ†’ Licences.
BackupFull database and uploads, verified before activation and before every multi-company migration.
EnvironmentUse a current supported WordPress release and the PHP version required by the Enterprise package.
Step-by-step tutorial

Activate Enterprise over Free or Pro

  1. Create and verify a full backup.
  2. Record the current company name, numbering, tax, currency and email settings.
  3. Upload Accounting Enterprise 1.1.19.
  4. Activate Enterprise. The current bootstrap resolves Free/Pro conflicts before shared constants and Enterprise-only files load.
  5. Refresh the WordPress administration once to complete pending setup.
  6. Confirm the lower edition is inactive.
  7. Activate the Enterprise licence.
  8. Open Companies and confirm the migrated original company exists.
  9. Open Company Settings for that company and verify all details before creating a second company.
Expected result

Enterprise is the only active edition and the original companyโ€™s compatible data is available in its own context.

3. Design the company model before creating companies

Create a separate Enterprise company for a distinct legal entity or separately governed set of books. Do not create companies merely as departments or report filters unless they genuinely require separate numbering, tax, bank, currency, users and financial statements.

QuestionCreate a separate company whenโ€ฆDo not create a separate company whenโ€ฆ
Legal and tax identityThe entity has its own registration/tax identity.It is only a product line of the same legal entity.
Banking and receivablesIt has separate bank accounts and customer balances.The same company simply wants a departmental report.
Document numberingIt must issue its own quotes/invoices and branding.All invoices are legally issued by one company.
Access controlDifferent teams must not see each otherโ€™s books.The same finance team works one shared ledger.

4. Create and configure a company

Step-by-step tutorial

Create the second company

  1. Open Settings & Automation โ†’ Companies.
  2. Choose Add Company and enter the initial company name.
  3. Save. The new company opens Company Settings because that screen is authoritative for the profile.
  4. Complete registration, tax, contact, banking, payment terms and reporting-period fields.
  5. Configure invoice numbering and quote numbering unique to the company.
  6. Configure branding, document templates and company email settings.
  7. Configure base/enabled currencies and exchange rates.
  8. Return to Companies and confirm the selector name/summary synchronised from Company Settings.
Expected result

The new company has a complete independent profile and can issue test documents without borrowing another companyโ€™s identity.

Screenshot required hereCompanies registry

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Enterprise โ†’ Companies.
  • Required state: Show at least two demo companies with one active and one inactive/available for switching.
  • Must include: Company name, status, active-company marker, switch action and Add Company control.
  • Redact or avoid: Real registration numbers and contact details.
  • Suggested caption: The Companies screen creates and switches accounting contexts; Company Settings holds the full profile.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

Screenshot required hereEnterprise company selector and context bar

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Any Enterprise Accounting page after selecting the second demo company.
  • Required state: Use a category page with related tabs visible.
  • Must include: Active company name, company switch control, Back button, category tabs and Enterprise badge.
  • Redact or avoid: No special redaction is required with demo data.
  • Suggested caption: Always verify the active company before creating, importing, reporting or sending a document.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

5. User-to-company permissions

Enterprise access should be assigned deliberately. A user may need one company, several companies or all companies depending on role. WordPress administrator status alone should not replace company-access design in daily operations.

Step-by-step tutorial

Test company permissions

  1. Create a test finance user.
  2. Grant access to Company A only.
  3. Sign in as the test user and confirm Company B is not selectable or readable.
  4. Grant Company B and confirm it becomes available.
  5. Remove Company A and verify access is revoked.
  6. Repeat with the restricted Accounting Agent role if external bookkeeping access is required.
Expected result

The user sees and operates only the authorised company contexts.

Screenshot required hereCompany permission assignment

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Enterprise company/user access administration.
  • Required state: Show one test finance user assigned to Company A only and another manager assigned to multiple companies.
  • Must include: User, role, permitted companies and save/update control.
  • Redact or avoid: Email address or username if it identifies a real person.
  • Suggested caption: Assign only the company contexts each user is authorised to operate.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

6. Company-specific settings, branding and email

Enterprise resolves the active company before loading company settings, email identity, branding and document links. Configure and test each company separately. Do not assume the second company inherited correct details from the first.

Per-company configuration checklist

  • Company legal/trading identity and tax registration.
  • Address, phone, website and accounting contact.
  • Bank details and payment terms.
  • Quote/invoice numbering and prefixes.
  • Logo, colours and document template.
  • Sender name, reply-to and transactional email profile.
  • Base currency, enabled currencies and exchange rates.
  • Financial year and VAT reporting cycle.
  • Chart of Accounts and mappings.
  • Customer portal behaviour.
Step-by-step tutorial

Prove email isolation

  1. Select Company A and send a test invoice to a controlled address.
  2. Verify Company A sender, logo, bank details and link.
  3. Switch to Company B and repeat.
  4. Verify Company B identity and that no Company A details appear.
  5. Inspect Transactional Email logs or wp_mail fallback result for both messages.
Expected result

Each message and document uses the correct active-company identity and delivery profile.

Screenshot required hereCompany-specific branding and email

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Create a composite of Company Settings, document branding and email profile for two demo companies.
  • Required state: Show visibly different prefixes/logos/sender names.
  • Must include: Company name, document prefix, logo/colour, sender name and reply-to domain.
  • Redact or avoid: Bank account number, SMTP/API credentials and real registration numbers.
  • Suggested caption: Each company must issue documents and email using its own approved identity.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

7. Copy selected customers between companies

Enterprise can copy selected customer/contact records between companies. The copy is intentionally limited to customer/contact information. Quotes, invoices, payments, statements, portal history and other transactions must not be copied, because they belong to the source companyโ€™s books.

Step-by-step tutorial

Copy a customer safely

  1. Select the source company and open the customer-copy facility.
  2. Choose one or more customer/contact records.
  3. Select the target company.
  4. Preview or confirm the customer fields that will be copied.
  5. Run the copy.
  6. Switch to the target company and inspect the new customer record.
  7. Confirm there are no copied invoices, quotes, payments or balances.
Expected result

The target company has an independent contact record with no transaction history from the source company.

Screenshot required hereCustomer copy confirmation

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Customer copy facility followed by the target-company customer record.
  • Required state: Use one sample customer copied from Company A to Company B.
  • Must include: Selected source customer, target company, copied contact fields and empty transaction history in the target.
  • Redact or avoid: Real customer details.
  • Suggested caption: Enterprise copies customer/contact information only; transactions remain in the source company.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

8. Company-specific master data and ledger

Products, categories, customers, suppliers, accounts, mappings and transactions are company-scoped. Decide whether each company needs its own product catalogue or whether a controlled initial import should be used. Never assume a product ID from Company A has meaning in Company B.

9. Multi-company upgrades and scheduled jobs

An Enterprise upgrade must apply database changes to every company, not only the active company. Scheduled recurring invoices, reminders, statements and other jobs must also iterate through authorised company contexts and restore context correctly after processing. After an upgrade, test at least one record and one scheduled workflow in every company.

Post-upgrade company matrix

  • Company selector loads every active company.
  • Company Settings and numbering load correctly in each company.
  • Customers, products, invoices, payments and expenses are visible only in the correct company.
  • Ledger and reports load in each company.
  • Email sender and document branding are correct in each company.
  • Recurring jobs do not generate cross-company documents.
  • Portal users see only their company/customer records.
Screenshot required herePost-upgrade company matrix

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Release Readiness or a documented company-by-company upgrade checklist.
  • Required state: Show every demo company checked after an Enterprise update.
  • Must include: Company, database upgrade status, scheduled jobs, settings check and smoke-test result.
  • Redact or avoid: Internal server paths or credentials.
  • Suggested caption: Validate every company context after an Enterprise update, not only the currently active company.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

10. Sales Channels and API keys

A Sales Channel represents one marketplace or remote website authorised to obtain selected products and return checkout/sale events for one Enterprise company. Product visibility is explicit: a product is not exposed merely because it exists in Accounting. The API key is scoped to the company and channel, and a domain-scoped key also requires the exact source host header.

Step-by-step tutorial

Create a Sales Channel connection

  1. Select the correct Enterprise company.
  2. Open Sales Channels & API.
  3. Create the Sales Channel with the exact marketplace domain and currency.
  4. Assign only the products that the channel may sell.
  5. For Plan products, set the marketplace plan key.
  6. For License products, set the activation limit.
  7. Generate the scoped API key and copy the full key immediately; only the prefix remains visible later.
  8. Save the Accounting URL and API key on the authorised marketplace/licensing server.
  9. Run Test Accounting Connection and verify callback registration.
Expected result

The remote channel can retrieve only its assigned products and submit authorised test events for the correct company.

Screenshot required hereSales Channel and scoped API key

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Enterprise Sales Channel configuration.
  • Required state: Use a demo channel tied to one company and one exact domain.
  • Must include: Channel name, company, domain/source host, currency, product scope, key prefix and status.
  • Redact or avoid: Full API key, signing secret and private callback secret.
  • Suggested caption: Scope each remote connection to the correct company, Sales Channel and source domain.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

11. Product types and fulfilment boundaries

Product typeMeaningBilling / fulfilment
PlanHosted service or marketplace entitlementFree, once-off, monthly or yearly; marketplace adapter grants access.
LicenseDownloadable/licensed softwareOnce-off, monthly or yearly; Licensing & Sales Server issues/renews licence and activation limit.
Physical productTangible stock itemOnce-off only; may use inventory fields; no plan entitlement or software licence.
A product cannot combine types

Do not classify one product as Plan and License or Plan and Physical. Create separate products when the commercial items have different fulfilment rules.

12. Remote API and source-domain control

EndpointPurpose
GET /wp-json/ana/v1/pingConnection and capability test.
GET /wp-json/ana/v1/productsRetrieve channel-assigned products.
GET /wp-json/ana/v1/products/{id}Retrieve one authorised product.
POST /wp-json/ana/v1/checkout-orderCreate a secure pending remote checkout order.
POST /wp-json/ana/v1/salesSubmit a verified completed sale.
POST /wp-json/ana/v1/callback-registrationRegister the remote purchase-completed callback where supported.

Requests use the X-ANA-API-Key header. Domain-scoped keys also require X-Nomad-Source-Host to match the configured domain. Treat API keys like passwords: never publish them, email them casually or store them in source control.

Screenshot required hereRemote integration connection test

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Sales Channel connection/test or diagnostics screen.
  • Required state: Show a successful ping/product-scope test and callback registration status.
  • Must include: Remote domain, company/channel identity, successful response, product count and callback status.
  • Redact or avoid: API key, callback secret, bearer token and raw personal data.
  • Suggested caption: A successful connection test confirms identity and scope before live commerce is enabled.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

13. Payment and fulfilment architecture

Enterprise creates pending marketplace orders and uses its native sale engine for invoices, VAT, payments, CRM automation, inventory, audit and ledger workflows. Payment gateways remain separate connectors. A verified connector completes the Enterprise order using a unique payment reference. Callback events are recorded and retried with idempotency so the same event does not issue duplicate licences, entitlements, invoices or payments.

Step-by-step tutorial

Test a remote paid sale

  1. Use a staging Sales Channel and a low-risk test product.
  2. Create the checkout order from the remote channel.
  3. Complete payment through the configured test gateway connector.
  4. Verify the completed sale creates the correct Enterprise invoice and payment in the intended company.
  5. Verify the callback creates the intended plan entitlement, software licence or physical fulfilment record.
  6. Replay the same event reference deliberately in staging.
  7. Confirm no duplicate invoice, payment or fulfilment record is created.
Expected result

The full remote sale is company-scoped, auditable and idempotent.

14. Customer portal and public document isolation

Public quote/invoice tokens and portal access must resolve the correct company before loading records or email/branding settings. Test with users from different companies and customers. A valid token for Company A must never retrieve a Company B record.

Screenshot required herePublic document and portal isolation

Add this image immediately after completing or explaining the preceding section.

  • Screen to capture: Create an annotated composite showing Company A portal/document and Company B portal/document.
  • Required state: Use two demo customers and clearly different company branding.
  • Must include: Company identity, customer identity, document prefix and only the authorised document list.
  • Redact or avoid: Public tokens, login details and real customer information.
  • Suggested caption: Public links and portals must remain isolated by both company and customer.

Editor note: replace this complete placeholder with a responsive image and keep the suggested caption as the figure caption.

15. Enterprise production acceptance test

Enterprise acceptance matrix

  • Activation over Free tested.
  • Activation over Pro tested.
  • Clean Enterprise activation tested.
  • Licence active with canonical Product Code and Product ID.
  • At least two companies created and fully configured.
  • Company access permissions verified with non-admin users.
  • Customer copy tested with zero transactions copied.
  • Quote โ†’ invoice โ†’ payment โ†’ statement completed separately in each company.
  • Expense, bank import, reconciliation and ledger posting tested in each company.
  • Email, branding, numbering, currency and reporting isolation verified.
  • Portal/public document isolation tested.
  • Sales Channel product visibility and domain-scoped API tested.
  • Remote sale and duplicate-event replay tested.
  • Scheduled jobs tested across all companies.
  • Backup and restore tested.

16. Enterprise troubleshooting

SymptomLikely causeWhat to do
Enterprise activates but wrong files loadShared constant collision from old Enterprise buildUse 1.1.19 or later and replace the old plugin folder.
Record appears in wrong companyUser acted under the wrong active context or import was scoped incorrectlyStop, identify affected records and correct under an approved migration plan.
Company email uses another brandActive-company context or settings were not confirmedVerify company selector, Company Settings, branding and email profile.
Remote API returns domain mismatchSource host does not exactly match the Sales Channel domainCorrect domain and X-Nomad-Source-Host; do not weaken the check.
Remote sale creates no fulfilmentCallback registration, queue or connector verification failedInspect callback events, retry queue and remote connector logs.
Duplicate remote recordsUnique event/payment reference was not preservedInvestigate idempotency keys before deleting or replaying anything.
User can see an unauthorised companyCompany permission assignment is too broadRevoke access immediately and audit company/user mappings.

17. Company-isolation test scripts

Test A: Record isolation

  1. Create Customer A1 in Company A and Customer B1 in Company B.
  2. Create invoice A-TEST in Company A and B-TEST in Company B.
  3. While Company A is active, search for B-TEST and confirm no result.
  4. While Company B is active, search for A-TEST and confirm no result.
  5. Repeat for payments, expenses, bank feeds and ledger entries.

Test B: Settings isolation

  1. Use different company names, logos, bank details, invoice prefixes and sender addresses.
  2. Create and email one test invoice per company.
  3. Compare public pages and messages side by side.
  4. Confirm every identifying field comes from the correct company.

Test C: Scheduled automation isolation

  1. Create one due subscription in each company with different customers and prefixes.
  2. Run the scheduled/billing process in staging.
  3. Confirm each company receives one correctly numbered invoice.
  4. Confirm company context is restored after processing and no records cross companies.

18. Enterprise data governance model

Data ownerData setGovernance control
Enterprise administratorCompany registry and company accessApproval for create/archive and access changes.
Company finance ownerCompany settings, numbering, bank, tax and reporting periodsCompany-specific sign-off.
Accounting ManagerTransactions, ledger, reconciliation and period closeReview, audit and separation of duties.
Sales-channel ownerProduct assignments, channel domain and pricesChannel change log and test sync.
Systems administratorAPI keys, connectors, backups and updatesSecret management, logs and recovery testing.

19. API key lifecycle

  1. Create: Generate only for an approved company/channel/domain and copy once into secure secret storage.
  2. Identify: Use the retained prefix to know which key is installed without exposing the secret.
  3. Rotate: Generate a replacement, update the remote system, test, then revoke/delete the old key.
  4. Revoke: Remove immediately when a channel is decommissioned, domain changes or compromise is suspected.
  5. Audit: Review channel keys and recent API/callback activity periodically.

20. Remote integration acceptance matrix

TestExpected result
Ping with valid key and hostSuccess and advertised capabilities.
Ping with wrong hostDomain/source-host rejection.
Products requestOnly assigned products for the scoped company/channel.
Unassigned product requestNot returned/authorised.
Checkout orderOne pending order with stable token/reference.
Verified completed saleOne company invoice/payment and intended fulfilment.
Replay same eventNo duplicate invoice, payment, entitlement or licence.
Temporary callback failureQueued event with bounded retry and no duplicate local sale.
Key deletionRemote requests fail after revocation.

21. Company archive and decommissioning

Archiving a company should prevent ordinary new work while preserving required records. Before archive, complete open transaction review, exports, backups, portal/access shutdown, Sales Channel disconnection and API key revocation. Do not delete tables merely to remove a company from the selector.

Archive checklist

  • Open receivables/payables reviewed.
  • Final bank reconciliation and reports exported.
  • Customer portal access disabled or communicated.
  • Sales Channel product assignments removed.
  • API keys revoked and callbacks disabled.
  • Final backup and retention location recorded.
  • Company archived by authorised administrator.

22. Enterprise upgrade acceptance

After every Enterprise update

  • All companies visible and switchable.
  • Original and newest company both load records.
  • Company-specific settings and email identities intact.
  • Company permissions unchanged.
  • One report and one transaction screen load in every company.
  • Sales Channel ping/products test passes for each active remote channel.
  • Callback queue and scheduled jobs show no cross-company errors.
  • No lower Accounting edition became active.