Australia does not use a VAT system — it uses GST (Goods and Services Tax) at a flat 10% rate. Australian businesses are identified by their ABN (Australian Business Number), an 11-digit number issued by the Australian Business Register (ABR). When a business registers for GST, their ABN becomes their GST identifier. To check whether an Australian business is GST-registered, you validate their ABN against the ABR — which is exactly what the TaxID API does for the `AU` country prefix.
ABN Format
An ABN is always 11 digits. It is often displayed with spaces (51 824 753 556) or as a raw number (51824753556). Both formats are accepted by the TaxID API — spaces are stripped automatically. When building a form, validate that the input is 11 digits after removing spaces and non-numeric characters.
| Format | Example | Notes |
|---|---|---|
| 11 digits | 51824753556 | Raw format — spaces stripped automatically |
| With spaces | 51 824 753 556 | Display format — accepted |
| AU prefix + 11 digits | AU51824753556 | API format with country prefix |
Note
When calling the TaxID API for Australian businesses, pass the `AU` prefix followed by the 11-digit ABN: `GET /validate/AU/AU51824753556`. The API handles spacing and formatting automatically.
Validating an ABN in Node.js
async function validateAbn(abn: string) {
// Strip spaces and non-digits, prepend AU prefix
const digits = abn.replace(/\D/g, '');
const formatted = `AU${digits}`;
const res = await fetch(
`https://taxid.dev/api/v1/validate/AU/${formatted}`,
{ headers: { Authorization: `Bearer ${process.env.TAXID_API_KEY}` } }
);
if (!res.ok) throw new Error(`API error: ${res.status}`);
const data = await res.json();
return {
isGstRegistered: data.status === 'active',
entityName: data.company_name,
status: data.status,
requestId: data.request_id,
};
}
// Usage:
const result = await validateAbn('51 824 753 556');
console.log(result.isGstRegistered); // true/false
console.log(result.entityName); // Registered business nameValidating an ABN in Python
import os, re, requests
def validate_abn(abn: str) -> dict:
digits = re.sub(r'\D', '', abn) # strip all non-digits
formatted = f'AU{digits}'
resp = requests.get(
f'https://taxid.dev/api/v1/validate/AU/{formatted}',
headers={'Authorization': f'Bearer {os.environ["TAXID_API_KEY"]}'},
timeout=5,
)
resp.raise_for_status()
data = resp.json()
return {
'is_gst_registered': data['status'] == 'active',
'entity_name': data.get('company_name'),
'status': data['status'],
}
# Usage:
result = validate_abn('51 824 753 556')
print(result['is_gst_registered']) # True
print(result['entity_name']) # Business name from ABRUnderstanding ABN Statuses
| Status | Meaning | Action |
|---|---|---|
| active | ABN is active and entity is GST-registered | Apply GST-free treatment for eligible B2B supplies |
| inactive | ABN has been cancelled or entity has deregistered from GST | Charge GST at standard 10% rate |
| format_invalid | Input is not a valid 11-digit ABN format | Show format guidance to user |
| service_unavailable | ABR is temporarily offline | Charge GST; re-validate when ABR recovers |
ABN vs GST Registration: The Distinction
Not all businesses with an ABN are registered for GST. Businesses with annual turnover below AUD 75,000 are not required to register for GST (though they may do so voluntarily). A TaxID API response with `status: 'active'` confirms that the ABN is active AND the entity is registered for GST. If a business has an ABN but has not registered for GST, the API returns `status: 'inactive'` — in that case, you must charge GST on supplies to them, as they cannot claim it back.
Storing Validation Results for Compliance
Australian tax law (A New Tax System (Goods and Services Tax) Act 1999) requires that you retain tax invoices and records supporting GST-free treatment. For B2B supplies, store the ABN, the validation result, and the `request_id` from the TaxID response alongside the invoice record. This is your evidence that the ABN was valid and GST-registered at the time of supply.
Related guides
Start validating EU VAT numbers
Free plan — 100 validations/month. No credit card required.