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 19.0
  4. Sales Conditions FAQ

Payroll Export

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 19.0 Third Party 36
Download for v 19.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, one clean file

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 have generated.

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

Why this module

Payroll Export for Attendance

No connector tax

CSV by design, not a fragile API link

This module does not hold live credentials against any payroll vendor. It builds the exact bulk-import file each system expects and you upload it through the vendor's own portal once per cycle. Nothing breaks when a vendor rotates an API.

Preview first

See the file before you commit it

Every run defaults to dry-run. You get the row count, employee count, total hours, and the first lines of the actual file before a single record is saved. Flip dry-run off only when the numbers look right.

Defensible record

Every export is kept and read-only

Each committed run stores the file bytes, provider, date range, totals, who ran it, and when, on a form that cannot be edited or created by hand. Re-download any past export at any time without regenerating it.

Day in the life

Pay-cycle Monday, ten minutes before payroll

Open the export wizard, pick your provider (it defaults to the company's preferred one), set the pay period, and leave dry-run on. The preview shows 47 rows across 23 employees, 911.50 hours, and the first lines of the Xero file. Split shifts have already collapsed to one row per person per day and the half-finished clock-in from this morning is excluded. You turn dry-run off, run it, and the file lands on a saved run record. You download it, upload it to the vendor portal, and the run sits in the audit list for the next time finance asks what was sent.

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 the same employee aggregate into one row, summing hours and keeping the earliest check-in and latest check-out. A lunch-split day becomes a single 8-hour line, not two.

Open attendances

A clock-in with no clock-out is excluded by default so half-shifts do not skew the export. Turn the flag on to include them, and elapsed hours are capped at the date_to cutoff rather than running open-ended.

Inverted dates

A date range where the end precedes the start is rejected by a constraint before any rows are gathered, so you cannot silently produce an empty or backwards file.

Empty result

A range with no attendance still emits a valid file with the provider's header row and zero data rows, so downstream tooling never chokes on a truncated or headerless file.

Multi-company

Rows are scoped to the wizard's company, and saved run records carry a company_id behind a record rule, so one company's operators never see or export another company's attendance.

MYOB Card ID fallback

MYOB rows use an employee external reference for the Card ID and fall back to work email when none is set, so the file is still importable even before external references are populated.

Spreadsheet encoding

Files are written with a UTF-8 BOM so names with accents open cleanly in spreadsheet tools without manual encoding fixes.

Re-running a period

Re-exporting the same range is allowed. The new run sits next to the old one in the audit list rather than overwriting it, so history is preserved.

What is inside

Built to do the job, end to end.

  • Five exporters behind one wizard. Generic CSV plus Xero Payroll, KeyPay, Employment Hero, and MYOB AccountRight / Essentials. Each is an isolated formatting function mapping the common aggregated row to that vendor's exact header set, so a new vendor is one function plus one selection entry.
  • Aggregate-then-format pipeline. The wizard gathers attendance, collapses it to one row per employee and date with summed hours and bracketing timestamps, then hands a uniform row shape to the chosen exporter. Gathering and formatting never tangle.
  • Read-only run records on the chatter. Committed runs land on eh.hr.payroll.export.run with mail.thread tracking, a create-false edit-false form, and the file as an attachment. Managers can create runs but not delete them, admins can, and an auditor group gets read-only access.
  • Company defaults and retention setting. Settings expose a default provider per company and a retention horizon in days (default 730, two financial years). A batched per-company retention method is provided to trim old runs when scheduled.
  • Optional analytic and project carry-through. When the attendance job-cost module is installed, analytic account name and code plus project name ride through into Xero Tracking 1, KeyPay and Employment Hero cost centre, and MYOB Job. The lookup is defensive, so the exporter runs fine without it.
  • Tested formats and aggregation. Pure-Python exporter tests pin every provider's header and row layout, and wizard tests cover split-shift aggregation, employee filtering, open-attendance handling, date validation, and dry-run versus committed runs.

Honest about the edges

What this does not do, so nothing surprises you.

  • CSV files only. There are no live API connectors to any payroll vendor. You upload the generated file through the vendor's own portal.
  • The retention sweep is provided as a batched method but is not scheduled out of the box. Pruning of old runs is not automatic until you wire a scheduled action to call it.
  • MYOB Card ID uses an employee external reference field that this suite does not itself populate, so today it falls back to work email unless that field is supplied by another module.
  • Analytic and project carry-through only appears when the attendance job-cost module is installed. Without it, those columns are written empty.
  • Employee matching in the file is by work email (or name for Xero, external ref or email for MYOB). The vendor still does its own matching on import.
  • Hours come straight from attendance duration. There is no overtime classification, penalty rates, leave, or proration in this module.
  • Depends on the ERP Heritage attendance base and the standard hr_attendance module.
Search

payroll export Odoo, attendance to payroll CSV, Xero timesheet export Odoo, KeyPay timesheet import, Employment Hero timesheet export, MYOB timesheet import Odoo, hr_attendance payroll, timesheet CSV export, Odoo 19 Community payroll export, attendance hours export, multi-company payroll export, payroll bulk import file, Odoo attendance CSV, pay cycle export Odoo, dry run payroll preview

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 19 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