> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nmbr.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a pay schedule

> Pay-Schedules with non-draft Payrolls (e.g `approved` or `paid`) may only have their `title` and `title_translations` fields updated.



## OpenAPI

````yaml /spec/openapi.json put /pay_schedules/{pay_schedule}
openapi: 3.0.0
info:
  title: Nmbr API
  description: API to interact with Nmbr Payroll
  version: 1.0.0
servers:
  - url: https://sandbox.nmbr.co/services/payroll
security:
  - CompanyToken: []
tags:
  - name: Accounting Codes
  - name: Accounting Code Rules
  - name: Adjustments
  - name: Allowances
  - name: Allowance Line Items
  - name: Allowance Types
  - name: Async Tasks
  - name: Bank Accounts
  - name: Business Entities
  - name: Business Entity Verifications
  - name: Business Entity ROE Authorizations
  - name: Business Presets
  - name: Calculations
  - name: Companies
  - name: Contractors
  - name: Deductions
  - name: Deduction Line Items
  - name: Deduction Types
  - name: Earnings
  - name: Earning Line Items
  - name: Earning Types
  - name: Effective Tax Properties
  - name: Employees
  - name: Employee Benefits
  - name: Employee Benefit Line Items
  - name: Employee Benefit Types
  - name: Employer Benefits
  - name: Employer Benefit Line Items
  - name: Employer Benefit Types
  - name: Employer Statutory Withholding Line Items
  - name: Employer Statutory Withholding Types
  - name: Forms
  - name: Form Batches
  - name: Form Types
  - name: Holidays
  - name: Integrations
  - name: Journal Entries
  - name: Overtime Rates
  - name: Partners
  - name: Pay Rates
  - name: Pay Schedules
  - name: Pay Splits
  - name: Pay Stubs
  - name: Payments
  - name: Payrolls
  - name: Reimbursements
  - name: Reimbursement Line Items
  - name: Reimbursement Types
  - name: Remittance Accounts
  - name: Remittance Account Enrollments
  - name: Reports
  - name: Statutory Withholding Line Items
  - name: Statutory Withholding Types
  - name: Tags
  - name: Tag Groups
  - name: Tax Properties
  - name: Tax Property Templates
  - name: Tokens
  - name: Usage Records
  - name: Usage Summaries
  - name: Vacation Pay
  - name: Vacation Pay Settings
  - name: Webhooks
  - name: Work Assignments
paths:
  /pay_schedules/{pay_schedule}:
    put:
      tags:
        - Pay Schedules
      summary: Update a pay schedule
      description: >-
        Pay-Schedules with non-draft Payrolls (e.g `approved` or `paid`) may
        only have their `title` and `title_translations` fields updated.
      operationId: pay-schedules-update
      parameters:
        - name: pay_schedule
          in: path
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  maxLength: 255
                title_translations:
                  type: object
                  description: Optional translations for the `title` property.
                  allOf:
                    - $ref: '#/components/schemas/Translations'
                  nullable: true
                pay_frequency:
                  type: string
                  description: >-
                    The frequency at which Payrolls are processed. Use `custom`
                    for non-standard schedules where the number of pay periods
                    per year is specified manually.


                    Editing is prevented when `is_editable` is false
                  enum:
                    - bi-weekly
                    - custom
                    - monthly
                    - semi-monthly
                    - weekly
                anchor_pay_date:
                  type: string
                  description: >-
                    The pay date of the anchor pay period. Together with
                    `anchor_end_of_pay_period`, this establishes the pattern
                    from which all future pay dates are calculated.


                    Date must not be more than one year before the date the pay
                    schedule is created.


                    Editing is prevented when `is_editable` is false
                  format: date
                anchor_start_of_pay_period:
                  type: string
                  description: >-
                    The start date of the anchor pay period. Only required for
                    semi-monthly pay schedules when `anchor_end_of_pay_period`
                    is not the 15th or the last day of the month. For standard
                    configurations it is derived automatically and does not need
                    to be supplied.


                    Required for semi-monthly pay schedules when
                    `anchor_end_of_pay_period` is not the 15th or the last day
                    of the month.


                    Editing is prevented when `is_editable` is false
                  format: date
                anchor_end_of_pay_period:
                  type: string
                  description: >-
                    The end date of the anchor pay period. Together with
                    `anchor_pay_date`, this defines the length and pattern of
                    all future pay periods.


                    Date must not be more than one year before the date the pay
                    schedule is created.


                    Editing is prevented when `is_editable` is false
                  format: date
                generate_payrolls_from:
                  type: string
                  description: >-
                    Only available in preview mode. When set, Payrolls are
                    generated starting from this date rather than the default,
                    allowing historical Payrolls to be created before the
                    current date.


                    Available in Preview mode, allows for the creation of
                    Payrolls from an arbitrary date before the current date.
                    Must be on or after `anchor_pay_date`.


                    Editing is prevented when `is_editable` is false
                  format: date
                day_1:
                  type: integer
                  description: >-
                    For monthly pay schedules, the day of the month on which pay
                    is issued. For semi-monthly pay schedules, the first of two
                    pay days per month.


                    Day_1 is required for monthly and semi-monthly pay
                    schedules. Otherwise, it must be `null`. On semi-monthly pay
                    schedules, valid `(day_1, day_2)` pairs are `(16, 1)`, `(15,
                    -1)` or `(15, 31)`.


                    Editing is prevented when `is_editable` is false
                day_2:
                  type: integer
                  description: >-
                    For semi-monthly pay schedules, the second of two pay days
                    per month.


                    day_2 is required for semi-monthly pay schedules. Otherwise,
                    it must be `null`. On semi-monthly pay schedules, valid
                    `(day_1, day_2)` pairs are `(16, 1)`, `(15, -1)` or `(15,
                    31)`.


                    Editing is prevented when `is_editable` is false
                pay_day_movement_setting:
                  type: string
                  description: >-
                    The pay schedule-level setting for how pay dates are
                    adjusted when they fall on a weekend or bank holiday. If set
                    to `inherit`, the Business Entity's setting is used.


                    Editing is prevented when `is_editable` is false
                  enum:
                    - inherit
                    - next_business_day
                    - previous_business_day
                send_empty_pay_stubs:
                  type: boolean
                  description: >-
                    Whether Pay Stubs are generated for employees with no
                    earnings in a given pay period.
                custom_pay_periods_per_year:
                  type: integer
                  description: >-
                    When `pay_frequency` is `custom`, the number of pay periods
                    per year.
                  minimum: 1
                  maximum: 366
                pay_stub_settings:
                  type: object
                  description: >-
                    Settings that control Pay Stub display. The
                    `show_vacation_pay_balance` field, when `true`, causes the
                    employee's current Vacation Pay balance to appear on Pay
                    Stubs.
                  properties:
                    show_vacation_pay_balance:
                      type: boolean
                external_ref:
                  type: string
                  maxLength: 255
            example:
              title: Default Schedule
              pay_frequency: monthly
              anchor_pay_date: '2026-01-31'
              anchor_end_of_pay_period: '2026-01-31'
              day_1: -1
              pay_day_movement_setting: inherit
              send_empty_pay_stubs: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The unique identifier of the object in Nmbr.
                    readOnly: true
                  object:
                    type: string
                    description: The type of the object in Nmbr (`"pay_schedule"`).
                    readOnly: true
                  data:
                    $ref: '#/components/schemas/PaySchedule'
              example:
                id: <id>
                object: pay_schedule
                data:
                  business_entity:
                    id: <id>
                    object: business_entity
                    links:
                      self: /business_entities/<id>
                  title: Default Schedule
                  title_translations: null
                  title_translated: Default Schedule
                  pay_frequency: monthly
                  anchor_pay_date: '2026-01-31'
                  anchor_start_of_pay_period: '2026-01-01'
                  anchor_end_of_pay_period: '2026-01-31'
                  generate_payrolls_from: null
                  day_1: -1
                  day_2: null
                  pay_day_movement_setting: inherit
                  send_empty_pay_stubs: true
                  pay_stub_settings:
                    show_vacation_pay_balance: false
                  custom_pay_periods_per_year: null
                  is_editable: true
                  is_deletable: true
                  external_ref: null
                  created_at: '2026-01-01T00:00:00.000000Z'
                  updated_at: '2026-01-01T00:00:00.000000Z'
                links:
                  self: /pay_schedules/<id>
components:
  schemas:
    Translations:
      type: object
      nullable: true
      properties:
        en:
          type: string
          maxLength: 255
        fr:
          type: string
          maxLength: 255
    PaySchedule:
      type: object
      title: Pay Schedule
      properties:
        business_entity:
          type: object
          properties:
            id:
              type: string
              description: The unique identifier of the object in Nmbr.
              readOnly: true
            object:
              type: string
              description: The type of the object in Nmbr (`"business_entity"`).
              readOnly: true
        title:
          type: string
          maxLength: 255
        title_translations:
          type: object
          description: Optional translations for the `title` property.
          allOf:
            - $ref: '#/components/schemas/Translations'
          nullable: true
        title_translated:
          type: string
          description: >-
            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.
          readOnly: true
        pay_frequency:
          type: string
          description: >-
            The frequency at which Payrolls are processed. Use `custom` for
            non-standard schedules where the number of pay periods per year is
            specified manually.
          enum:
            - bi-weekly
            - custom
            - monthly
            - semi-monthly
            - weekly
        anchor_pay_date:
          type: string
          description: >-
            The pay date of the anchor pay period. Together with
            `anchor_end_of_pay_period`, this establishes the pattern from which
            all future pay dates are calculated.
          nullable: true
          format: date
        anchor_start_of_pay_period:
          type: string
          description: >-
            The start date of the anchor pay period. Only required for
            semi-monthly pay schedules when `anchor_end_of_pay_period` is not
            the 15th or the last day of the month. For standard configurations
            it is derived automatically and does not need to be supplied.
          nullable: true
          format: date
        anchor_end_of_pay_period:
          type: string
          description: >-
            The end date of the anchor pay period. Together with
            `anchor_pay_date`, this defines the length and pattern of all future
            pay periods.
          nullable: true
          format: date
        generate_payrolls_from:
          type: string
          description: >-
            Only available in preview mode. When set, Payrolls are generated
            starting from this date rather than the default, allowing historical
            Payrolls to be created before the current date.
          nullable: true
          format: date
        day_1:
          type: integer
          description: >-
            For monthly pay schedules, the day of the month on which pay is
            issued. For semi-monthly pay schedules, the first of two pay days
            per month.
          nullable: true
        day_2:
          type: integer
          description: >-
            For semi-monthly pay schedules, the second of two pay days per
            month.
          nullable: true
        pay_day_movement_setting:
          type: string
          description: >-
            The pay schedule-level setting for how pay dates are adjusted when
            they fall on a weekend or bank holiday. If set to `inherit`, the
            Business Entity's setting is used.
          enum:
            - inherit
            - next_business_day
            - previous_business_day
        send_empty_pay_stubs:
          type: boolean
          description: >-
            Whether Pay Stubs are generated for employees with no earnings in a
            given pay period.
        pay_stub_settings:
          type: object
          description: >-
            Settings that control Pay Stub display. The
            `show_vacation_pay_balance` field, when `true`, causes the
            employee's current Vacation Pay balance to appear on Pay Stubs.
          nullable: true
          properties:
            show_vacation_pay_balance:
              type: boolean
        custom_pay_periods_per_year:
          type: integer
          description: >-
            When `pay_frequency` is `custom`, the number of pay periods per
            year.
          nullable: true
        is_editable:
          type: boolean
          description: >-
            Whether the pay schedule's configuration can be edited. A pay
            schedule becomes non-editable once any of its Payrolls have been
            approved or paid. When `false`, only the `title` field may be
            updated.
        is_deletable:
          type: boolean
          description: >-
            Whether the pay schedule can be deleted. A pay schedule may not be
            deleted once any of its Payrolls have been approved or paid. In
            preview mode, any pay schedule may be deleted.
        external_ref:
          type: string
          description: >-
            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.
          nullable: true
          maxLength: 255
        created_at:
          type: string
          description: The date and time the object was created in Nmbr.
          readOnly: true
          format: dateTime
        updated_at:
          type: string
          description: The date and time the object was last updated in Nmbr.
          readOnly: true
          format: dateTime
  securitySchemes:
    CompanyToken:
      type: http
      scheme: bearer

````