โ† Back to guides

How to Process a Pay Run in Odoo

Processing a pay run is the bread and butter of payroll. In Odoo, a pay run involves generating payslips for a group of employees for a specific pay period, verifying the calculations, exporting bank payments, and lodging STP. This guide walks through the entire process from start to finish.

Before you start: pay run checklist

  • โ˜ All timesheets/rosters for the period are submitted and approved
  • โ˜ Leave requests for the period are approved (or rejected)
  • โ˜ Any new employees have been set up with contracts, TFN, super fund
  • โ˜ Any terminations have been processed
  • โ˜ Ad-hoc payments (bonuses, commissions, reimbursements) are documented
  • โ˜ Salary changes effective this period have been updated on contracts

Step 1: Review work entries

Work entries are the building blocks of payslips. They represent hours worked and how they should be classified:

  • Go to Payroll โ†’ Work Entries โ†’ Work Entries
  • Filter by the current pay period
  • Review for conflicts (shown in red): these are usually overlapping entries, missing entries, or unlinked attendances
  • Resolve any conflicts โ€” common issues include employees with no work schedule, or leave requests not approved
  • If using timesheets, verify that hours from the Timesheet module have flowed through correctly
  • If using the Planning module, verify that shifts are correctly mapped to work entry types
๐Ÿ’ก

Set a deadline for timesheet submission (e.g., end of day Monday for a Wednesday pay run). Chase up missing timesheets before you start โ€” it's far easier than adjusting payslips after the fact.

Step 2: Generate payslips

  • Go to Payroll โ†’ Payslips โ†’ All Payslips
  • Click Generate Payslips
  • Select the salary structure, department (or all), and pay period dates
  • Odoo creates a draft payslip for each eligible employee
  • The payslip calculations include: gross pay (based on work entries), PAYG withholding (from ATO tax tables), superannuation (% of OTE), deductions, net pay

Step 3: Review payslips

This is the most important step. Review payslips before confirming:

  • Open each payslip and check the Salary Computation tab
  • Verify gross pay matches expected hours ร— rates
  • Verify PAYG withholding is reasonable (use the ATO tax tables or tax calculator to spot-check)
  • Verify super is calculated correctly (12% of OTE for 2025-26)
  • Check for any unusual amounts โ€” missing penalty rates, incorrect overtime, etc.
  • For employees on leave, verify leave pay is at the correct rate (including leave loading if applicable)
  • Check the Net Pay โ€” is it in the expected range for this employee?
โ„น๏ธ

For the first few pay runs, compare Odoo's calculations against your previous payroll system or a manual spreadsheet. Once you're confident the rules are correct, this verification becomes faster.

Step 4: Handle ad-hoc items

Before confirming, add any one-off items:

  • Bonuses โ€” Add as an "Other Input" line on the payslip. Ensure PAYG and super are calculated on it.
  • Commissions โ€” Add with the correct income type for STP reporting.
  • Expense reimbursements โ€” Add as a non-taxable line (no PAYG, no super).
  • Salary sacrifice adjustments โ€” Verify the pre-tax deduction is correct.
  • Child support deductions โ€” If you've received a notice from Services Australia, deduct the specified amount.
  • Back-pay โ€” If correcting a previous underpayment, add as a separate input with the correct period reference.

Step 5: Confirm payslips

  • Select all reviewed payslips
  • Click Confirm (or use the batch "Confirm" action)
  • This locks the payslips โ€” amounts can no longer be changed without creating a correction
  • Journal entries are created in Odoo Accounting: debiting salary expense and crediting payables (net pay, PAYG liability, super liability)
  • Leave balances are updated for any leave taken during the period

Step 6: Export bank payment file

Generate the bank file to pay your employees:

  • Go to Payroll โ†’ Payslips โ†’ Batches
  • Select the confirmed batch
  • Click Generate Bank File โ€” this creates an ABA file (Australian Bankers Association format)
  • The ABA file contains each employee's BSB, account number, and net pay amount
  • Upload the ABA file to your bank's internet banking portal
  • Schedule the payment for pay day
  • Some banks (CommBank, ANZ, NAB, Westpac) allow automated upload via API โ€” consider this for larger businesses
๐Ÿ’ก

Always verify the ABA file total matches the total net pay from Odoo before uploading to the bank. A mismatched total usually indicates a payslip was missed or an employee's bank details are incorrect.

Step 7: Submit STP report

STP must be lodged on or before pay day:

  • Go to Payroll โ†’ Reporting โ†’ STP Submission
  • Review the STP data โ€” gross, PAYG, super, income types, disaggregation
  • Submit to the ATO
  • Wait for the acknowledgement โ€” "Success" or "Error with details"
  • If errors occur, fix the underlying employee data and resubmit

Step 8: Process superannuation

  • Export the super contributions file from Payroll โ†’ Reporting โ†’ Super Contributions
  • Upload to your clearing house (ATO Small Business Super Clearing House or commercial provider)
  • Make the super payment โ€” a single bank transfer to the clearing house
  • The clearing house distributes to individual employee super funds
  • While the ATO deadline is quarterly, best practice is to pay super each pay run

Step 9: Distribute payslips

  • Employees can view their payslips in the Odoo Employee Self-Service portal
  • Alternatively, email payslips as PDF: select payslips โ†’ Print / Send by Email
  • Payslips must show: employer name, employee name, pay period, gross earnings breakdown, deductions, net pay, YTD totals, super contributions
  • Under the Fair Work Act, you must provide payslips within 1 business day of payment

Step 10: Reconcile payroll in accounting

After the pay run, verify the accounting entries:

  • Check the Salary Expense accounts in the general ledger
  • Verify the PAYG Withholding Liability account balance โ€” this should be remitted to the ATO as per your BAS lodgement schedule
  • Verify the Super Liability account โ€” cleared when super is paid via the clearing house
  • Reconcile the bank transaction against the ABA file payment
  • If using the Accounting module, the bank reconciliation should match the payroll bank payment automatically

Pay run timeline (typical fortnightly)

  • Monday โ€” Timesheet deadline. Chase missing submissions.
  • Tuesday morning โ€” Review work entries. Resolve conflicts. Generate payslips.
  • Tuesday afternoon โ€” Review payslips. Add ad-hoc items. Confirm.
  • Wednesday morning โ€” Generate and upload ABA file. Lodge STP. Export super file.
  • Wednesday (pay day) โ€” Payments hit employee accounts. Distribute payslips.
  • Thursday โ€” Reconcile payroll in accounting. Address any employee queries.

Want payroll that just works?

We'll set up your Odoo payroll so processing a pay run takes minutes, not hours. Compliant, efficient, and stress-free.

Get in touch โ†’