Bulk Import Adjustments
When you need to apply adjustments to many employees at once - such as a company-wide festival bonus or a batch of monthly reimbursements - upload a CSV file instead of creating each adjustment by hand.
When to Use Bulk Import
Bulk import works well when:
- You have many adjustments to create at once.
- They span multiple employees (for example, the whole team gets a bonus).
- You already have the data from another system that can export CSV.
For just a few adjustments, creating them one at a time is usually quicker. See Adding Adjustments.
CSV Format
Your CSV file should include a header row, then one row per adjustment. The importer reads these columns by name (column order does not matter, and headers are matched case-insensitively):
| Column | Description | Required | Example |
|---|---|---|---|
employee_email | The employee's registered email in Omnivoo | Yes | priya@company.com |
category | addition or deduction | Yes | addition |
type | A short type label for the adjustment | Yes | Performance Bonus |
name | A short label that appears on the adjustment | Yes | Diwali Bonus 2026 |
amount | A positive number, no currency symbols or commas | Yes | 15000 |
currency | ISO 4217 currency code; defaults to INR if blank | No | INR |
notes | Internal notes; leave blank if none | No | Approved by HR on 2026-03-15 |
effective_date | The date the adjustment applies to, in YYYY-MM-DD format | No | 2026-04-01 |
A single file can contain up to 1000 rows.
Notes on values
categorymust be exactlyadditionordeduction.typeis a free-text label. For consistency, match the type names used in the app (such as "Performance Bonus" or "Advance Repayment"), but the importer accepts any non-empty text.amountmust be a positive number greater than zero.currencydefaults toINRwhen left blank.
Sample CSV
employee_email,category,type,name,amount,currency,notes,effective_date
priya@company.com,addition,Festival Bonus,Diwali Bonus 2026,15000,INR,Annual festival bonus,2026-04-01
rahul@company.com,addition,Festival Bonus,Diwali Bonus 2026,15000,INR,Annual festival bonus,2026-04-01
anita@company.com,addition,Festival Bonus,Diwali Bonus 2026,12000,INR,Prorated,2026-04-01
deepak@company.com,deduction,Advance Repayment,March Advance Repayment,5000,INR,Installment 3 of 6,2026-04-01
sneha@company.com,addition,Travel Reimbursement,Home Office Setup,8500,INR,Receipt #4521,2026-04-01
Importing the File
- Open the Payroll Adjustments page (
/employer/payroll/adjustments). - Click Import CSV in the top-right. The Import Adjustments from CSV dialog opens.
- Choose your
.csvfile. The file is validated and processed as soon as it is selected. - The dialog shows the result:
- Import Successful - the number of adjustments created out of the total rows processed (for example, "5 adjustments created from 5 rows"). Because the import is all-or-nothing, this count equals the number of rows in the file.
- Import Failed - a per-row error list (the row number followed by its messages) plus a summary line in the form "X valid, Y with errors out of Z total rows".
- Click Close.
Imported adjustments are created as drafts and appear in the Payroll Adjustments list, where you can review them and let them flow into a payroll run.
The import is all-or-nothing. If any row fails validation, no adjustments are created from that file - fix every listed row and upload again. The "X valid, Y with errors" summary on a failed import is only a diagnostic count of which rows passed and which did not. It does not mean the valid rows were saved.
Common Validation Errors
If the import fails, the dialog lists the problem rows. Common causes:
| Error | Cause | Fix |
|---|---|---|
| Employee not found | The email does not match any employee on your account | Check the email and make sure the employee is onboarded |
| Employee has no linked user account | The matched employee is not yet linked to a user | Complete the employee's onboarding, then re-import |
category is required / invalid | The category is missing or not addition/deduction | Use lowercase addition or deduction |
type is required | The type cell is empty | Add a type label |
name is required | The name cell is empty | Add a short name |
amount invalid | The amount is missing, not a number, or zero or negative | Use a positive number with no symbols or commas |
effective_date invalid | The date is not in YYYY-MM-DD format | Use the ISO format, for example 2026-04-01 |
Tips for a Clean Import
- Test with a small file first - upload two or three rows to confirm the format before a large batch.
- Double-check email addresses - "employee not found" is the most common error.
- One adjustment per row - do not combine multiple adjustments into one summed row.
- Keep notes simple - notes are stored as plain text; avoid extra commas or line breaks inside a cell.