> ## Documentation Index
> Fetch the complete documentation index at: https://developer.rollfi.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# addRecurringPayItem

> The `addRecurringPayItem` API is used to add a recurring item that will appear on an employee's payroll.

### What it does:
- Adds an employee-specific recurring pay item
- Used to add recurring deductions, additional compensations, and reimbursements without having to add them to pay periods

### Notes:
- Either `allocatedPercentage` or `amountPerPayPeriod` is required
- Recurring items will be added to open pay periods until they are removed with `removeRecurringPayItem`
- `type` is restricted to the list of deductions and additional compensations available with `getDeductionDescription` and `getAdditionalCompensationDescription`
- `type` allows free-string entry for reimbursements
- Only one recurring item per `type` can be added

---

| PayItem options | Restrictions |
| - | - |
| Deduction | `getDeductionDescription` |
| AdditionalCompensation | `getAdditionalCompensationDescription` |
| Reimbursement | No restriction. Free entry |



## OpenAPI

````yaml post /adminPortal/addRecurringPayItem
openapi: 3.0.1
info:
  title: Default module
  description: ''
  version: 1.0.0
servers: []
security:
  - basic: []
tags: []
paths:
  /adminPortal/addRecurringPayItem:
    post:
      tags: []
      summary: addRecurringPayItem
      description: >-
        The `addRecurringPayItem` API is used to add a recurring item that will
        appear on an employee's payroll.


        ### What it does:

        - Adds an employee-specific recurring pay item

        - Used to add recurring deductions, additional compensations, and
        reimbursements without having to add them to pay periods


        ### Notes:

        - Either `allocatedPercentage` or `amountPerPayPeriod` is required

        - Recurring items will be added to open pay periods until they are
        removed with `removeRecurringPayItem`

        - `type` is restricted to the list of deductions and additional
        compensations available with `getDeductionDescription` and
        `getAdditionalCompensationDescription`

        - `type` allows free-string entry for reimbursements

        - Only one recurring item per `type` can be added


        ---


        | PayItem options | Restrictions |

        | - | - |

        | Deduction | `getDeductionDescription` |

        | AdditionalCompensation | `getAdditionalCompensationDescription` |

        | Reimbursement | No restriction. Free entry |
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                method:
                  type: string
                companyId:
                  type: string
                userId:
                  type: string
                payItem:
                  type: string
                  enum:
                    - Deduction
                    - AdditionalCompensation
                    - Reimbursement
                type:
                  type: string
                amountPerPayPeriod:
                  type: number
                allocatedPercentage:
                  type: number
              required:
                - method
                - companyId
                - userId
                - payItem
                - type
            example:
              method: addRecurringPayItem
              companyId: 336CB829-543B-451D-AAA2-18A1B03454F2
              userId: C8E5F6AB-4CB5-406C-B756-208B742F4281
              payItem: Garnishments
              type: CN RPP
              amountPerPayPeriod: 450
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
                required:
                  - status
                  - message
              example:
                Status: Success
                Message: Recurring pay item added successfully.
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
              example:
                error:
                  code: 400
                  message: Invalid companyId
          headers: {}
      deprecated: false
      security:
        - basic: []
components:
  securitySchemes:
    basic:
      type: http
      scheme: basic

````