Skip to main content

PH Statutory

"); } @Bean public GroupedOpenApi payrollApi() { return group("payroll", "/api/payroll", "/api/payroll-changes", "/api/payroll-settings", "/api/payroll-settings-changes", "/api/payroll-transactions", "/api/payslips", "/api/payslip-history", "/api/payslip-templates", "/api/payslip-template-settings", "/api/bonuses", "/api/employee-deductions", "/api/deduction-types", "/api/de-minimis-benefit-types", "/api/reimbursement-requests", "/api/reimbursement-transactions"); } Philippine statutory obligations: contribution tables, withholding tax, and the BIR forms built from them.

Controllers9
Endpoints61
Tables14
Screens9
API reference/api/ — group ph-statutory
OpenAPI spec/openapi/ph-statutory.json

URL prefixes​

Endpoints belong to this module by URL, exactly as the OpenAPI group defines it in backend/src/main/java/com/motorph/payroll/config/OpenApiConfiguration.java.

  • /api/sss-contribution-rates/**
  • /api/philhealth-contribution-rates/**
  • /api/pagibig-contribution-rates/**
  • /api/withholding-tax-brackets/**
  • /api/government-forms/**
  • /api/government-filings/**
  • /api/tin-compliance/**
  • /api/ewt-payees/**
  • /api/ewt-transactions/**

Controllers​

ControllerBase pathEndpointsGETPOSTPUTPATCHDELETE
EwtController/api8222—2
EwtFormsController/api/government-forms/ewt44————
GovernmentFilingController/api/government-filings421——1
GovernmentFormsController/api/government-forms88————
PagibigContributionRateController/api/pagibig-contribution-rates8322—1
PhilhealthContributionRateController/api/philhealth-contribution-rates8322—1
SssContributionRateController/api/sss-contribution-rates8322—1
TinComplianceController/api/tin-compliance5211—1
WithholdingTaxBracketController/api/withholding-tax-brackets8322—1

Across the module: 30 GET, 12 POST, 11 PUT, 8 DELETE.

Tables​

Everything this module's controllers can reach through a repository, including through a shared service — so this is the upper bound of what the module touches, not the set of tables it owns. A table appearing under two modules means two modules can read it.

EntityTableColumnsTenant-scoped
Bonusbonus8Yes
CompanyProfilecompany_profile20Yes
Employeeemployee24Yes
EwtPayeeewt_payees11Yes
EwtTransactionewt_transactions11Yes
GovernmentFilinggovernment_filing13Yes
PagibigContributionRatepagibig_contribution_rates6—
PayrollSettingspayroll_settings71Yes
Payslippayslip52Yes
PhilhealthContributionRatephilhealth_contribution_rates6—
SssContributionRatesss_contribution_rates11—
Timesheettimesheet7Yes
TinCompliancetin_compliance3Yes
WithholdingTaxBracketwithholding_tax_brackets7—

Screens​

Frontend routes gated by a permission this module's endpoints also require — the link between a page and its API is the permission string, not the URL.

RouteComponentRequires
/contribution-ratesContributionRatespayroll.sss.rates.manage or payroll.philhealth.rates.manage or payroll.pagibig.rates.manage
/employeesEmployeeshr.employees.view
/ewt-registryEwtRegistrypayroll.ewt.manage
/government-formsGovernmentFormshr.employees.manage or payroll.manage
/holiday-calendarHolidayCalendarpayroll.holidays.manage or payroll.manage
/payroll-analyticsPayrollAnalyticspayroll.dashboard.view or payroll.manage or payroll.approve
/payroll-runsPayrollRunspayroll.dashboard.view or payroll.manage or payroll.approve
/payroll-runs/:idPayrollRunDetailpayroll.dashboard.view or payroll.manage or payroll.approve
/tin-complianceTinCompliancepayroll.tin.compliance.manage

Generated page

This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.