> ## 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.

# Create a pay schedule



## OpenAPI

````yaml /spec/openapi.json post /pay_schedules
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:
    post:
      tags:
        - Pay Schedules
      summary: Create a pay schedule
      operationId: pay-schedules-store
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    business_entity_id:
                      type: string
                    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.
                      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 now.
                      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.
                      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 now.
                      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, must be on or after
                        `anchor_pay_date`. Allows for creation of Payrolls
                        before the current date.
                      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.


                        Required for monthly and semi-monthly pay schedules;
                        must be `null` for other frequencies. For semi-monthly
                        pay schedules, valid `(day_1, day_2)` pairs are `(16,
                        1)`, `(15, -1)`, and `(15, 31)`.
                    day_2:
                      type: integer
                      description: >-
                        For semi-monthly pay schedules, the second of two pay
                        days per month.


                        Required for semi-monthly pay schedules; must be `null`
                        for other frequencies. For semi-monthly pay schedules,
                        valid `(day_1, day_2)` pairs are `(16, 1)`, `(15, -1)`,
                        and `(15, 31)`.
                    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.
                    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
                - type: object
                  required:
                    - business_entity_id
                    - title
                    - pay_frequency
            example:
              business_entity_id: <id>
              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:
        '201':
          description: Created
          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

````