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



## OpenAPI

````yaml /spec/openapi.json post /pay_rates
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_rates:
    post:
      tags:
        - Pay Rates
      summary: Create a pay rate
      operationId: pay-rates-store
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    work_assignment_id:
                      type: string
                      description: >-
                        Must belong to a work assignment associated with an
                        entity of type Employee.
                    title:
                      type: string
                      description: >-
                        Required unless the business preset referenced by
                        `business_preset_id` already has a title. Either the pay
                        rate or its preset must have one.
                      nullable: true
                      maxLength: 255
                    title_translations:
                      type: object
                      description: Optional translations for the `title` property.
                      allOf:
                        - $ref: '#/components/schemas/Translations'
                      nullable: true
                    has_business_preset:
                      type: boolean
                    business_preset_id:
                      type: string
                    type:
                      type: string
                      description: >-
                        Whether this is a `salary` or `hourly` pay rate.
                        Determines how `rate` is interpreted.


                        Must be present when `business_preset_id` is either
                        empty or not set.
                      enum:
                        - hourly
                        - salary
                    rate:
                      type: number
                      description: >-
                        The annual salary when `type` is `salary`, or the hourly
                        wage when `type` is `hourly`.


                        For `salary` pay rates, `rate` is the annual salary
                        (i.e. amount per year). For `wage` pay rates, `rate` is
                        the hourly wage (i.e. amount per hour).
                      format: decimal
                      minimum: 0
                      maximum: 9999999
                    expected_hours_per_week:
                      type: number
                      description: >-
                        The expected number of working hours per week. Must be
                        greater than `0` for `salary` pay rates. Used to
                        calculate the equivalent hourly rate from salaries for
                        overtime.
                      format: decimal
                      minimum: 0
                      maximum: 168
                    effective_from:
                      type: string
                      description: >-
                        The date from which this pay rate is applied to Pay
                        Stubs.
                      format: date
                    effective_to:
                      type: string
                      description: >-
                        The date after which this pay rate is no longer applied
                        and can no longer be used to create Earning Line Items.
                        `null` if the pay rate applies indefinitely.
                      format: date
                    expense_accounting_code_id:
                      type: string
                    liability_accounting_code_id:
                      type: string
                    external_ref:
                      type: string
                      maxLength: 255
                    tag_assignment:
                      type: object
                      properties:
                        unit:
                          type: string
                          enum:
                            - percentage
                        is_component_locked:
                          type: boolean
                        tag_allocations:
                          type: array
                          items:
                            type: object
                            properties:
                              tags:
                                type: array
                                items:
                                  type: string
                              value:
                                type: number
                                format: decimal
                                minimum: 0
                - type: object
                  required:
                    - work_assignment_id
                    - rate
                    - expected_hours_per_week
                    - effective_from
            example:
              work_assignment_id: <id>
              title: Marketing Manager
              type: hourly
              rate: '15'
              expected_hours_per_week: '40'
              effective_from: '2026-01-01'
              tag_assignment:
                unit: percentage
                tag_allocations:
                  - tags:
                      - <id>
                    value: 100
      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_rate"`).
                    readOnly: true
                  data:
                    $ref: '#/components/schemas/PayRate'
              example:
                id: <id>
                object: pay_rate
                data:
                  work_assignment:
                    id: <id>
                    object: work_assignment
                    links:
                      self: /work_assignments/<id>
                  title: Marketing Manager
                  title_translations: null
                  title_translated: Marketing Manager
                  type: hourly
                  rate: 15
                  expected_hours_per_week: 40
                  is_editable: true
                  is_deletable: true
                  effective_from: '2026-01-01'
                  earliest_valid_effective_to: '2026-01-01'
                  effective_to: null
                  business_preset: null
                  expense_accounting_code: null
                  liability_accounting_code: null
                  external_ref: null
                  created_at: '2026-01-01T00:00:00.000000Z'
                  updated_at: '2026-01-01T00:00:00.000000Z'
                links:
                  self: /pay_rates/<id>
components:
  schemas:
    Translations:
      type: object
      nullable: true
      properties:
        en:
          type: string
          maxLength: 255
        fr:
          type: string
          maxLength: 255
    PayRate:
      type: object
      title: Pay Rate
      properties:
        work_assignment:
          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 (`"work_assignment"`).
              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
        type:
          type: string
          description: >-
            Whether this is a `salary` or `hourly` pay rate. Determines how
            `rate` is interpreted.
          enum:
            - hourly
            - salary
        rate:
          type: number
          description: >-
            The annual salary when `type` is `salary`, or the hourly wage when
            `type` is `hourly`.
          format: decimal
        expected_hours_per_week:
          type: number
          description: >-
            The expected number of working hours per week. Must be greater than
            `0` for `salary` pay rates. Used to calculate the equivalent hourly
            rate from salaries for overtime.
          format: decimal
        is_editable:
          type: boolean
          description: >-
            Whether the pay rate's `type`, `rate`, and `effective_from` can be
            modified. Once the pay rate has been used on a non-draft Payroll,
            these fields are locked.
        is_deletable:
          type: boolean
          description: >-
            Whether the pay rate can be deleted. A pay rate may not be deleted
            once it has been used on a non-draft Payroll.
        effective_from:
          type: string
          description: The date from which this pay rate is applied to Pay Stubs.
          format: date
        earliest_valid_effective_to:
          type: string
          description: >-
            The earliest date that `effective_to` may be set to, based on the
            most recent non-draft Payroll period in which this pay rate was
            active.
          format: date
        effective_to:
          type: string
          description: >-
            The date after which this pay rate is no longer applied and can no
            longer be used to create Earning Line Items. `null` if the pay rate
            applies indefinitely.
          nullable: true
          format: date
        business_preset: {}
        expense_accounting_code: {}
        liability_accounting_code: {}
        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

````