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.
| Field | ABN | ACN |
|---|---|---|
| Length | 11 digits | 9 digits |
| Issued by | Australian Business Register (ABR) | ASIC |
| Who has one | Companies, trusts, sole traders, partnerships | Companies only |
| Purpose | Tax and dealings with government | Company 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.