2026-07-06

ABN vs ACN: what is the difference, and how to validate both programmatically

An ABN and an ACN look similar, both are strings of digits issued by an Australian authority, and they get confused constantly. Here is the plain difference, why the "an ABN is just an ACN plus two digits" shortcut is only sometimes true, and how to validate both before you rely on them.

The plain difference

An ABN (Australian Business Number) is an 11-digit number issued by the Australian Business Register (ABR). It identifies an entity, which could be a company, a trust, a sole trader, or a partnership, for tax purposes and for dealings with government. An ACN (Australian Company Number) is a 9-digit number issued by ASIC. It identifies one thing only: a company registered under the Corporations Act.

FieldABNACN
Length11 digits9 digits
Issued byAustralian Business Register (ABR)ASIC
Who has oneCompanies, trusts, sole traders, partnershipsCompanies only
PurposeTax and dealings with governmentCompany registration under the Corporations Act

The relationship, and its critical limit

For a company acting in its own right, the ABN is built from the ACN: take the 9-digit ACN, prefix it with a 2-digit check value, and you get an 11-digit ABN. That is where the "ABN equals ACN plus two digits" shortcut comes from, and for that one case, it holds.

But that case, a company trading as itself, is not the only shape an Australian entity can take, and the shortcut breaks for every other one. A trust has an ABN. It does not have an ACN of its own, because a trust is not a company and is not registered with ASIC. The trust is administered by a trustee, and when that trustee is a corporate trustee, the trustee is a separate legal entity with its own ABN and its own ACN, distinct from the trust's ABN. A sole trader has an ABN and no ACN at all. A partnership has an ABN and no ACN at all. In every one of these cases, there is no ACN to extract from the ABN, because the number was never built from one.

This is the point most explainers get wrong: they show the ACN-to-ABN formula, then imply it runs in reverse for any ABN you are handed. It does not. Given an arbitrary ABN, you cannot tell from the number alone whether it belongs to a company, a trust, or a sole trader, so you cannot reliably derive an ACN from it. You have to look the entity up and check its entity_form (company, trust, sole trader, partnership, or other) first. If it is a trust, the entity you should be checking for deregistration, insolvency, or a banned-persons match is the corporate trustee, not the trust itself, because that is where legal liability sits.

How to validate each programmatically

Both numbers carry a check-digit algorithm, so you can catch a typo or a fabricated number before you spend a lookup call on it. The ABN uses a weighted modulus-89 calculation across all 11 digits. The ACN has its own, simpler check digit over its 9 digits. Validate the check digit first, then resolve the entity if it passes.

curl https://api.auo.com.au/v1/validate/51824753556 \
  -H "Authorization: Bearer auo_sk_test_your_key"

That call tells you whether the check digit is structurally valid, and whether the number is an ABN or an ACN shape, in milliseconds and with no external dependency. To go further, resolving to a full entity record (including its entity_form, so you know whether an ACN even applies) is one more call:

curl https://api.auo.com.au/v1/resolve \
  -H "Authorization: Bearer auo_sk_test_your_key" \
  -H "Content-Type: application/json" \
  -d '{"abn": "51824753556"}'

The response returns the entity's legal name, its entity_form, its ACN when one genuinely exists, and the corporate trustee record when the entity is a trust, each field carrying the source and date it came from. See the ABN lookup API page for the full response shape.

Try it free

The full API works against a sandbox at no cost, so you can validate and resolve real-shaped ABNs and ACNs before switching to live data.

Get a free sandbox key