---
title: "Update a deduction"
method: PUT
path: "/deductions/{deduction}"
tags: ["Deductions"]
---

# Update a deduction

`PUT /deductions/{deduction}`

## Path parameters

- `deduction` string, required

## Request body

- object
  - `business_preset_id` string
  - `frequency` 'once' | 'per_month' | 'per_payroll' — The frequency at which this deduction is applied to Pay Stubs. When `per_month`, the amount is distributed across selected Payrolls in the calendar month. `per_month` is only valid when `amount_type` is `fixed`; percent and per-hour deductions apply to every paycheque regardless of frequency.
  - `deduction_type` 'charitable_donation' | 'garnishment_order' | 'income_tax' | 'other_deduction' | 'union_dues' | 'union_dues_post_tax' — The type of deduction, which determines how it is categorized and remitted.
  - `remittance_account_id` string — The remittance account to which collected deduction amounts are remitted.
  - `amount` number — The deduction amount per occurrence. When `amount_type` is `percentage`, this is interpreted as a percentage of the income basis rather than a fixed dollar amount.
  - `amount_type` 'fixed' | 'fixed_per_hour' | 'percent' — Whether `amount` is a fixed dollar value (`fixed`) or a percentage of the income basis (`percentage`).
  - `income_basis` 'all_earnings' | 'none' | 'regular_earnings' | 'total_income' — Determines the income used as the base for percentage-based deductions. `regular_earnings` includes only salary and wage earnings. `all_earnings` includes all earnings. `total_income` includes all earnings, taxable allowances, and taxable reimbursements. `none` doesn't include any line items, and can be used with `income_includes` for completely custom definitions of income.
  - `income_includes` object[] — An optional list of specific earnings, allowances, and other line item types to include in the income calculation in addition to those included via `income_basis`.
    - `type` 'allowance' | 'earning' | 'employer_benefit' | 'reimbursement'
    - `subtype` string
  - `income_subtractions` object[] — An optional list of deductions and benefits to subtract from the income before the deduction amount is calculated.
    - `type` 'deduction' | 'employee_benefit'
    - `subtype` string
  - `income_statutory_withholdings` 'all' | 'none' — Whether to subtract statutory withholdings (CPP, EI, income tax) from the income before the deduction amount is calculated.
  - `income_exemption_amount` number — A fixed dollar amount to exempt from the income before calculating the deduction.
  - `income_exemption_percent` number — A percentage of the income to exempt before calculating the deduction amount.
  - `effective_from` string, date — The date from which this deduction is applied to Pay Stubs.
  - `effective_to` string, date — The date after which this deduction is no longer applied. `null` if the deduction applies indefinitely.
  - `title` string, nullable
  - `title_translations` Translations, nullable
    - `en` string
    - `fr` string
  - `expense_accounting_code_id` string
  - `liability_accounting_code_id` string
  - `external_ref` string
  - `tag_assignment` object
    - `unit` 'percentage'
    - `is_component_locked` boolean
    - `tag_allocations` object[]
      - `tags` string[]
      - `value` number
  - `date_basis` 'by_pay_date' | 'by_period_end_date' | 'by_period_start_date' — Which payroll date determines the calendar month for the allocation. Applies only to fixed-amount `per_month` deductions.
  - `pay_period_cadence` integer[] — Which pay periods within the month receive the allocation. An array of 1-based positions; `-1` is the final period. Applies only to fixed-amount `per_month` deductions.

## Response `200`

OK

- object
  - `id` string — The unique identifier of the object in Nmbr.
  - `object` string — The type of the object in Nmbr (`"deduction"`).
  - `data` Deduction
    - `work_assignment` object
      - `id` string — The unique identifier of the object in Nmbr.
      - `object` string — The type of the object in Nmbr (`"work_assignment"`).
    - `frequency` 'once' | 'per_month' | 'per_payroll' — The frequency at which this deduction is applied to Pay Stubs. When `per_month`, the amount is distributed across selected Payrolls in the calendar month. `per_month` is only valid when `amount_type` is `fixed`; percent and per-hour deductions apply to every paycheque regardless of frequency.
    - `date_basis` 'by_pay_date' | 'by_period_end_date' | 'by_period_start_date', nullable — Which payroll date determines the calendar month for the allocation. Applies only to fixed-amount `per_month` deductions.
    - `pay_period_cadence` object, nullable — Which pay periods within the month receive the allocation. An array of 1-based positions; `-1` is the final period. Applies only to fixed-amount `per_month` deductions.
    - `deduction_type` object — The type of deduction, which determines how it is categorized and remitted.
      - `id` string — The unique identifier of the object in Nmbr.
      - `object` string — The type of the object in Nmbr (`"deduction_type"`).
      - `data` DeductionType
        - `type` string, nullable — The string identifier for this deduction type.
        - `label` string, nullable — The human-readable display name for this deduction type.
        - `locale` string, nullable
        - `features` LineItemTypeFeature[]
          - `type` 'eht' | 'income_tax' | 'insurable' | 'pensionable' | 'stat_payable' | 'vacationable' | 'wcb' — The payroll calculation this entry describes.
          - `label` string — Human-readable name for the payroll calculation.
          - `definitions` object[] — How this type affects the calculation, broken down by jurisdiction. Jurisdictions where it does not apply are omitted.
            - `jurisdiction` string — The jurisdiction this applies to (e.g. `ca_federal`, `ca_on`, `ca_qc`).
            - `effects` string[] — How this type affects the payroll calculation in this jurisdiction.
            - `help_text` string, nullable — Plain-language explanation of how this type affects the calculation in this jurisdiction.
            - `program_label` string, nullable — The program that applies in this jurisdiction, for calculations that use different programs by jurisdiction (e.g. CPP federally, QPP in Quebec; EI federally, QPIP in Quebec).
        - `form_mappings` LineItemFormMapping[]
          - `form` string — The form code (e.g. `t4`).
          - `form_label` string — Human-readable form name.
          - `mapping` array[] — The boxes on the form this type contributes to.
            - object[]
              - …
    - `amount` number — The deduction amount per occurrence. When `amount_type` is `percentage`, this is interpreted as a percentage of the income basis rather than a fixed dollar amount.
    - `amount_type` 'fixed' | 'fixed_per_hour' | 'percent' — Whether `amount` is a fixed dollar value (`fixed`) or a percentage of the income basis (`percentage`).
    - `income_basis` 'all_earnings' | 'none' | 'regular_earnings' | 'total_income' — Determines the income used as the base for percentage-based deductions. `regular_earnings` includes only salary and wage earnings. `all_earnings` includes all earnings. `total_income` includes all earnings, taxable allowances, and taxable reimbursements. `none` doesn't include any line items, and can be used with `income_includes` for completely custom definitions of income.
    - `income_includes` object, nullable — An optional list of specific earnings, allowances, and other line item types to include in the income calculation in addition to those included via `income_basis`.
    - `income_subtractions` object, nullable — An optional list of deductions and benefits to subtract from the income before the deduction amount is calculated.
    - `income_statutory_withholdings` 'all' | 'none' — Whether to subtract statutory withholdings (CPP, EI, income tax) from the income before the deduction amount is calculated.
    - `income_exemption_amount` number, nullable — A fixed dollar amount to exempt from the income before calculating the deduction.
    - `income_exemption_percent` number, nullable — A percentage of the income to exempt before calculating the deduction amount.
    - `effective_from` string, date — The date from which this deduction is applied to Pay Stubs.
    - `effective_to` string, date, nullable — The date after which this deduction is no longer applied. `null` if the deduction applies indefinitely.
    - `title` string, nullable
    - `title_translations` Translations, nullable
      - `en` string
      - `fr` string
    - `title_translated` string — The translation of the `title` property for the request locale. Computed using the values in `title` and `title_translations` and the value of the request's `Accept-Language` header.
    - `remittance_account` unknown
    - `business_preset` unknown
    - `expense_accounting_code` unknown
    - `liability_accounting_code` unknown
    - `external_ref` string, nullable — A reference to the object in an external system, e.g. the primary key of the object in your application's database. Nmbr doesn't use, validate, parse, or require this value to be unique - it simply stores it for your reference.
    - `created_at` string, dateTime — The date and time the object was created in Nmbr.
    - `updated_at` string, dateTime — The date and time the object was last updated in Nmbr.

---

[API](https://skmtc.net/nmbr/apis/nmbr-api.md) · [All operations](https://skmtc.net/nmbr/apis/nmbr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nmbr/nmbr-api/versions/01cd9c45a923/schema)
