---
title: "Delete a Recurring Incentive"
method: DELETE
path: "/v1/incentives/recurring/{id}"
tags: ["Recurring Incentives"]
---

# Delete a Recurring Incentive

`DELETE /v1/incentives/recurring/{id}`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/incentives/recurring/{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: `incentive: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: `incentive:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Delete a Recurring Incentive, that is, a monthly paid incentive.

Internally, Remote schedules upcoming incentives. As such, when you attempt to
delete a recurring incentive, Remote will **ONLY** delete scheduled incentives
with the `pending` status.

Incentives payments that are already scheduled and cannot be deleted will be
included in the response, in case you need to reference them.

## 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 expenses (`employment_payments`) | - | Manage incentives (`incentive:write`) |
| Company-scoped access token (assertion) | Manage expenses (`employment_payments`) | - | Manage incentives (`incentive:write`) |
| Customer API token | Manage expenses (`employment_payments`) | - | Manage incentives (`incentive:write`) |

## Path parameters

- `id` string, required

## Headers

- `Authorization` string, required

## Response `200`

Success

- DeleteRecurringIncentiveResponse: `"status": "ok"` indicates that any recurring incentives with `pending` status were successfully deleted. `already_scheduled_incentives` returns a list of incentives that were already scheduled for payout and as such, cannot be deleted. You will notice that these incentives do not have a `pending` status.
  - `data` object, required
    - `already_scheduled_incentives` Incentive[], required
      - `amount` integer, required: The incentive amount in the employment's currency, in cents. For example, EUR 500.25 would be represented as 50025.
      - `amount_tax_type` 'gross' | 'net', required: Whether the amount given accounts for taxes or not. `gross` indicates that the amount given is the amount to be paid before taxes are subtracted. `net` indicates that the amount given is the amount which will be paid to the employee after taxes. Remote will gross this up to ensure the taxes are included and employee receives the amount requested without further reduction.
      - `effective_date` string, date, nullable, required: The date the incentive takes effect. Determines which payroll cycle the incentive will be paid in.
      - `employment_id` string, required: The unique identifier (UUID) of the employment this incentive belongs to.
      - `expected_payout_date` string, date, nullable: The expected date when this incentive will be paid to the employee. Null if not yet determined.
      - `id` string, required: The unique identifier (UUID) of the incentive.
      - `note` string, nullable: An optional note describing the reason or context for this incentive.
      - `payroll_output_category` string: The broader payroll category this incentive's `type` belongs to (e.g., "incentive", "benefits_cash").
      - `period_end` string, date, nullable: The end date of the period this incentive covers. Null for non-periodic incentives.
      - `period_start` string, date, nullable: The start date of the period this incentive covers (e.g., for quarterly bonuses). Null for non-periodic incentives.
      - `recurring_incentive_id` string, nullable: If this incentive was generated from a recurring incentive schedule, this is the ID of the parent recurring incentive. Null for one-time incentives.
      - `status` string, required: The current status of the incentive (e.g., "pending", "scheduled", "paid", "cancelled").
      - `type` string, required: The type of incentive (e.g., "signing_bonus", "performance_bonus", "commission", "referral_bonus").
      - `type_label` string: The human-readable label for `type` (e.g., "Signing bonus", "Commission", "Severance").
    - `status` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too many requests

---

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