Go Develop All articles
Product Engineering

Entities Are Not Strings: Designing UK Business Onboarding That Knows What It Is Looking At

Go Develop
Entities Are Not Strings: Designing UK Business Onboarding That Knows What It Is Looking At

Photo: Richard Hoare , CC BY-SA 2.0, via Wikimedia Commons

UK B2B onboarding has a habit of mistaking a text field for a control. A form asks for a company name and a VAT number, and the product team treats the pair as proof that the organisation exists, is solvent and is entitled to trade. In practice, those two strings describe different things: one is a label, the other is a tax registration. Neither is, by itself, a legal entity.

The trouble appears when the organisation on the other side of the form is not a private limited company. A sole trader types their own name into the company name field. A charity enters a charity number where a VAT number is expected. A UK subsidiary of an overseas group supplies its company number but hesitates over the VAT field because the registration sits with the parent. A public body has no Companies House record at all. The form accepts every one of these, and the resulting record looks complete while being quietly wrong.

The cost of a flat record

A record that cannot be reconciled with a register creates downstream work. Invoices are addressed to the wrong legal person. Contracts are signed by someone whose authority has not been checked. Credit control chases a VAT number that belongs to a different organisation. When the customer later asks for a VAT invoice, finance discovers that the entity details were never right.

The fix is not a longer form. It is a data model that separates the legal entity from its trading name and from each registration it holds. A company can have several identifiers, and those identifiers have different sources, formats and levels of assurance. Treating them as attributes of a single 'company' record is the design error that makes validation feel impossible.

Model the entity before the form

Start with an entity record that captures the legal form: private limited company, public limited company, limited liability partnership, sole trader, partnership, charity, public body or other. Each form implies a different set of expected identifiers.

A limited company should have a Companies House number. An LLP also has a Companies House number, usually beginning with OC. A charity may have a charity number for England and Wales, a Scottish charity number from OSCR, or a Northern Ireland charity number, and may or may not be incorporated. A sole trader has a Unique Taxpayer Reference but no Companies House record. A public body may have neither.

Store identifiers in a separate table with the identifier type, the issuing source, the value, the date checked, the result and a confidence level. This allows a single entity to hold a company number, a VAT number and a PAYE reference without forcing them into one flat row. It also gives you an audit trail when a human reviews the account.

What the registers can and cannot tell you

Companies House offers a public API that can confirm whether a company number exists, return the registered name, show company status and list officers. It is useful for confirming that a limited company is real and active. It will not tell you whether the person signing up works for that company, and it will not validate a trading name.

HMRC provides a VAT number checking service, but access is restricted and the response is not a full credit check. Local format validation can catch obvious typos, but format alone proves little. A VAT number can be valid and still belong to a different entity, and a legitimate business can be below the VAT threshold.

PAYE references are not generally available for public verification in the way company numbers are. They can be requested and format-checked, but they are a signal rather than a gate. The same applies to a sole trader's UTR, which is not a public register entry.

Charity regulators publish registers, and public bodies can often be confirmed through gov.uk or their own statutory references. None of these sources share a single key, which is why the entity model matters more than any individual check.

Pass, review, block

The practical question is not 'is this valid?' but 'what should the product do next?' Three outcomes are enough for most UK B2B sign-up flows.

Block when the signal is definitive. A company number that does not exist, a company shown as dissolved, a VAT number that fails both format and the available HMRC check, or obvious test data in a production flow are reasonable grounds to stop. Blocking should be rare, explainable and logged. Do not block because a name differs by punctuation or because a sole trader has no company number.

Review when the signal is contradictory but not conclusive. A company name that differs materially from the Companies House registered name, a recently incorporated company with a single director, a UK company whose stated parent is overseas, a charity entering a VAT number, or an entity claiming VAT registration while operating as a sole trader all warrant a second look. Route these to a queue with the evidence attached rather than rejecting them at the form.

Allow when the edge case is legitimate and the risk is understood. A sole trader without VAT registration, a charity with a charity number, a public body with no company number, and an overseas-owned UK entity with a valid UK company number are all normal. The product should accept them and record what was checked, not force them into a limited-company template.

Designing the review queue

A review queue is only useful if the reviewer can see why the case arrived. Capture the submitted values, the register responses, the timestamp and the rule that triggered the review. Give the reviewer a small set of decisions: approve, request evidence, reject with reason. Feed the outcome back into the rules so that repeated false positives are reduced.

Keep the queue small. If every sole trader lands in review, the queue becomes a backlog and the control becomes theatre. Tune the rules against real traffic, and measure how many reviews are approved without further evidence. A high approval rate is a sign that the rule is too broad.

Questions worth asking early

A better form asks 'What kind of organisation are you?' before it asks for a company name. It distinguishes legal name from trading name. It offers 'I am a sole trader' as a first-class option. It asks for a company number only when a company number is expected, and it explains why the information is needed.

That last point matters for conversion. UK business users are used to supplying a company number, but they are less accustomed to a form that rejects a charity because the VAT field is empty. Clear labels and conditional fields reduce support tickets and improve the quality of the record at the same time.

Onboarding as risk management

Validation is not a gate to keep people out. It is a way of knowing who you are doing business with and what evidence supports that view. A product that can distinguish a Ltd from a sole trader, a charity from a company, and a UK subsidiary from its overseas parent is a product that can bill correctly, contract safely and support its own finance team.

The VAT number that was not a VAT number is not an edge case to be handled by support. It is a signal that the data model was too flat. Fix the model, make the checks proportionate, and let the form ask better questions.

All Articles

Related Articles

The Art of Taking Things Away: A Deprecation Playbook for UK Product Teams

The Art of Taking Things Away: A Deprecation Playbook for UK Product Teams

Blackspots, Basements and Stone Walls: Engineering Field Software That Keeps Working

Blackspots, Basements and Stone Walls: Engineering Field Software That Keeps Working

The Messy Prospect Test: Why a Hostile Demo Dataset Belongs in Your Product

The Messy Prospect Test: Why a Hostile Demo Dataset Belongs in Your Product