Skip to content
All blog
Retail e-Invoice Compliance

e-Invoicing when the sale could come from anywhere

Chong 8 min read

Single-channel businesses have one e-invoicing problem: connecting to MyInvois. Multichannel retailers have a different one, and it is not technical.

Their sales originate in three or four places that each capture customer information differently. The counter captures almost nothing, because a queue is forming. The marketplace captures whatever the buyer typed, under a display name that may not be a legal entity. The storefront captures whatever your checkout form asked for, which is whatever somebody decided two years ago.

All of it has to produce a submission that will be accepted. That is a data problem wearing a compliance costume.

What actually causes a rejection

Not the connection. The connection is the part everyone worries about and almost never the part that breaks.

What breaks is a customer record with no registration number against it. A tax identifier that has been entered three different ways over three years, so the same business exists in your system as three customers. An address good enough for a courier but not for a submission. A product line nobody ever classified.

Every one of those was created long before e-invoicing was on anyone's mind, by somebody doing their job quickly. None of it was wrong at the time. It only became wrong when the data started being submitted somewhere that checks.

Which is why the useful work is not integration work. It is going back through the customer file.

The counter is the hardest case, and the one people forget

A marketplace order at least arrives as structured data. Someone typed something into a form, and whatever it says, it says it in fields.

The counter has no form. It has a queue, a cash drawer and a person who needs to serve the next customer. Ask that person to collect a full set of registration details from a walk-in buying one item and you have either slowed the queue or created a habit of entering placeholder text, and the second one is worse, because it looks like data.

So the practical approach is to make the counter fast for the common case and complete for the case that needs it. Most retail counter sales are consumer sales that do not need a business buyer's details. The ones that do are usually repeat trade customers, which means the record should already exist and be findable rather than re-entered. That only works if the counter can see the same customer file as everything else, which is the argument for connecting the POS, Xilnex among them, rather than treating the shop as separate.

Three sources, one customer

Here is the shape of the problem that catches people at scale.

The same business buys from you at the counter in January, through your storefront in March, and through a marketplace in June. If those produce three customer records, then when it comes to submission you have three sets of details, at least two of which are incomplete, and no way to tell they are the same buyer.

Deduplicating that afterwards is real work. Preventing it is mostly a matter of the channels sharing a customer file in the first place, which is the same unification that makes stock and reconciliation work. That is the pattern throughout omnichannel retail: the compliance problem, the stock problem and the money problem are the same problem viewed from three angles.

What SmartB does here

The e-invoice is raised from the same record as the sale, whichever channel that sale came from, and submitted to LHDN MyInvois from inside SmartB. There is no second portal to keep in step and nothing to re-enter.

Submission runs as a scheduled job rather than a task on somebody's list, and the validated status comes back onto the invoice. So the state of your e-invoicing is something you look at, not something you reconstruct at the end of a period by opening two systems and comparing.

The other half is the part that is less exciting and matters more: surfacing which customer records are not ready before you need them to be, so gaps get fixed in bulk rather than one rejection at a time.

What SmartB does not do is tell you what your business is required to do, or when. That is not modesty, it is a real boundary. Software is not tax advice, and what applies to a given business should be confirmed with LHDN or a qualified advisor. Our job starts once you know where you stand.

The order to do this in

Find out what is missing before you need it. Run your customer file against what a submission requires. The answer is usually worse than expected and much cheaper to fix in a batch than at volume.

Consolidate duplicate customers. Particularly the trade customers who have bought through more than one channel. This is where the same business exists three times.

Fix identifiers into one format. Not because a format is intrinsically better, but because inconsistency is what makes matching unreliable later.

Then connect and submit. By this point the technical step is uneventful, which is the whole aim.

Doing it in the other order, connecting first and cleaning up as rejections arrive, is possible. It just means learning about each data problem individually, at the least convenient moment, one invoice at a time.

Common questions

Does SmartB tell me what my business is required to do?

No. SmartB is software, not tax advice. What applies to your business, and when, should be confirmed with LHDN or a qualified tax advisor. What SmartB does is make issuing and submitting straightforward once you know where you stand.

Can I issue e-invoices for counter sales as well as online orders?

Yes. Wherever the sale originated, counter, storefront or marketplace, it becomes an invoice against the same customer records with the same treatment. The point of unifying channels is that compliance stops being a separate job per channel.

Why is master data the hard part rather than the connection?

Because a submission is only as good as the record behind it. Incomplete customer details and inconsistent tax identifiers are what cause rejections. The connection itself is the simpler half, and it is the half that gets all the attention.

Do I have to submit each invoice manually?

No. Submission runs as a scheduled job and the validated status is written back onto the invoice, so the round trip completes without anyone starting it by hand.

Compliance is a data project

The businesses that find e-invoicing painful are rarely the ones with the most channels or the most invoices. They are the ones whose customer file grew for a decade without anyone needing it to be complete.

Multichannel retail makes that worse, because it creates three or four ways for a customer record to be born and only one standard for what that record eventually has to contain. Sorting that out is unglamorous, has no launch day, and is most of the work.


See what you could build

Start a free trial and describe what your business needs in plain language — SmartB Studio builds the module for you.

Start free trial
Get started

No credit card · Cancel anytime · Your data stays yours