Singapore CPF e-Submission
Generate the fixed-width CPF e-Submission (EZPay / FTP) contribution file from your CPF payroll runs — for Odoo 18 & 19
Turn computed Singapore Central Provident Fund (CPF) payroll into the
exact contribution file the CPF Board e-Submission channel expects.
Built on top of l10n_sg_cpf_payroll — pull a computed CPF
payroll run, validate it against the submission rules, and download a
ready-to-upload batch file. No Enterprise dependency; the file format and
validation engine are pure Python and fully unit tested.
Fixed-width FTP-spec file
Header, Employer, one Detail record per employee and a Trailer — monetary amounts emitted in cents, CRLF-terminated, matching the CPF EZPay batch layout. Every amount round-trips losslessly when the file is parsed back.
Control-total checksum
The Trailer carries the record count and the total, employer and employee control totals. The module re-derives them from the detail records before accepting the file, so a corrupted batch is caught before you upload it.
CSN validation
A CPF Submission Number is parsed into its UEN entity reference and payment code. The UEN-Business (ROB) check digit is verified with the published ACRA algorithm; local-company and other-entity UEN forms are structurally validated.
Pre-submission rule engine
NRIC/FIN check-digit, non-negative wages, employer + employee
shares reconciling to the total CPF, duplicate-NRIC detection, an
Additional Wage annual-ceiling advisory and a well-formed
YYYYMM period — every finding listed before you
generate the file.
Pull from a payroll run
Populate a submission batch in one click from a computed CPF payroll run, or maintain the lines by hand. Totals, error and warning counts update live.
Verify-file wizard
Upload any previously generated CPF file and independently re-check its record structure and control totals before it goes to the portal.
Bring your own credentials (BYOK)
The official CPF Board e-Submission endpoint is an editable company setting. This module generates the contribution file for you to upload under your own CPF Board credentials; it never transmits data to the CPF Board or anywhere else.
Authority: CPF Board (Singapore). The CSN format, file layout and NRIC algorithm are defaults you can review against current CPF Board e-Submission guidance.
Compatibility
Odoo 18 & 19 — Community or Enterprise. Requires the Singapore CPF Payroll module.
Screenshots
Cpf E Submission Batch Gener
Cpf E Submission Batches Lis
Update date: 2026-07-02