-
Notifications
You must be signed in to change notification settings - Fork 52
Add Australia GST regime #784
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
2b248bf
dd5c155
d00c601
758c3ac
a26e159
e8cf718
c26a8ec
1e2da5a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,112 @@ | ||
| { | ||
| "$schema": "https://gobl.org/draft-0/tax/regime-def", | ||
| "name": { | ||
| "en": "Australia" | ||
| }, | ||
| "description": { | ||
| "en": "Australia's indirect tax system is administered by the Australian\nTaxation Office (ATO). Goods and Services Tax (GST) applies at a\nstandard rate of 10%. Supplies may also be GST-free (for example, many\nexports) or input-taxed (for example, certain financial supplies and\nresidential rent). In GOBL's generic GST model, GST-free supplies map to\nthe zero key and input-taxed supplies map to the exempt key.\n\nBusinesses are identified by an Australian Business Number (ABN), an\n11-digit identifier used for GST registration and invoicing. Australian\ntax invoices must show the supplier's details and ABN, and invoices of\nAUD 1,000 or more, or self-billed invoices, must also identify the\ncustomer. Electronic invoicing is aligned with the Peppol PINT A-NZ\nspecification." | ||
| }, | ||
| "sources": [ | ||
| { | ||
| "title": { | ||
| "en": "ATO - GST" | ||
| }, | ||
| "url": "https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst" | ||
| }, | ||
| { | ||
| "title": { | ||
| "en": "ATO - Tax invoices" | ||
| }, | ||
| "url": "https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst/tax-invoices" | ||
| }, | ||
| { | ||
| "title": { | ||
| "en": "Peppol PINT A-NZ BIS" | ||
| }, | ||
| "url": "https://docs.peppol.eu/poac/aunz/pint-aunz/bis/" | ||
| }, | ||
| { | ||
| "title": { | ||
| "en": "ATO - eInvoicing" | ||
| }, | ||
| "url": "https://www.ato.gov.au/businesses-and-organisations/invoicing-and-using-accounting-software/einvoicing" | ||
| } | ||
| ], | ||
| "time_zone": "Australia/Sydney", | ||
| "country": "AU", | ||
| "currency": "AUD", | ||
| "tax_scheme": "GST", | ||
| "corrections": [ | ||
| { | ||
| "schema": "bill/invoice", | ||
| "types": [ | ||
| "credit-note", | ||
| "debit-note" | ||
| ] | ||
| } | ||
| ], | ||
| "categories": [ | ||
| { | ||
| "code": "GST", | ||
| "name": { | ||
| "en": "GST" | ||
| }, | ||
| "title": { | ||
| "en": "Goods and Services Tax" | ||
| }, | ||
| "keys": [ | ||
| { | ||
| "key": "standard", | ||
| "name": { | ||
| "en": "Standard" | ||
| } | ||
| }, | ||
| { | ||
| "key": "zero", | ||
| "name": { | ||
| "en": "Zero" | ||
| } | ||
| }, | ||
| { | ||
| "key": "exempt", | ||
| "name": { | ||
| "en": "Exempt" | ||
| }, | ||
| "no_percent": true | ||
| }, | ||
| { | ||
| "key": "outside-scope", | ||
| "name": { | ||
| "en": "Outside scope" | ||
| }, | ||
| "no_percent": true | ||
| } | ||
| ], | ||
| "rates": [ | ||
| { | ||
| "rate": "general", | ||
| "keys": [ | ||
| "standard" | ||
| ], | ||
| "name": { | ||
| "en": "General rate" | ||
| }, | ||
| "values": [ | ||
| { | ||
| "since": "2000-07-01", | ||
| "percent": "10%" | ||
| } | ||
| ] | ||
| } | ||
| ], | ||
| "sources": [ | ||
| { | ||
| "title": { | ||
| "en": "ATO - GST" | ||
| }, | ||
| "url": "https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst" | ||
| } | ||
| ] | ||
| } | ||
| ] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| $schema: https://gobl.org/draft-0/bill/invoice | ||
| $regime: AU | ||
| uuid: 2d301f3b-370a-4e15-a554-a8e05f61e93b | ||
| currency: AUD | ||
| series: "2026" | ||
| code: "AU0001" | ||
| issue_date: "2026-04-03" | ||
|
|
||
| supplier: | ||
| name: Example Supplier Pty Ltd | ||
| tax_id: | ||
| country: AU | ||
| code: "51824753556" | ||
| addresses: | ||
| - street: George Street | ||
| num: "100" | ||
| locality: Sydney | ||
| region: NSW | ||
| code: "2000" | ||
| country: AU | ||
|
|
||
| customer: | ||
| name: Example Customer Pty Ltd | ||
| addresses: | ||
| - street: Collins Street | ||
| num: "200" | ||
| locality: Melbourne | ||
| region: VIC | ||
| code: "3000" | ||
| country: AU | ||
|
|
||
| lines: | ||
| - quantity: "1" | ||
| item: | ||
| name: Software engineering services | ||
| price: "900.00" | ||
| unit: h | ||
| taxes: | ||
| - cat: GST | ||
| rate: general | ||
| key: standard |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,95 @@ | ||
| { | ||
| "$schema": "https://gobl.org/draft-0/envelope", | ||
| "head": { | ||
| "uuid": "8a51fd30-2a27-11ee-be56-0242ac120002", | ||
| "dig": { | ||
| "alg": "sha256", | ||
| "val": "9b83035fda7d9f82243097be6bfdfc321d431f25d4d355b2a00700ed5c9b6687" | ||
| } | ||
| }, | ||
| "doc": { | ||
| "$schema": "https://gobl.org/draft-0/bill/invoice", | ||
| "$regime": "AU", | ||
| "uuid": "2d301f3b-370a-4e15-a554-a8e05f61e93b", | ||
| "type": "standard", | ||
| "series": "2026", | ||
| "code": "AU0001", | ||
| "issue_date": "2026-04-03", | ||
| "currency": "AUD", | ||
| "supplier": { | ||
| "name": "Example Supplier Pty Ltd", | ||
| "tax_id": { | ||
| "country": "AU", | ||
| "code": "51824753556" | ||
| }, | ||
| "addresses": [ | ||
| { | ||
| "num": "100", | ||
| "street": "George Street", | ||
| "locality": "Sydney", | ||
| "region": "NSW", | ||
| "code": "2000", | ||
| "country": "AU" | ||
| } | ||
| ] | ||
| }, | ||
| "customer": { | ||
| "name": "Example Customer Pty Ltd", | ||
| "addresses": [ | ||
| { | ||
| "num": "200", | ||
| "street": "Collins Street", | ||
| "locality": "Melbourne", | ||
| "region": "VIC", | ||
| "code": "3000", | ||
| "country": "AU" | ||
| } | ||
| ] | ||
| }, | ||
| "lines": [ | ||
| { | ||
| "i": 1, | ||
| "quantity": "1", | ||
| "item": { | ||
| "name": "Software engineering services", | ||
| "price": "900.00", | ||
| "unit": "h" | ||
| }, | ||
| "sum": "900.00", | ||
| "taxes": [ | ||
| { | ||
| "cat": "GST", | ||
| "key": "standard", | ||
| "rate": "general", | ||
| "percent": "10%" | ||
| } | ||
| ], | ||
| "total": "900.00" | ||
| } | ||
| ], | ||
| "totals": { | ||
| "sum": "900.00", | ||
| "total": "900.00", | ||
| "taxes": { | ||
| "categories": [ | ||
| { | ||
| "code": "GST", | ||
| "rates": [ | ||
| { | ||
| "key": "standard", | ||
| "base": "900.00", | ||
| "percent": "10%", | ||
| "amount": "90.00" | ||
| } | ||
| ], | ||
| "amount": "90.00" | ||
| } | ||
| ], | ||
| "sum": "90.00" | ||
| }, | ||
| "tax": "90.00", | ||
| "total_with_tax": "990.00", | ||
| "payable": "990.00" | ||
| } | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # Australia (`AU`) | ||
|
|
||
| Australia uses a Goods and Services Tax (GST) system administered by the Australian Taxation Office (ATO). GOBL models the Australian regime with a 10% standard GST rate, support for GST-free and input-taxed supplies through the generic GST key model, ABN validation, and invoice validation rules for supplier and customer identification. | ||
|
|
||
| ## Public Documentation | ||
|
|
||
| - [ATO - GST](https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst) | ||
| - [ATO - Tax invoices](https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst/tax-invoices) | ||
| - [ABR - ABN format](https://abr.business.gov.au/Help/AbnFormat) | ||
| - [Peppol PINT A-NZ BIS](https://docs.peppol.eu/poac/aunz/pint-aunz/bis/) | ||
|
|
||
| ## Tax Identity (ABN) | ||
|
|
||
| Australian businesses are commonly identified by an Australian Business Number (ABN). The ABN is 11 digits long, usually written with spaces for display, but normalized in GOBL without separators. | ||
|
|
||
| Validation follows the ABR checksum algorithm: | ||
|
|
||
| | Position | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | ||
| | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | ||
| | Weight | 10 | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | | ||
|
|
||
| 1. Subtract 1 from the first digit. | ||
| 2. Multiply each digit by its weight. | ||
| 3. Sum the products. | ||
| 4. The total must be divisible by 89. | ||
|
|
||
| ## GST | ||
|
|
||
| Australian GST distinguishes between taxable supplies, GST-free supplies, and input-taxed supplies. GOBL keeps Australia on the shared GST model and maps those concepts as follows: | ||
|
|
||
| | Australian concept | GOBL key / handling | GST treatment | | ||
| | --- | --- | --- | | ||
| | Taxable supply | `standard` / `general` | 10% GST | | ||
| | GST-free supply | `zero` | 0% GST through the shared GST zero key | | ||
| | Input-taxed supply | `exempt` | No GST charged; used as the generic mapping for input-taxed treatment | | ||
| | Outside scope / non-taxable | `outside-scope` | Not part of the GST calculation | | ||
|
Comment on lines
+31
to
+36
|
||
|
|
||
| | Rate Name | GOBL Rate Key | Percent | Since | | ||
| | --- | --- | --- | --- | | ||
| | General rate | `standard` / `general` | 10% | 2000-07-01 | | ||
|
|
||
|
Comment on lines
+38
to
+41
|
||
| ## Tax Invoices | ||
|
|
||
| - Suppliers must include their details and ABN. | ||
| - Invoices of AUD 1,000 or more must identify the customer. | ||
| - Self-billed invoices must identify the customer regardless of amount. | ||
| - In this implementation pass, customer identification is satisfied by the customer's name; an AU ABN may also be included but is not required when the name is present. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Markdown tables use a double leading pipe (
|| ...) which creates an extra empty first column in most renderers. Consider changing these rows to a single leading|so the table renders as intended (e.g.,| Position | 1 | 2 | ... |).