Pay & Compensation
Pay Items

Bulk Create Pay Items

Changed on

Bulk creates pay items for employments. Supports up to 500 items per request. Each item must supply exactly one of code or external_import_code to identify the pay element. Integration-specific fields (shift code, currency, pay amount, etc.) go in the provider_data object. Pay codes that use a pay item custom configuration, such as a company car, describe it under custom_configuration in GET /v1/companies/:company_id/legal-entities/:legal_entity_id/pay-codes. Send its values in the pay item's custom_configuration, with the same key. Only Global Payroll employments are supported. Non-GP employments are returned as employment_not_global_payroll.

Authentication

This endpoint accepts any one of the following token types:

  • Company-scoped access token (OAuth2AuthorizationCode) — obtained through the Authorization Code flow or the Refresh Token flow. See Authentication for partners.
  • Customer API token (CustomerAPIToken) — generated by the customer on their Integration Settings page. See Authorization for customers.

Scopes

CategoryRead only ScopeWrite only Scope (read access implicit)
Manage payroll runs (payroll)-Manage pay items (pay_item:write)
post/v1/pay-items/bulk

Request

  • Base URL: https://gateway.remote.com
  • URL: https://gateway.remote.com/v1/pay-items/bulk
  • Auth: HTTP bearer and OAuth 2 (authorization code, authorization URL /auth/oauth2/authorize, token URL /auth/oauth2/token, scopes: https://gateway.remote.com/company.manage, pay_item:write, payroll, all:write)

Request body

Example request

{
  "pay_items": [
    {
      "amount": 7200,
      "code": "overtime",
      "effective_date": "2026-03-11",
      "employment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "provider_data": {
        "correction_effective_date": "2026-03-15",
        "hourly_rate": 2550,
        "hourly_rate_currency_code": "SGD",
        "pay_rate": 1.5,
        "shift_code": "DAY",
        "work_day_duration": 28800
      }
    }
  ]
}

Response

Success

Example response

{
  "data": {
    "failures": [
      {
        "error": "not_found",
        "row_number": 0
      }
    ],
    "successes": [
      {
        "pay_item": {
          "amount": 7200,
          "code": "overtime",
          "effective_date": "2026-03-11",
          "employment_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "end_date": null,
          "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
          "provider_data": {
            "correction_effective_date": "2026-03-15",
            "hourly_rate": 2550,
            "hourly_rate_currency_code": "SGD",
            "pay_rate": 1.5,
            "shift_code": "DAY",
            "work_day_duration": 28800
          },
          "replaced_ids": []
        },
        "row_number": 0
      }
    ]
  }
}

Changes

    • info

      added the new optional request property //

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property //// to the response with the status

    • breaking

      added subschema #3 to the /// response property oneOf list for the response status

    • info

      removed from the /// response property oneOf list for the response status