Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Human Resources Payroll
  3. Payroll Export v 16.0
  4. Sales Conditions FAQ

Payroll Export

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 39
Download for v 16.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Discuss (mail)
• Employees (hr)
Community Apps Dependencies Show
• Attendance Suite Base
• EH HR Compatibility
Lines of code 2027
Technical Name eh_hr_attendance_payroll_export
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Discuss (mail)
• Employees (hr)
Community Apps Dependencies Show
• Attendance Suite Base
• EH HR Compatibility
Lines of code 2027
Technical Name eh_hr_attendance_payroll_export
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
Attendance to payroll, vendor-neutral

Payroll Export for Attendance

Turn captured attendance into the exact CSV your payroll vendor's bulk import expects, with a full audit trail of every file you generate.

Free · LGPL-3Odoo 16 CommunityFive provider formatsv1.0.0
Generic CSV
Xero Payroll
KeyPay
Employment Hero
MYOB AccountRight

Why this module

Payroll Export for Attendance

Vendor-neutral

Five formats, one wizard

Generic, Xero Payroll, KeyPay, Employment Hero, and MYOB each get the column layout their bulk import expects. Pick a provider, pick a date range, and the file is shaped for that vendor with no manual reformatting.

Honest by design

CSV files, not live connectors

This module does not hold API credentials or push data to any vendor. It generates the file and you upload it through the vendor's own portal. Nothing leaves the database except the CSV you choose to send.

Auditable

Every export is recorded

Each committed run stores the provider, date range, row and employee counts, total hours, the file bytes, and who generated it. Re-download any past export from its run record. Auditors get read-only access.

Day in the life

Pay run Tuesday, four formats, no spreadsheet surgery

Payroll opens the export wizard, picks the fortnight, and runs a dry-run first. The preview shows 142 rows across 38 employees and 1,216 hours, plus the first lines of the file, so a wrong date range is caught before anything is saved. Split shifts on the same day are already summed into one row per employee per day. Happy with the numbers, they untick dry-run and commit. The run is saved with their name and a timestamp, the CSV downloads, and they upload it through the payroll vendor portal. Three weeks later an auditor asks what was sent in the last cycle: the run record is still there, read-only, and the exact file re-downloads in one click.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Split shifts

Multiple attendances on the same day for one employee are aggregated into a single row, with hours summed and the earliest check-in and latest check-out carried through. Verified by test.

Open attendances

A row with no check-out is excluded by default so half-shifts do not skew totals. Turn on the include-open option and elapsed hours are clamped to the date_to cutoff rather than running open-ended.

Multi-company

Exports are scoped to the selected company by the attendance domain, and the run model carries a per-company record rule so one company's export history is never visible to another.

Missing identifiers

MYOB Card ID falls back to work email when no external reference is set on the employee, and Xero falls back to employee name when no email is present, so a partially keyed roster still produces a usable file.

No jobcost module

Analytic and project carry-through is gated on the attendance jobcost field existing. Without the upstream field the export still runs and simply leaves those columns blank instead of failing.

Dry-run isolation

A dry-run computes counts, totals, and a preview but never creates a run record. Only a committed run writes to the audit log, verified by test.

Date guard

A constraint rejects a date_to earlier than date_from before any rows are gathered, so an inverted range cannot produce a misleading empty file.

What is inside

Built to do the job, end to end.

  • Five provider exporters. Generic CSV, Xero Payroll, KeyPay, Employment Hero, and MYOB AccountRight or Essentials. Each is a focused function that writes that vendor's header and column order. Files are UTF-8 with a byte-order mark so spreadsheet tools open them cleanly. Adding a future vendor is one function plus one selection entry.
  • Aggregating wizard. The export wizard gathers attendance in the date range, buckets rows to one entry per employee per day, sums hours, and tracks earliest in and latest out. An optional employee filter narrows the set, and an empty filter means every employee in the company.
  • Run audit model. Committed exports are stored as eh.hr.payroll.export.run records ordered newest first, with mail.thread tracking on provider and dates. Fields are read-only, the manager group cannot delete runs, and an auditor group gets read-only visibility.
  • Dry-run preview. On by default. Shows the provider, date range, row and employee counts, total hours, and the first lines of the generated file without writing a run, so the operator confirms the shape before committing.
  • Retention settings. Each company sets a default provider and a past-export retention horizon in days, defaulting to 730 to cover two financial years. A retention-sweep method trims runs older than the horizon in batches, scoped per company.
  • Company scoping and security. A record rule keeps run history per company, and access rights split manager, admin, and auditor so file history stays read-only for review while remaining editable for administration.

Honest about the edges

What this does not do, so nothing surprises you.

  • CSV files only. There are no live API connectors and no credentials are stored. The operator uploads each generated file through the vendor's own portal once per pay cycle.
  • Provider column layouts reflect each vendor's documented bulk-import shape. Vendors revise their import templates over time, so confirm the current format in your account before a first production run and use the dry-run preview to verify columns.
  • Employee matching relies on the identifiers you maintain: work email for Generic, Xero, KeyPay, and Employment Hero, and an external reference (falling back to email) for MYOB. Keep those fields populated for clean matches.
  • The retention horizon and a batch retention-sweep method are included, but this build does not ship a registered automatic schedule for the sweep, so retention trimming is not run unattended out of the box.
  • Hours come straight from attendance check-in and check-out. The module does not interpret overtime, penalty rates, leave, or pay categories. It exports worked hours and leaves rate and category logic to the payroll system.
  • Analytic and project columns are populated only when the attendance jobcost field from the wider attendance suite is present.
  • Built and validated for Odoo 16 Community alongside the ERP Heritage attendance base.
Search

payroll export odoo 16, attendance to payroll csv, xero timesheet export odoo, keypay timesheet import, employment hero timesheet export, myob accountright timesheet import, hr_attendance payroll export, timesheet csv export odoo, generic payroll csv exporter, multi company attendance export, payroll export audit trail, dry run payroll preview odoo, split shift aggregation payroll, odoo community payroll export, vendor neutral payroll csv

ERP Heritage

Production-grade Odoo accounting, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by ERP Heritage - Odoo Implementation

v1.0.0 · LGPL-3 · Odoo 16 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with