An ERPNext app for Australian employers that adds STP Phase 2 reporting, award-aligned pay components, NES leave accruals and payday-super-ready superannuation processing to ERPNext HR & Payroll. Built, installed and supported by ECOSIRE on your own bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewAn ERPNext app for Australian employers that adds STP Phase 2 reporting,
award-aligned pay components, NES leave accruals and payday-super-ready superannuation processing to ERPNext HR & Payroll. Built, installed and supported by
ECOSIRE on your own bench.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
Australian payroll is not a currency setting and a tax slab — it is a reporting obligation. Every pay run must be reported to the ATO on or before payday under Single Touch Payroll Phase 2, with income disaggregated into gross, paid leave, allowances by type, overtime, bonuses and commissions, directors' fees, salary sacrifice and lump sums, each carrying its own STP category. Superannuation guarantee accrues on ordinary time earnings — a definition that does not match "total gross" for most award-covered workforces — and under the payday-super reform contributions must reach the fund within days of payday rather than sitting in a quarterly pile. ERPNext core gives you Salary Structure, Salary Component, Payroll Entry and Salary Slip, plus generic leave and a payroll payable entry, but it has no concept of an STP income type, no OTE flag on a salary component, no super fund or stapling record, no ATO-shaped pay event, and no ABA bank file. Teams end up maintaining a spreadsheet beside ERPNext and re-keying numbers into an external lodgement tool, which is exactly where the errors and the late lodgements come from.
We build a proper Frappe app — a real app in apps/ with its own module, fixtures and hooks.py, not a pile of custom fields typed into production. The app adds an AU Payroll Settings single DocType (ABN, branch code, SG rate schedule with effective dates, maximum contribution base, default fund, ABA header details), extends Salary Component with STP Phase 2 classification fields (income type, disaggregation category, OTE-eligible flag, salary-sacrifice type, RESC and reportable-fringe-benefit handling), and adds an AU Employee Tax Details DocType per employee for TFN declaration data, residency, tax-free threshold, STSL/HELP debt, medicare levy variation and working-holiday-maker status. PAYG withholding is computed from ATO withholding coefficients held in a versioned AU Tax Scale DocType with a child table of thresholds, so a new financial year is a fixture import rather than a code change. A doc_events hook on Salary Slip validate re-derives OTE, super guarantee (with the SG rate resolved from the pay period's payment date, not today's date), STSL and PAYG, and blocks submission if any component is missing its STP classification.
Reporting is built as first-class documents rather than a report button. An STP Submission DocType is created from a Payroll Entry, assembles the pay-event payload with year-to-date figures per employee and per income stream, validates it against the schema before anything leaves the system, and stores the gateway response, receipt id and any error codes on the document — so a rejected lodgement is a record you reopen and resubmit, not a lost HTTP call. Submit events, update events and full-file replacements are separate submission types with their own state machine. Transmission runs as a background job on the Frappe queue with an idempotency key, so a slow gateway never blocks the payroll clerk and a timeout never double-lodges. A daily scheduler_events job flags any submitted pay run with no accepted pay event. Superannuation produces a Super Contribution Batch grouped by fund and USI for your clearing-house or SuperStream gateway, with a payday-super ageing view counting days from each payment date and alerts as the remittance window closes. Payments export as ABA files with BSB and account validation, correct lodgement reference and a balancing self-record, and employee income statements are produced for the financial year. Everything is reachable through whitelisted methods on the Frappe REST API — run_pay_event, get_super_liability, generate_aba, get_stp_status — and permissions ship as role profiles (AU Payroll Officer, AU Payroll Approver, Super Administrator) so a clerk can prepare a lodgement while only an approver can transmit it.
This is a build-to-order product, not a marketplace download. After a scoping call we confirm your awards and pay-item mapping, your entity structure (single ABN or several, with branch codes), your super clearing-house or SBR-enabled gateway, your bank's ABA dialect and your target version — Frappe/ERPNext v15 or v16, on Frappe Cloud or your own bench. We then build the app against that specification, install it on a staging site restored from your production data, and run a parallel pay cycle so you can compare our numbers against your current payroll employee by employee before anything is lodged for real. Typical delivery is 2-4 weeks from confirmed scope. You receive the full source in a git repository you own, installation and configuration on your environment, technical and user documentation, a live training session, and a post-go-live support window covering defects and your first live pay runs and lodgements.
Runs weekly or fortnightly payroll across multiple awards and classifications. Needs allowances, overtime and leave loading to land in the correct STP Phase 2 category automatically, and super calculated on ordinary time earnings rather than total gross, without maintaining a mapping spreadsheet outside ERPNext.
Already runs accounting, projects and inventory in ERPNext and pays for a separate payroll product plus a lodgement tool. Wants payroll journals, super liability and PAYG payable posted natively into the ERPNext general ledger, with reconciliation reports that tie each pay run back to the accounts.
Owns the client's bench and wants a clean, inspectable app rather than custom fields typed into production — proper DocTypes, `hooks.py` doc events, fixtures for tax scales and whitelisted API methods they can extend and maintain after handover.
Remits super quarterly today and knows the reform shortens that window drastically. Needs visibility of unremitted super per fund with an ageing clock from each payment date, and a repeatable batch process that fits into the same day as the pay run.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| STP Phase 2 reporting | Purpose-built `STP Submission` DocType with disaggregated YTD payload, schema validation and stored receipts | Achievable, but the disaggregation rules and event state machine are the bulk of the build effort | Often a report export you re-key into a separate lodgement portal | No concept of STP, income types or pay events |
| Super on ordinary time earnings | OTE flag per salary component, effective-dated SG rate, contribution base cap applied per quarter | Depends entirely on whether the developer knows OTE differs from total gross | Usually a flat percentage of gross, which misstates award workforces | Generic percentage component with no OTE concept |
| Payday-super readiness | Fund and USI grouped batches with an ageing clock from each payment date plus deadline alerts | Buildable, but the monitoring layer is usually deferred and never returned to | Typically quarterly-oriented reporting with no per-payday timer | No super remittance tracking at all |
| PAYG withholding maintenance | Versioned `AU Tax Scale` fixtures — a new financial year is an import, not a code release | Coefficients often hardcoded, so every ATO change becomes a developer ticket | Updated on the vendor's release cycle, which you cannot influence | Generic income-tax slab table, not ATO withholding coefficients |
| Awards and pay-item mapping | Mapped to your actual awards during scoping and enforced at `Salary Slip` validate | Only as accurate as the brief the developer was given | Generic component set you adapt yourself after purchase | Free-form salary components with no classification or validation |
| Bank payment files | ABA output with BSB and account validation, balancing self-record and per-bank dialect settings | Per-bank format quirks are a common source of rejected files late in the project | Generic ABA export that may need manual editing for your bank | No ABA support |
| Code ownership and extensibility | Full source in a git repo you own, standard Frappe app layout, whitelisted REST methods | You own it, but structure and documentation vary with the developer | Closed or licence-restricted; extending it usually means forking blind | Core code — customisation means overrides you maintain yourself |
| Verification before go-live | Staging UAT on restored production data plus a parallel pay run compared line by line, with a rollback plan | Rarely budgeted; correctness is discovered in the first live pay run | Self-service trial — the comparison work is yours | Nothing to verify against |
Typical delivery is 2-4 weeks from confirmed scope. The clock starts once the specification is agreed in writing — your awards and pay-item mapping, entity and branch structure, super gateway or clearing-house, bank ABA dialect and target ERPNext version. Multiple ABNs, unusual award interpretations or a legacy year-to-date migration sit at the longer end; a single-entity salaried workforce sits at the shorter end. We give you a firm date after the scoping call, not before it.
No. This is build-to-order. We build the app for your ERPNext version and your payroll configuration, install it on your bench and support it. There is no instant download and no shared marketplace listing — you get source code written against your specification, delivered into a git repository you own.
Frappe/ERPNext v15 and v16. We build against the version you actually run, including your bench's Python version and any existing custom apps on the site, and we check for DocType, custom-field and hook conflicts with your customisations during scoping rather than at install time. Hosting is your choice — Frappe Cloud, your own bench, or infrastructure we manage.
Every build includes a post-go-live support window covering defects and assistance through your first live pay runs and lodgements. Beyond that we offer an ongoing support and maintenance agreement covering annual ATO tax-scale and SG-rate updates, STP schema changes, ERPNext version upgrades and enhancement work. Because you hold the git repository you are never locked in — your own developer or another partner can maintain the app if you prefer.
The app assembles and validates the STP pay event, then transmits through the SBR-enabled sending service provider or gateway you nominate, storing the receipt id and any error codes on the `STP Submission` document. We integrate with your chosen gateway during the build; ECOSIRE does not act as your registered agent or lodge on your behalf. If you prefer a file-based workflow with an external lodgement tool, we produce the validated payload for that instead.
UAT runs on a staging site restored from your production data, and we run a parallel pay cycle: the same period is processed in your current payroll and in ERPNext, then compared employee by employee across gross, PAYG, super, leave balances and each STP category. Nothing is lodged for real until you sign off that comparison, and the rollback plan is documented before go-live.
Yes, and it is a scoping question rather than an afterthought. `AU Payroll Settings` is configured per company with its own ABN and branch code, STP submissions are grouped and lodged per reporting entity, and super batches and ABA files are produced per paying entity. Employees moving between entities mid-year are handled with the correct year-to-date treatment and the appropriate STP event type.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
An ERPNext app for Australian employers that adds STP Phase 2 reporting, award-aligned pay components, NES leave accruals and payday-super-ready superannuation processing to ERPNext HR & Payroll. Built, installed and supported by ECOSIRE on your own bench.