{"_id":"@acjlabs/au-tax-utils","_rev":"5-27f4afb4231d86f17a673bd4b10a08c3","name":"@acjlabs/au-tax-utils","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@acjlabs/au-tax-utils","version":"0.1.0","keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"author":{"url":"ACJ","name":"Agentic Commerce Junction","email":"contact@acjlabs.com"},"license":"MIT","_id":"@acjlabs/au-tax-utils@0.1.0","maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"homepage":"https://github.com/acjlabs/au-tax-utils#readme","bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"dist":{"shasum":"d4e0dc2b4023229ce53f0f3219f0c6508ae3c2c8","tarball":"https://registry.npmjs.org/@acjlabs/au-tax-utils/-/au-tax-utils-0.1.0.tgz","fileCount":9,"integrity":"sha512-tH0RilHkCRlrmmtGgUy1YoZvWhtPjDxEEdJ6AV6al3qTfralqxBp9RHE7EnMt8E8r8aN/IR+AlwTONy2UbiUyg==","signatures":[{"sig":"MEUCIQDjrFMtse/mM6LPmpv+N43LSsq/S/JS0982g88P3LSs9AIgKJ4yKmiUDY9WmJ8V07oKOZxH/tlk0ruhnzvlPXhOqTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10361},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3e71179696db08304f5d7fcce95413480fc80127","scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"acjlabsdev","email":"npm@acjlabs.com"},"repository":{"url":"git+https://github.com/acjlabs/au-tax-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/au-tax-utils_0.1.0_1784697467095_0.8044039158886633","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@acjlabs/au-tax-utils","version":"0.1.1","keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"author":{"url":"ACJ","name":"Agentic Commerce Junction","email":"contact@acjlabs.com"},"license":"MIT","_id":"@acjlabs/au-tax-utils@0.1.1","maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"homepage":"https://github.com/acjlabs/au-tax-utils#readme","bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"dist":{"shasum":"d384a766a98f09586148d1805033523978f161b2","tarball":"https://registry.npmjs.org/@acjlabs/au-tax-utils/-/au-tax-utils-0.1.1.tgz","fileCount":9,"integrity":"sha512-2nswd9cTkoVnyKafG9jxnZ0xsB/Cqb3uGPV5FJ+GlpqgKISmbxA66gmlRRPr9vkGOcfwhunmL3llpVYBKlFUJg==","signatures":[{"sig":"MEYCIQCd5m/M4HBhUDy9HxPlfL5htadMBEXqkW14ZKow+gtagQIhAMFkAiM9HyZBjmE5hUGKMyKBiolkm7zA+0seXJEMeZiu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10405},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c8f6181bc24e9d7efec73b58c75978116273026f","scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"acjlabsdev","email":"npm@acjlabs.com"},"repository":{"url":"git+https://github.com/acjlabs/au-tax-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/au-tax-utils_0.1.1_1784697959941_0.37128994957479233","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@acjlabs/au-tax-utils","version":"0.1.2","keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"author":{"url":"https://acjlabs.com","name":"ACJ Labs","email":"contact@acjlabs.com"},"license":"MIT","_id":"@acjlabs/au-tax-utils@0.1.2","maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"homepage":"https://github.com/acjlabs/au-tax-utils#readme","bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"dist":{"shasum":"f8f28a511cdf39ce41b5fb04dfe107e83053cac3","tarball":"https://registry.npmjs.org/@acjlabs/au-tax-utils/-/au-tax-utils-0.1.2.tgz","fileCount":9,"integrity":"sha512-kii3UBnsGkx9APS2zG01FP0bMmN6zIsBdA8gjLvB75Ye14UKM23MDiETIY6JdSX6mUzkJx7Kk8dqvExsO+7owA==","signatures":[{"sig":"MEYCIQC7rImmKKr3j3ik+63zzjqhCNe5Q9WvoKLgNz3YoxZlggIhAPOLCD3fump/XBa3aZEhHwZ27D21sGNOpJcRtlYrlhc6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10812},"main":"./dist/index.js","type":"module","_from":"file:acjlabs-au-tax-utils-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"acjlabsdev","email":"npm@acjlabs.com"},"_resolved":"/tmp/acjlabs-publish/acjlabs-au-tax-utils-0.1.2.tgz","_integrity":"sha512-kii3UBnsGkx9APS2zG01FP0bMmN6zIsBdA8gjLvB75Ye14UKM23MDiETIY6JdSX6mUzkJx7Kk8dqvExsO+7owA==","repository":{"url":"git+https://github.com/acjlabs/au-tax-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/au-tax-utils_0.1.2_1784784964089_0.7641672880293573","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@acjlabs/au-tax-utils","version":"0.1.3","keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"author":{"url":"https://acjlabs.com","name":"ACJ Labs","email":"contact@acjlabs.com"},"license":"MIT","_id":"@acjlabs/au-tax-utils@0.1.3","maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"homepage":"https://acjlabs.com/open-source","bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"dist":{"shasum":"3824f5eceb07f9442452b795f329e2ed2f151fce","tarball":"https://registry.npmjs.org/@acjlabs/au-tax-utils/-/au-tax-utils-0.1.3.tgz","fileCount":9,"integrity":"sha512-2HWDsJMdErqcwP1nV3moBD2Tj25dni2MVT5AIpfc64oUj0Vru/eeuqHcQjFp3+dLnW2kBeubCgRLHtj6s+K7SQ==","signatures":[{"sig":"MEUCIQDVz5ITST9acBVhIhEoo6b7vg+IhawwBZ4tgltwVELCDwIgNz6A9fEfmq+Vi7Xw9Uj+8W0da9+m+DHGgjBOCeXjHUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10797},"main":"./dist/index.js","type":"module","_from":"file:acjlabs-au-tax-utils-0.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"acjlabsdev","email":"npm@acjlabs.com"},"_resolved":"/tmp/acjlabs-publish/acjlabs-au-tax-utils-0.1.3.tgz","_integrity":"sha512-2HWDsJMdErqcwP1nV3moBD2Tj25dni2MVT5AIpfc64oUj0Vru/eeuqHcQjFp3+dLnW2kBeubCgRLHtj6s+K7SQ==","repository":{"url":"git+https://github.com/acjlabs/au-tax-utils.git","type":"git"},"_npmVersion":"10.9.2","description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","directories":{},"sideEffects":false,"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/au-tax-utils_0.1.3_1784964910057_0.09904250578812968","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@acjlabs/au-tax-utils","version":"0.1.4","description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","license":"MIT","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"sideEffects":false,"scripts":{"build":"rm -rf dist && tsc -p tsconfig.build.json","test":"bun test","typecheck":"tsc --noEmit"},"keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"repository":{"type":"git","url":"git+https://github.com/acjlabs/au-tax-utils.git"},"homepage":"https://acjlabs.com/open-source","bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"author":{"name":"ACJ Labs","email":"contact@acjlabs.com","url":"https://acjlabs.com"},"_id":"@acjlabs/au-tax-utils@0.1.4","_integrity":"sha512-dyZodZ8QWP+uyI4sg0wD3jkHTfq9+996OmrvOJMY4522efj07ZT03ORMNlNyPaxv/2qUZnXcpPR2kLjKOAAfIw==","_resolved":"/tmp/acjlabs-publish/acjlabs-au-tax-utils-0.1.4.tgz","_from":"file:acjlabs-au-tax-utils-0.1.4.tgz","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-dyZodZ8QWP+uyI4sg0wD3jkHTfq9+996OmrvOJMY4522efj07ZT03ORMNlNyPaxv/2qUZnXcpPR2kLjKOAAfIw==","shasum":"60eed698b5cc7b9ee09b361761e332b6c142d171","tarball":"https://registry.npmjs.org/@acjlabs/au-tax-utils/-/au-tax-utils-0.1.4.tgz","fileCount":9,"unpackedSize":10723,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDdZQXBieeeWUN7qjXzrvEiSaDAxfr8exptwcGV0FNXfgIhAJofNzYlbvCv9lbdspUUOaa2dHD2W7NYEPXIm94lQ/bt"}]},"_npmUser":{"name":"acjlabsdev","email":"npm@acjlabs.com"},"directories":{},"maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/au-tax-utils_0.1.4_1785459969475_0.024785121163595658"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T05:17:46.960Z","modified":"2026-07-31T01:06:09.863Z","0.1.0":"2026-07-22T05:17:47.250Z","0.1.1":"2026-07-22T05:26:00.071Z","0.1.2":"2026-07-23T05:36:04.221Z","0.1.3":"2026-07-25T07:35:10.197Z","0.1.4":"2026-07-31T01:06:09.633Z"},"bugs":{"url":"https://github.com/acjlabs/au-tax-utils/issues"},"author":{"name":"ACJ Labs","email":"contact@acjlabs.com","url":"https://acjlabs.com"},"license":"MIT","homepage":"https://acjlabs.com/open-source","keywords":["australia","abn","gst","tax","invoice","validation","checksum"],"repository":{"type":"git","url":"git+https://github.com/acjlabs/au-tax-utils.git"},"description":"Zero-dependency Australian ABN checksum validation and GST math (10% rate, inclusive/exclusive conversions, tax-invoice threshold).","maintainers":[{"name":"acjlabsdev","email":"npm@acjlabs.com"}],"readme":"# @acjlabs/au-tax-utils\n\nZero-dependency Australian tax utilities: ABN checksum validation and GST math. TypeScript, works in\nNode, Bun, Deno, and the browser — no network calls, no external services.\n\n## Install\n\n```sh\nnpm install @acjlabs/au-tax-utils\n```\n\n## What's in it\n\n### ABN validation\n\n```ts\nimport { isValidAbn, formatAbn } from \"@acjlabs/au-tax-utils\";\n\nisValidAbn(\"51 824 753 556\"); // true — accepts spaced or unspaced input\nisValidAbn(\"51824753557\"); // false — checksum fails\n\nformatAbn(\"51824753556\"); // \"51 824 753 556\"\n```\n\nImplements the ATO's weighted modulus 89 checksum\n([ABR's ABN format reference](https://abr.business.gov.au/Help/AbnFormat)) — the same algorithm every\nreal Australian Business Number is validated against. This checks that a string is a *structurally\nvalid* ABN (correct checksum); it does not look up whether the ABN is actually registered or active —\nfor that, query the [ABN Lookup](https://abr.business.gov.au/) API directly.\n\n### GST math\n\n```ts\nimport { gstFromInclusive, gstFromExclusive, requiresTaxInvoice } from \"@acjlabs/au-tax-utils\";\n\ngstFromInclusive(110); // { net: 100, gst: 10 }\ngstFromExclusive(100); // { gst: 10, total: 110 }\n\nrequiresTaxInvoice(82.5); // true  — $82.50 inclusive is the ATO's threshold\nrequiresTaxInvoice(82.49); // false\n```\n\n10% standard-rate GST, correctly-rounded inclusive/exclusive conversions, and the tax-invoice issuance\nthreshold — $82.50 GST-inclusive (equivalently $75.00 exclusive), per the\n[ATO's tax-invoices guidance](https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst/tax-invoices).\nThis is a common enough point of confusion (inclusive vs. exclusive) that it's worth stating explicitly:\n`requiresTaxInvoice` always takes the GST-**inclusive** total.\n\n## Why this exists\n\nWe build [Receipt Extraction](https://github.com/acjlabs/receipt-extraction), a hosted API/MCP server\nthat turns receipt and invoice images into structured JSON with AU GST/ABN handling built in. This\npackage is the small, standalone piece of that: the actual checksum and tax-rate math, with no vision\nmodel, no hosting, no API key — just the arithmetic, MIT-licensed, for anyone who needs it on its own.\n\n## Scope\n\nThis is engineering-reference code, not tax or legal advice. The GST rate, thresholds, and checksum\nalgorithm are current as of 2026 — verify against the ATO's own published guidance (linked above) before\nrelying on this for anything beyond structural validation.\n\nIf you need more than structural checksum validation — jurisdiction auto-detection across multiple\ncountries, live registry lookup, or fraud-risk scoring — that is a different shape of tool: a hosted\nnetwork service that queries the official registries (the ABR here, their equivalents elsewhere),\nnot an offline library. This package stays deliberately offline and zero-dependency, so structural\nvalidation is the whole of what it does.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}