Skip to main content
Correction payrolls are used to capture payroll adjustments or corrections without triggering any payments. Unlike regular payrolls, no money is moved — no employee payments, no contractor payments, and no CRA remittances are generated. Correction payrolls are similar to historical payrolls in that they don’t move money and support the same CSV import flow. However, there are key differences:
  • Included in ROE calculations: Correction payroll data is included when generating Records of Employment, unlike historical payroll data which is excluded.
  • Supports negative values: Correction payrolls allow negative amounts on line items, making them suitable for reversals and adjustments. Historical payrolls are typically used to build up year-to-date totals from zero.

Payroll Setup

Start by creating a correction payroll. Note the type is set to "correction".
curl --request POST \
     --url https://sandbox.nmbr.co/services/payroll/payrolls \
     --header 'Authorization: Bearer <access_token>' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{
          "pay_schedule_id": "axzjqzC5oOZ51h3mqmXK"
          "type": "correction",
          "period_start" : "2023-06-01",
          "period_end" : "2023-06-15"
          "pay_date": "2023-06-15"
        }'
A new correction payroll will be created, and can have Pay Stub data imported to populate the Payroll.

Bulk Importing Correction Pay Stubs

Nmbr supports bulk importing of correction pay stubs through a CSV file. This uses the same import flow as historical payrolls. There are two types of import templates available:
  • preset: This template includes the line items types configured through a Business Preset.
  • all_types: This template includes all possible line item types.

Importing through the API

Correction pay stubs can be created through the API by uploading a CSV file containing the correction pay stub data.

Generating the CSV Template

Generate the CSV import template by making a GET request. You must specify the template type as either preset or all_types.
curl --request GET \
     --url https://sandbox.nmbr.co/services/payroll/payrolls/<payroll_ulid>/import?template=preset \
     --header 'Authorization: Bearer <access_token>' \
     --header 'Accept: text/csv'
This will return a CSV file that can be filled out with the correction pay stub data. Unlike historical payrolls, values can be negative to represent reversals or adjustments.

Uploading the CSV File

Once the CSV file is filled out, it can be uploaded to the correction payroll using a POST request.
curl --request POST \
     --url https://sandbox.nmbr.co/services/payroll/payrolls/<payroll_ulid>/import \
     --header 'Authorization: Bearer <access_token>' \
        --header 'accept: application/json' \
        --header 'content-type: multipart/form-data' \
        --form 'import_file=@/path/to/your/file.csv'
Upload Validation Errors
If the Accept header is set to application/json, validation errors will be returned a JSON object. If the Accept header is set to text/csv, validation errors will as a CSV that combines the original data with an additional error column. This validation CSV can be updated and re-uploaded directly. Note: a CSV will only be returned if the uploaded CSV was well-formed.

Importing through the Portal

Correction pay stubs can also be imported through the Nmbr Portal. Navigate to the Payroll section, select the appropriate Pay Schedule, and then select the Correction Payroll you created earlier. There will be an option to “Import Correction Pay Stubs”, which will guide you through the process of uploading a CSV file. Like with the API, you will need to choose between the preset and all_types templates.

Approving payrolls

Approving the correction payroll will lock in the data. Since correction payrolls do not move money, no payments will be generated upon approval.
curl --request POST \
     --url https://sandbox.nmbr.co/services/payroll/payrolls/01HZNX4N7DTJJ9BTV3TSZ46A85/approve \
     --header 'Authorization: Bearer <access_token>' \
     --header 'accept: application/json' \
     --header 'content-type: application/json'

ROE Impact

Approved correction payrolls are included in ROE (Record of Employment) calculations. When a correction payroll’s period falls within the window of an ROE pay period, the insurable earnings from the correction are included in the ROE totals. This makes correction payrolls the appropriate choice when adjustments need to be reflected on an employee’s ROE. By contrast, historical payrolls are excluded from ROE calculations entirely.