The demo is always the same. An order is placed on the website, someone refreshes the accounting screen, and the invoice appears. Everyone claps. Two months later the shop has 41 units on the website and 33 units in the accounts, three customers exist twice, and nobody can say which number is correct.
That gap is not a software problem. It is a design decision nobody made. SQL Accounting integration and AutoCount integration both turn on the same two calls: how the website reaches the accounting system, and which side may change each record. This page is the engineering view of those calls rather than a feature list. ZenWeb builds these connections through our custom web development team, and most repair jobs we inherit trace back to a direction-of-truth question nobody asked.
The video below shows what two-way accounting sync looks like in practice — orders, invoices, customers and stock moving both ways — before we put Malaysian systems and MyInvois rules on top of it.
Automate Ecommerce Accounting with MyWorks—Shopify, QuickBooks, WooCommerce, Xero
Source video: MyWorks on YouTube
1. What Website to Accounting Integration Actually Covers
Quick Answer: A website to SQL Accounting integration is five pieces of work: reaching the accounting system, mapping records to its fields, deciding sync direction per record, handling failures, and reconciling at month end. Posting the invoice is the easy part.
Both SQL Account and AutoCount are Windows applications that usually run on a server inside the office, not in a data centre. Your website runs somewhere else. That one fact shapes every quote you will receive, and it is why even a simple-looking online ordering system needs a proper integration plan. We scope the work as five deliverables:

- Reachability. How the website talks to an on-premise accounting server — a cloud agent, a VPN tunnel, a middleware service, or a file drop.
- Field mapping. Website fields matched to debtor codes, item codes, tax codes and account codes exactly as your chart of accounts uses them.
- Direction of truth. For every record type, one system is the master and the other follows. No record is mastered twice.
- Failure handling. Retries, duplicate protection, and an alert that reaches a human when a batch does not land.
- Reconciliation. A report that proves web orders, posted invoices and stock movements agree for the period.
Most quotes price the first two and assume the last three. That is how a four-week job becomes a four-month one, and why the finance team quietly keeps re-keying "just to be safe" long after go-live.
Key takeaway: Price accounting integration as five deliverables. A quote that only covers "post the invoice" prices the demo, not the system your finance team has to live with.
Not sure which records your systems actually disagree on?
We map website records against SQL Account or AutoCount fields and send back a written gap list before anyone writes code.
See how we scope integration work →2. API, Middleware or Scheduled Export: Which Route Fits
Quick Answer: There are four honest routes into SQL Account or AutoCount: a direct API or SDK call, a middleware connector, a scheduled file export and import, or manual re-keying. Order volume and how often stock changes decide which one you need, not the size of the budget.
Route choice sets both the build cost and the running cost for years, which is why it comes up early in any custom build or template site project. The table compares the four as we deliver them.

| Route | Typical build | Sync latency | Main failure mode | Best fit |
|---|---|---|---|---|
| Direct API or SDK | 4–7 weeks | Near real time | Office server offline; a version upgrade breaks the call | One branch, managed IT, live stock |
| Middleware connector | 2–4 weeks | 5–60 minutes | Mapping drifts when the chart of accounts changes | Most Malaysian SME stores |
| Scheduled export and import | 1–2 weeks | Daily or twice daily | A batch silently duplicates or is skipped | Steady low volume, tight budget |
| Manual re-keying | None | Whenever staff get to it | Typing errors surface only at month end | Under roughly 30 orders a month |
Source: ZenWeb client sample, Malaysian SME builds, 2024–2026. Licence.
Read the failure column, not the build column. A direct API buys live stock and a dependency on the office server staying up. Middleware costs a monthly fee and buys a queue that survives an afternoon of downtime. Scheduled export suits a shop selling twenty orders a week, provided something alerts you to a skipped batch. The same trade-off shapes both your WordPress, Shopify or custom build decision and your e-commerce website budget.
Key takeaway: Pick the route by how fast stock must be right and how much downtime you can absorb. Build time is the least useful number in the table.
3. What Syncs, In Which Direction, and Who Owns the Truth
Quick Answer: Two-way sync does not mean every record moves both ways. Each record type has one owner. Orders and payments flow up from the website; stock, prices and credit notes flow down from accounting. Master a record in both systems and they will disagree within weeks.
We fill this table in before writing a line of code. Direction is not a preference; it follows whoever edits that record most often. A custom inventory system moves the stock row, but it does not remove the need to name an owner.
| Record | Direction | Typical frequency | Owns the truth |
|---|---|---|---|
| Customer or debtor | Website to accounting | On first order only | Accounting, after creation |
| Sales order and invoice | Website to accounting | Per order | Website |
| Payment received | Website to accounting | Per settled payment | Payment gateway |
| Stock level | Accounting to website | Every 15–60 minutes | Accounting |
| Product and price | Accounting to website | Daily, or on change | Accounting |
| Credit note or refund | Accounting to website | Per refund | Accounting |

Source: ZenWeb client sample, SQL Account and AutoCount builds, Malaysia, 2024–2026. Licence.
Two rows cause most of the arguments. Customers are created by the website but edited by finance, so the website may create a debtor and must never overwrite one — the same discipline that keeps a CRM clean. Payments belong to the gateway. The accounting entry should carry the gateway's transaction and payout identifiers, which is why our guide to payment gateway integration from FPX to Stripe stores both on every order.
Key takeaway: Write the owner column down and get finance to sign it. Every stock and duplicate-customer dispute later is settled by that one column.
4. What MyInvois e-Invoicing Changes for the Integration
Quick Answer: MyInvois adds a third party to every invoice. The document is submitted to LHDN, validated asynchronously, then returned with a unique identifier and QR code. Your integration must wait for that result rather than assume the invoice is final the moment it posts.
The rollout now reaches almost every trading SME. Per LHDN's e-Invoice implementation timeline, businesses with annual turnover up to RM5 million came into scope on 1 January 2026, while taxpayers under RM3 million are exempted. That leaves a clear band of Malaysian SMEs who must issue validated e-Invoices — and whose website is often where the invoice starts.

Three design consequences follow, and all three are easy to miss:
- Validation is asynchronous. LHDN's MyInvois SDK submits documents and returns the result by polling, so your order has an in-between state: posted, not yet validated. Show that state, do not hide it.
- Documents are digitally signed. Each submission carries a digital signature for authentication and integrity, which means key handling belongs in the build plan, not in a later support ticket.
- Rejections need an owner. A failed validation is not a failed order. Someone must fix the buyer's tax identification number or classification code and resubmit, so the integration needs a queue a human can actually see.
Most SMEs let SQL Account or AutoCount submit to MyInvois. That is sensible: the accounting system already holds the tax setup, including how SST applies to services. It also narrows the website's job to handing over complete invoice data with the right tax codes, then showing the validated status to the customer. If e-invoicing is new to you, start with our guide to what small businesses must do in 2026.
Key takeaway: Treat MyInvois validation as a status your order carries, not an event that always succeeds. The rejection queue is the part that needs a named owner.
5. Where Accounting Integrations Break in the First 90 Days
Quick Answer: Stock drift is the single biggest source of post-launch tickets, followed by duplicate invoices. Neither is a coding bug. Both come from an unclear owner or a missing duplicate check. The table shows failure types by share of tickets, with median time to fix.
| Failure type | Share of tickets | Share | Median fix |
|---|---|---|---|
| Stock drift between web and accounts | 27% | 4 days | |
| Duplicate invoice for one order | 21% | 2 days | |
| Sync broken by an accounting upgrade | 16% | 5 days | |
| Wrong tax or account code mapping | 13% | 1 day | |
| Customer created again on every order | 12% | 3 days | |
| e-Invoice rejected at validation | 11% | 2 days |
Source: ZenWeb client sample, Malaysian SME builds, 2024–2026. Licence.

The upgrade row is the one owners never expect. Accounting software updates on the vendor's schedule, and a build tied to one version can stop posting on a Tuesday morning for no visible reason. Version-pin the connection, read the release notes, and test after every upgrade. It is the same pattern as e-commerce tracking that silently breaks in GA4: nothing errored, it just stopped agreeing.
Key takeaway: Roughly six in ten first-quarter tickets are ownership and duplicate problems, not code defects. A duplicate check and a signed owner column prevent most of them.
Stock on your site never matching the accounts?
We trace where the two numbers separate and rebuild the sync so they stop drifting.
Compare inventory system options →6. How to Run the Integration Project Without Surprises
Quick Answer: Run a SQL Accounting integration in six steps, and put the two boring ones first. Agree the record owners, freeze the account and tax codes, confirm how the server is reachable, build one document type end to end, run a parallel period, then wire alerts before handover.
How to run a website to SQL Accounting or AutoCount integration
This is the sequence we follow on every build. Steps 1 and 2 involve your accountant, not your developer, and skipping them is what turns a fixed quote into a variation order.
- Agree the owner for every record. Use the sync map above, get finance to sign it, and treat it as the specification.
- Freeze the chart of accounts and tax codes. Mapping to codes that change mid-build is the most expensive rework in the project.
- Confirm reachability. Decide the cloud agent, VPN or middleware path, and confirm who maintains that server and its backups.
- Build one document type end to end. Usually the sales invoice, including tax, rounding and a duplicate check, before adding anything else.
- Run a two-week parallel period. Post automatically and re-key manually, then compare daily until the two agree without exception.
- Wire alerts and a reconciliation report. A failed batch must page a person, and the period report must prove orders, invoices and stock movements agree.

The parallel period is the step clients most want to cut, and the one that catches rounding and tax-code errors while they are still cheap. Two weeks of duplicate effort beats a year-end adjustment. It is also where the handover notes get written, which matters as much here as in ongoing website maintenance.
Key takeaway: The two cheapest steps — signing the owner column and freezing the codes — remove most of the cost risk from the whole project.
7. How Malaysian SMEs Are Moving Off Manual Posting
Quick Answer: Manual re-keying is still the most common way Malaysian SME websites reach their accounts, but its share falls every year. Middleware is taking most of that ground, because it needs no server exposed to the internet and no in-house developer.
| Method | 2022 | 2023 | 2024 | 2025 | 2026 | 2027* |
|---|---|---|---|---|---|---|
| Manual re-keying | 58% | 49% | 41% | 33% | 27% | 22% |
| Scheduled export and import | 22% | 24% | 25% | 25% | 24% | 23% |
| Middleware connector | 15% | 20% | 25% | 31% | 36% | 40% |
| Direct API or SDK | 5% | 7% | 9% | 11% | 13% | 15% |

Source: ZenWeb-built Malaysian SME stores, 2022–2026; 2027 projected. Licence. * Projection based on the 2022–2026 trend in this sample.
Two things drive the shift. E-invoicing put a deadline on invoice data that had been good enough for years. Stock accuracy stopped being optional once one catalogue had to serve a website, a shopfront and a marketplace at once. Owners who accepted a day-old figure now expect the freshness they see across Malaysian e-commerce, which reshapes how we scope an e-commerce website build.
Key takeaway: Middleware is winning because it needs no exposed server and no in-house developer. Build so the route can change later without rewriting your order code.
8. Getting This Built Properly
Quick Answer: Judge a SQL Accounting integration on five things. A signed owner map, frozen tax and account codes, a duplicate check on every posted document, a visible failure queue, and a reconciliation report your finance team can run without asking you.
Vendors sell connectors. Nobody sells the owner map, and that is what decides whether the numbers agree in month three. Ask any supplier how their connector behaves in three situations:

- The office server is off. Does the order queue and retry, or is it simply lost?
- A customer orders twice in a minute. Does the duplicate check hold, or do two invoices post?
- An e-Invoice is rejected. Who sees the failure, and where do they fix and resubmit it?
Those answers tell you more than any feature list. These systems also hold customer names, addresses and order histories, so the build must satisfy your PDPA obligations for web systems. An integration copies personal data into a second place, and that place needs the same protection as the first.
ZenWeb builds and repairs these connections as part of our web development service, on WooCommerce with a WooCommerce developer behind it or on a fully custom platform. Start with the owner map. Every other decision follows from it.
Ready to stop re-keying orders into your accounts?
Book a free 30-minute session. We'll review your website, your SQL Account or AutoCount setup and your e-invoicing position, then give you an integration plan with a route, a record owner map and a realistic timeline.
Get my free integration plan →
9. Frequently Asked Questions
1. How long does a website to SQL Accounting integration take?
Two to four weeks for a middleware connector, four to seven for a direct API build, one to two for a scheduled export. Add a two-week parallel period before handover in every case. The variable is rarely the code; it is how fast your accountant can freeze the chart of accounts and tax codes.
2. Can my website post invoices into AutoCount and SQL Account at the same time?
Yes, if the two serve different companies or branches and the order carries a field deciding which one receives it. Never post the same document to both. Two systems holding one invoice creates a reconciliation problem no report can settle later.
3. Why does my website stock never match the accounting stock?
Almost always because both systems are allowed to change it. Accounting should own stock and push it to the website on a schedule, with the website only reserving quantities against orders. If staff also adjust stock in the website admin, the two will drift however often they sync.
4. Does the website or the accounting system submit the e-Invoice to MyInvois?
For most Malaysian SMEs, the accounting system does, because it already holds the tax setup and the buyer details. The website's job is to hand over complete, correctly coded invoice data and to show the validated status back to the customer once LHDN returns it.
5. What happens to the integration when the accounting software is upgraded?
It may stop posting without any visible error. Version-pin the connection, read the release notes before upgrading, and run one test order through the full path straight after. Build that into your maintenance routine rather than treating it as an incident.


