UK B2B VAT compliance requires a consistent VAT registration number across ecommerce and Sage. Mismatch equals reverse-charge accounting error risk.
At a glance
The count of B2B customers whose VAT registration number recorded in the ecommerce platform does not match the VAT number held in the Sage customer master. Every mismatch is a customer where the system cannot reliably decide the correct VAT treatment, which under UK Making Tax Digital and EU cross-border reverse-charge rules is a compliance exposure, not a cosmetic data difference. The card exists because the VAT number is the single field that drives whether you charge standard-rate VAT, zero-rate, or apply the reverse charge, and disagreement between your sales surface and your book of record means the decision is being made on bad data.
| What it counts | The distinct count of B2B customers present in both the ecommerce platform and the Sage customer master whose VAT registration number does not match between the two systems after normalisation (case, spacing, and country-prefix harmonised). DTC customers without a VAT number are out of scope; this card is the B2B compliance cohort. |
| Normalisation | Before comparing, both numbers are normalised: whitespace stripped, case harmonised, country prefix (GB, IE, DE) handled consistently. A difference that is purely formatting is not a mismatch. A genuine digit difference, a missing number on one side, or a different registered entity is a mismatch. |
| Mismatch types | Present-vs-absent (one system has a number, the other is blank), digit-difference (both present, genuinely different), and prefix-only (same digits, different or missing country prefix). The drill splits these because they have different fixes and different compliance weight. |
| Currency | Not applicable. This is a count metric. The exposure is the VAT value on the affected customers’ transactions, which the drill links through to the invoice and revenue cards. |
| Entity scope | Card respects the dashboard entity filter. In Multi-Entity Console the comparison is per entity, because the same trading partner can be a different registered entity in different jurisdictions. |
| Time window | 30D |
| Alert trigger | >0, sentiment vat_mismatch. Configurable per workspace, but most UK VAT-registered merchants leave it at zero because any mismatch on a B2B customer is a potential VAT return error. |
| Roles | owner, finance, operations |
Calculation
Calculated automatically by comparing the VAT registration number on matched B2B customers across your connected ecommerce platform and the Sage customer master. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK B2B merchant on Sage Intacct (single entity, GBP, UK VAT-registered, MTD-compliant) selling through a BigCommerce B2B portal and an Adobe Commerce wholesale store, with a meaningful slice of EU trade. Snapshot 14 Apr 26, evaluating customers active in the last 30 days. The card reads 7 mismatches, above the zero alert line. The finance lead opens the drill and splits by mismatch type.| Mismatch type | Count | Example | Compliance consequence |
|---|---|---|---|
| VAT number blank in Sage, present in ecom | 3 | EU buyer, number captured at checkout, not synced | Reverse charge cannot be applied; risk of charging VAT in error |
| VAT number blank in ecom, present in Sage | 2 | Existing customer, ordered without re-entering number | Checkout charged VAT; invoice should be reverse-charged |
| Digit difference (both present) | 1 | Transposed digits on one side | One number is invalid; VAT validation will fail |
| Country prefix difference | 1 | Same digits, GB vs blank prefix | Validation ambiguity; usually a normalisation gap |
| VAT Number Mismatch (this card) | 7 |
- All 7 are compliance exposure, but the 3 EU reverse-charge cases are the ones that cost real money if they ship wrong. When an EU business customer supplies a valid VAT number, the UK supplier zero-rates and the customer accounts for VAT under the reverse charge. If the number is blank in Sage, the invoice cannot be reverse-charged and the system either charges UK VAT in error (which the customer will dispute and reclaim, creating a credit-note cycle) or stalls. The fix is to sync the captured number into the Sage master before the invoice batch runs, which is why the 30-day window matters: it catches the mismatch while the invoice is still pending.
- The blank-in-ecom, present-in-Sage cohort is the silent one because the checkout already made the wrong decision. Two existing customers ordered without re-entering their VAT number, so the storefront treated them as if they had none and may have charged standard VAT at checkout. Sage knows the correct number and would reverse-charge, creating a disagreement between what the customer was charged and what should be invoiced. This produces a reconciliation break and usually a credit note. The card surfaces it before close so finance can correct the invoice rather than discover the mismatch when the customer queries it.
- The single digit-difference case means one of the two numbers is invalid, and you must establish which. A transposed or mistyped VAT number will fail validation against the relevant authority (HMRC for GB numbers, VIES for EU numbers). The correct number is whichever validates; the card does not assume the Sage side is right, because the error can be on either system. The fix is a validation check, then correct the wrong side, then resync. Shipping against an invalid VAT number is a clear MTD exposure.
- The prefix-only case is usually a normalisation gap, not a true mismatch, and it should be the easiest to close. Same digits, different country prefix (GB123456789 vs 123456789) is a formatting difference that the card’s normalisation should already harmonise. If a prefix-only difference still surfaces, it points to a field-map normalisation rule that needs tuning rather than a customer-data correction. Fixing the rule clears this whole subset and prevents future false positives.
- This card sits directly upstream of the VAT return, which is why a B2B merchant usually runs it at zero tolerance. A mismatch that is not resolved becomes a revenue line with the wrong VAT code, which flows into Revenue Lines Missing VAT Code (MTD) and ultimately into Current VAT Return Status (MTD). HMRC penalises careless errors in MTD submissions. The cross-channel point is that the storefront captures the VAT number at checkout and Sage holds it for accounting, and only the join between them reveals when the two disagree. Neither system alone can flag the mismatch, because each trusts its own copy.
Sibling cards merchants should reference together
| Card | Why pair it with B2B Customers with VAT Number Mismatch |
|---|---|
| Ecom Customers Absent from Sage | The prior failure mode: the customer does not exist in Sage at all. Fix that before this. |
| Revenue Lines Missing VAT Code (MTD) | The downstream symptom. A VAT mismatch is a common cause of a wrongly coded revenue line. |
| Current VAT Return Status (MTD) | The end of the chain. Unresolved mismatches contaminate the live VAT return. |
| Transaction Imbalances | Reverse-charge errors often surface as imbalanced or mis-posted transactions. |
| Sage Active Customers | The B2B subset of active customers is the population this card validates. |
| Ecom Customers Absent from Sage Customer Master | The cross-channel sync view; absent customers cannot be VAT-checked at all. |
| Sage Top B2B Accounts | Prioritise mismatch fixes on your highest-value B2B accounts first. |
Reconciling against Sage
Where to look in Sage Intacct: The native Sage Intacct views to run side by side with this card:Accounts Receivable → Customers, the VAT registration field on each customer record (often a standard or custom field depending on the localisation pack) Reports → Accounts Receivable → Customer List with the VAT registration column exposed, exported and compared against the ecommerce customer export by account reference Tax / VAT configuration (the tax schedules and reverse-charge rules that consume the VAT number to decide treatment) Interactive Custom Report (ICR) on the Customer data source listingThe reconciliation discipline is normalisation. A manual comparison that does not strip whitespace, harmonise case, and handle country prefixes will report formatting differences as mismatches and overstate the count. The card normalises first, so it reports only substantive disagreements. Agree the normalisation rules before comparing. Common reconciliation pitfalls:CustomerID,CustomerName, account reference, and the VAT registration field, joined against the storefront’s B2B customer export Order Entry → Sales Orders for the affected customers, to see which open orders are about to invoice with the wrong VAT treatment
- Formatting vs substance. GB123456789, GB 123 4567 89, and gb123456789 are the same number. A manual comparison that compares raw strings finds mismatches the card correctly ignores.
- Which system is authoritative? The card does not assume Sage is right. For a digit-difference mismatch, the correct number is the one that validates against HMRC or VIES. Resolve by validation, not by trusting one side.
- Reverse-charge configuration. A correctly matched VAT number can still be mis-treated if the Sage tax schedule or reverse-charge rule is misconfigured. This card validates the number; it does not validate the tax rule. A clean count here does not guarantee correct VAT treatment if the schedule is wrong.
| Reason | Direction | Why |
|---|---|---|
| Normalisation | Card may read lower | Card harmonises whitespace, case, and country prefix; a raw-string comparison reports formatting differences as mismatches. |
| B2B scope | Card may read lower | Card evaluates only B2B customers with a VAT number expected; a full comparison may include DTC records with blank numbers by design. |
| Validation-based resolution | Either | Card can flag which side is invalid against HMRC or VIES; a manual comparison only shows that the two differ, not which is wrong. |
| Inactive customers | Card may read lower | Card scopes to customers active in the window; a full master comparison includes dormant accounts whose mismatch is not currently a transaction risk. |
| Multi-entity registration | Either | The same trading partner can hold different VAT registrations per jurisdiction. Card compares per entity; a consolidated comparison can read these as mismatches. |
| Sync timing | Either | A number updated by a sync between two pulls appears matched in one and mismatched in the other. Card uses an aligned timestamp. |
| Custom field mapping | Either | If Sage holds the VAT number in a custom field not mapped in the field map, the card reads it as blank. Verify the field map points at the right field. |
| Card | Expected relationship | What the comparison reveals |
|---|---|---|
| bigcommerce.customers | Source side | BigCommerce B2B captures VAT numbers on company accounts; the comparison against Sage reveals where they disagree. |
| adobe_commerce.customers | Source side | Adobe Commerce B2B company profiles hold a VAT field; unsynced or edited values are the mismatch source. |
| shopify.customers | Source side | Shopify B2B (companies) captures VAT numbers; the wholesale channel comparison surfaces the gap. |
| Revenue Lines Missing VAT Code (MTD) | Downstream | An unresolved mismatch is a leading cause of a wrongly coded revenue line. Fixing this card reduces that one. |
| Current VAT Return Status (MTD) | End of chain | Unresolved mismatches contaminate the live VAT return; clearing this card protects the submission. |
| Ecom Customers Absent from Sage | Prior stage | A customer absent from Sage cannot be VAT-checked at all; resolve absence before mismatch. |