1410 lines
58 KiB
ReStructuredText
1410 lines
58 KiB
ReStructuredText
=========
|
|
Australia
|
|
=========
|
|
|
|
Modules
|
|
=======
|
|
|
|
.. list-table::
|
|
:widths: 25 25 50
|
|
:header-rows: 1
|
|
|
|
* - Name
|
|
- Technical name
|
|
- Description
|
|
* - :guilabel:`Australia - Accounting`
|
|
- `l10n_au`
|
|
- The base :ref:`accounting <australia/accounting>` module for the Australian localization. It
|
|
is installed automatically when the :guilabel:`Australia` :ref:`fiscal localization package
|
|
<fiscal_localizations/packages>` is selected. This module also installs the :ref:`ABA Credit
|
|
Transfer <australia/aba>` module.
|
|
* - :guilabel:`Australian Reports - Accounting`
|
|
- `l10n_au_reports`
|
|
- Adds the :ref:`Taxable Payments Annual Report (TPAR) <australia/tpar>` and the :ref:`Business
|
|
Activity Statement (BAS) <australia/bas>` report. It is installed automatically when the
|
|
:guilabel:`Australia` :ref:`fiscal localization package <fiscal_localizations/packages>` is
|
|
selected.
|
|
* - :guilabel:`Australia - Payroll`
|
|
- `l10n_au_hr_payroll`
|
|
- The base :ref:`payroll <australia/payroll>` module for the Australian localization.
|
|
* - :guilabel:`Australia - Payroll with Accounting`
|
|
- `l10n_au_hr_payroll_account`
|
|
- Contains the necessary accounting data for the Australian payroll rules. It is installed
|
|
automatically when the :ref:`Payroll Entries option <payroll-accounting>` is enabled.
|
|
* - :guilabel:`Employment Hero Payroll`
|
|
- `l10n_employment_hero`
|
|
- Synchronizes all pay runs from :ref:`Employment Hero <australia/payroll/employment-hero>`
|
|
with Odoo's journal entries.
|
|
|
|
.. _australia/accounting:
|
|
|
|
Accounting
|
|
==========
|
|
|
|
Taxes and GST
|
|
-------------
|
|
|
|
In Australia, the standard **Goods and Services Tax (GST)** rate is 10%, but different rates and
|
|
exemptions exist for specific categories of goods and services.
|
|
|
|
.. image:: australia/default-taxes.png
|
|
:alt: Default GST rates
|
|
|
|
.. note::
|
|
The taxes impact the :ref:`BAS report <australia/bas>`.
|
|
|
|
Tax mapping
|
|
~~~~~~~~~~~
|
|
|
|
Within the Australian localization, tax names encompass the tax rate as an integral part of their
|
|
naming convention. Despite the high number of :doc:`taxes <../accounting/taxes>` configured in Odoo,
|
|
their rates are often similar (0% or 10%).
|
|
|
|
GST sales taxes
|
|
***************
|
|
|
|
The **GST sales** taxes available in Odoo are listed below.
|
|
|
|
.. list-table::
|
|
:widths: 20 50 30
|
|
:header-rows: 1
|
|
|
|
* - GST name
|
|
- Description
|
|
- Label on invoices
|
|
* - 10% GST
|
|
- GST Sales
|
|
- 10% GST
|
|
* - 0% EX
|
|
- GST Free on Export Sales
|
|
- 0% GST Free
|
|
* - 0% F
|
|
- GST Free Sales
|
|
- 0% Exempt
|
|
* - 0% INP
|
|
- Input Taxed Sales
|
|
- 0% Input Taxed Sales
|
|
* - 100% Adj
|
|
- This is for adjustment, amounts can be modified to fit your needs
|
|
- Tax Adjustments (Sales)
|
|
|
|
GST purchase taxes
|
|
******************
|
|
|
|
The **GST purchase** taxes available in Odoo are listed below.
|
|
|
|
.. list-table::
|
|
:widths: 20 50 30
|
|
:header-rows: 1
|
|
|
|
* - GST name
|
|
- Description
|
|
- Label on invoices
|
|
* - 10% GST
|
|
- GST Purchases
|
|
- 10% GST
|
|
* - 10% C
|
|
- Capital Purchases
|
|
- 10% Capital Purchases
|
|
* - 10% INP
|
|
- Purchases for Input Taxed Sales
|
|
- 10% Purchases for Input Taxed Sales
|
|
* - 10% PRIV
|
|
- Purchases for private use or not deductible
|
|
- 10% Purchases for Private Use
|
|
* - 0% F
|
|
- GST Free Purchases
|
|
- 0% GST Free
|
|
* - 0% TPS
|
|
- Purchase (Taxable Imports) - Tax Paid Separately
|
|
- 0% GST Paid Separately
|
|
* - 100% ONLY
|
|
- GST Only on Imports
|
|
- GST Only on Imports
|
|
* - 100% Adj
|
|
- Tax Adjustments (Purchases)
|
|
- Tax Adjustments (Purchases)
|
|
* - 100% DGST
|
|
- Deferred GST Liability
|
|
- 100% DGST
|
|
* - No ABN
|
|
- Tax Withheld for Partners without ABN
|
|
- Withholding Tax for No ABN
|
|
* - PAYGW - W3
|
|
- Other amounts withheld (excluding any amount shown at W2 or W4)
|
|
- Other Amounts Withheld (W3)
|
|
|
|
Variants
|
|
^^^^^^^^
|
|
|
|
Businesses from certain industries need to report payments made to subcontractors from relevant
|
|
services during the financial year. Odoo combines the use of taxes and fiscal positions to report
|
|
these payments on the :ref:`TPAR <australia/tpar>`. In order to be compliant with the TPAR's
|
|
obligations, two variants of the main purchase taxes are available in Odoo, but they are inactive by
|
|
default.
|
|
|
|
.. example::
|
|
|
|
For the *10% GST* tax, the variants are:
|
|
|
|
.. list-table::
|
|
:widths: 20 40 20 20
|
|
:header-rows: 1
|
|
|
|
* - Tax name
|
|
- Description
|
|
- Reports impacted
|
|
- Default status
|
|
* - 10% GST
|
|
- Default 10% GST tax
|
|
- BAS
|
|
- Active
|
|
* - 10% GST TPAR
|
|
- TPAR variant of the tax, if the contractor provided an ABN
|
|
- | BAS
|
|
| TPAR
|
|
- Inactive
|
|
* - 10% GST TPAR NO ABN
|
|
- TPAR variant of the tax, if the contractor did not provide an ABN
|
|
- | BAS
|
|
| TPAR
|
|
- Inactive
|
|
|
|
Deferred GST
|
|
~~~~~~~~~~~~
|
|
|
|
Odoo allows companies under the `Deferred Goods and Services Tax (DGST) scheme <https://www.ato.gov.au/businesses-and-organisations/gst-excise-and-indirect-taxes/gst/in-detail/rules-for-specific-transactions/international-transactions/deferred-gst?=redirected_deferredGSTscheme>`_
|
|
to automate their deferred GST flows.
|
|
|
|
Configuration
|
|
*************
|
|
|
|
It is recommended to:
|
|
|
|
- go to :menuselection:`Accounting --> Configuration --> Settings` and set the :guilabel:`Tax Return
|
|
Periodicity` to :guilabel:`monthly` (= monthly BAS); and
|
|
- create a new journal to store all deferred GST entries by going to :menuselection:`Accounting
|
|
--> Configuration --> Journals --> New`, and selecting :guilabel:`Miscellaneous` as its
|
|
:guilabel:`Type` when configuring it.
|
|
|
|
By default, a tax (*100% DGST*, inactive by default) and an account (*21340 Deferred GST Liability*)
|
|
are available for Australian companies. Activate the tax by going to :menuselection:`Accounting -->
|
|
Configuration --> Taxes`. Search for the :guilabel:`Name` `100% DGST` (remove the default filter if
|
|
necessary), and click the :guilabel:`Activate` toggle switch.
|
|
|
|
Flow
|
|
****
|
|
|
|
1. Importing goods: purchase order and vendor bill
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
When importing goods from abroad, the GST liability can now be deferred for companies under the DGST
|
|
scheme. On the purchase order, select the :guilabel:`0% TPS` tax (tax paid separately) for the
|
|
relevant order lines.
|
|
|
|
.. image:: australia/dgst-po-tax.png
|
|
:alt: Setting the 0% TPS tax on a purchase order
|
|
|
|
2. Recording the DGST balance on the BAS report
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
When the Australian Taxation Office (ATO) is advised electronically of the aggregated liability for
|
|
the company by the Integrated Cargo System (ICS), the GST balance deferred during the previous month
|
|
becomes available on the ATO's BAS portal.
|
|
|
|
.. important::
|
|
Odoo does not yet fetch the DGST balance automatically from the ATO. A manual entry with the
|
|
liability amount needs to be created in Odoo. We recommend using a new journal for this purpose
|
|
since deferrals will be recurring.
|
|
|
|
Go to :menuselection:`Accounting --> Journal Entries --> New`. On the first journal item line, add
|
|
the :guilabel:`Account` `21340 Deferred GST Liability` and the deferred GST balance as a
|
|
:guilabel:`Credit`. To resume the example shown above, we credit $2,000 and save.
|
|
|
|
.. image:: australia/dgst-balance-credit.png
|
|
:alt: Creating a journal entry with the DGST account
|
|
|
|
An auto-balancing line is created, along with journal items correctly assigning the right values in
|
|
the BAS :guilabel:`Tax Grids`. Sections *G11*, *G18*, *7A*, and *ONLY* are updated correctly.
|
|
|
|
.. image:: australia/dgst-tax-grids.png
|
|
:alt: The journal entry with the auto-balancing line and BAS tax grids
|
|
|
|
After posting the journal entry, the BAS report displays the correct values for each section, along
|
|
with the DGST offset.
|
|
|
|
Reports
|
|
-------
|
|
|
|
.. _australia/bas:
|
|
|
|
Business Activity Statement (BAS)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The **BAS report** is a critical tax reporting requirement for businesses registered for GST in
|
|
Australia. The BAS is used to report and remit various taxes to the ATO. With the Odoo BAS feature,
|
|
businesses can report on the following:
|
|
|
|
- GST
|
|
- PAYG tax withheld
|
|
- DGST
|
|
|
|
Access the report from the Accounting dashboard by clicking :guilabel:`BAS Report (AU)` under the
|
|
:guilabel:`Miscellaneous Operations` section.
|
|
|
|
.. image:: australia/bas-report.png
|
|
:alt: BAS report example
|
|
|
|
The base and tax amounts are collected from the **tax grid**, which is pre-configured in the system.
|
|
The tax grid can also be manually set up for any additional special use-case of GST (e.g., wine
|
|
equalization tax). Once the tax for each account is set up, the system automatically slots journal
|
|
items into the correct tax category. This ensures the BAS report is accurate and reflective of the
|
|
business's financial activities.
|
|
|
|
.. image:: australia/gst-grids.png
|
|
:alt: GST grids example
|
|
|
|
Besides the GST sections, the BAS report also includes the **PAYG** tax withheld components (*W1* to
|
|
*W5*, then *summary, section 4*). This integration ensures that all payroll-related withholding
|
|
taxes are accurately captured and reflected within the report.
|
|
|
|
.. image:: australia/payg.png
|
|
:alt: PAYG tax withheld and summary of BAS report example
|
|
|
|
The module incorporates built-in rules that facilitate the automatic calculation of taxes for types
|
|
W1 to W5. For a detailed walkthrough and more information on the calculation process for these
|
|
taxes, refer to the :ref:`Payroll section <australia/payroll>`.
|
|
|
|
Closing
|
|
*******
|
|
|
|
When it is time to file the tax return with the ATO, click :guilabel:`Closing Entry`. The tax return
|
|
period can be configured under :menuselection:`Accounting --> Configuration --> Settings --> Tax
|
|
Return Periodicity`. The start date of the tax return period can also be defined on the report
|
|
itself through the period button (:icon:`fa-calendar` *period* *year*).
|
|
|
|
.. seealso::
|
|
:doc:`Year-end closing <../accounting/reporting/year_end>`
|
|
|
|
.. note::
|
|
Odoo uses calendar quarters rather than the Australian FY quarters, which means *July to
|
|
September* is *Q3* in Odoo.
|
|
|
|
Before closing the entry for the first time, the default **GST payable account** and **GST
|
|
receivable account** need to be set. A notification pops up and redirects the user to the tax groups
|
|
configuration.
|
|
|
|
.. image:: australia/bas-accounts.png
|
|
:alt: BAS report tax groups
|
|
|
|
Once the GST payable and GST receivable accounts are set up, the BAS report generates an accurate
|
|
journal closing entry automatically, which balances out the GST balance with the GST clearing
|
|
account.
|
|
|
|
The balance between GST receivable and payable is set against the tax clearing account defined on
|
|
the tax group. The amount to be paid to or received from the ATO can be reconciled against a bank
|
|
statement.
|
|
|
|
.. image:: australia/bas-taxes.png
|
|
:alt: BAS report tax payment
|
|
|
|
.. important::
|
|
The BAS report is not directly submitted to the ATO. Odoo helps you automatically compute the
|
|
necessary values in each section, with the possibility to audit them to better understand the
|
|
history behind these numbers. Businesses can copy these values and enter them on the `ATO portal
|
|
<https://www.ato.gov.au/businesses-and-organisations/preparing-lodging-and-paying/business-activity-statements-bas/how-to-lodge-your-bas>`_.
|
|
|
|
.. _australia/tpar:
|
|
|
|
Taxable Payments Annual Report (TPAR)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Odoo allows businesses to report payments made to contractors or subcontractors during the financial
|
|
year. This is done by generating a **TPAR**. If you are unsure your business needs this report,
|
|
refer to the `ATO's TPAR web page <https://www.ato.gov.au/businesses-and-organisations/preparing-lodging-and-paying/reports-and-returns/taxable-payments-annual-report>`_.
|
|
|
|
Access the TPAR in Odoo by going to :menuselection:`Accounting --> Reporting --> Taxable Payments
|
|
Annual Reports (TPAR)`.
|
|
|
|
Configuration
|
|
*************
|
|
|
|
First, it is required to assign fiscal positions to your contractors before billing them to update
|
|
the TPAR. To do so, go to :menuselection:`Accounting --> Vendors --> Vendors`, select a contractor,
|
|
and set a :guilabel:`Fiscal Position` under the :guilabel:`Sales & Purchase` tab.
|
|
|
|
.. image:: australia/tpar-fiscal-positions.png
|
|
:alt: TPAR fiscal position on a vendor
|
|
|
|
Based on the chosen fiscal position, the correct tax mapping will apply to the contractor's vendor
|
|
bills.
|
|
|
|
.. image:: australia/tpar-vendor-bill-tax.png
|
|
:alt: TPAR vendor bill tax mapping
|
|
|
|
The TPAR includes the following information from contractors:
|
|
|
|
- :guilabel:`ABN`
|
|
- :guilabel:`Total GST` (the total tax paid)
|
|
- :guilabel:`Gross Paid` (the amounts are displayed after a vendor bill has been marked as paid)
|
|
- :guilabel:`Tax Withheld` (displayed if the contractor is registered with a fiscal position set to
|
|
:guilabel:`TPAR without ABN`)
|
|
|
|
The TPAR can be exported to multiple formats: PDF, XLSX, and TPAR.
|
|
|
|
.. _australia/remittance:
|
|
|
|
Remittance advice
|
|
-----------------
|
|
|
|
A remittance advice is a document used as proof of payment to a business. In Odoo, it can be
|
|
accessed by going to :menuselection:`Accounting --> Vendors --> Payments`, selecting the payment(s),
|
|
and clicking :menuselection:`Print --> Payment Receipt`.
|
|
|
|
.. image:: australia/remittance.png
|
|
:alt: Remittance advice example
|
|
|
|
.. _australia/peppol:
|
|
|
|
E-invoicing
|
|
-----------
|
|
|
|
Peppol
|
|
~~~~~~
|
|
|
|
Odoo is compliant with Australia's `Peppol requirements
|
|
<https://peppol.org/learn-more/country-profiles/australia/>`_. Set up your customers and vendors
|
|
by going to :menuselection:`Accounting --> Customers --> Customers` or :menuselection:`Vendors -->
|
|
Vendors`, selecting one, clicking the :guilabel:`Accounting` tab, and configuring the
|
|
:guilabel:`Electronic Invoicing` section as needed.
|
|
|
|
.. image:: australia/partner-einvoicing.png
|
|
:alt: Electronic invoicing settings for a partner
|
|
|
|
.. important::
|
|
Validating an invoice or credit note for a partner on the Peppol network will download a
|
|
compliant XML file that can be manually uploaded to your Peppol network. Odoo is currently in the
|
|
process of becoming an access point for the ANZ region.
|
|
|
|
.. _australia/aba:
|
|
|
|
ABA files for batch payments
|
|
----------------------------
|
|
|
|
An ABA file is a digital format developed by the `Australian Banking Association
|
|
<https://www.ausbanking.org.au/>`_. It is designed for business customers to facilitate bulk payment
|
|
processing by uploading a single file from their business management software.
|
|
|
|
The main advantage of using ABA files is to improve payment and matching efficiency. This is
|
|
achieved by consolidating numerous payments into one file for batch processing, which can be
|
|
submitted to all Australian banks.
|
|
|
|
Configuration
|
|
~~~~~~~~~~~~~
|
|
|
|
Batch payments
|
|
**************
|
|
|
|
Go to :menuselection:`Accounting --> Configuration --> Settings` and enable :guilabel:`Batch
|
|
Payments`.
|
|
|
|
Bank journal
|
|
************
|
|
|
|
Go to :menuselection:`Accounting --> Configuration --> Journals` and select the :guilabel:`Bank`
|
|
journal. Enter the :guilabel:`Account Number`, click :guilabel:`Create and edit...`, and fill in the
|
|
following fields:
|
|
|
|
- :guilabel:`Bank`
|
|
- :guilabel:`BSB`
|
|
- :guilabel:`Account Holder`
|
|
|
|
Then, toggle on the :guilabel:`Send Money` switch and click :guilabel:`Save & Close`.
|
|
|
|
.. note::
|
|
Using the :guilabel:`Currency` field is optional.
|
|
|
|
Back on the :guilabel:`Journal Entries` tab, fill in the following fields under the :guilabel:`ABA`
|
|
section:
|
|
|
|
- :guilabel:`BSB`: the BSB code from the bank account is used to fill in this field.
|
|
- :guilabel:`Financial Institution Code`: the official 3-letter abbreviation of the bank (e.g.,
|
|
`WBC` for Westpac)
|
|
- :guilabel:`Supplying User Name`: 6-digit number provided by the bank. Contact your bank or check
|
|
its website if you do not know it.
|
|
- :guilabel:`APCA Identification Number`: 6-digit number provided by the bank. Contact your bank or
|
|
check its website if you do not know it.
|
|
- :guilabel:`Include Self Balancing Transaction`: selecting this option adds an additional
|
|
"self-balancing" transaction to the end of the ABA file, which is required by some banks.
|
|
|
|
Customers' and vendors' bank accounts
|
|
*************************************
|
|
|
|
Go to :menuselection:`Accounting --> Customers --> Customers` or :menuselection:`Accounting -->
|
|
Vendors --> Vendors` and select a customer or vendor. Open the :guilabel:`Accounting` tab, and,
|
|
under the :guilabel:`Bank Accounts` section, click :guilabel:`Add a line` to fill in their:
|
|
|
|
- :guilabel:`Account Number`
|
|
- :guilabel:`Bank`
|
|
- :guilabel:`BSB`
|
|
- :guilabel:`Account Holder`
|
|
|
|
Then, toggle on the :guilabel:`Send Money` switch and click :guilabel:`Save & Close`.
|
|
|
|
Generating an ABA file
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
To generate an ABA file, create a vendor bill, confirm it, and ensure the vendor's banking
|
|
information is set up correctly.
|
|
|
|
Next, click :guilabel:`Pay` on the vendor bill, and select, for the following fields:
|
|
|
|
- :guilabel:`Journal`: :guilabel:`Bank`
|
|
- :guilabel:`Payment Method`: :guilabel:`ABA Credit Transfer`
|
|
- :guilabel:`Recipient Bank Account`: the vendor's account number
|
|
|
|
Once payments are created, go to :menuselection:`Accounting --> Vendors --> Payments`, select the
|
|
payments to be included in the batch, and click :guilabel:`Create Batch`. Verify all information is
|
|
correct and click :guilabel:`Validate`. Once validated, the ABA file is available in the **chatter**
|
|
on the right.
|
|
|
|
After uploading the file to your bank's portal, an ABA transaction line will appear in your bank
|
|
feed at the following bank feed iteration. You will need to reconcile it against the **batch
|
|
payment** made in Odoo.
|
|
|
|
Industry-specific features
|
|
==========================
|
|
|
|
Starshipit shipping
|
|
-------------------
|
|
|
|
Starshipit is a shipping service operator that facilitates the integration of Australasian shipping
|
|
couriers with Odoo. Refer to the :doc:`Starshipit documentation
|
|
<../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/starshipit_shipping>` for
|
|
detailed information.
|
|
|
|
.. seealso::
|
|
`Starshipit Odoo webinar recording <https://www.youtube.com/watch?v=TcDWnoYLXWg>`_
|
|
|
|
.. _australia/buynow_paylater:
|
|
|
|
Buy Now, Pay Later solutions
|
|
----------------------------
|
|
|
|
*Buy Now, Pay Later* solutions are popular payment methods for eShops in Australia. Some of these
|
|
solutions are available via `Stripe <https://stripe.com/en-au/payments/payment-methods>`_ and
|
|
`AsiaPay <https://www.asiapay.com.au/payment.html#option>`_.
|
|
|
|
.. seealso::
|
|
- :doc:`Stripe payment provider <../payment_providers/stripe>`
|
|
- :doc:`AsiaPay payment provider <../payment_providers/asiapay>`
|
|
|
|
POS terminals
|
|
-------------
|
|
|
|
To establish a direct connection between Odoo and a POS terminal in Australia, a **Stripe** payment
|
|
terminal is required. Odoo supports the **EFTPOS** payment solution in Australia.
|
|
|
|
.. note::
|
|
A Stripe payment terminal is not required to use Odoo as the main POS system. However, without
|
|
one, cashiers must manually enter the final payment amount on the terminal.
|
|
|
|
.. seealso::
|
|
- :doc:`Stripe payment provider <../payment_providers/stripe>`
|
|
- :doc:`Stripe payment terminal <../../sales/point_of_sale/payment_methods/terminals/stripe>`
|
|
- `Stripe.com terminal documentation <https://stripe.com/docs/terminal>`_
|
|
|
|
.. _australia/payroll:
|
|
|
|
Payroll
|
|
=======
|
|
|
|
.. important::
|
|
Odoo is currently in the process of becoming compliant with STP Phase 2 and SuperStream. An
|
|
announcement will be made as soon as companies can use Odoo for payroll as a one-stop platform.
|
|
|
|
Setting up employees
|
|
--------------------
|
|
|
|
Employee settings
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Create an employee by going to :menuselection:`Employees --> New`. Go to the :guilabel:`Settings`
|
|
tab, and configure the :guilabel:`Australian Payroll` section, for example checking if they are
|
|
:guilabel:`Non-resident`, if they benefit from the :guilabel:`Tax-free Threshold`, their
|
|
:guilabel:`TFN Status`, :guilabel:`Employee Type`, etc.
|
|
|
|
.. image:: australia/payroll-employee-settings.png
|
|
:alt: Employee settings tab for the Australian payroll localization
|
|
|
|
Employee private information
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
In addition, some personal employee information is required for payroll compliance with Single Touch
|
|
Payroll, and to process superannuation payments. Open the employee's :guilabel:`Private Information`
|
|
tab and fill in the following fields:
|
|
|
|
- :guilabel:`Private Address`
|
|
- :guilabel:`Private Email`
|
|
- :guilabel:`Private Phone`
|
|
- :guilabel:`Date of Birth`
|
|
|
|
.. image:: australia/payroll-employee-private.png
|
|
:alt: Employee private information tab for the Australian payroll localization
|
|
|
|
.. note::
|
|
Odoo will remind you to complete the required data at different stages of the process.
|
|
|
|
Super accounts and funds
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
You can add the superannuation details of new employees under the employee's :guilabel:`Super
|
|
Accounts` tab. Click :guilabel:`Add a line` and make sure to include the :guilabel:`Member Since`
|
|
date, :guilabel:`Member Number`, and :guilabel:`Super Fund`.
|
|
|
|
.. tip::
|
|
Use the :guilabel:`Proportion` field if an employee's contributions should sent to multiple
|
|
funds at a time.
|
|
|
|
.. image:: australia/payroll-super-account.png
|
|
:alt: Configuring a super fund and super account for the Australian payroll localization
|
|
|
|
To create a new :guilabel:`Super Fund`, start typing its name and click :guilabel:`Create and
|
|
edit...`. Fill in its:
|
|
|
|
- :guilabel:`Address`
|
|
- :guilabel:`ABN`
|
|
- :guilabel:`Type` (APRA / SMSF)
|
|
- unique identifier (:guilabel:`USI` for APRA, :guilabel:`ESA` for SMSF)
|
|
- (for SMFS only) :guilabel:`Bank Account`
|
|
|
|
.. image:: australia/payroll-super-fund.png
|
|
:alt: Configuring a super fund for the Australian payroll localization
|
|
|
|
.. tip::
|
|
Manage all super accounts and funds by going to :menuselection:`Payroll --> Configuration -->
|
|
Super Funds` or :menuselection:`Super Accounts`.
|
|
|
|
.. important::
|
|
Odoo is currently in the process of becoming SuperStream-compliant.
|
|
|
|
Contracts
|
|
~~~~~~~~~
|
|
|
|
Once the employee has been created, create their employment contract by clicking the :icon:`fa-book`
|
|
:guilabel:`Contracts` smart button, or by going to :menuselection:`Employees --> Employees -->
|
|
Contracts`.
|
|
|
|
.. note::
|
|
Only one contract can be active per employee at a time. However, an employee can be assigned
|
|
consecutive contracts during their employment.
|
|
|
|
Employment contract creation: recommended steps
|
|
***********************************************
|
|
|
|
.. image:: australia/payroll-contract-flow.png
|
|
:alt: Recommended steps to create an employment contract
|
|
|
|
1. Basic contractual information
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
- Select the :guilabel:`Contract Start Date` and :guilabel:`Working Schedule` (set, or flexible for
|
|
casual workers).
|
|
- Keep the :guilabel:`Salary Structure Type` set to :guilabel:`Australian Employee`. This structure
|
|
covers all of the ATO's tax schedules.
|
|
|
|
.. _australia/payroll/work-entry-source:
|
|
|
|
- (if using the Attendances or Planning app) Select the :guilabel:`Work Entry Source` to define how
|
|
working hours and days are accounted for on the employee's payslip.
|
|
|
|
- :guilabel:`Working Schedule`: work entries are automatically generated based on the employee's
|
|
working schedule, starting from the contract's start date.
|
|
|
|
.. example::
|
|
An employee works 38 hours a week, their contract begins on 01/01, today's date is 16/01, and
|
|
the user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be
|
|
automatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken.
|
|
|
|
- :guilabel:`Attendances`: the working schedule is ignored, and work entries are only generated
|
|
after clocking in and out of the Attendances app. Note that attendances can be imported.
|
|
- :guilabel:`Planning`: the working schedule is ignored, and work entries are generated from
|
|
planning shifts in the Planning app.
|
|
|
|
.. important::
|
|
Timesheets do not impact work entries in Odoo. If you need to import your timesheets in Odoo,
|
|
import them by going to :menuselection:`Payroll --> Work Entries --> Work Entries` instead.
|
|
|
|
2. Salary Information tab
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
- :guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for full-time and part-time employees, and
|
|
:guilabel:`Hourly Wage` for casual workers. The latter allows you to add a :guilabel:`Casual
|
|
Loading` percentage.
|
|
|
|
.. note::
|
|
For hourly workers, the :guilabel:`Hourly Wage` field should exclude casual loading.
|
|
|
|
- :guilabel:`Schedule Pay`: in Australia, only the following pay run frequencies are accepted:
|
|
:guilabel:`Daily`, :guilabel:`Weekly`, :guilabel:`Bi-weekly` (or fortnightly),
|
|
:guilabel:`Monthly`, and :guilabel:`Quarterly`.
|
|
- :guilabel:`Wage` /*period*: assign a wage to the contract according to their pay frequency. On
|
|
payslips, the corresponding annual and hourly rates will be computed automatically.
|
|
|
|
3. Australia tab
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
.. image:: australia/payroll-contract-australia.png
|
|
:alt: Australia tab of a contract
|
|
|
|
- :guilabel:`General`
|
|
|
|
- Add the :guilabel:`Regular Pay Day` if relevant.
|
|
- Enable :guilabel:`Report in BAS - W3` if you choose to add PAYG withholding amounts in BAS
|
|
section W3 instead of W2 (refer to the `ATO's web page on PAYG withholding
|
|
<https://www.ato.gov.au/businesses-and-organisations/preparing-lodging-and-paying/business-activity-statements-bas/in-detail/instructions/payg-withholding-how-to-complete-your-activity-statement-labels#W3Otheramountswithheldexcludinganyamount>`_
|
|
for more information).
|
|
|
|
- :guilabel:`Leave loading / workplace giving`
|
|
|
|
- Define whether your employees are :guilabel:`Eligible for Leave Loading`.
|
|
- Set the :guilabel:`Workplace Giving Employee` amount in exchange for deductions.
|
|
- Set the :guilabel:`Salary Sacrificed Workplace Giving` amount (e.g., receiving a benefit instead
|
|
of a deduction).
|
|
|
|
- :guilabel:`Super contributions`
|
|
|
|
- Add the :guilabel:`Extra Negotiated Super %` on top of the *super guarantee*.
|
|
- Add the :guilabel:`Extra Compulsory Super %` as per industrial agreements or awards obligations.
|
|
|
|
- :guilabel:`Salary sacrifice`
|
|
|
|
- :guilabel:`Salary Sacrifice Superannuation` allows employees to sacrifice part of their salary
|
|
in favor of reportable employer superannuation contributions (RESC).
|
|
- :guilabel:`Salary Sacrifice Other Benefits` allows them to sacrifice part of their salary
|
|
towards some other form of benefit (refer to the `ATO's web page on Salary sacrificing for
|
|
employees <https://www.ato.gov.au/individuals-and-families/jobs-and-employment-types/working-as-an-employee/salary-sacrificing-for-employees>`_
|
|
for more information).
|
|
|
|
.. note::
|
|
As of Odoo 18, salary sacrificing for other benefits currently does not impact fringe
|
|
benefits tax (FBT) reporting.
|
|
|
|
.. _australia/payroll/salary-attachments:
|
|
|
|
4. Salary attachments
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
If the employee is to receive additional recurring payments every pay run, whether indefinitely or
|
|
for a set number of periods, click the :icon:`fa-book` :guilabel:`Salary Attachments` smart button
|
|
on the contract. Choose a :guilabel:`Type` and a :guilabel:`Description`.
|
|
|
|
.. note::
|
|
Around 32 recurring salary attachment types exist for Australia. These are mostly related to
|
|
allowances and child support. `Contact us <https://www.odoo.com/help>`_ for more information as
|
|
to whether allowances from your industry can be covered.
|
|
|
|
5. Run the contract
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
.. image:: australia/payroll-contract-run.png
|
|
:alt: Example of a running contract
|
|
|
|
Once all the information has been completed, change the contract stage from :guilabel:`New` to
|
|
:guilabel:`Running`.
|
|
|
|
Prepare pay runs
|
|
----------------
|
|
|
|
Regular
|
|
~~~~~~~
|
|
|
|
Pay runs are created by going to :menuselection:`Payroll --> Payslips --> Batches`. After clicking
|
|
:guilabel:`New`, enter a :guilabel:`Batch Name`, select a :guilabel:`Period`, and click
|
|
:guilabel:`Generate Payslips`.
|
|
|
|
.. image:: australia/payroll-payslips-generation.png
|
|
:alt: Steps to generate payslips
|
|
|
|
Employees on a pay run can be filtered down by :guilabel:`Department` and :guilabel:`Job Position`.
|
|
There is no limit to the amount of payslips that can be created in one batch. After clicking
|
|
:guilabel:`Generate`, one payslip is created per employee in the :guilabel:`Waiting` stage, in which
|
|
they can be reviewed and amended before validation.
|
|
|
|
.. image:: australia/payroll-waiting-payslips.png
|
|
:alt: Generated payslips in the waiting stage
|
|
|
|
On the payslip form view, there are two types of inputs:
|
|
|
|
- :guilabel:`Worked days` are computed based on the :ref:`work entry source set on the employee's
|
|
contract <australia/payroll/work-entry-source>`. :ref:`Work entries can be configured
|
|
<australia/payroll/work-entry-types>` according to different types: attendance, overtime,
|
|
Saturday rate, Sunday rate, public holiday rate, etc.
|
|
- :guilabel:`Other inputs` are individual payments or amounts of :ref:`different types
|
|
<australia/payroll/other-input-types>` (allowances, lump sums, deductions, termination payments,
|
|
leaves, etc.) that have little to do with the hours worked during the current pay period. The
|
|
:ref:`previously configured salary attachments <australia/payroll/salary-attachments>` are simply
|
|
recurring other inputs attached to a contract.
|
|
|
|
.. image:: australia/payroll-payslips-inputs.png
|
|
:alt: Worked days and other inputs of a payslip
|
|
|
|
Under the :guilabel:`Salary Computation` tab, Odoo automatically computes payslip rules based on
|
|
employees, contracts, worked hours, other input types, and salary attachments.
|
|
|
|
The salary structure *Australian Employee* has 35 payslip rules that automatically compute and
|
|
dynamically display according to the payslip inputs.
|
|
|
|
.. example::
|
|
|
|
.. image:: australia/payroll-payslip-salary.png
|
|
:alt: Salary computation tab of a payslip
|
|
|
|
The following rules apply for that pay period in the above example:
|
|
|
|
- :guilabel:`Basic Salary`: pre-sacrifice gross salary
|
|
- :guilabel:`Ordinary Time Earnings`: amount to which the super guarantee percentage needs to be
|
|
applied
|
|
- :guilabel:`Salary Sacrifice Total`: includes the $150 sacrificed to superannuation
|
|
- :guilabel:`Taxable Allowance Payments`: includes the $10 allowance (*cents per KM* in this
|
|
case)
|
|
- :guilabel:`Taxable Salary`: gross salary amount minus non-taxable amounts
|
|
- :guilabel:`Salary Withholding` and :guilabel:`Total Withholding`: amounts to be withheld from
|
|
the taxable salary
|
|
- :guilabel:`Net Salary`: the employee's net wage
|
|
- :guilabel:`Concessional Super Contribution`: in this scenario, the amount sacrificed to
|
|
superannuation, payable to the employee's super fund in addition to the super guarantee
|
|
- :guilabel:`Super Guarantee`: as of 01 July 2024, it is computed as 11.5% of the ordinary time
|
|
earnings amount
|
|
|
|
.. note::
|
|
As of Odoo 18, the most recent tax schedule rates (2024-2025) have been updated for all salary
|
|
rules and computations.
|
|
|
|
Out-of-cycle
|
|
~~~~~~~~~~~~
|
|
|
|
In Australia, payslips created without a batch are considered to be *out-of-cycle* runs. Create them
|
|
by going to :menuselection:`Payroll --> Payslips --> Individual Payslips`. The same payslip rules
|
|
apply, but the way these payslips are submitted to the ATO in the frame of Single Touch Payroll
|
|
(STP) is slightly different.
|
|
|
|
.. important::
|
|
As of Odoo 18, adding an out-of-cycle payslip to an existing batch is **not** recommended.
|
|
|
|
Finalise pay runs
|
|
-----------------
|
|
|
|
Validate payslips
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Once all payslip data is deemed correct, click :guilabel:`Create Draft Entry` on the payslip batch.
|
|
This can also be done payslip by payslip for control reasons.
|
|
|
|
This has several impacts:
|
|
|
|
- Marking the batch and its payslips as :guilabel:`Done`.
|
|
- Creating a draft accounting entry per payslip or one entry for the whole batch, depending on your
|
|
payroll settings. At this stage, accountants can post entries to affect the balance sheet, P&L
|
|
report, and BAS report.
|
|
- Preparing the STP submission (or payroll data to be filed to the ATO as part of STP compliance).
|
|
This needs to be performed by the :guilabel:`STP Responsible` user, defined under
|
|
:menuselection:`Payroll --> Configuration --> Settings`.
|
|
- Preparing super contribution lines as part of SuperStream compliance. This needs to be done by the
|
|
:guilabel:`HR Super Send` user selected under :menuselection:`Payroll --> Configuration -->
|
|
Settings`.
|
|
|
|
.. image:: australia/payroll-stp-record.png
|
|
:alt: Example of a draft payslip
|
|
|
|
Submit payroll data to the ATO
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. important::
|
|
Odoo is currently in the process of becoming compliant with STP Phase 2, and this step described
|
|
above does not submit data yet to the ATO.
|
|
|
|
As per ATO requirements, STP submission for a pay run needs to be done on or before the payday. For
|
|
this reason, submit your STP data to the ATO first before proceeding with payment. To do so, click
|
|
:guilabel:`Submit to ATO` on the payslip batch.
|
|
|
|
On the STP record for this pay run, a few useful information is displayed:
|
|
|
|
- a warning message if important information is missing,
|
|
- an automatically generated activity for the STP responsible user, and
|
|
- a summary of payslips contained in this pay run, auditable from this view.
|
|
|
|
.. image:: australia/payroll-stp-record.png
|
|
:alt: Example of an STP record
|
|
|
|
Once the STP record is ready to go, click :guilabel:`Submit to ATO`, then read and accept the
|
|
related terms and conditions.
|
|
|
|
Pay employees
|
|
~~~~~~~~~~~~~
|
|
|
|
Once the ATO submission is complete, you can proceed to pay your employees. To facilitate the
|
|
payment matching process, remember to post the payslip-related journal entries prior to validating a
|
|
payment.
|
|
|
|
Although you may decide to pay your employees individually, we recommend creating a batch payment
|
|
from your payslip batch. To do so, click :guilabel:`Pay` on the payslip batch, and select
|
|
:guilabel:`ABA Credit Transfer` as the :guilabel:`Payment Method`.
|
|
|
|
.. image:: australia/payroll-payment-method.png
|
|
:alt: Selecting the payment method for a payslip batch
|
|
|
|
This has two impacts:
|
|
|
|
- Marking the batch and its payslips as :guilabel:`Paid`.
|
|
- Creating a :guilabel:`Payment Batch` linked to the payslip batch.
|
|
|
|
.. image:: australia/payroll-paid-batch.png
|
|
:alt: Example of a paid batch of payslips
|
|
|
|
When receiving the bank statement in Odoo, you can now match the statement line with the batch
|
|
payment in one click. The payment is not reconciled against the payslip batch, and all individual
|
|
payslips.
|
|
|
|
.. image:: australia/payroll-reconciliation.png
|
|
:alt: Steps to reconcile a bank statement with a batch payment.
|
|
|
|
Impact on accounting
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Depending on the employee and contract configuration, the journal entry linked to a payslip will be
|
|
more or less exhaustive.
|
|
|
|
.. example::
|
|
For instance, here is the journal entry generated by the employee Marcus Cook configured above.
|
|
|
|
.. image:: australia/payroll-accounting-entry.png
|
|
:alt: Example of a journal entry for a payslip
|
|
|
|
Once posted, predefined accounts will impact the company's balance sheet (PAYGW, wages, and
|
|
superannuation liabilities) and profit & loss report (wages and superannuation expenses). In
|
|
addition, the employee's gross wage and PAYG withholding will update the BAS report for the relevant
|
|
period (see Tax Grid: W1 and W2). Accounts can be adjusted to the company's chart of accounts.
|
|
|
|
.. image:: australia/payroll-bas.png
|
|
:alt: Example of a BAS report PAYG tax witheld section
|
|
|
|
Other payroll flows
|
|
-------------------
|
|
|
|
Paying super contributions
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. important::
|
|
Odoo has a partnership with a clearing house to process both superannuation payments and data to
|
|
the right funds in one click, via direct debit. Odoo is currently in the process of becoming
|
|
compliant with SuperStream, and an announcement will be made as soon as superannuation
|
|
contributions can be processed via Odoo's payroll solution.
|
|
|
|
Once a quarter (or more frequently, in preparation for `Payday Super
|
|
<https://www.ato.gov.au/about-ato/new-legislation/in-detail/superannuation/payday-superannuation>`_),
|
|
you have to process superannuation payments to your employees' super funds. To do so, go to
|
|
:menuselection:`Payroll --> Reporting --> Super Contributions`.
|
|
|
|
.. image:: australia/payroll-superfile.png
|
|
:alt: Example of a super file
|
|
|
|
When ready to pay, add the :guilabel:`Bank Journal` that will be used to pay the super from, then
|
|
click :guilabel:`Lock` to prevent the contributions from subsequent payslips from being added to
|
|
that file. Instead, a new Super file will be created.
|
|
|
|
Once the payment has been processed, it can be traced back to the Super file and matched with a bank
|
|
statement.
|
|
|
|
.. image:: australia/payroll-superfile-payment.png
|
|
:alt: Example of a super file payment
|
|
|
|
Terminating employees
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Employees can be terminated by going to :menuselection:`Payroll --> Reporting --> Terminate
|
|
Employee`.
|
|
|
|
The following fields must be completed:
|
|
|
|
- :guilabel:`Contract End Date`: once the termination is validated, this date will be added to the
|
|
contract automatically, and mark the contract as :guilabel:`Expired` when the date has been
|
|
reached.
|
|
- :guilabel:`Cessation Type Code`: a mandatory field for the ATO's STP reporting.
|
|
- :guilabel:`Termination Type`: the type of redundancy (genuine or non-genuine) affects the
|
|
computation of unused annual and long service leave withholding.
|
|
|
|
.. image:: australia/payroll-termination.png
|
|
:alt: Terminating the contract of an employee
|
|
|
|
The balance of unused annual leaves and long service leaves is displayed for reference.
|
|
|
|
Confirming the termination creates an out-of-cycle payslip with the tag :guilabel:`final pay`. It
|
|
computes the worked days until the contract end date, in addition to the employee's unused annual
|
|
and long service leave entitlements.
|
|
|
|
.. image:: australia/payroll-termination-payslip.png
|
|
:alt: Example of an out-of-cycle payslip of a terminated employee
|
|
|
|
Odoo automatically computes unused leave entitlements based on the employee's current hourly rate
|
|
leave loading (for annual leaves only), and the remaining leave balance. However, these amounts can
|
|
be manually edited in the :guilabel:`Other Inputs` table if necessary.
|
|
|
|
Employment Termination Payments (ETP) can also be added to the :guilabel:`Other Inputs` table. Odoo
|
|
has a comprehensive list of excluded and non-excluded ETPs for companies to select from.
|
|
|
|
.. image:: australia/payroll-termination-etp.png
|
|
:alt: Adding employment termination payments
|
|
|
|
.. note::
|
|
Withholding for unused leaves and ETPs is computed according to the ATO's `Schedule 7
|
|
<https://www.ato.gov.au/tax-rates-and-codes/payg-withholding-schedule-7-tax-table-for-unused-leave-payments-on-termination-of-employment>`_
|
|
and `Schedule 11 <https://www.ato.gov.au/tax-rates-and-codes/payg-withholding-schedule-11-tax-table-for-employment-termination-payments>`_
|
|
and updated as of 01 July 2024.
|
|
|
|
.. tip::
|
|
Once an employee has been terminated and the last detailed of their employment resolved, you can
|
|
archive the employee by clicking the :icon:`fa-cog` (:guilabel:`Actions`) icon, then
|
|
:icon:`oi-archive` :guilabel:`Archive` on the employee's form view.
|
|
|
|
Switching from another STP software to Odoo
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
When switching from another STP-enabled software to Odoo, you might need to maintain the continuity
|
|
in the YTD values of your employees. Odoo allows importing employees' YTD values by going to
|
|
:menuselection:`Payroll --> Configuration --> Settings` and clicking :guilabel:`Import YTD
|
|
Balances`.
|
|
|
|
.. image:: australia/payroll-ytd-button.png
|
|
:alt: Import YTD balances button
|
|
|
|
For the ATO to recognize the employee records of your previous software and keep a continuity in
|
|
Odoo, you must enter the:
|
|
|
|
- :guilabel:`Previous BMS ID` (one per database)
|
|
- :guilabel:`Previous Payroll ID` (one per employee)
|
|
|
|
Ask your previous software provider if you cannot find its BMS ID or your employees' payroll IDs.
|
|
|
|
.. image:: australia/payroll-ytd-import.png
|
|
:alt: Importing YTD balances
|
|
|
|
This will give you the opportunity to add your employees' YTD opening balances in the current
|
|
fiscal year. The ATO reports on a lot of different types of YTD. These are represented by the 13
|
|
following :guilabel:`Salary Rules` in Odoo.
|
|
|
|
.. image:: australia/payroll-ytd-salary-rules.png
|
|
:alt: Salary rules for an employee
|
|
|
|
.. example::
|
|
Let us say that the employee Marcus Cook has been transitioned from another STP-enabled software
|
|
on September 1. Marcus has received two monthly payslips in his previous software (for July and
|
|
August). Here are the YTD balances Marcus's company needs to transfer to Odoo:
|
|
|
|
.. list-table::
|
|
:header-rows: 1
|
|
|
|
* - YTD category
|
|
- YTD balance to transfer
|
|
* - Gross (normal attendance)
|
|
- $13,045.45
|
|
* - Gross (overtime)
|
|
- $1,000
|
|
* - Paid leave
|
|
- $954.55
|
|
* - Laundry allowance
|
|
- $200
|
|
* - Total withholding
|
|
- $2,956
|
|
* - Super Guarantee
|
|
- $1,610
|
|
|
|
If some YTD balances need to be reported with more granularity to the ATO, you can use the salary
|
|
rule's inputs.
|
|
|
|
.. example::
|
|
For instance, the *Basic Salary* rule can contain six inputs, and three are necessary in our
|
|
example: regular gross amounts, overtime, and paid leaves. These are all reported differently in
|
|
terms of YTD amounts.
|
|
|
|
.. image:: australia/payroll-ytd-basic-rule.png
|
|
:alt: Adding YTD inputs
|
|
|
|
The finalized YTD opening balances for Marcus Cook look like the following.
|
|
|
|
.. image:: australia/payroll-ytd-final.png
|
|
:alt: Example of finalized YTD opening balances
|
|
|
|
As a result, YTD computations on payslips are based on the employee's opening balances instead of
|
|
starting from zero.
|
|
|
|
STP finalisation
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
.. important::
|
|
Odoo is currently in the process of becoming compliant with STP Phase 2, and the finalisation
|
|
flows described below do not yet submit data to the ATO.
|
|
|
|
EOFY finalisation
|
|
*****************
|
|
|
|
Employers reporting through STP must make a finalization declaration by 14 July each year. To do so,
|
|
go to :menuselection:`Payroll --> Reporting --> STP Finalisation`.
|
|
|
|
.. image:: australia/payroll-stp-eofy-finalisation.png
|
|
:alt: EOFY finalisation of an employee
|
|
|
|
Both active and terminated employees to finalise are displayed.
|
|
|
|
.. image:: australia/payroll-stp-eofy-list.png
|
|
:alt: List of employees to finalise
|
|
|
|
From the finalisation form view, you can proceed with a final audit of all employees' payslips
|
|
during the relevant financial year. Once ready, click :guilabel:`Submit to ATO`. When you have made
|
|
the finalisation declaration, employees will see the status of their payment information change to
|
|
:guilabel:`Tax ready` on their online income statement after the end of the financial year.
|
|
|
|
Individual finalisation
|
|
***********************
|
|
|
|
Odoo also allows you to finalise employees individually during the year. This can be useful when:
|
|
|
|
- one-off payments are made after a first finalisation; and
|
|
- finalisation after termination of employment during the year.
|
|
|
|
To proceed with an individual finalisation, go to :menuselection:`Payroll --> Reporting --> STP
|
|
Finalisation`, leave the :guilabel:`EOFY Declaration` checkbox unticked, and manually add employees
|
|
to be finalised.
|
|
|
|
.. image:: australia/payroll-stp-individual.png
|
|
:alt: Individual EOFY finalisation
|
|
|
|
Even if you finalise an employee record partway through the financial year, the ATO will not
|
|
pre-fill the information into the employee's tax return until after the end of the financial year.
|
|
|
|
Adjustments
|
|
~~~~~~~~~~~
|
|
|
|
.. important::
|
|
Odoo is currently in the process of becoming compliant with STP Phase 2, and the adjustment flows
|
|
described below do not yet submit data to the ATO.
|
|
|
|
Amend finalisation
|
|
******************
|
|
|
|
If you need to amend YTD amounts for an employee after a finalisation declaration was made, it is
|
|
still possible to remove the finalisation indicator for that employee. To do so, go to
|
|
:menuselection:`Payroll --> Reporting --> STP Finalisation`, select the employee, and leave the
|
|
:guilabel:`Finalisation` checkbox unticked.
|
|
|
|
.. image:: australia/payroll-stp-amend.png
|
|
:alt: Amending YTD amounts for an employee
|
|
|
|
When ready, click :guilabel:`Submit to ATO` to file the finalisation update to the ATO.
|
|
|
|
Once the correct YTD details are ready for that employee after amendment, finalise that employee
|
|
again.
|
|
|
|
.. note::
|
|
The ATO expects employers to correct errors within 14 days of detection or, if your pay cycle is
|
|
longer than 14 days (e.g., monthly), by the date you would be due to lodge the next regular pay
|
|
event. Finalisation amendments can be done through STP up to five years after the end of the
|
|
financial year.
|
|
|
|
Finalising and amending finalisation for a single employee can also be useful when rehiring an
|
|
employee within the same financial year.
|
|
|
|
Full file replacements
|
|
**********************
|
|
|
|
An employer can make full file replacements of pay runs to replace the last lodgement sent to the
|
|
ATO if it turns out to contain significantly inaccurate data.
|
|
|
|
To do so, open the last STP submission and click :guilabel:`Replace File`. Then, select which
|
|
payslips need to be reset by ticking the :guilabel:`Reset Payslip` checkbox.
|
|
|
|
.. image:: australia/payroll-stp-reset-payslips.png
|
|
:alt: Replace file button
|
|
|
|
Resetting payslips does not create new payslips or a new pay run, but instead:
|
|
|
|
- The payslips batch is reset from :guilabel:`Paid` or :guilabel:`Done` to :guilabel:`Confirmed`.
|
|
- The status of the reset payslips revert back to :guilabel:`Draft`.
|
|
- The correct payslips remain paid and matched against the original payment.
|
|
- A new STP submission is created to replace the former one. For traceability purposes, the former
|
|
STP submission is not deleted but marked as replaced.
|
|
|
|
First, correct the reset payslips and create their draft entry. Once done, the :guilabel:`Submit to
|
|
ATO` reappears on the payslip batch to process the full file replacement.
|
|
|
|
.. image:: australia/payroll-stp-resubmit.png
|
|
:alt: Resubmitting a payslip batch
|
|
|
|
When ready, submit the pay run to the ATO once again. Please note that full file replacements are
|
|
only meant as a last resort to amend a substantial amount of erroneous data. When possible, the ATO
|
|
recommends correcting an incorrect payslips by submitting a correction as part of the next pay run
|
|
or via update event.
|
|
|
|
Moreover, it is not possible to submit a second full file replacement of the same submission, and a
|
|
full file replacement can only be done once every 24 hours.
|
|
|
|
Zero out YTD values
|
|
*******************
|
|
|
|
In case of a mid-year change of several key identifiers, YTD values need to be zeroed out, and then
|
|
re-posted with the updated key identifier.
|
|
|
|
For the following **company identifiers**, all employees need to be zeroed out:
|
|
|
|
- ABN
|
|
- Branch Code
|
|
- BMS ID
|
|
|
|
For the following **employee identifiers**, only individual employees can be zeroed out:
|
|
|
|
- TFN
|
|
- Payroll ID
|
|
|
|
#. Before updating any key identifiers, create a new STP submission by going to
|
|
:menuselection:`Payroll --> Reporting --> Single Touch Payroll` and:
|
|
|
|
- Change the :guilabel:`Submission Type` to :guilabel:`Update`.
|
|
- Tick the :guilabel:`Zero Out YTD` checkbox.
|
|
- Click :guilabel:`Add a line` to specify which employees.
|
|
- Click :guilabel:`Submit to ATO`.
|
|
|
|
.. image:: australia/payroll-stp-zero-out.png
|
|
:alt: Creating a new STP submission to zero out YTD values
|
|
|
|
#. Once that is done, modify the key identifier(s) to amend.
|
|
|
|
#. Finally, go back to :menuselection:`Payroll --> Reporting --> Single Touch Payroll` to create and
|
|
submit a new :guilabel:`Update`, this time without ticking the :guilabel:`Zero Out YTD` checkbox.
|
|
This will notify the ATO that the previously recorded YTD balances are to be adjusted to the new
|
|
key identifiers.
|
|
|
|
Payroll links to other apps
|
|
---------------------------
|
|
|
|
Time Off
|
|
~~~~~~~~
|
|
|
|
The :doc:`Time Off app <../../hr/time_off>` is natively integrated with the Payroll app in Odoo.
|
|
Different types of leaves will populate payslips based on the concept of *work entries*.
|
|
|
|
Go to :menuselection:`Time Off --> Configuration --> Time Off Types`, and for each type, configure
|
|
the following two fields under the :guilabel:`Payroll` section:
|
|
|
|
- :guilabel:`Work Entry Type`: defines which work entry should be selected on the :guilabel:`Worked
|
|
Days` table of the payslip.
|
|
- :guilabel:`Unused Leave Type`: choose between :guilabel:`Annual`, :guilabel:`Long Service`, or
|
|
:guilabel:`Personal Leave`. If :guilabel:`Personal Leave` is selected, the remaining leave balance
|
|
for this time off type will not show up as an entitlement at the time of termination. Unused
|
|
leaves of the type :guilabel:`Annual` will include leave loading if the employee is eligible for
|
|
it.
|
|
|
|
.. image:: australia/payroll-time-off.png
|
|
:alt: Configuring time off types
|
|
|
|
Expenses
|
|
~~~~~~~~
|
|
|
|
The :doc:`Expenses app <../expenses>` is also natively integrated with the Payroll app in Odoo.
|
|
First of all, go to :menuselection:`Expenses --> Configuration --> Settings` and enable
|
|
:guilabel:`Reimburse in Payslip`.
|
|
|
|
When an employee on your payroll submits an approved expense to be reimbursed, you can reimburse
|
|
them using two ways:
|
|
|
|
- If the expense is to be reimbursed outside of a pay run, click :guilabel:`Post Journal Entries`.
|
|
The payment must be made manually.
|
|
- If the expense is to be reimbursed as part of the next pay run, click :guilabel:`Report in Next
|
|
Payslip` instead.
|
|
|
|
.. image:: australia/payroll-expenses-reimburse.png
|
|
:alt: Two ways of reimbursing an expense
|
|
|
|
After an expense has been added to the next payslip, you can find it in the :guilabel:`Other Inputs`
|
|
table. This input type is then computed as an addition to the net salary.
|
|
|
|
.. image:: australia/payroll-expenses-payslip.png
|
|
:alt: The expense reimbursement on a payslip
|
|
|
|
After paying the employee, the payslip's journal item related to the employee's reimbursement is
|
|
automatically matched against the expense's vendor bill.
|
|
|
|
.. image:: australia/payroll-expenses-journal.png
|
|
:alt: The payslip's journal item related to the employee's expense reimbursement
|
|
|
|
Advanced configurations
|
|
-----------------------
|
|
|
|
.. _australia/payroll/other-input-types:
|
|
|
|
Other input types
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
You can access other input types by going to :menuselection:`Payroll --> Configuration --> Other
|
|
Input Types`. There are 63 other input types related to Australia. We do not recommend using the
|
|
other ones as part of your payroll solution, since they cannot be used in the frame of STP. You can
|
|
archive or delete them.
|
|
|
|
On each input type, the following fields are important:
|
|
|
|
- :guilabel:`Payment Type` classifies input types in six categories:
|
|
|
|
#. :guilabel:`Allowance`: a separate amount you pay to your employees in addition to salary and
|
|
wages. Some of these allowances are mandated by modern awards: laundry, transport, etc.
|
|
|
|
.. important::
|
|
`Contact us <https://www.odoo.com/help>`_ if you plan to use allowances subject to varied
|
|
rates of withholding (such as *cents per KM* or *travel allowances*) to see whether Odoo
|
|
currently covers your business case.
|
|
|
|
.. note::
|
|
- As of Odoo 18, some allowances such as :guilabel:`Laundry: Allowance for approved
|
|
uniforms` are managed by two other inputs: one to lodge the amount paid up to the ATO
|
|
limit, and the other one to lodge the amount exceeding the ATO limit. This is necessary
|
|
for Odoo to compute PAYGW correctly.
|
|
- Some businesses may require to shift the reporting of an allowance from :guilabel:`OTE` to
|
|
:guilabel:`Salary & Wages` depending on the employee. In this case, you must duplicate and
|
|
re-configure an existing other input type. For example, :guilabel:`Work-Related
|
|
Non-Expense` allowance is :guilabel:`OTE` by default.
|
|
|
|
#. :guilabel:`Deduction`: union fees and child support deductions are considered deductions.
|
|
#. :guilabel:`ETP`: employment termination payments. These are either considered excluded or
|
|
non-excluded (see `ATO's web page on ETP components taxation <https://www.ato.gov.au/individuals-and-families/jobs-and-employment-types/working-as-an-employee/leaving-your-job/employment-termination-payments-for-employees/how-etp-components-are-taxed>`_).
|
|
#. :guilabel:`Leave`: leave-related other inputs that are not pertaining to a single pay period
|
|
(lump sum, cashing out leaves while in service, unused leaves, etc.).
|
|
#. :guilabel:`Lump Sum`: return to work and lump sum E (for back payments) fall under this
|
|
category.
|
|
#. :guilabel:`Other`: other payments with their own specific logic.
|
|
|
|
- :guilabel:`PAYGW Treatment` affects how Odoo withholds tax for this input type:
|
|
:guilabel:`Regular`, :guilabel:`No PAYG Withholding`, and :guilabel:`Excess Only` (for
|
|
allowances).
|
|
- :guilabel:`Superannuation Treatment`: :guilabel:`OTE`, :guilabel:`Salary & Wages`, and
|
|
:guilabel:`Not Salary & Wages`.
|
|
- :guilabel:`STP Code`: only visible in :ref:`developer mode <developer-mode>`, this field tells
|
|
Odoo how to report the gross value of this payment to the ATO. We do not recommend changing the
|
|
value of this field if it was already set by default.
|
|
|
|
Grouping other input types by :guilabel:`Payment Type` can help you understand the different
|
|
scenarios in which these inputs can be used.
|
|
|
|
.. image:: australia/payroll-other-input-types.png
|
|
:alt: Other input types grouped by payment type
|
|
|
|
.. _australia/payroll/work-entry-types:
|
|
|
|
Work entry types
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
A *work entry type* is a type of attendance for employees (e.g., attendance, paid leave, overtime,
|
|
etc.). A few work entry types are created by default in every Australian database.
|
|
|
|
.. image:: australia/payroll-work-entry-types.png
|
|
:alt: Default work entry types for the Australian localization
|
|
|
|
Before using Odoo's payroll solution for Australia, it is recommended you trim work entry types to
|
|
keep the ones you need only by going to :menuselection:`Payroll --> Configuration --> Work Entry
|
|
Types`
|
|
|
|
For each type, make sure to configure the following fields for Australia:
|
|
|
|
- :guilabel:`Is OTE`: determines whether time spent in this category can be considered ordinary time
|
|
earnings, meaning that the superannuation guarantee rate will apply (e.g., regular attendance,
|
|
paid leave, etc.).
|
|
- :guilabel:`Penalty Rate`: used to determine the percentage of penalty that applies to time spent
|
|
in this category. It is important that you configure the penalty rate that applies in your state
|
|
or industry according to the type of work (e.g., Saturday rate, Sunday rate, overtime rate, etc.).
|
|
- :guilabel:`STP Code`: only visible in :ref:`developer mode <developer-mode>`, this field tells
|
|
Odoo how to report the time spent in this category to the ATO. We do not recommend changing the
|
|
value of this field if it was already set by default.
|
|
|
|
.. image:: australia/payroll-work-entry-types-configuration.png
|
|
:alt: Configuring a work entry type
|
|
|
|
Current limitations
|
|
-------------------
|
|
|
|
As of Odoo 18, we do not recommend companies to use the Payroll app for the following business
|
|
flows:
|
|
|
|
- Income stream types: Foreign Employment Income
|
|
- Tax treatment category: actors & performers
|
|
- Death benefits reporting
|
|
- Reporting obligations for WPN (instead of ABN)
|
|
- Allowances subject to a varied rate of withholding (such as *cents per kilometer* allowance and
|
|
*travel allowances*)
|
|
|
|
`Contact us <https://www.odoo.com/help>`_ if you would like to make sure whether Odoo fits your
|
|
payroll requirements in Australia.
|
|
|
|
.. _australia/payroll/employment-hero:
|
|
|
|
Employment Hero integration
|
|
---------------------------
|
|
|
|
If your business is already up and running with Employment Hero, you can use the connector as an
|
|
alternative payroll solution. The Employment Hero module synchronizes payslip accounting entries
|
|
(e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo.
|
|
Payroll administration is still done in Employment Hero; Odoo only records the journal entries.
|
|
|
|
Configuration
|
|
~~~~~~~~~~~~~
|
|
|
|
#. :ref:`Install <general/install>` the Employment Hero Payroll module (`l10n_employment_hero`).
|
|
#. Configure the Employment Hero API by going to :menuselection:`Accounting --> Configuration -->
|
|
Settings`. More fields become visible after ticking the :guilabel:`Enable Employment Hero
|
|
Integration` checkbox.
|
|
|
|
.. image:: australia/payroll-employment-hero-settings.png
|
|
:alt: Enabling the Employment Hero integration
|
|
|
|
- Find the :guilabel:`API Key` in the :guilabel:`My Account` section of the Employment Hero
|
|
platform.
|
|
|
|
.. image:: australia/payroll-employment-hero-api-key.png
|
|
:alt: Finding the Employment Hero API key under the My Account section
|
|
|
|
- The :guilabel:`Payroll URL` is pre-filled with `https://keypay.yourpayroll.com.au`.
|
|
|
|
.. warning::
|
|
Do not change the pre-filled :guilabel:`Payroll URL`.
|
|
|
|
- Find the :guilabel:`Business Id` in the Employment Hero URL (e.g., `189241`).
|
|
|
|
.. image:: australia/payroll-employment-hero-business-id.png
|
|
:alt: Finding the Employment Hero Business ID in the URL
|
|
|
|
- Select any Odoo journal as the :guilabel:`Payroll Journal` to post the payslip entries.
|
|
|
|
#. Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the
|
|
necessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment
|
|
Hero in the :menuselection:`Matching Employment Hero Tax` field.
|
|
|
|
The API explained
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The
|
|
reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve
|
|
the same record in Employment Hero and Odoo.
|
|
|
|
.. image:: australia/payroll-employment-hero-journal.png
|
|
:alt: Employment Hero journal entries in Odoo
|
|
|
|
By default, the synchronization happens once per week. It is possible to fetch the records manually
|
|
by going to :menuselection:`Accounting --> Configuration --> Settings` and, in the
|
|
:guilabel:`Employment Hero`, clicking :guilabel:`Fetch Payruns Manually`.
|
|
|
|
Employment Hero payslip entries also work based on double-entry bookkeeping. The accounts used by
|
|
Employment Hero are defined in the Payroll settings section.
|
|
|
|
.. image:: australia/payroll-employment-hero-accounts.png
|
|
:alt: Finding the Employment Hero accounts
|
|
|
|
For the API to work, you must create the same accounts as the default accounts of your Employment
|
|
Hero business (same name and same code) in Odoo. You also need to choose the correct account types
|
|
in Odoo to generate accurate financial reports.
|