asicapidocs

Validate an ACN, ABN, ARBN or ARSN

Detect and validate an Australian Company Number, ABN, ARBN or ARSN with the ASIC check digit algorithm, normalise its format and extract the ACN from an ABN.

An Australian Company Number (ACN) is nine digits with a check digit that ASIC calculates using a weighted modulus 10 algorithm; an Australian Business Number (ABN) is eleven digits with a modulus 89 check, and for a company its last nine digits are usually the ACN. Australian Registered Body Numbers (ARBN) and Australian Registered Scheme Numbers (ARSN) use the ACN formula. This endpoint tells you which kind of identifier a string is, whether it passes the check digit test, its normalised and display forms, and the ACN embedded in an ABN, so you can validate user input, clean a customer file or decide which endpoint to call before purchasing an extract. It is free and does not contact ASIC.

GEThttps://api.asicapi.dev/v1/identifiers/{value}

Path parameters

Prop

Type

Query parameters

Prop

Type

Example request

Request
curl "https://api.asicapi.dev/v1/identifiers/53%20004%20085%20616" \
  -H "Authorization: Bearer $ASICAPI_KEY"

Example response

Response
{
  "object": "identifier",
  "input": "53 004 085 616",
  "type": "abn",
  "valid": true,
  "normalized": "53004085616",
  "formatted": "53 004 085 616",
  "acnFromAbn": "004085616"
}

An ACN that fails the check digit test still returns 200 OK:

Invalid ACN
{
  "object": "identifier",
  "input": "004085617",
  "type": "acn",
  "valid": false,
  "normalized": "004085617",
  "formatted": "004 085 617",
  "acnFromAbn": null
}

Response fields

FieldTypeDescription
objectstringAlways identifier.
inputstringThe value exactly as supplied in the path, after URL decoding.
typestringDetected type: acn, abn, arbn, arsn or unknown. Nine-digit inputs are acn unless hint says otherwise; eleven-digit inputs are abn; anything else is unknown.
validbooleantrue when the check digit is correct for the detected type. Always false for unknown.
normalizedstring or nullDigits only, with spaces removed. null when type is unknown.
formattedstring or nullASIC's display format: nnn nnn nnn for nine-digit numbers, nn nnn nnn nnn for an ABN. null when type is unknown.
acnFromAbnstring or nullFor a valid ABN whose last nine digits pass the ACN check digit test, those nine digits as an ACN. null for other inputs, and for ABNs issued to sole traders, partnerships and trusts, which are not ACN based.

The ACN check digit

ASIC displays an ACN as three blocks of three digits, but the spaces are not part of the number. The ninth digit is a check digit calculated from the first eight with a modified modulus 10 algorithm. To validate ACN 004 085 616:

  1. Weight digits one to eight with weights 8, 7, 6, 5, 4, 3, 2, 1.
Digit00408561
Weight87654321
Product002403215121
  1. Sum the products: 0 + 0 + 24 + 0 + 32 + 15 + 12 + 1 = 84.
  2. Take the remainder after dividing by 10: 84 mod 10 = 4.
  3. Complement the remainder to 10: 10 - 4 = 6. If the complement is 10, the check digit is 0.

The calculated check digit 6 equals the ninth digit, so 004 085 616 is valid. Changing the last digit to 7 fails the test, which is the 004085617 example above and the identifier used in the acn_invalid error message on company endpoints.

ARBNs and ARSNs are constructed with the same formula. There is nothing in the number itself that distinguishes an ACN from an ARBN or ARSN; the register that issued it does. Pass hint when you know which kind you hold, or let the company endpoint resolve it, since numberType on the response tells you what ASIC issued.

The ABN check digit

An ABN is eleven digits validated with a weighted modulus 89 check:

  1. Subtract 1 from the first digit.
  2. Multiply each of the eleven digits by the weights 10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.
  3. Sum the products. The ABN is valid when the sum is divisible by 89.

For the Australian Taxation Office's published example ABN 51 824 753 556:

Digit5 → 41824753556
Weight10135791113151719
Product4012410286355397585114

The products sum to 534, and 534 = 6 x 89, so the ABN is valid. Its last nine digits, 824 753 556, do not pass the ACN check (the calculated check digit is 5, not 6), so acnFromAbn is null: this ABN does not belong to a company.

The example response above uses ABN 53 004 085 616. After subtracting 1 from the first digit the products are 40, 3, 0, 0, 28, 0, 88, 65, 90, 17, 114, which sum to 445 = 5 x 89, so the ABN is valid, and its last nine digits are the valid ACN 004 085 616, so acnFromAbn is "004085616".

Valid test ACNs

ASIC publishes the following ACNs as passing the check digit test. They are safe to use in tests and fixtures and are the only ACN-like numbers used in these docs, together with ASIC's public sample company 009 136 109.

000 000 019000 250 000000 500 005000 750 005
001 000 004001 250 004001 500 009001 749 999
001 999 999002 249 998002 499 998002 749 993
002 999 993003 249 992003 499 992003 749 988
003 999 988004 249 987004 499 987004 749 982
004 999 982005 249 981005 499 981005 749 986
005 999 977006 249 976006 499 976006 749 980
006 999 980007 249 989007 499 989007 749 975
007 999 975008 249 974008 499 974008 749 979
008 999 979009 249 969009 499 969009 749 964
009 999 964010 249 966010 499 966010 749 961

A valid check digit does not mean a company exists. Most of the numbers above are unallocated. Call GET /v1/companies/{id} to confirm registration, which returns company_not_found for an unallocated ACN.

Errors

Invalid identifiers are not errors. Any input returns 200 OK with valid set accordingly, so a single call handles good and bad values alike. The only errors are platform errors.

CodeHTTP statusWhen
validation_error422hint is not one of acn, arbn, arsn or abn.
unauthorized401The API key is missing or invalid. See authentication.
rate_limited429You exceeded 600 requests per minute or 20 concurrent requests.

Notes from the ASIC register

  • Spaces are display only. ASIC always prints an ACN as nnn nnn nnn to aid readability, and the ABR prints an ABN as nn nnn nnn nnn. The inserted blanks are not part of the number. Store normalized and render formatted.
  • Leading zeros matter. ACNs such as 000 000 019 begin with zeros. Never store an ACN as an integer; keep it as a nine-character string.
  • ABNs are not always ACN based. Companies registered with ASIC receive an ABN whose last nine digits are their ACN, which is why ASIC company endpoints accept an ABN in place of an ACN and return abn_not_acn_based when the embedded digits fail the ACN check. Sole traders, partnerships, trusts and other entities registered by the Australian Business Register have ABNs with no ACN inside.
  • ABNs come from a different register. ASIC records a company's ABN from a feed supplied by the Australian Business Register. This endpoint checks the ABN's arithmetic only; it does not confirm the ABN is active or who holds it. The company extract's abn field shows what ASIC has recorded.
  • The check digit catches typing errors, not fraud. The modulus 10 test detects most single-digit and transposition mistakes. A number that passes may still be unallocated or belong to a different entity than expected.
  • Sandbox. Behaviour is identical with test and live keys; this endpoint never contacts ASIC and is never billed.

On this page