{
  "components": {
    "schemas": {
      "OutputPayrollApi401kDeduction95eca768e745": {
        "description": "The 401k Deduction Model.",
        "properties": {
          "caps": {
            "anyOf": [
              {
                "description": "The 401k Limit Object. This object represents the caps set on both employee and employer contribution amounts for traditional and ROTH 401ks.",
                "properties": {
                  "employee_401k_limit": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "description": "For all 401k accounts (Roth, and Traditional)",
                            "format": "float",
                            "minimum": 0,
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "roth": {
                    "anyOf": [
                      {
                        "properties": {
                          "ee": {
                            "anyOf": [
                              {
                                "description": "Employee Roth 401k Limit",
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "er": {
                            "anyOf": [
                              {
                                "description": "Employer Roth 401k limit",
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "total_401k_limit": {
                    "anyOf": [
                      {
                        "description": "Total contribution limit from the employee and the employer.",
                        "format": "float",
                        "minimum": 0,
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                        "type": "string"
                      }
                    ]
                  },
                  "traditional": {
                    "properties": {
                      "ee": {
                        "anyOf": [
                          {
                            "description": "Employee traditional 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "employee_401k_limit": {
                        "anyOf": [
                          {
                            "description": "The traditional employee 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "er": {
                        "anyOf": [
                          {
                            "description": "Employer traditional 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "type": "object"
                  }
                },
                "title": "401kCap",
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "employer": {
            "description": "Either a flat dollar or % employer traditional contribution amount. This should be used in conjunction with employer_is_percent. Note, this field should not be set if the employer is using a tiered match. This value will be overridden by the calculated match using the tiered match. If the field is omitted, it will not be updated.",
            "type": "string"
          },
          "employer_roth_is_percent": {
            "description": "Whether the employer ROTH contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount. Note, this field should not be set if the employer is using a tiered match.",
            "type": "boolean"
          },
          "employer_traditional_is_percent": {
            "description": "Whether the employer traditional contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount. Note, this field should not be set if the employer is using a tiered match.",
            "type": "boolean"
          },
          "loan": {
            "description": "Either a flat dollar or % loan contribution amount. This should be used in conjunction with loan_is_percent.",
            "type": "string"
          },
          "loan_is_percent": {
            "description": "Whether the loan contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          },
          "roth": {
            "description": "Either a flat dollar or % contribution amount. This should be used in conjunction with roth_is_percent.",
            "type": "string"
          },
          "roth_employer": {
            "description": "Either a flat dollar or % employer ROTH contribution amount. This should be used in conjunction with employer_roth_is_percent. Note, this field should not be set if the employer is using a tiered match. This value will be overridden by the calculated match using the tiered match.",
            "type": "string"
          },
          "roth_is_percent": {
            "description": "Whether the ROTH contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          },
          "traditional": {
            "description": "Either a flat dollar or % contribution amount. This should be used in conjunction with traditional_is_percent.",
            "type": "string"
          },
          "traditional_is_percent": {
            "description": "Whether the traditional contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          }
        },
        "title": "401kDeduction",
        "type": "object"
      },
      "OutputPayrollApiAnnualPayrollInformationb4da9ac51051": {
        "description": "Annual payroll information for a given company.",
        "properties": {
          "": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "employees_info": {
            "items": {
              "anyOf": [
                {
                  "description": "A summary of a Company's 401k information for a given employee.",
                  "properties": {
                    "employee_details": {
                      "anyOf": [
                        {
                          "description": "The employee details object used within the annual 401k report",
                          "properties": {
                            "birth_date": {
                              "type": "string"
                            },
                            "first_name": {
                              "type": "string"
                            },
                            "hire_date": {
                              "type": "string"
                            },
                            "id": {
                              "type": "string"
                            },
                            "last_Name": {
                              "type": "string"
                            },
                            "previous_termination_date": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "rehire_date": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "ssn": {
                              "type": "string"
                            },
                            "termination_date": {
                              "type": "string"
                            }
                          },
                          "title": "401kEmployeeDetails",
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "year": {
                      "type": "string"
                    },
                    "ytd_comp_w_2_box3": {
                      "type": "string"
                    },
                    "ytd_ee_pretax_deferral": {
                      "type": "string"
                    },
                    "ytd_er_match": {
                      "type": "string"
                    },
                    "ytd_gross_wages": {
                      "type": "string"
                    },
                    "ytd_loan_payments": {
                      "type": "string"
                    }
                  },
                  "title": "Annual401kEmployeeSummary",
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array"
          },
          "end_date": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          }
        },
        "title": "AnnualPayrollInformation",
        "type": "object"
      },
      "OutputPayrollApiCompanyDeductiona239d2f7fc92": {
        "description": "A company deduction object.",
        "properties": {
          "allowedEarningTypeForPercentCalc": {
            "description": "The earning types this company deduction type applies to.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "companyContribution": {
            "anyOf": [
              {
                "description": "The amount the company pays on the employee's behalf.",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "deductionType": {
            "description": "The deduction type.",
            "type": "string"
          },
          "employeeDeduction": {
            "anyOf": [
              {
                "description": "The amount the employee pays out of their pocket.",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "employerMatch401K": {
            "additionalProperties": false,
            "description": "This field earlier returned tiered match in case only one tiered match is set up for a company. This field is now deprecated.",
            "type": "object"
          },
          "id": {
            "description": "The company deduction unique identifier.",
            "type": "string"
          },
          "isEEPercent": {
            "description": "If the amount given in a employee deduction is a % than true. Otherwise false, if the amount if an absolute dollar amount value.",
            "type": "boolean"
          },
          "isERPercent": {
            "description": "If the amount given in a company contribution is a % than true. Otherwise false, if the amount if an absolute dollar amount value.",
            "type": "boolean"
          },
          "isMonthly": {
            "anyOf": [
              {
                "description": "Indicates that the admin has set up deduction amounts per month. It is true only when the admin explicitly selects 'Monthy' while setting up the Company Deduction Type (CDT). If it is false, then the defaults set up are used per pay period.",
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "matchingScheme401k": {
            "description": "The defined matching scheme. Safe harbor is used if you want to use tiered matching.",
            "type": "string"
          },
          "name": {
            "description": "Name of the company deduction.",
            "type": "string"
          },
          "tiered_401k_matches": {
            "description": "This returns an array of tiered match object ids. We can use these ids with API https://api.rippling.com\n/platform/api/tiered_match_401k/{id} to query tiered matches for a company.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "CompanyDeduction",
        "type": "object"
      },
      "OutputPayrollApiEarningTypec8e2e586ab6a": {
        "description": "An earning type object.",
        "properties": {
          "earningType": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "EarningType",
        "type": "object"
      },
      "OutputPayrollApiEmployeeDeductionTypecdb7d1c4f375": {
        "description": "An Employee Deduction object instance is created for every employee with a deduction. This will be inherited automatically by the company deduction type, but can be specified at the employee level as well, by directly modifying an employee's employee deduction object.",
        "properties": {
          "companyContribution": {
            "description": "Sets the companyContribution at the employee level. This will overwrite the values set by the company deduction type, associated with the employee deduction type.",
            "type": "string"
          },
          "companyDeductionType": {
            "description": "Unique identifier of the Company Deduction Type that is associated with this Employee Deduction Type.",
            "type": "string"
          },
          "employeeDeduction": {
            "description": "Stes the employeeDeduction at the employee level. This will override the values set by the company deduction type associated with this employee deduction type.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier of the employee deduction type.",
            "type": "string"
          },
          "isEEPercent": {
            "description": "If the employee deduction is a percentage. If false, then it will be a flat dollar amount.",
            "type": "boolean"
          },
          "isERPecent": {
            "description": "True if the value for an employee is a percentage of the employee's pay, or false if it is set to a flat dollar amount. ",
            "type": "string"
          },
          "isMonthly": {
            "anyOf": [
              {
                "description": "Corresponds to whether the deduction type is set to be monthly for the company deduction type associated with this role.",
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "description": "Name of the employee deduction type.",
            "type": "string"
          },
          "role": {
            "description": "Role identifier of the employee deduction type that the company deduction type belong to.",
            "type": "string"
          }
        },
        "title": "EmployeeDeductionType",
        "type": "object"
      },
      "OutputPayrollApiEmployeePayrollCreditsf5c10beb0213": {
        "description": "An object representing employee credits.",
        "properties": {
          "amount": {
            "description": "Credit Amount.",
            "type": "string"
          },
          "name": {
            "description": "Credit Name.",
            "type": "string"
          }
        },
        "title": "EmployeePayrollCredits",
        "type": "object"
      },
      "OutputPayrollApiEmployeePayrollDebits269fd7be24a1": {
        "description": "An object representing employee debits.",
        "properties": {
          "amount": {
            "description": "Debit Amount.",
            "type": "string"
          },
          "name": {
            "description": "Debit Name.",
            "type": "string"
          }
        },
        "title": "EmployeePayrollDebits",
        "type": "object"
      },
      "OutputPayrollApiEmployeePayrollGarnishments653998bddc48": {
        "description": "An object representing employee garnishments. A payroll garnishment occurs when a court issues an order to withhold a certain amount from an employee's paycheck and send it directly to the organization or person owed money, until the debt is fully paid.",
        "properties": {
          "ctdAmt": {
            "description": "Contribution Amount.",
            "type": "string"
          },
          "employeeGarnishment": {
            "description": "Unique identifier of the garnishmnet type defined by the company.",
            "type": "string"
          },
          "name": {
            "description": "Garnishment Name.",
            "type": "string"
          }
        },
        "title": "EmployeePayrollGarnishments",
        "type": "object"
      },
      "OutputPayrollApiEmployeePayrollRun13bc15bd1c70": {
        "description": "An employee payroll run object.",
        "properties": {
          "credits": {
            "items": {
              "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollCreditsf5c10beb0213"
            },
            "type": "array"
          },
          "debits": {
            "items": {
              "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollDebits269fd7be24a1"
            },
            "type": "array"
          },
          "earnings": {
            "items": {
              "anyOf": [
                {
                  "description": "A pay earning object for an employee.",
                  "properties": {
                    "amount": {
                      "type": "string"
                    },
                    "companyEarningType": {
                      "description": "Identifier of the earning type defined by the company. There can only be one entry in the earnings array for each companyEarningType.",
                      "type": "string"
                    },
                    "earningTypeEnum": {
                      "type": "string"
                    },
                    "hours": {
                      "anyOf": [
                        {
                          "description": "Only applies to earning types that are paid hourly.",
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "shiftId": {
                      "anyOf": [
                        {
                          "description": "Used to distinguish between earnings with same time labels",
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "time_labels": {
                      "anyOf": [
                        {
                          "description": "List of Jobcodes for the Earning hours",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "title": "Earning",
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array"
          },
          "ein": {
            "type": "string"
          },
          "garnishments": {
            "items": {
              "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollGarnishments653998bddc48"
            },
            "type": "array"
          },
          "grossPay": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "netPay": {
            "type": "string"
          },
          "role": {
            "description": "The unique identifier of the employee.",
            "type": "string"
          },
          "run": {
            "type": "string"
          },
          "taxes": {
            "items": {
              "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollTaxesb0dc426997cb"
            },
            "type": "array"
          },
          "totalPayForPercentageDeductions": {
            "type": "string"
          }
        },
        "title": "EmployeePayrollRun",
        "type": "object"
      },
      "OutputPayrollApiEmployeePayrollTaxesb0dc426997cb": {
        "description": "A tax object that depicts taxes paid by an employee during a payroll run.",
        "properties": {
          "amount": {
            "type": "string"
          },
          "isERTax": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "title": "EmployeePayrollTaxes",
        "type": "object"
      },
      "OutputPayrollApiPayPeriodSchedule0470e080dc87": {
        "description": "A pay period schedule object",
        "properties": {
          "approvalDate": {
            "format": "date",
            "type": "string"
          },
          "checkDate": {
            "format": "date",
            "type": "string"
          },
          "ppEnd": {
            "format": "date",
            "type": "string"
          },
          "ppStart": {
            "format": "date",
            "type": "string"
          }
        },
        "title": "PayPeriodSchedule",
        "type": "object"
      },
      "OutputPayrollApiPayScheduledc037f4c7d78": {
        "properties": {
          "arrearDayUnit": {
            "type": "string"
          },
          "arrearDays": {
            "type": "string"
          },
          "ein": {
            "type": "string"
          },
          "firstCheckDate": {
            "format": "date",
            "type": "string"
          },
          "firstCheckDateOfMonth": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                "type": "string"
              }
            ]
          },
          "holidayShift": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "payFrequency": {
            "type": "string"
          },
          "payrollDayOfWeek": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "roles": {
            "description": "An array of role ids for employees.",
            "items": {},
            "type": "array"
          },
          "secondCheckDateOfMonth": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                "type": "string"
              }
            ]
          }
        },
        "title": "PaySchedule",
        "type": "object"
      },
      "OutputPayrollApiPayrollActivity3cc68c223540": {
        "properties": {
          "checkDate": {
            "description": "Represents the date when the employees will receive funds",
            "type": "string"
          },
          "employees": {
            "items": {
              "properties": {
                "401kCompanyContribution": {
                  "type": "string"
                },
                "401kDeduction": {
                  "type": "string"
                },
                "401kLoanPayment": {
                  "type": "string"
                },
                "ein": {
                  "type": "string"
                },
                "grossPay": {
                  "type": "string"
                },
                "hours": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "role": {
                  "type": "string"
                },
                "roth401kCompanyContribution": {
                  "type": "string"
                },
                "roth401kDeduction": {
                  "type": "string"
                },
                "totalPayForPercentageDeductions": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "endDate": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "parentPayrollRun": {
            "anyOf": [
              {
                "description": "Parent payroll object used in an older endpoint for payroll activity.",
                "properties": {
                  "attribute...": {
                    "type": "string"
                  }
                },
                "title": "parentPayrollRun",
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "payScheduled": {
            "type": "string"
          },
          "processDate": {
            "description": "Represents the check date or correction pay date in the case of the run type being CORRECTION",
            "type": "string"
          },
          "runState": {
            "type": "string"
          },
          "runType": {
            "type": "string"
          },
          "startDate": {
            "type": "string"
          }
        },
        "title": "PayrollActivity",
        "type": "object"
      },
      "OutputPayrollApiPayrollRunb169b218247b": {
        "description": "The payroll run object.",
        "properties": {
          "approvalDeadline": {
            "type": "string"
          },
          "approvedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "checkDate": {
            "type": "string"
          },
          "ein": {
            "description": "Employer identification number, also known as the Federal Employer Identification Number or the Federal Tax Identification Number.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the payroll run.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "payPeriod": {
            "anyOf": [
              {
                "properties": {
                  "endDate": {
                    "type": "string"
                  },
                  "paySchedule": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "startDate": {
                    "type": "string"
                  }
                },
                "title": "PayPeriod",
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "runState": {
            "description": "DRAFT means the admin hasn't approved the run yet.\nAPPROVED means the admin has approved the run, but the check date has not arrived yet.\nPAID means the check date has arrived and the run was paid.\nFAILED means the check date arrived, but the run was not paid.\nCLOSED means the payroll run was canceled before being paid.",
            "type": "string"
          },
          "runType": {
            "type": "string"
          }
        },
        "title": "Payroll Run",
        "type": "object"
      },
      "OutputPayrollApiRandDCredit8b9e086ccd9b": {
        "description": "An R&D Credit object",
        "properties": {
          "company": {
            "description": "Rippling ID of the company",
            "type": "string"
          },
          "differentEin": {
            "description": "If the filing is done for a different EIN, this field will contain the value of that Ein\n\nThis is the company the credits came from (Can be any EIN)\n\nPlease note that the credits will be added to “ein” entity only.",
            "type": "string"
          },
          "ein": {
            "description": "Ein of the company the credits need to be applied to.\n\nNote: This needs to be sent even though the company has only one legal entity\n\nThis EIN does need to exist within Rippling and Rippling will throw an error message if the EIN doesn’t match an EIN present in Rippling.",
            "type": "string"
          },
          "endDate": {
            "description": "This is the last date the financial year of the year for which filing is done. Date format is MM/DD/YYYY\n\nTypically it’s 12/31/YYYY",
            "type": "string"
          },
          "returnFilingDate": {
            "description": "This is the date the company filed to the IRS. Date format is MM/DD/YYYY",
            "format": "date",
            "type": "string"
          },
          "returnType": {
            "description": "This field denotes the type of return. Available values:\n\n'Form 1040 - Sole Proprietorship'\n'Form 1065 - Partnership'\n'Form 1120 - Corporate Tax Return'\n'Form 1120S - S-Corp'\n'Form 1120-F - Foreign Corporation'\n",
            "type": "string"
          },
          "totalCredits": {
            "description": "The value of the credits granted by IRS.",
            "type": "string"
          },
          "useDifferentEin": {
            "description": "If the filing is done for a different EIN, this field should be set to True.\n\nThis indicates that the company is applying to a different EIN than the original 6765 filing",
            "type": "boolean"
          }
        },
        "required": [
          "ein",
          "endDate",
          "returnFilingDate",
          "totalCredits"
        ],
        "title": "RandDCredit",
        "type": "object"
      },
      "OutputPayrollApiTieredMatch401K2045384ffb48": {
        "description": "A 401K Tiered Match object. Defines the employer match scheme for 401K contributions.",
        "properties": {
          "ein": {
            "description": "If set, this tiered match will only apply to employees in this entity.",
            "type": "string"
          },
          "employees": {
            "description": "The group of specified employees that this tiered match applies to. This field should be used if isDefault is set to false to define the group of employees that the tiered match applies to.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "employerMatch401K": {
            "description": "An employer 401k match object.",
            "items": {
              "anyOf": [
                {
                  "properties": {
                    "eePercentComp": {
                      "description": "Employee percent",
                      "type": "string"
                    },
                    "erMatchPercent": {
                      "description": "Employer match percentage",
                      "type": "string"
                    },
                    "tierNum": {
                      "anyOf": [
                        {
                          "description": "Tier number",
                          "type": "integer"
                        },
                        {
                          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "employerMatch401k",
            "type": "array"
          },
          "id": {
            "description": "Unique identifier of the 401K Tiered Match object.",
            "type": "string"
          },
          "isDefault": {
            "description": "If set to true, this tiered match will be applied to all employees by default unless its overridden. If set to false, it will only apply to the applicable employees.",
            "type": "boolean"
          },
          "matchingScheme401K": {
            "type": "string"
          }
        },
        "required": [
          "matchingScheme401K"
        ],
        "title": "TieredMatch401K",
        "type": "object"
      },
      "PayrollApi401kDeduction95eca768e745": {
        "description": "The 401k Deduction Model.",
        "properties": {
          "caps": {
            "anyOf": [
              {
                "description": "The 401k Limit Object. This object represents the caps set on both employee and employer contribution amounts for traditional and ROTH 401ks.",
                "properties": {
                  "employee_401k_limit": {
                    "anyOf": [
                      {
                        "description": "For all 401k accounts (Roth, and Traditional)",
                        "format": "float",
                        "minimum": 0,
                        "type": "number"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "roth": {
                    "anyOf": [
                      {
                        "properties": {
                          "ee": {
                            "anyOf": [
                              {
                                "description": "Employee Roth 401k Limit",
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "er": {
                            "anyOf": [
                              {
                                "description": "Employer Roth 401k limit",
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "total_401k_limit": {
                    "description": "Total contribution limit from the employee and the employer.",
                    "format": "float",
                    "minimum": 0,
                    "type": "number"
                  },
                  "traditional": {
                    "properties": {
                      "ee": {
                        "anyOf": [
                          {
                            "description": "Employee traditional 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "employee_401k_limit": {
                        "anyOf": [
                          {
                            "description": "The traditional employee 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "er": {
                        "anyOf": [
                          {
                            "description": "Employer traditional 401k limit.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "type": "object"
                  }
                },
                "title": "401kCap",
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "employer": {
            "description": "Either a flat dollar or % employer traditional contribution amount. This should be used in conjunction with employer_is_percent. Note, this field should not be set if the employer is using a tiered match. This value will be overridden by the calculated match using the tiered match. If the field is omitted, it will not be updated.",
            "type": "string"
          },
          "employer_roth_is_percent": {
            "description": "Whether the employer ROTH contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount. Note, this field should not be set if the employer is using a tiered match.",
            "type": "boolean"
          },
          "employer_traditional_is_percent": {
            "description": "Whether the employer traditional contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount. Note, this field should not be set if the employer is using a tiered match.",
            "type": "boolean"
          },
          "loan": {
            "description": "Either a flat dollar or % loan contribution amount. This should be used in conjunction with loan_is_percent.",
            "type": "string"
          },
          "loan_is_percent": {
            "description": "Whether the loan contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          },
          "roth": {
            "description": "Either a flat dollar or % contribution amount. This should be used in conjunction with roth_is_percent.",
            "type": "string"
          },
          "roth_employer": {
            "description": "Either a flat dollar or % employer ROTH contribution amount. This should be used in conjunction with employer_roth_is_percent. Note, this field should not be set if the employer is using a tiered match. This value will be overridden by the calculated match using the tiered match.",
            "type": "string"
          },
          "roth_is_percent": {
            "description": "Whether the ROTH contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          },
          "traditional": {
            "description": "Either a flat dollar or % contribution amount. This should be used in conjunction with traditional_is_percent.",
            "type": "string"
          },
          "traditional_is_percent": {
            "description": "Whether the traditional contribution amount provided is a percentage of the gross wages or a flat dollar contribution amount.",
            "type": "boolean"
          }
        },
        "title": "401kDeduction",
        "type": "object"
      },
      "PayrollApiCompanyDeductiona239d2f7fc92": {
        "description": "A company deduction object.",
        "properties": {
          "allowedEarningTypeForPercentCalc": {
            "description": "The earning types this company deduction type applies to.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "companyContribution": {
            "anyOf": [
              {
                "description": "The amount the company pays on the employee's behalf.",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "deductionType": {
            "description": "The deduction type.",
            "enum": [
              "MEDICAL",
              "DENTAL",
              "VISION",
              "HSA",
              "FSA_MEDICAL",
              "FSA_DEPENDENT_CARE",
              "SIMPLE_IRA",
              "_401K",
              "ROTH_401K",
              "OTHER_TAXABLE",
              "OTHER_NON_TAXABLE",
              "COMMUTER_TRANSIT",
              "COMMUTER_PARKING",
              "_401K_LOAN_PAYMENT",
              "SHORT_DISABILITY",
              "LONG_DISABILITY",
              "LIFE",
              "SEP_IRA",
              "SARSEP",
              "CUSTOM_TAXABLE",
              "_403B",
              "ROTH_403B",
              "STUDENT_LOAN"
            ],
            "type": "string"
          },
          "employeeDeduction": {
            "anyOf": [
              {
                "description": "The amount the employee pays out of their pocket.",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "employerMatch401K": {
            "additionalProperties": false,
            "description": "This field earlier returned tiered match in case only one tiered match is set up for a company. This field is now deprecated.",
            "type": "object"
          },
          "id": {
            "description": "The company deduction unique identifier.",
            "type": "string"
          },
          "isEEPercent": {
            "description": "If the amount given in a employee deduction is a % than true. Otherwise false, if the amount if an absolute dollar amount value.",
            "type": "boolean"
          },
          "isERPercent": {
            "description": "If the amount given in a company contribution is a % than true. Otherwise false, if the amount if an absolute dollar amount value.",
            "type": "boolean"
          },
          "isMonthly": {
            "anyOf": [
              {
                "description": "Indicates that the admin has set up deduction amounts per month. It is true only when the admin explicitly selects 'Monthy' while setting up the Company Deduction Type (CDT). If it is false, then the defaults set up are used per pay period.",
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "matchingScheme401k": {
            "description": "The defined matching scheme. Safe harbor is used if you want to use tiered matching.",
            "enum": [
              "NON_ELECTIVE",
              "SAFE_HARBOR"
            ],
            "type": "string"
          },
          "name": {
            "description": "Name of the company deduction.",
            "type": "string"
          },
          "tiered_401k_matches": {
            "description": "This returns an array of tiered match object ids. We can use these ids with API https://api.rippling.com\n/platform/api/tiered_match_401k/{id} to query tiered matches for a company.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "title": "CompanyDeduction",
        "type": "object"
      },
      "PayrollApiRandDCredit20be48d3f8a4": {
        "description": "An R&D Credit object",
        "properties": {
          "company": {
            "description": "Rippling ID of the company",
            "type": "string"
          },
          "differentEin": {
            "description": "If the filing is done for a different EIN, this field will contain the value of that Ein\n\nThis is the company the credits came from (Can be any EIN)\n\nPlease note that the credits will be added to “ein” entity only.",
            "type": "string"
          },
          "ein": {
            "description": "Ein of the company the credits need to be applied to.\n\nNote: This needs to be sent even though the company has only one legal entity\n\nThis EIN does need to exist within Rippling and Rippling will throw an error message if the EIN doesn’t match an EIN present in Rippling.",
            "type": "string"
          },
          "endDate": {
            "description": "This is the last date the financial year of the year for which filing is done. Date format is MM/DD/YYYY\n\nTypically it’s 12/31/YYYY",
            "type": "string"
          },
          "returnFilingDate": {
            "description": "This is the date the company filed to the IRS. Date format is MM/DD/YYYY",
            "format": "date",
            "type": "string"
          },
          "returnType": {
            "description": "This field denotes the type of return. Available values:\n\n'Form 1040 - Sole Proprietorship'\n'Form 1065 - Partnership'\n'Form 1120 - Corporate Tax Return'\n'Form 1120S - S-Corp'\n'Form 1120-F - Foreign Corporation'\n",
            "enum": [
              "1040",
              "1065",
              "1120",
              "1120S",
              "1120F"
            ],
            "type": "string"
          },
          "totalCredits": {
            "description": "The value of the credits granted by IRS.",
            "type": "string"
          },
          "useDifferentEin": {
            "description": "If the filing is done for a different EIN, this field should be set to True.\n\nThis indicates that the company is applying to a different EIN than the original 6765 filing",
            "type": "boolean"
          }
        },
        "required": [
          "company",
          "ein",
          "endDate",
          "returnFilingDate",
          "returnType",
          "totalCredits"
        ],
        "title": "RandDCredit",
        "type": "object"
      },
      "PayrollApiTieredMatch401K2045384ffb48": {
        "description": "A 401K Tiered Match object. Defines the employer match scheme for 401K contributions.",
        "properties": {
          "ein": {
            "description": "If set, this tiered match will only apply to employees in this entity.",
            "type": "string"
          },
          "employees": {
            "description": "The group of specified employees that this tiered match applies to. This field should be used if isDefault is set to false to define the group of employees that the tiered match applies to.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "employerMatch401K": {
            "description": "An employer 401k match object.",
            "items": {
              "anyOf": [
                {
                  "properties": {
                    "eePercentComp": {
                      "description": "Employee percent",
                      "type": "string"
                    },
                    "erMatchPercent": {
                      "description": "Employer match percentage",
                      "type": "string"
                    },
                    "tierNum": {
                      "description": "Tier number",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "employerMatch401k",
            "type": "array"
          },
          "id": {
            "description": "Unique identifier of the 401K Tiered Match object.",
            "type": "string"
          },
          "isDefault": {
            "description": "If set to true, this tiered match will be applied to all employees by default unless its overridden. If set to false, it will only apply to the applicable employees.",
            "type": "boolean"
          },
          "matchingScheme401K": {
            "enum": [
              "SAFE_HARBOR_BASIC",
              "SAFE_HARBOR_ENHANCED",
              "CUSTOM"
            ],
            "type": "string"
          }
        },
        "required": [
          "matchingScheme401K"
        ],
        "title": "TieredMatch401K",
        "type": "object"
      }
    }
  },
  "info": {
    "title": "Rippling payroll-api",
    "version": "2026-10-28"
  },
  "openapi": "3.1.0",
  "paths": {
    "/platform/api/companies/annual_employee_payroll_info": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-annual-employee-payroll-info"
        },
        "operationId": "rippling.payroll_api.get_annual_employee_payroll_info",
        "parameters": [
          {
            "in": "query",
            "name": "year",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiAnnualPayrollInformationb4da9ac51051"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Annual Payroll Information",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/companies/payroll_activity": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-companies-payroll-activity"
        },
        "operationId": "rippling.payroll_api.get_companies_payroll_activity",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "date",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ein",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "exclude_unpaid",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "send_all_roles",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiPayrollActivity3cc68c223540"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Payroll Activity",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/companies/payroll_status": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-companies"
        },
        "operationId": "rippling.payroll_api.get_companies",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "\"Active\""
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Current Company Payroll Status",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/company_deductions": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-company-deductions"
        },
        "operationId": "rippling.payroll_api.get_company_deductions",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiCompanyDeductiona239d2f7fc92"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Company Deductions",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/company_deductions/{deductionId}": {
      "patch": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/patch-company-deductions-deduction-id"
        },
        "operationId": "rippling.payroll_api.patch_company_deductions_deductionid",
        "parameters": [
          {
            "in": "path",
            "name": "deductionId",
            "required": true,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApiCompanyDeductiona239d2f7fc92"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "items": {
                        "$ref": "#/components/schemas/OutputPayrollApiCompanyDeductiona239d2f7fc92"
                      },
                      "type": "array"
                    },
                    {
                      "$ref": "#/components/schemas/OutputPayrollApiCompanyDeductiona239d2f7fc92"
                    }
                  ]
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "PATCH Company Deduction",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/credits/rnd": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-credits-rnd"
        },
        "operationId": "rippling.payroll_api.get_credits_rnd",
        "parameters": [
          {
            "in": "query",
            "name": "company",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ein",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "credits": {
                      "items": {
                        "$ref": "#/components/schemas/OutputPayrollApiRandDCredit8b9e086ccd9b"
                      },
                      "type": "array"
                    },
                    "errorMessage": {
                      "description": "Error message if the credits were not added",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "Retrieve R&D credits",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "post": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/post-credits-rnd"
        },
        "operationId": "rippling.payroll_api.post_credits_rnd",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApiRandDCredit20be48d3f8a4"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "creditsAdded": {
                      "description": "True Or False, It denotes if the credits were accepted and the balanced has been increased\n\nThis parameter accepts a decimal value in dollars (with a precision of 2 points.)\n\nFor eg : If the credits is 11 dollar 20 cents, We expect 11.20 as the value.",
                      "type": "boolean"
                    },
                    "errorCode": {
                      "description": "Denotes a specific error code",
                      "type": "string"
                    },
                    "errorMessage": {
                      "description": "errorMessage why the credits are not added",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "Create R&D Credit Filing",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/earning_types": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-earning-types"
        },
        "operationId": "rippling.payroll_api.get_earning_types",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiEarningTypec8e2e586ab6a"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Earning Types",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/earnings/earnings_for_role": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-earnings-for-role"
        },
        "operationId": "rippling.payroll_api.get_earnings_for_role",
        "parameters": [
          {
            "in": "query",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response Object",
                  "properties": {
                    "data": {
                      "description": "Array of data",
                      "items": {
                        "description": "object with Earning information",
                        "properties": {
                          "earning_type": {
                            "description": "Earning Type Enum, Eg. SALARY, REIMBURSEMENT, REGULAR_HOURS, etc.",
                            "type": "string"
                          },
                          "ytd_amount": {
                            "description": "YTD amount for given earning type",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array",
                      "uniqueItems": false
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Earnings For Role",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/employee_deductions": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-employee-deductions"
        },
        "operationId": "rippling.payroll_api.get_employee_deductions",
        "parameters": [
          {
            "in": "query",
            "name": "companyDeductionType",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiEmployeeDeductionTypecdb7d1c4f375"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Employee Deductions",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/employees/{employeeId}/deductions_401k": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-employees-employee-id-deductions-401-k"
        },
        "operationId": "rippling.payroll_api.get_employees_employeeid_deductions_401k",
        "parameters": [
          {
            "in": "path",
            "name": "employeeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApi401kDeduction95eca768e745"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Employee 401k Deduction",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "post": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/post-employees-employee-id-deductions-401-k"
        },
        "operationId": "rippling.payroll_api.post_employees_employeeid_deductions_401k",
        "parameters": [
          {
            "in": "path",
            "name": "employeeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApi401kDeduction95eca768e745"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "POST Employee 401k Deduction",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "put": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/put-employees-employee-id-deductions-401-k"
        },
        "operationId": "rippling.payroll_api.put_employees_employeeid_deductions_401k",
        "parameters": [
          {
            "in": "path",
            "name": "employeeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApi401kDeduction95eca768e745"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "PUT Employee 401k Deduction",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/pay_schedules": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-pay-schedules"
        },
        "operationId": "rippling.payroll_api.get_pay_schedules",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiPayScheduledc037f4c7d78"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Company Pay Schedules",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/pay_schedules/{payScheduleId}/upcoming_payperiods": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-pay-schedules-pay-schedule-id-upcoming-payperiods"
        },
        "operationId": "rippling.payroll_api.get_pay_schedules_payscheduleid_upcoming_payperiods",
        "parameters": [
          {
            "in": "path",
            "name": "payScheduleId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "startDate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "endDate",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiPayPeriodSchedule0470e080dc87"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Upcoming pay periods",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-payroll-runs"
        },
        "operationId": "rippling.payroll_api.get_payroll_runs",
        "parameters": [
          {
            "in": "query",
            "name": "ein",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiPayrollRunb169b218247b"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Company Payroll Runs",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs/all": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-company-payroll-runs-for-date-range"
        },
        "operationId": "rippling.payroll_api.get_company_payroll_runs_for_date_range",
        "parameters": [
          {
            "in": "query",
            "name": "from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requested_fields",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiPayrollRunb169b218247b"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Company Payroll Runs For Date Range",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs/subject_wages_for_run": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-subject-wages-for-run"
        },
        "operationId": "rippling.payroll_api.get_subject_wages_for_run",
        "parameters": [
          {
            "in": "query",
            "name": "run_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response object",
                  "properties": {
                    "data": {
                      "description": "Data array",
                      "items": {
                        "description": "Object containing information at role level",
                        "properties": {
                          "role": {
                            "description": "Role for which data is collected",
                            "type": "string"
                          },
                          "subject_wages": {
                            "description": "Subject wage information for given role",
                            "items": {
                              "description": "object containing subject wage information",
                              "properties": {
                                "description": {
                                  "description": "Subject Wage description",
                                  "type": "string"
                                },
                                "subject_wage_amount": {
                                  "description": "Subject Wage amount for given Payroll Run",
                                  "type": "string"
                                },
                                "tax_id": {
                                  "description": "Tax ID for which subject wage is calculated",
                                  "type": "string"
                                }
                              },
                              "type": "object"
                            },
                            "type": "array",
                            "uniqueItems": false
                          }
                        },
                        "type": "object"
                      },
                      "type": "array",
                      "uniqueItems": false
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Subject Wage For Run",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs/{payrollRunId}/employees": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-payroll-runs-payroll-run-id-employees"
        },
        "operationId": "rippling.payroll_api.get_payroll_runs_payrollrunid_employees",
        "parameters": [
          {
            "in": "path",
            "name": "payrollRunId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "ein",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "role",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollRun13bc15bd1c70"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Employees in a Payroll Run",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs/{payrollRunId}/employees/{employeeId}/payroll_role": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-employee-in-a-payroll-run"
        },
        "operationId": "rippling.payroll_api.get_employee_in_a_payroll_run",
        "parameters": [
          {
            "in": "path",
            "name": "payrollRunId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "employeeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "deductions": {
                    "items": {
                      "properties": {
                        "companyContribution": {
                          "type": "string"
                        },
                        "companyContributionAmt": {
                          "type": "string"
                        },
                        "deductionTypeEnum": {
                          "type": "string"
                        },
                        "employeeDeduction": {
                          "type": "string"
                        },
                        "employeeDeductionAmt": {
                          "type": "string"
                        },
                        "employeeDeductionType": {
                          "type": "string"
                        },
                        "isEEPercent": {
                          "type": "boolean"
                        },
                        "isERPercent": {
                          "type": "boolean"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "earnings": {
                    "items": {
                      "properties": {
                        "amount": {
                          "type": "string"
                        },
                        "companyEarningType": {
                          "type": "string"
                        },
                        "earningTypeEnum": {
                          "type": "string"
                        },
                        "hours": {
                          "type": [
                            "null",
                            "string"
                          ]
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "ein": {
                    "type": "string"
                  },
                  "garnishments": {
                    "items": {
                      "properties": {},
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "grossPay": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "netPay": {
                    "type": "string"
                  },
                  "role": {
                    "type": "string"
                  },
                  "run": {
                    "type": "string"
                  },
                  "taxes": {
                    "items": {
                      "properties": {
                        "amount": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "totalPayForPercentageDeductions": {
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "x-rippling-source-response": {
              "content": {
                "application/json": {
                  "examples": {
                    "Example 1": {
                      "value": [
                        "Invalid payroll_run_id"
                      ]
                    },
                    "Example 2": {
                      "value": [
                        "The given role is not part of the payroll run"
                      ]
                    }
                  },
                  "schema": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array",
                    "x-examples": {
                      "Example 1": [
                        "Invalid payroll_run_id"
                      ]
                    }
                  }
                }
              },
              "description": "Bad Request"
            }
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          }
        ],
        "summary": "GET Employee in a Payroll Run",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/payroll_runs/{payrollRunId}/employees/{employeePayrollRunId}/earnings": {
      "post": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/post-payroll-runs-payroll-run-id-employees-employee-payroll-run-id-earnings"
        },
        "operationId": "rippling.payroll_api.post_payroll_runs_payrollrunid_employees_employeepayrollrunid_earnings",
        "parameters": [
          {
            "in": "path",
            "name": "payrollRunId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "employeePayrollRunId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "includeInactive",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "description": "A pay earning object for an employee.",
                    "properties": {
                      "amount": {
                        "type": "string"
                      },
                      "companyEarningType": {
                        "description": "Identifier of the earning type defined by the company. There can only be one entry in the earnings array for each companyEarningType.",
                        "type": "string"
                      },
                      "earningTypeEnum": {
                        "type": "string"
                      },
                      "hours": {
                        "anyOf": [
                          {
                            "description": "Only applies to earning types that are paid hourly.",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "shiftId": {
                        "anyOf": [
                          {
                            "description": "Used to distinguish between earnings with same time labels",
                            "type": "string"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "time_labels": {
                        "anyOf": [
                          {
                            "description": "List of Jobcodes for the Earning hours",
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "title": "Earning",
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiEmployeePayrollRun13bc15bd1c70"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "POST Payroll Earnings",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/tax_info/tax_info_for_role": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-tax-info-for-role"
        },
        "operationId": "rippling.payroll_api.get_tax_info_for_role",
        "parameters": [
          {
            "in": "query",
            "name": "role_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "is_contractor",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "year",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response object",
                  "properties": {
                    "data": {
                      "description": "Data array",
                      "items": {
                        "description": "Tax info object",
                        "properties": {
                          "description": {
                            "description": "Tax description",
                            "type": "string"
                          },
                          "gross_wage_amount_ytd": {
                            "description": "YTD gross wages for given Tax ID",
                            "type": "string"
                          },
                          "subject_wage_amount_ytd": {
                            "description": "YTD subject wages for given Tax ID",
                            "type": "string"
                          },
                          "tax_amount_ytd": {
                            "description": "YTD tax amount for given Tax ID",
                            "type": "string"
                          },
                          "tax_id": {
                            "description": "Tax ID for which information is shown",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array",
                      "uniqueItems": true
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Tax Info For Role",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/tiered_match_401k": {
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-tiered-match-401-k"
        },
        "operationId": "rippling.payroll_api.get_tiered_match_401k",
        "parameters": [
          {
            "in": "query",
            "name": "ein",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OutputPayrollApiTieredMatch401K2045384ffb48"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Tiered Matches 401K",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "post": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/post-tiered-match-401-k"
        },
        "operationId": "rippling.payroll_api.post_tiered_match_401k",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApiTieredMatch401K2045384ffb48"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiTieredMatch401K2045384ffb48"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "POST Tiered Match 401K",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    },
    "/platform/api/tiered_match_401k/{id}": {
      "delete": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/delete-tiered-match-401-k-id"
        },
        "operationId": "rippling.payroll_api.delete_tiered_match_401k_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "DELETE Tiered Match 401k",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "get": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/get-tiered-match-401-k-id"
        },
        "operationId": "rippling.payroll_api.get_tiered_match_401k_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiTieredMatch401K2045384ffb48"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "GET Tiered Match 401K",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "patch": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/patch-tiered-match-401-k-id"
        },
        "operationId": "rippling.payroll_api.patch_tiered_match_401k_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApiTieredMatch401K2045384ffb48"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiTieredMatch401K2045384ffb48"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "PATCH Tiered Match 401K",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      },
      "put": {
        "externalDocs": {
          "url": "https://developer.rippling.com/documentation/payroll-api/reference/put-tiered-match-401-k-id"
        },
        "operationId": "rippling.payroll_api.put_tiered_match_401k_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayrollApiTieredMatch401K2045384ffb48"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OutputPayrollApiTieredMatch401K2045384ffb48"
                }
              }
            },
            "description": "OK"
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.rippling.com"
          },
          {
            "description": "sandbox",
            "url": "https://api.ripplingpreview.com"
          }
        ],
        "summary": "PUT Tiered Match 401K",
        "x-rippling-entitlements": [],
        "x-rippling-required-scopes": []
      }
    }
  }
}
