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. Employment Hero
  3. Employment Hero Connector v 18.0
  4. Sales Conditions FAQ

Employment Hero Connector

by ERP Heritage https://www.erpheritage.com.au/
Odoo

$ 59.05

v 18.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
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 Discuss (mail)
Lines of code 1992
Technical Name eh_hero_base
LicenseOPL-1
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
  • Description
  • Manifest
  • License
ERP Heritage · Employment Hero Suite
Employment Hero integration core for Odoo 18

Employment Hero Connector Core

The transport, auth and endpoint foundation every Employment Hero module in this suite is built on.

USD 59 · OPL-1Odoo 18 CommunityIntegration corev18.0.1.0.0
Per company connections
Data driven endpoint registry
OAuth2 with PKCE
Automatic token refresh
Client side rate limiting

Why this module

Employment Hero Connector Core

Two APIs, one model

The right auth for each product

One connection model speaks both Employment Hero product families: API key Basic auth for the Payroll API, and OAuth2 Bearer with PKCE and lazy refresh for the HR platform. A static header token scheme covers the recruitment API. Sync jobs call one connection and never deal with auth themselves.

No code to add an endpoint

Endpoints are data, not Python

Every API path is a record in a registry. Add a new endpoint from the user interface, set its method, path template and pagination style, and it is immediately callable with no module upgrade. The connector ships a base catalogue of common HR and payroll reads to start from.

Built to survive a real API

Resilient transport by default

Client side rate limiting, exponential backoff with jitter, and retry of transient failures only. A retried write carries an idempotency key so the vendor deduplicates it instead of creating a second record. Credentials are admin only, tokens are encrypted at rest, and every call is logged with secrets redacted.

Day in the life

What a working day looks like

An administrator creates a connection for the company, picks the product, and either pastes an API key or runs the OAuth2 authorisation in a new tab. The Test Connection button probes a known endpoint and reports success or the exact error. From then on the domain modules call the connection on a schedule. Under load the rate limiter holds calls under the vendor cap so 429 storms never start, transient failures retry quietly with backoff, and OAuth tokens refresh themselves before they expire. When something does fail, the redacted API log shows the endpoint, status, timing and a truncated body, so an integrator can see exactly what was sent and what came back without any credential ever landing in the log.

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.

Idempotent retried writes

A write carries an Idempotency-Key that stays the same across every retry of the call, so a create that is resent after a timeout is deduplicated by the vendor rather than creating a second record.

Single flight token refresh

When several workers hit an expired OAuth token at once, the token row is locked FOR UPDATE in an autonomous transaction and the expiry rechecked after the lock, so only one worker POSTs the refresh and a rotated refresh token is never overwritten with a dead one.

Replay safe OAuth callback

The authorisation flow is claimed atomically by state with a single DELETE RETURNING, so a replayed or concurrent callback finds nothing and cannot redeem the same code twice. PKCE binds the request to the exchange.

Cluster wide rate budget

The default rate limiter is a database backed token bucket metered against the database clock, so N Odoo workers draw from one shared budget per rate group instead of each running its own and multiplying the real request rate.

Rate budget exhaustion

If the shared budget is spent after the maximum wait, the client refuses to send and raises a rate limit error rather than adding to the very 429 storm it exists to prevent, leaving the caller to retry with backoff.

Honoured but clamped Retry-After

A server Retry-After header is honoured on a 429, but clamped to five minutes so a hostile or buggy header cannot park a worker for hours.

Pagination truncation is loud

Pagination supports OData skip and top, page index and cursor styles per endpoint. When a hard page cap is hit the results are truncated and a warning is logged rather than silently dropping records, with advice to narrow the query.

Non JSON page rejected

If a paginated endpoint returns an HTML error or maintenance page instead of JSON, the parser raises rather than yielding the text as if it were a record.

Secrets never reach the log

The audit log redacts sensitive keys, personal and financial identifiers, and bearer or basic tokens inside raw string bodies before storage, then truncates, so a chatty sync never leaks a credential or PII into the database.

Encryption will not silently downgrade

OAuth tokens are encrypted with Fernet and tagged with the key fingerprint. If the cryptography package is missing, storing a token is a hard error, not a plaintext fallback, and a decrypt under a changed key fails with an actionable message and a rotation helper.

What is inside

Built to do the job, end to end.

  • Connections and authentication. One connection record per Employment Hero product and company. API key Basic auth for the Payroll API, OAuth2 Bearer with PKCE and automatic refresh for the HR platform, and a static header token for the recruitment API. A Test Connection action probes a known endpoint and records the result. Credential fields are restricted to system administrators.
  • Data driven endpoint registry. Every API path is an eh.endpoint record with its method, path template, pagination style and rate group. A shipped base catalogue covers common HR and payroll reads, and integrators add their own from the user interface with no module upgrade. Path placeholders such as the business or organisation id are filled automatically from the connection.
  • Resilient transport. A single client carries every call with client side rate limiting, exponential backoff with jitter, retry of transient failures and 429 only, per request timing, and an idempotency key reused across retries of a write. Pagination handles OData, page index and cursor styles, reading either a bare list or a wrapped envelope.
  • Rate limiting backends. A token bucket caps the request rate. A cross worker backend backed by a database row meters one shared budget per rate group against the database clock, the default so a multi worker deployment honours one cluster wide cap. A lighter in process bucket is available for single worker hosts by system parameter.
  • Security and audit. OAuth tokens are encrypted at rest with Fernet, keyed from an environment variable or a generated system parameter, with key fingerprint tagging and a rotation helper. A redacting API log records every call with credentials and PII stripped, garbage collected on a configurable retention horizon. A separate append only log records deliberate reveals of sensitive fields.
  • Multi company and scheduling. Connections and logs are isolated per company through global record rules, while the endpoint catalogue is shared. Two scheduled jobs ship enabled: a proactive OAuth token refresh and a purge of old API log rows. Sync jobs look up the default connection for their product and company automatically.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is a transport and configuration core. It does not by itself sync any HR, leave, attendance or payroll record into Odoo. The domain modules in the suite do that on top of the services it exposes.
  • There is no field mapping, record matching or upsert logic in this module. Those live in the sync engine and domain modules.
  • There is no webhook receiver or real time push. The connector pulls from the Employment Hero APIs on a schedule set by the domain modules; it does not accept inbound events.
  • Sync is one direction, reading from Employment Hero into Odoo. This core does not perform two way sync or conflict resolution between the two systems.
  • The shipped endpoint catalogue covers common HR and payroll reads. Other endpoints are added as registry records by an integrator; the connector calls any path you register but does not ship every Employment Hero endpoint.
  • OAuth token encryption requires the Python cryptography package. Without it, storing a token is refused rather than downgraded to plaintext.
  • Built and tested for Odoo 18 Community. Other series are not targeted by this build.
Search

Employment Hero connector, Employment Hero Odoo integration, KeyPay API Odoo, Employment Hero HR platform API, OAuth2 Bearer PKCE Odoo, API key Basic auth connector, data driven endpoint registry, token bucket rate limiting Odoo, retry exponential backoff jitter, idempotency key API write, encrypted OAuth token storage, redacted API audit log, OData cursor pagination, multi company integration Odoo 18, Odoo 18 Community connector

Work with ERP Heritage

Need this fitted to the way you work?

ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.

Build and tailor
Odoo Implementation, Customization and Development, scoped to your workflow.
Connect and move
Odoo Integration and Migration across systems and Odoo versions.
Run and support
Odoo Support and Training so your team stays productive after go live.
Plan and advise
Odoo Consultation and ERP Consulting, from discovery to roadmap.

We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

العربية简体中文繁體中文NederlandsFrançaisDeutschहिन्दीBahasa IndonesiaItaliano日本語한국어PolskiPortuguês (Brasil)РусскийEspañolSvenskaไทยTürkçeTiếng Việt
More from ERP Heritage

Modules teams pair with this one.

Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.

USD 29
Employment Hero AU Payroll

Australian payroll context for the Employment Hero work entry sync

USD 19
Employment Hero Onboarding

Bring Employment Hero onboarding workflows, employee goals and contractor flags into Odoo Community as real recor...

USD 349
France e-Invoicing

End to end French B2B and B2G electronic invoicing for the DGFiP reform, generating Factur-X PDF/A-3 with embedde...

USD 34
ZainCash Payment Provider

Accept ZainCash wallet payments in Iraq at your Odoo checkout, on the ZainCash Payment Gateway v2 with OAuth2, re...

USD 39
Employment Hero ATS

Sync Employment Hero ATS recruitment job openings into the standard Odoo Recruitment app, mapping each opening on...

USD 9
Employment Hero Singapore

The Singapore country pack for the ERP Heritage Employment Hero integration

ERP Heritage

v18.0.1.0.0 · OPL-1 · Odoo 18 Community

Developed by ERP Heritage - Odoo Implementation • LinkedIn

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Lines of code 1992
Technical Name eh_hero_base
LicenseOPL-1
Websitehttps://www.erpheritage.com.au/
Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

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 or have a question related to your purchase, please use the support page.
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