---
title: "Updates Contractor Invoice Schedule"
method: PUT
path: "/v1/contractor-invoice-schedules/{id}"
tags: ["Invoice Schedules"]
---

# Updates Contractor Invoice Schedule

`PUT /v1/contractor-invoice-schedules/{id}`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/contractor-invoice-schedules/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `invoices:write`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `invoices:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Updates a contractor invoice schedule record

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:write` works too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage invoices (`invoices`) | - | Manage invoices (`invoices:write`) |
| Company-scoped access token (assertion) | Manage invoices (`invoices`) | - | Manage invoices (`invoices:write`) |
| Customer API token | Manage invoices (`invoices`) | - | Manage invoices (`invoices:write`) |

## Path parameters

- `id` string, uuid, required: A unique identifier in UUID v4 format.

## Request body

- UpdateScheduleContractorInvoiceParams: Payload shape used to update invoice schedules.
  - `currency` string, nullable: Currency code in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.
  - `custom_days` integer[], nullable: The two calendar days of the month on which invoices are generated. Only applies when `periodicity` is `semi_monthly`; must be omitted (or `null`) for every other periodicity. When omitted for a `semi_monthly` schedule, the two days are derived from `start_date`: the start day and the day 14 days apart from it. Supply this field only to pick a cycle other than that default. One of the two days must be the day of `start_date`, the days must be distinct, and they cannot resolve to the same day within a month.
  - `items` ContractorInvoiceScheduleItem[]: List of invoice items that composes the overall invoice amount.
    - `amount` integer, required: Amount, in cents.
    - `description` string, required: Describes invoice item intent.
  - `note` string, nullable: Custom defined note.
  - `nr_occurrences` integer, nullable: Count of remaining invoices that should be generated.
  - `number` string, nullable: Invoice identifier.
  - `periodicity` 'bi_weekly' | 'monthly' | 'semi_monthly' | 'weekly': Defines how often contractor invoices will be generated. - `bi_weekly`: Invoices will be generated every other week, on the given day of the week based on the start date. - `monthly`: Invoices will be generated once a month. - `semi_monthly`: Invoices will be generated at fixed dates twice a month (with 14 days of difference between each other), depending on the start date. In months with just 30 days, if `start_date` is set to the 31st day, then generation occurs in the last of day of the month. - `weekly`: Invoices will be generated each week.
  - `start_date` string, date: UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
  - `status` 'inactive' | 'deleted' | 'active' | 'processing'

## Response `200`

Success

- ContractorInvoiceScheduleResponse: Response schema to show a Contractor Invoice Schedule
  - `data` object, required
    - `contractor_invoice_schedule` ContractorInvoiceSchedule, required: Contractor Invoice Schedule.
      - `currency` string, required: Currency code in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format.
      - `custom_days` integer[], nullable: The two calendar days of the month on which invoices are generated. Only applies when `periodicity` is `semi_monthly`; must be omitted (or `null`) for every other periodicity. When omitted for a `semi_monthly` schedule, the two days are derived from `start_date`: the start day and the day 14 days apart from it. Supply this field only to pick a cycle other than that default. One of the two days must be the day of `start_date`, the days must be distinct, and they cannot resolve to the same day within a month.
      - `employment_id` string, uuid, required: Employment identifier.
      - `id` string, uuid, required: Schedule identifier.
      - `items` ContractorInvoiceScheduleItem[], required: List of invoice items that composes the overall invoice amount.
        - `amount` integer, required: Amount, in cents.
        - `description` string, required: Describes invoice item intent.
      - `next_invoice_at` string, datetime, nullable: Date time which next invoice will be generated.
      - `note` string, nullable: Custom defined note.
      - `nr_occurrences` integer, nullable: Count of remaining invoices that should be generated.
      - `number` string, nullable: Invoice identifier.
      - `periodicity` 'bi_weekly' | 'monthly' | 'semi_monthly' | 'weekly', required: Defines how often contractor invoices will be generated. - `bi_weekly`: Invoices will be generated every other week, on the given day of the week based on the start date. - `monthly`: Invoices will be generated once a month. - `semi_monthly`: Invoices will be generated at fixed dates twice a month (with 14 days of difference between each other), depending on the start date. In months with just 30 days, if `start_date` is set to the 31st day, then generation occurs in the last of day of the month. - `weekly`: Invoices will be generated each week.
      - `start_date` string, date, required: Date which invoices generation will start.
      - `status` 'inactive' | 'deleted' | 'completed' | 'active' | 'processing' | 'pending_company_action' | 'pending_contractor_action' | 'generation_failed_unrelated_to_withdrawal_method', required: Current record state. - `active`: Once an invoice is generated, and a withdrawal method has been set, then it's set to active. - `processing`: Ephemeral status indicating that we are currently attempting to generate a contractor invoice from the scheduled contractor invoice. - `pending_company_action`: Company needs to trigger some actions related to payment configuration. - `pending_contractor_action`: When schedule is blocked by contractor onboarding or invoice generation failed due to withdrawal methods issues that needs contractor action. - `generation_failed_unrelated_to_withdrawal_method`: Generation failed for any other reason. - `completed`: Number of generated contractor invoices has been reached. - `inactive`: Does not create any further contractor invoices but it's still possible for the employer to activate it again. - `deleted`: The schedule was cancelled and will not generate any further contractor invoices.
      - `total_amount` integer, required: Overall amount that is calculated by summing all invoice items.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/remote-com/apis/contractors.md) - [All operations](https://skmtc.dev/remote-com/apis/contractors/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/contractors/revisions/e1e7f1caaada?raw)
