Generate valid Australian Company Numbers (ACN) for testing purposes
Disclaimer: These are randomly generated valid ACN numbers for testing purposes only. Do not use for any official or fraudulent purposes. These numbers are not associated with real companies.
Maximum 100 numbers per generation
ACN (Australian Company Number) generator creates valid test ACN numbers. ACN is a unique 9-digit identifier for Australian companies, using a weighted checksum algorithm. Essential for testing Australian business systems.
Generate 8 random digits for company identifier, then calculate check digit using weighted modulus 10 algorithm. Weights: 8,7,6,5,4,3,2,1 for positions 1-8. Sum weighted digits, calculate (10 - (sum % 10)) % 10 for check digit.
ACN format: 9 digits (XXX XXX XXX), commonly displayed with spaces. Check digit: multiply digits 1-8 by weights 8-1, sum products, check digit = (10 - sum % 10) % 10. Valid ACN: check digit matches calculated value. ASIC maintains registry.
Generate valid ACNs for test data.
Test ACN input validation logic.
Populate test databases with valid ACNs.
Test ASIC API integrations.
// ACN check digit weights
const ACN_WEIGHTS = [8, 7, 6, 5, 4, 3, 2, 1];
// Calculate ACN check digit
function calculateACNCheckDigit(digits) {
if (digits.length !== 8) throw new Error('Need 8 digits');
const sum = digits.reduce((acc, digit, i) => {
return acc + (digit * ACN_WEIGHTS[i]);
}, 0);
const remainder = sum % 10;
return remainder === 0 ? 0 : 10 - remainder;
}
// Validate ACN
function validateACN(acn) {
const digits = String(acn).replace(/\s/g, '').split('').map(Number);
if (digits.length !== 9 || digits.some(isNaN)) {
return false;
}
const checkDigit = calculateACNCheckDigit(digits.slice(0, 8));
return checkDigit === digits[8];
}
// Generate valid ACN
function generateACN() {
// Generate 8 random digits
const digits = Array(8).fill(0).map(() => Math.floor(Math.random() * 10));
// Calculate and append check digit
const checkDigit = calculateACNCheckDigit(digits);
digits.push(checkDigit);
return digits.join('');
}
// Format ACN with spaces
function formatACN(acn) {
const clean = String(acn).replace(/\D/g, '');
return clean.replace(/(\d{3})(\d{3})(\d{3})/, '$1 $2 $3');
}
// Generate multiple ACNs
function generateMultipleACNs(count) {
return Array(count).fill(0).map(() => formatACN(generateACN()));
}
// Examples
console.log(validateACN('000 000 019')); // true (valid checksum)
console.log(generateACN()); // e.g., "123456782"
console.log(formatACN(generateACN())); // e.g., "123 456 782"
console.log(generateMultipleACNs(5)); // 5 formatted ACNsComplete ACN implementation with validation, generation, and formatting.
Use ACN generator for testing Australian business software, form validation, database seeding, or integration testing. Never use for actual business purposes.
No. Generated ACNs are for testing only. Real ACNs are assigned by ASIC during company registration. Using fake ACNs is fraudulent.