Skyline Nexus ERP Skyline Nexus ERP
Architecture

How ERP modules actually integrate

What integrated ERP means in practice: shared master data, subledgers posting to one general ledger, and why batch file transfers drift apart.

Last reviewed 8 min

The word integrated hides three different things

Almost every ERP brochure uses the word integrated. Underneath it sit at least three arrangements that behave very differently when something goes wrong at month end. The first is file or scheduled batch transfer: one system exports, another imports, usually overnight. The second is API or middleware synchronisation, where two separate databases stay in step by exchanging messages. The third is genuinely shared data, where the modules are not separate systems at all but different views over one set of tables, one general ledger, and one set of master records.

None of these is universally correct. Batch transfer is cheap, easy to reason about, and survives an outage on either side because the file simply waits. It is also always stale by design, and a failed job can go unnoticed until someone questions a report. API synchronisation gives near-real-time behaviour and lets you keep systems you have good reasons to keep, but you now own a distributed system: retries, ordering, partial failures, and two copies of the truth that can disagree. Shared data removes the class of problem where two databases diverge, because there is only one, but it means the modules must agree on one chart of accounts, one item definition and one release cadence, which is a constraint rather than a free benefit.

The practical question is not which level is best but which level each flow deserves. Nightly transfer of a bank statement is fine. Nightly transfer of stock levels behind a live point of sale is not. Skyline Nexus sits at the third level for its own modules: accounting, point of sale and inventory, CRM, maintenance, HR, fleet and assets write to one ledger and one set of masters, and integrate outward to external systems by API where a customer already has a system worth keeping.

Master data is where drift starts

Integration failures are usually blamed on interfaces, but the first crack is normally a master record that exists twice with slightly different content. Once two systems each hold their own customer list, the lists diverge within weeks, and every downstream number inherits the divergence.

  • Customer: one identity across sales, invoicing, receipts and credit control, or aged receivables will not agree with the sales report.
  • Supplier: shared across purchasing, payables and payments, including bank details, which are a fraud target when duplicated.
  • Item: one code, one unit of measure, one costing method. Two item masters mean two stock valuations.
  • Chart of accounts: a single structure. If a module keeps its own account list and maps into yours, the mapping is a second thing to maintain and to get wrong.
  • Tax codes: one definition of rate, treatment and effective dates, used by both the transaction and the return.
  • Branch and location: shared, because both stock and accounting are dimensioned by it.
  • Employee: one record behind payroll, attendance, maintenance work orders and vehicle assignment.
  • Asset: one register behind depreciation, maintenance history and disposal.

Subledgers and the control account

A general ledger holds summarised balances. The detail lives in subledgers, and each subledger is tied to a control account in the ledger. Accounts receivable holds a line per customer invoice and receipt, summing to the receivables control account. Accounts payable does the same for supplier bills. Inventory movements post to a stock control account, with cost of goods sold recognised as goods leave. Payroll posts gross pay, employer contributions, deductions and net liabilities. Fixed assets post additions, depreciation and disposals against asset cost and accumulated depreciation. Point of sale posts sales, tax collected, tender types and, where perpetual inventory is used, the cost side of each sale.

The rule that makes this trustworthy is simple: the subledger must always reconcile to its control account, to the currency unit. If the receivables ageing says one figure and the receivables control account says another, one of them is wrong and you cannot know which without investigation. This is why direct journal entries into control accounts are normally blocked. A manual journal into receivables creates a balance no customer owes, and it will not appear on any statement you send.

The reconciliation should be a report you can run on demand, not a spreadsheet someone maintains. When modules share one ledger, the reconciliation is close to tautological. When they do not, it is the single most important check you can automate.

Posting rules and the audit trail

Every ledger line should be traceable back to a source document: an invoice number, a goods receipt, a payroll run, a depreciation schedule, a point-of-sale transaction. If a line exists without a source, someone has bypassed the process. The document identifier should travel with the ledger line, not sit in a separate mapping table.

Posted entries should not be silently editable. Corrections belong in reversing entries or credit notes, which leave both the original and the correction visible, with their own dates and their own users. Period close should lock the period rather than rely on people remembering not to backdate. The test is whether you can take any balance, open it, and walk down to the documents that produced it without leaving the system.

Where integrations actually break

The failure modes are well known and almost always the same ones.

  • Timing and cut-off: a sale posted just before midnight on the last day of the period arrives in the other system after the cut-off, so the two periods never match.
  • Failed jobs nobody watches: a scheduled transfer stops running and the absence of data looks like a quiet week.
  • Partial writes: the invoice header is created, the lines fail, and one side now holds a document the other does not recognise.
  • Duplicate keys: a retried message creates a second copy of the same invoice, or a numbering scheme collides across branches.
  • Currency and rounding drift: two systems rounding at different points, or using different rates for the same day, produce small differences that accumulate.
  • Tax computed twice: the transaction system and the accounting system each calculate tax, using slightly different rules on discounts, inclusive pricing or rounding per line versus per document. The invoice given to the customer and the figure in the return then disagree.

Idempotency and proving both sides agree

Anything that can be retried will be retried, so every posting operation needs a stable key derived from the source document. Sending the same invoice twice must result in one posting, not two. The receiving side should record which keys it has already processed and return the earlier result rather than creating a new one. Without this, ordinary network behaviour turns into duplicate revenue.

Alongside that, you need reconciliation as a first-class feature: counts and totals per period per document type, compared on both sides, with the differences listed rather than summarised. A green tick that only says the last job succeeded is not proof of agreement. The useful report is the one that names the seven documents that exist on one side and not the other.

Branches and currencies

Multi-branch operation means every transaction carries its location as a dimension from the moment it is created, not assigned later by report logic. Stock, revenue, cost and staffing all belong to a branch, and inter-branch transfers need both sides posted or the two branch stock figures will not sum to the company figure. Document numbering must be unique across branches while remaining meaningful within one.

Multi-currency needs the transaction currency, the rate used, and the base currency amount all stored on the line. Storing only the converted figure discards the evidence. Revaluation of open balances and realised gain or loss on settlement then have somewhere to post, and the exchange difference stops being a rounding mystery.

Regional note: clearance changes the timing

Where an e-invoicing regime applies, the timing of integration stops being a design preference. Several tax authorities now require invoices to be cleared or reported to the authority before or as they reach the buyer. The ZATCA regime in Saudi Arabia is a live example: invoices are generated with defined structure, cryptographic elements and identifiers, and the authority is involved in the lifecycle of the document rather than receiving a summary afterwards. That makes invoice creation a real-time integration problem. A nightly batch cannot produce a document the customer is waiting for at the counter.

The picture differs elsewhere, and it is worth being precise. The United States has no federal e-invoicing mandate, and sales tax is administered at state level, with rules and rates varying by state and often by local jurisdiction. Canada operates GST and HST federally with provincial variation, including provincial sales taxes in some provinces. Wider MENA markets are at different stages. The design lesson is to keep tax determination and document issuance in one place, so a market that moves from reporting to clearance changes configuration rather than architecture. Skyline Nexus handles ZATCA clearance from the same transaction that writes the ledger entry, so the invoice the customer receives and the figure in the return come from one calculation.

Common questions

What is the difference between an integrated ERP and systems connected by an interface?

An integrated ERP stores data once: modules read and write the same master records and post to the same general ledger, so there is no second copy to fall out of step. Connected systems keep separate databases and exchange data through files or APIs, which works well but adds retries, timing gaps and reconciliation as ongoing responsibilities. Both can be correct choices, but only the first removes the possibility of the two sides disagreeing.

Why must a subledger reconcile to its control account?

The general ledger holds a single summarised balance, such as accounts receivable, while the subledger holds the underlying detail per customer and document. If the two do not agree, at least one of them is wrong and no report built on either can be trusted. Most systems therefore block direct journal entries into control accounts, so the only way a control balance changes is through a document that also exists in the subledger.

What master data has to be shared between ERP modules?

At minimum: customer, supplier, item, chart of accounts, tax codes, branch or location, employee and asset. These are the records that more than one module reads and writes, so a duplicate copy in a second system will diverge and carry the divergence into every downstream report. Sharing them is usually more important to data quality than the speed of the interface that connects the modules.

Why does e-invoicing make batch integration insufficient?

Clearance-based e-invoicing regimes require an invoice to be submitted to or cleared by the tax authority before or as it reaches the buyer, which means the authority participates in issuing the document rather than receiving a summary later. The ZATCA regime in Saudi Arabia works this way. A nightly batch process cannot satisfy that, because the compliant document must exist at the moment of the transaction.

What does idempotency mean in an ERP integration?

Idempotency means that sending the same instruction more than once produces the same result as sending it once. In practice, each posting carries a stable key derived from its source document, and the receiving system records processed keys and returns the original result instead of creating a duplicate. Without it, ordinary retries after a timeout or network fault silently double-post invoices and payments.

This guide is general information, not tax, accounting or legal advice. Rules differ from country to country and change over time; confirm the current position with your tax authority or a qualified adviser before acting on anything here.

Ready to run your operation on a single workspace?

Guides

ZATCA Phase 2 e-invoicing: what integration actually requires What makes a tax invoice ZATCA-compliant in Saudi Arabia Filing a Saudi VAT return: what your system needs to produce Choosing an ERP in Saudi Arabia: a practical checklist Trial balance to financial statements IFRS and your ERP CRM that ends in the ledger Maintenance and the balance sheet How ERP modules actually integrate The month-end close, in order Balance sheet reconciliation Designing a chart of accounts Cash flow is not profit Working capital and the cost of growth Unit economics and break-even Financial controls a small business actually needs How to record a sale How to record a purchase How to run a trial balance and balance sheet How to cancel or correct a transaction How to run payroll Accounting basics for beginners Accrual vs cash basis accounting Adjusting entries explained Debits and credits explained How to read financial statements Inventory costing: FIFO vs weighted average Journal entries with examples The accounting cycle, step by step Audit materiality and sampling Bank reconciliation step by step Budgeting and variance analysis Financial ratio analysis Finding and correcting accounting errors How a financial statement audit works Journal entry testing and fraud red flags Preparing for an external audit IAS 21 foreign currency accounting explained IFRS 15 revenue recognition: the five-step model IFRS 16 leases: lessee accounting with examples IFRS 18 presentation and disclosure explained IFRS 9 expected credit losses: a practical guide What is IFRS? Who uses it and how it is organised EU e-invoicing mandates: ViDA and country timelines IFRS for SMEs: scope, simplifications and 2027 changes IFRS vs ASPE: choosing a framework in Canada IFRS vs US GAAP: the differences that matter FRS 102 vs IFRS: UK GAAP after the 2026 changes Audit trail and activity log in Skyline Nexus ERP Automatic journal entries in Skyline Nexus ERP Bank reconciliation in Skyline Nexus ERP Budgets and cost centres in Skyline Nexus ERP Financial statements and the year-end audit pack Fiscal year and period close in Skyline Nexus ERP Fixed assets and depreciation in Skyline Nexus ERP Foreign-currency invoicing in Skyline Nexus ERP How Skyline Nexus ERP works: one sale, end to end Migrating to Skyline Nexus ERP: a cut-over plan Multi-branch accounting in Skyline Nexus ERP Roles, permissions and segregation of duties Belgium e-invoicing mandate 2026: Peppol explained France e-invoicing reform 2026: what changes Germany e-invoicing mandate: dates, formats, GoBD Italy e-invoicing through SdI: a practical guide Portugal certified invoicing, ATCUD and SAF-T (PT) Verifactu and e-invoicing in Spain: dates and rules ERP reseller partner: how to become one ERP partner programme for accounting firms

Talk to us about your business

Tell us what you run and we will come back with a straight answer about fit, timeline and price.

No card, no obligation. We reply within one business day.