Pay Voucher
Navigation
Voucher → Pay Voucher
URL
/voucher/pay-voucher
Description
The Pay Voucher Module manages employee reimbursement vouchers from creation to final account verification.
It follows a structured approval workflow involving Pay Voucher → Process → Branch → Billing → Accounts.
Purpose
- Create reimbursement vouchers for employees
- Assign reimbursement heads
- Manage voucher records (Edit / Delete)
Voucher Entry Form
| Field | Description |
|---|---|
| Employee Code | Select employee |
| Employee Name | Auto-filled |
| Unit | Select or create unit |
| Designation | Auto-filled |
| Month | Voucher month |
| Year | Voucher year |
Reimbursement Head Section
If no reimbursement head is mapped:
No Reimbursement Head Found
Table Columns
| Column | Description |
|---|---|
| S.No | Serial number |
| Head Name | Reimbursement head |
| Pay Amount | Amount payable |
| PF Gross | PF applicable amount |
| PF | PF deduction |
| EPF | EPF deduction |
| ESI Gross | ESI applicable amount |
| ESI | ESI deduction |
| ESI EMR | Employer ESI |
| Other Deduction | Additional deduction |
Actions
| Button | Function |
|---|---|
| Save | Save voucher |
| Reset | Clear form |
Voucher Records for Employee
Displayed after saving or selecting employee.
Table Columns
| Column | Description |
|---|---|
| S.No | Serial number |
| Month | Voucher month |
| Year | Voucher year |
| Employee Code | Employee code |
| Employee Name | Employee name |
| Head Name | Reimbursement head |
| Net Amount | Net payable |
| Actions | Edit / Delete |
API Endpoints
The Pay Voucher Master module interacts with the following API endpoints:
Base URL
export const PAYVOUCHER_URL = '/api/voucherMaster'
Endpoints
| Endpoint | Method | Description | Parameters/Body |
|---|---|---|---|
${PAYVOUCHER_URL} | POST | Create a new voucher | Body: data |
${PAYVOUCHER_URL} | GET | Get all vouchers with pagination | Query: page, limit |
${PAYVOUCHER_URL}/:voucherId | GET | Get voucher by ID | Path: voucherId |
${PAYVOUCHER_URL}/:voucherId | PATCH | Update an existing voucher | Path: voucherId, Body: body |
${PAYVOUCHER_URL}/delete/:voucherId | PATCH | Delete a voucher (soft delete) | Path: voucherId |
${PAYVOUCHER_URL}/import | POST | Import vouchers from Excel | Body: data (file) |
${PAYVOUCHER_URL}/export | POST | Export vouchers to Excel | Body: data (export criteria), Returns: Excel file (blob) |
${PAYVOUCHER_URL}/search | POST | Search vouchers with filters | Body: data (search criteria) |
${PAYVOUCHER_URL}/process | POST | Process vouchers | Body: data (process criteria) |
${PAYVOUCHER_URL}/bulk-delete | POST | Bulk delete vouchers | Body: data (array of voucher IDs) |
${PAYVOUCHER_URL}/import/from-exported-sheet | POST | Import vouchers from exported sheet | Body: data (file) |
RTK Query Hooks
The following hooks are available for frontend integration:
useCreateVoucherMutationuseGetAllVouchersQueryuseGetVoucherByIdQueryuseUpdateVoucherMutationuseDeleteVoucherMutationuseImportVouchersFromExcelMutationuseExportVouchersToExcelMutationuseSearchVouchersMutationuseProcessVouchersMutationuseBulkVoucherDeleteMutationuseImportVouchersFromExportedSheetMutation
Field Definitions, Usage, and Calculation Logic
The Pay Voucher module manages non-salary reimbursements and specialized payments. It features a technical calculation engine that integrates statutory deductions (PF/ESI) directly into the voucher lifecycle.
1. Field Definitions
| Field Name | Technical Name | Category | Description |
|---|---|---|---|
| Pay Amount | payAmount | Financial | The gross reimbursement amount entered by the user. |
| PF Detail | pf / pfGross | Statutory | Employee PF contribution and the portion of pay attracting PF. |
| ESI Detail | esi / esiGross | Statutory | Employee ESI contribution and the portion of pay attracting ESI. |
| Total Ded. | totalDeductions | Financial | Sum of PF, ESI, and other manual deductions. |
| Net Pay | netPay | Financial | Final payable amount after all deductions are applied. |
| Verified | voucherVerified | Workflow | Initial processing/verification flag. |
| Branch OK | voucherBranchVerified | Workflow | Branch-level approval status. |
| Accounts OK | voucherAccountsVerified | Workflow | Final finance clearance status. |
2. Field Usage & Business Rules
A. Voucher Creation Scope
- The Pay Voucher page is dedicated to the initial creation and entry of reimbursement data.
- Workflow Note: Once a voucher is saved, it must be verified and approved through the following dedicated modules in sequence:
- Voucher Process: Initial verification.
- Voucher Branch: Branch-level approval.
- Voucher Billing: Billing/Cost center check.
- Voucher Accounts: Final financial clearance.
B. Employee Status Restriction
- The system includes a Pre-Save Guard that prevents voucher creation for employees marked with a "Left" status (
leftStatus: 'Y'). This prevents accidental payments to exited staff.
C. Auto-Recalculation
- The
recalculateHeadflag is set totrueby default. This ensures that any change to thepayAmountautomatically triggers a refresh of the statutory (PF/ESI) calculations using the latest unit configuration during the entry stage.
3. Calculation Logic
A. The "Mock Attendance" System
To satisfy the requirements of the core statutory engine, the system generates a Mock Attendance record for every voucher:
- Virtual Cycle: Fixed as a 30-day period.
- Purpose: Allows the PF/ESI utilities to calculate contribution percentages based on the employee's master settings even outside the regular monthly salary process.
B. Financial Formulas
- Deduction Total:
totalDeductions = round(pf + esi + otherDeductions). - Net Calculation:
netPay = round(payAmount - totalDeductions). - Rounding: All financial results are passed through the
roundAmountutility to ensure zero decimal discrepancies for bank transfers.
C. Voucher-Specific Statutory Rules
- The system uses
calculatePFForVoucherandcalculateESIForVoucher. - Unlike regular salary heads, these utilities typically calculate contributions on the Full Gross of the voucher without applying the standard monthly capping limits (unless specifically configured in the unit master).
End of Documentation