How arus-info/erpnext-australian-localisation works
Purpose and platform
This is a Frappe/ERPNext v16 app that adds Australian accounting localisation: GST/BAS reporting, payment batching and ABA bank-file export, AU bank-statement CSV import, and ABN validation. It runs inside the ERPNext server and Desk UI; it is not a standalone service. Core app registration and lifecycle entry points are erpnext_australian_localisation/hooks.py, erpnext_australian_localisation/install.py, and erpnext_australian_localisation/boot.py.
Installation, schema, and ERPNext integration
Installation provisions localisation-specific custom fields, property setters, fixtures, and workspace data; uninstallation reverses app-owned setup. Versioned patches evolve existing ERPNext documents and configuration. This is the principal boundary with ERPNext’s persisted DocType model.
• erpnext_australian_localisation/setup/custom_fields.py
• erpnext_australian_localisation/setup/property_setters.py
• erpnext_australian_localisation/patches.txt
Server-side overrides extend or replace ERPNext behavior for companies, invoices, payment entries, bank import, and master-data validation. Desk-side bundles attach corresponding client behavior to standard forms.
• erpnext_australian_localisation/overrides/invoices.py
• erpnext_australian_localisation/overrides/payment_entry.py
• erpnext_australian_localisation/public/js/australian_localisation.bundle.js
Tax classification and GST determination
AU tax codes and determination records encode GST posting behavior based on customer/supplier classifications and transaction context. These records feed ERPNext invoice and expense/payment workflows rather than owning a separate ledger.
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_tax_code/au_tax_code.py
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_tax_determination/au_tax_determination.py
• erpnext_australian_localisation/overrides/purchase_invoice.py
BAS configuration and report pipeline
AU Localisation Settings selects reporting frequency and Full versus Simpler BAS mode. Full reporting maps transactional tax outcomes to BAS labels; Simpler reporting maps configured income accounts. Reporting periods and report-entry child records provide the persisted report structure. BAS creation/calculation is a server-side background-capable task boundary over ERPNext accounting data.
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_localisation_settings/au_localisation_settings.py
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bas_report/au_bas_report.py
• erpnext_australian_localisation/tasks/bas_report.py
BAS presentation and outputs
BAS labels, entries, and report entries represent calculated values and underlying transactional detail. JSON DocType definitions and Desk JS provide the interactive report workflow; Frappe print formats/templates render printable BAS output.
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bas_label/au_bas_label.json
• erpnext_australian_localisation/erpnext_australian_localisation/print_format/au_full_bas_report_format/au_full_bas_report_format.json
• erpnext_australian_localisation/templates/includes/au_print_format.css
Payment proposal, batches, and ABA export
The Payment Proposal page selects payable supplier/employee documents and creates Payment Batch records. A batch owns invoice/item child rows and produces an Australian Banking Association (ABA) bulk-payment file for upload to a bank; the bank is an offline downstream endpoint, not a direct integration.
• erpnext_australian_localisation/erpnext_australian_localisation/page/payment_proposal/payment_proposal.py
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/payment_batch/payment_batch.py
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/payment_batch/aba_file_generator.py
External validation and bank-statement ingestion
ABN validation is an external Australian Business Register service boundary, using an organisation-provided GUID and applying results to Customer/Supplier data. Bank-statement import adapts bank-specific CSV formats into ERPNext Bank Reconciliation imports; supported format and mapping DocTypes isolate parsing configuration from standard ERPNext import behavior.
• erpnext_australian_localisation/overrides/abn_verification.py
• erpnext_australian_localisation/overrides/bank_statement_import.py
• erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bank_statement_format/au_bank_statement_format.py
Main entry points: hooks.py App entrypoints · install.py Installation and patches · bas_report.py BAS calculation · au_tax_determination.py AU tax determination
Components 22
App lifecycle
- App entrypoints · Registers lifecycle hooks, overrides, assets, and boot behavior.
erpnext_australian_localisation/hooks.py - Installation and patches · Creates app-owned customisations and evolves ERPNext documents.
erpnext_australian_localisation/install.py - Custom fields and properties
erpnext_australian_localisation/setup/custom_fields.py - Versioned patches
erpnext_australian_localisation/patches.txt - Desk client bundle · Adds client behavior to standard ERPNext forms.
erpnext_australian_localisation/public/js/australian_localisation.bundle.js
GST and BAS
- Invoice overrides
erpnext_australian_localisation/overrides/invoices.py - AU tax codes · Defines GST posting behavior.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_tax_code/au_tax_code.py - AU tax determination · Classifies GST from party and transaction context.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_tax_determination/au_tax_determination.py - Purchase invoice override
erpnext_australian_localisation/overrides/purchase_invoice.py - BAS settings · Selects reporting frequency and Full or Simpler BAS mode.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_localisation_settings/au_localisation_settings.py - BAS report · Persists reporting periods, labels, entries, and detail.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bas_report/au_bas_report.py - BAS calculation · Calculates BAS values from ERPNext accounting data.
erpnext_australian_localisation/tasks/bas_report.py - BAS Desk and print output · Provides BAS labels, interactive workflow, and printable output.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bas_label/au_bas_label.json
Payments and banking
- Payment proposal · Selects payable supplier and employee documents.
erpnext_australian_localisation/erpnext_australian_localisation/page/payment_proposal/payment_proposal.py - Payment batch · Owns selected payment and invoice rows.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/payment_batch/payment_batch.py - ABA file generator · Generates an offline bulk-payment file for bank upload.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/payment_batch/aba_file_generator.py - Bank statement import · Converts bank CSV data into Bank Reconciliation imports.
erpnext_australian_localisation/overrides/bank_statement_import.py - Bank statement formats · Stores bank-specific CSV parsing and mapping configuration.
erpnext_australian_localisation/erpnext_australian_localisation/doctype/au_bank_statement_format/au_bank_statement_format.py - Bank upload
External integration
- ABN validation · Validates Customer and Supplier ABNs using an organisation GUID.
erpnext_australian_localisation/overrides/abn_verification.py - Australian Business Register
Other components
- Frappe / ERPNext · Provides Desk, accounting workflows, and persisted DocTypes.
Connections 20
- App entrypoints → Frappe / ERPNext: extends
- App entrypoints → Installation and patches: lifecycle
- Installation and patches → Custom fields and properties: provisions
- Installation and patches → Versioned patches: runs
- App entrypoints → Desk client bundle: loads
- Invoice overrides → AU tax determination: applies
- Purchase invoice override → AU tax determination: applies
- AU tax determination → AU tax codes: selects
- AU tax codes → Frappe / ERPNext: posts through
- BAS settings → BAS calculation: configures
- BAS calculation → Frappe / ERPNext: reads accounting data
- BAS calculation → BAS report: calculates and persists
- BAS report → BAS Desk and print output: renders
- Payment proposal → Payment batch: creates
- Payment batch → ABA file generator: generates
- ABA file generator → Bank upload: uploaded manually
- ABN validation → Australian Business Register: validates ABNs
- ABN validation → Frappe / ERPNext: updates parties
- Bank statement formats → Bank statement import: configures parsing
- Bank statement import → Frappe / ERPNext: imports reconciliation data