import { APIResource } from "../core/resource.js"; import * as Shared from "./shared.js"; import { APIPromise } from "../core/api-promise.js"; import { RequestOptions } from "../internal/request-options.js"; /** * Hiring intent submitted for admin review in Rippling */ export declare class Hires extends APIResource { /** * Create or resume hire records for admin review. When Auto-Hire is enabled, * eligible US hires may be submitted automatically and return * auto_hire_processing. EOR stays on admin review. Starting with * Rippling-Api-Version: 2025-08-01, US own-entity contractors are supported when * employment_type_id resolves to a contractor employment type. See GET * /hire-requirements/ for the required and ignored fields. Idempotency-Key is * required. Direct hire and EOR are supported in AU, BR, CA, CH, CN, CO, DE, ES, * FR, GB, HK, IE, IN, MX, NL, NZ, PH, TW, US, and UY. Use POST /draft-hires/ for * the legacy draft-hire write path. * * @example HTTP * Representative request and response shapes. * ``` * POST /hires/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * Idempotency-Key: Idempotency-Key * * { * "hires": [ * { * "compensation": { * "base_pay_amount": {}, * "base_pay_period": "YEAR" * }, * "employment": { * "employment_type_id": "employment_type_id", * "start_date": "start_date", * "title": "title" * }, * "personal": { * "first_name": "first_name", * "last_name": "last_name" * }, * "work_location": { * "country_code": "country_code" * } * } * ] * } * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "results": [ * { * "client_request_id": "string", * "id": "string", * "existing_role_id": "string", * "status": "string", * "missing_required_fields": [ * "string" * ], * "pending_fields": [ * "string" * ], * "errors": [ * {} * ], * "next_actions": [ * {} * ] * } * ] * } * ``` */ create(params: HireCreateParams, options?: RequestOptions): APIPromise; } export interface HireCreateResponse { /** * One result per request hire, in request order. HTTP 200 means the envelope was * accepted; each item's status is the outcome. */ results: Array; } export declare namespace HireCreateResponse { interface Result { /** * ready_for_review, auto_hire_processing, incomplete, or failed. * auto_hire_processing includes hires awaiting approval or asynchronous * completion. */ status: string; /** * Rippling hire role id when a role exists. */ id?: string; /** * Echo of the caller-supplied item id. */ client_request_id?: string; /** * Structured item errors using the same public field paths as GET * /hire-requirements/. */ errors?: Array; /** * Matching existing role id for duplicate or rehire conflicts. */ existing_role_id?: string; /** * Public field paths still required before review. */ missing_required_fields?: Array; /** * Actions for duplicate, rehire, or Auto-Hire failures and blockers. */ next_actions?: Array; /** * Accepted public field paths not yet active because progression is blocked. */ pending_fields?: Array; } namespace Result { interface Error { /** * Machine-readable error code. */ code: string; /** * Human-readable error message. */ message: string; /** * Public field path when the error is field-scoped. */ field?: string; } interface NextAction { /** * Machine-readable next action. Supported values: * * - `continue_existing_hire`: Continue the matching in-progress hire. * - `provide_rehire_choice`: Choose how to rehire the matching former worker. * * When Auto-Hire is enabled and blocked or fails to start: * * - `assign_device_in_rippling`: Assign a device in Rippling. * - `provide_document_values`: Complete missing document details. * - `review_devices_in_rippling`: Review devices in Rippling. * - `review_documents_in_rippling`: Review documents in Rippling. * - `review_work_email_in_rippling`: Review work email in Rippling. * - `review_work_pattern_in_rippling`: Review the work pattern in Rippling. * - `review_retirement_in_rippling`: Review retirement enrollment in Rippling. * - `configure_offer_notification`: Configure the offer notification. * - `provide_missing_hire_input`: Complete missing hire details. * - `review_hire_in_rippling`: Review the hire in Rippling. * - `resolve_hire_issue_in_rippling`: Resolve the hire issue in Rippling. */ code: string; /** * Role id the caller should continue, when applicable. */ target_id?: string; } } } export interface HireCreateParams { /** * Body param: One to five hire submissions. Results are returned in the same * order. */ hires: Array; /** * Header param: Caller-generated key used to deduplicate retried create requests. */ 'Idempotency-Key': string; } export declare namespace HireCreateParams { /** * One hire on POST /hires/. Country-specific employment fields come from GET * /hire-requirements/. */ interface Hire { /** * Base pay and any additional compensation offered for this job. Monetary values * contain an ISO 4217 currency code and decimal amount. */ compensation: Hire.Compensation; /** * The job: title, hours, and country-specific details. */ employment: Hire.Employment; /** * The person's legal name and the email address or mobile number used to send * their invitation. */ personal: Hire.Personal; /** * Where the person will work. Provide either a Rippling work-location ID or mark * the hire as remote, and always provide the work country. */ work_location: Hire.WorkLocation; /** * Optional id echoed on that hire's result. Not a hire field. */ client_request_id?: string; /** * Values for company-configured custom fields collected during hiring. Use each * field's configured ID and value shape; omit this array when no custom hiring * fields are being supplied. */ custom_fields?: Array; /** * Employment model for this hire: direct_hire employs the person through the * company's own legal entity; eor employs the person through Rippling's * employer-of-record service. Defaults to direct_hire when omitted. */ hire_type?: string; /** * References that associate this hire with recruiting, headcount planning, a prior * employment record, or an existing Rippling hiring process. These references * control hiring behavior; they are not arbitrary metadata. Omit the object when * no association applies. */ related_records?: Hire.RelatedRecords; } namespace Hire { /** * Base pay and any additional compensation offered for this job. Monetary values * contain an ISO 4217 currency code and decimal amount. */ interface Compensation { /** * Gross base-pay rate for one base_pay_period, before bonuses, commission, equity, * or allowances. Provide currency_type as a three-letter ISO 4217 code and value * as a nonnegative decimal amount. Use zero when the hire has no base pay, * including supported zero-pay contractor arrangements. Brazil EOR requires BRL, * Colombia EOR requires COP, and Philippines EOR requires PHP. Direct hires using * Rippling Standard Global Payroll also require their country's currency: BRL for * Brazil, COP for Colombia, or PHP for Philippines. For every Philippines hire, * supplying any capped monthly allowance also requires base pay in PHP. Direct * hires outside Rippling Standard Global Payroll may use another base-pay currency * when those allowances are omitted. Before POST /hires/, call GET * /hire-requirements/ with country_code, hire_type, and legal_entity_id from GET * /company-legal-entities/ for direct hire to resolve the accepted currency. * Entity-specific direct-hire currency rules remain unresolved without * legal_entity_id. A wrong currency fails the hire item with invalid_request * before creation. */ base_pay_amount: Compensation.BasePayAmount; /** * Unit of time represented by base_pay_amount: YEAR, MONTH, WEEK, DAY, or HOUR. * For example, an annual salary uses YEAR and an hourly rate uses HOUR. Brazil EOR * and Colombia EOR do not accept HOUR. Colombia EOR accepts YEAR, MONTH, WEEK, or * DAY. Philippines EOR requires YEAR for salaried employment types and HOUR for * hourly employment types. Starting with API version 2025-08-01, contractor * PAY_AS_YOU_GO compensation requires HOUR, MILESTONE requires YEAR, and FIXED * accepts any listed unit. */ base_pay_period: 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR'; /** * Uruguay EOR annual car allowance. Optional for Uruguay EOR. This is not * compensation.car_allowance, which is the Mexico direct-hire allowance. Omit this * for Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ annual_car_allowance?: Compensation.AnnualCarAllowance; /** * Mexico direct hire car allowance. This is not compensation.annual_car_allowance, * which is the Uruguay EOR annual amount. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. currency_type, such * as MXN, must match compensation.base_pay_amount.currency_type. */ car_allowance?: Compensation.CarAllowance; /** * Mexico Christmas bonus in days, from 15 to 30. Required for Mexico EOR. For * direct hire, provide only when listed by GET /hire-requirements/ for the * selected country and hire type. */ christmas_bonus_days?: number; /** * Optional monthly Christmas or anniversary gift allowance for Philippines direct * hire and EOR. Omit for other countries. Send PHP from zero to 500 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ christmas_or_anniversary_gift?: Compensation.ChristmasOrAnniversaryGift; /** * Variable sales compensation expected when the person meets target. * on_target_amount is required; provide payment_frequency where required by GET * /hire-requirements/. Starting with API version 2025-08-01, this field does not * apply to contractor hires and is reported in ignored_fields. */ commission?: Compensation.Commission; /** * Equity grant offered with the job. amount is the grant's monetary value; * num_shares and frequency provide additional grant terms when known. Starting * with API version 2025-08-01, this field does not apply to contractor hires and * is reported in ignored_fields. */ equity?: Compensation.Equity; /** * Mexico direct hire grocery coupon. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. currency_type, such * as MXN, must match compensation.base_pay_amount.currency_type. */ grocery_coupon?: Compensation.GroceryCoupon; /** * Uruguay EOR annual healthcare allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ healthcare_allowance?: Compensation.HealthcareAllowance; /** * Uruguay EOR annual housing allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ housing_allowance?: Compensation.HousingAllowance; /** * Whether the worker's employment agreement includes the standard incentive-plan * provision for Colombia or Philippines direct hire or EOR. True includes the * provision; false omits it. This choice does not specify a bonus amount, target * bonus, or commission. Omit when no choice is needed. Availability depends on the * company's compensation configuration. Before POST /hires/, call GET * /hire-requirements/ with country_code, hire_type, employment_type_id from GET * /employment-types/, contract_type (INDEFINITE or FIXED), and legal_entity_id * from GET /company-legal-entities/ for direct hire; omit legal_entity_id for EOR. * Read this field's available value. If available is absent, availability is * unresolved. An unavailable choice, including false, fails the hire item with * invalid_request before creation. Rejected for other countries. */ incentive_plan?: boolean; /** * Uruguay EOR annual internet allowance. Required for Uruguay EOR. When * currency_type is UYU, value must be at least 9600 per year. currency_type must * match compensation.base_pay_amount.currency_type. */ internet_allowance?: Compensation.InternetAllowance; /** * Optional monthly laundry allowance for Philippines direct hire and EOR. Omit for * other countries. Send PHP from zero to 400 per month. currency_type must be PHP * and match compensation.base_pay_amount.currency_type for every Philippines hire. * Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ laundry_allowance?: Compensation.LaundryAllowance; /** * Uruguay EOR annual meal allowance. Required for Uruguay EOR. When currency_type * is UYU, value must be at least 48000 per year. currency_type must match * compensation.base_pay_amount.currency_type. */ meal_allowance?: Compensation.MealAllowance; /** * Optional monthly medical assistance allowance for Philippines direct hire and * EOR. Omit for other countries. Send PHP from zero to 1000 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ medical_assistance_allowance?: Compensation.MedicalAssistanceAllowance; /** * Optional monthly medical cash allowance for Philippines direct hire and EOR. * Omit for other countries. Send PHP from zero to 333.33 per month. currency_type * must be PHP and match compensation.base_pay_amount.currency_type for every * Philippines hire. Direct hires with non-PHP base pay must omit this allowance. * No currency conversion is performed. Amounts round to the PHP cent using * ROUND_HALF_UP. Omission leaves the allowance unset; zero means no allowance and * is stored as unset. The cap is checked after rounding. Negative or nonfinite * amounts are rejected during request validation; an excessive amount or currency * mismatch fails the hire item with invalid_request before creation. */ medical_cash_allowance?: Compensation.MedicalCashAllowance; /** * Optional monthly internet allowance for Philippines direct hire and EOR. Omit * for other countries. Send PHP from zero to 850 per month. currency_type must be * PHP and match compensation.base_pay_amount.currency_type for every Philippines * hire. Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ monthly_internet_allowance?: Compensation.MonthlyInternetAllowance; /** * Uruguay EOR annual pension allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ pension_allowance?: Compensation.PensionAllowance; /** * Uruguay EOR annual phone allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ phone_allowance?: Compensation.PhoneAllowance; /** * Optional monthly productivity incentive allowance for Philippines direct hire * and EOR. Omit for other countries. Send PHP from zero to 1000 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ productivity_incentive_allowance?: Compensation.ProductivityIncentiveAllowance; /** * One-time relocation reimbursement or benefit offered for this hire. amount is * required when the object is provided. Starting with API version 2025-08-01, this * field does not apply to contractor hires and is reported in ignored_fields. * Mexico direct hire rejects this field; use relocation_expense instead. Mexico * EOR accepts it only when the company's EOR compensation types include * RELOCATION_BONUS and the relocation feature is enabled for that company and * Mexico. No Platform API read exposes this company-specific eligibility; check * the company's Mexico EOR compensation settings in Rippling before sending. If * unavailable, the hire item fails with invalid_request before creation. Colombia * and Philippines direct hire and EOR also require relocation to be offered by the * country's compensation configuration and enabled for the company. Before POST * /hires/, call GET /hire-requirements/ with country_code, hire_type, * employment_type_id from GET /employment-types/, contract_type (INDEFINITE or * FIXED), and legal_entity_id from GET /company-legal-entities/ for direct hire; * omit legal_entity_id for EOR. Read this field's available value. If available is * absent, availability is unresolved. If unavailable, the hire item fails with * invalid_request before creation. Its currency must match base pay for those * countries. */ relocation?: Compensation.Relocation; /** * Mexico direct hire relocation expense. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. This is not * compensation.relocation. currency_type, such as MXN, must match * compensation.base_pay_amount.currency_type. */ relocation_expense?: Compensation.RelocationExpense; /** * Recurring allowance paid for remote-work expenses. Provide only when listed by * GET /hire-requirements/ for the selected country and hire type; use a zero * amount when the catalog requires the field but no allowance is offered. * Switzerland maps this to the Swiss remote-working allowance. Mexico maps this to * the Mexico remote work allowance: direct hire sends it when selected. Mexico EOR * sets it automatically and rejects a caller-supplied value. */ remote_working_allowance?: Compensation.RemoteWorkingAllowance; /** * Optional monthly rice allowance for Philippines direct hire and EOR. Omit for * other countries. Send PHP from zero to 2500 per month. currency_type must be PHP * and match compensation.base_pay_amount.currency_type for every Philippines hire. * Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ rice_allowance?: Compensation.RiceAllowance; /** * Mexico direct hire savings fund percent as a numeric string without the percent * sign, such as 10. Allowed range is 0 to 100. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. */ savings_fund_percent?: string; /** * One-time payment offered for accepting or starting the job. When provided, * amount and schedule are required; payment_days is optional. Starting with API * version 2025-08-01, this field does not apply to contractor hires and is * reported in ignored_fields. */ signing_bonus?: Compensation.SigningBonus; /** * Uruguay EOR annual special allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ special_allowance?: Compensation.SpecialAllowance; /** * Bonus earned for meeting the role's target performance. Express the target as * exactly one of a monetary amount or a percentage of base pay; provide * payment_frequency where required by GET /hire-requirements/. Starting with API * version 2025-08-01, this field does not apply to contractor hires and is * reported in ignored_fields. */ target_bonus?: Compensation.TargetBonus; /** * Mexico direct hire telecommunications and electricity allowance. Required for * every Mexico direct hire. currency_type, such as MXN, must match * compensation.base_pay_amount.currency_type. */ telecom_allowance?: Compensation.TelecomAllowance; /** * Contractually required thirteenth-month salary payment. Provide only when listed * by GET /hire-requirements/ for the selected country and hire type. Brazil EOR * calculates this automatically as one-twelfth of annual base pay in BRL, rounded * down to the cent. To annualize base_pay_amount.value, multiply by 260 for DAY, * 52 for WEEK, 12 for MONTH, or 1 for YEAR, using base_pay_period. Brazil EOR * rejects a caller-supplied value. */ thirteenth_month_bonus?: Compensation.ThirteenthMonthBonus; /** * Optional monthly uniform and clothing allowance for Philippines direct hire and * EOR. Omit for other countries. Send PHP from zero to 666.67 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ uniform_and_clothing_allowance?: Compensation.UniformAndClothingAllowance; /** * Uruguay EOR annual vacation allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ vacation_allowance?: Compensation.VacationAllowance; /** * Mexico vacation premium percent as a numeric string without the percent sign, * such as 25. Required for Mexico EOR and must be 25. For direct hire, provide * only when listed by GET /hire-requirements/ for the selected country and hire * type; allowed range is 25 to 100. Omitting it does not apply a default. */ vacation_premium_percent?: string; /** * Uruguay EOR annual work-from-home allowance. Optional for Uruguay EOR. Omit this * for Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ work_from_home_allowance?: Compensation.WorkFromHomeAllowance; } namespace Compensation { /** * Gross base-pay rate for one base_pay_period, before bonuses, commission, equity, * or allowances. Provide currency_type as a three-letter ISO 4217 code and value * as a nonnegative decimal amount. Use zero when the hire has no base pay, * including supported zero-pay contractor arrangements. Brazil EOR requires BRL, * Colombia EOR requires COP, and Philippines EOR requires PHP. Direct hires using * Rippling Standard Global Payroll also require their country's currency: BRL for * Brazil, COP for Colombia, or PHP for Philippines. For every Philippines hire, * supplying any capped monthly allowance also requires base pay in PHP. Direct * hires outside Rippling Standard Global Payroll may use another base-pay currency * when those allowances are omitted. Before POST /hires/, call GET * /hire-requirements/ with country_code, hire_type, and legal_entity_id from GET * /company-legal-entities/ for direct hire to resolve the accepted currency. * Entity-specific direct-hire currency rules remain unresolved without * legal_entity_id. A wrong currency fails the hire item with invalid_request * before creation. */ interface BasePayAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual car allowance. Optional for Uruguay EOR. This is not * compensation.car_allowance, which is the Mexico direct-hire allowance. Omit this * for Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface AnnualCarAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Mexico direct hire car allowance. This is not compensation.annual_car_allowance, * which is the Uruguay EOR annual amount. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. currency_type, such * as MXN, must match compensation.base_pay_amount.currency_type. */ interface CarAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly Christmas or anniversary gift allowance for Philippines direct * hire and EOR. Omit for other countries. Send PHP from zero to 500 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ interface ChristmasOrAnniversaryGift { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Variable sales compensation expected when the person meets target. * on_target_amount is required; provide payment_frequency where required by GET * /hire-requirements/. Starting with API version 2025-08-01, this field does not * apply to contractor hires and is reported in ignored_fields. */ interface Commission { /** * Expected total commission for a full year when the person meets target, using * currency_type as a three-letter ISO 4217 code and value as the decimal amount. */ on_target_amount: Commission.OnTargetAmount; /** * How often commission is paid: MONTH, QUARTER, or YEAR. Required when indicated * by GET /hire-requirements/ for the selected country and hire type. */ payment_frequency?: 'MONTH' | 'QUARTER' | 'YEAR'; } namespace Commission { /** * Expected total commission for a full year when the person meets target, using * currency_type as a three-letter ISO 4217 code and value as the decimal amount. */ interface OnTargetAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Equity grant offered with the job. amount is the grant's monetary value; * num_shares and frequency provide additional grant terms when known. Starting * with API version 2025-08-01, this field does not apply to contractor hires and * is reported in ignored_fields. */ interface Equity { /** * Monetary value assigned to the equity grant, using currency_type as a * three-letter ISO 4217 code and value as the decimal amount. */ amount: Equity.Amount; /** * Grant frequency when applicable: ONE_TIME or ANNUAL. */ frequency?: 'ONE_TIME' | 'ANNUAL'; /** * Number of shares or units included in the grant, when the grant is expressed in * shares. */ num_shares?: number; } namespace Equity { /** * Monetary value assigned to the equity grant, using currency_type as a * three-letter ISO 4217 code and value as the decimal amount. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Mexico direct hire grocery coupon. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. currency_type, such * as MXN, must match compensation.base_pay_amount.currency_type. */ interface GroceryCoupon { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual healthcare allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface HealthcareAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual housing allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface HousingAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual internet allowance. Required for Uruguay EOR. When * currency_type is UYU, value must be at least 9600 per year. currency_type must * match compensation.base_pay_amount.currency_type. */ interface InternetAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly laundry allowance for Philippines direct hire and EOR. Omit for * other countries. Send PHP from zero to 400 per month. currency_type must be PHP * and match compensation.base_pay_amount.currency_type for every Philippines hire. * Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ interface LaundryAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual meal allowance. Required for Uruguay EOR. When currency_type * is UYU, value must be at least 48000 per year. currency_type must match * compensation.base_pay_amount.currency_type. */ interface MealAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly medical assistance allowance for Philippines direct hire and * EOR. Omit for other countries. Send PHP from zero to 1000 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ interface MedicalAssistanceAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly medical cash allowance for Philippines direct hire and EOR. * Omit for other countries. Send PHP from zero to 333.33 per month. currency_type * must be PHP and match compensation.base_pay_amount.currency_type for every * Philippines hire. Direct hires with non-PHP base pay must omit this allowance. * No currency conversion is performed. Amounts round to the PHP cent using * ROUND_HALF_UP. Omission leaves the allowance unset; zero means no allowance and * is stored as unset. The cap is checked after rounding. Negative or nonfinite * amounts are rejected during request validation; an excessive amount or currency * mismatch fails the hire item with invalid_request before creation. */ interface MedicalCashAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly internet allowance for Philippines direct hire and EOR. Omit * for other countries. Send PHP from zero to 850 per month. currency_type must be * PHP and match compensation.base_pay_amount.currency_type for every Philippines * hire. Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ interface MonthlyInternetAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual pension allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface PensionAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual phone allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface PhoneAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly productivity incentive allowance for Philippines direct hire * and EOR. Omit for other countries. Send PHP from zero to 1000 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ interface ProductivityIncentiveAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * One-time relocation reimbursement or benefit offered for this hire. amount is * required when the object is provided. Starting with API version 2025-08-01, this * field does not apply to contractor hires and is reported in ignored_fields. * Mexico direct hire rejects this field; use relocation_expense instead. Mexico * EOR accepts it only when the company's EOR compensation types include * RELOCATION_BONUS and the relocation feature is enabled for that company and * Mexico. No Platform API read exposes this company-specific eligibility; check * the company's Mexico EOR compensation settings in Rippling before sending. If * unavailable, the hire item fails with invalid_request before creation. Colombia * and Philippines direct hire and EOR also require relocation to be offered by the * country's compensation configuration and enabled for the company. Before POST * /hires/, call GET /hire-requirements/ with country_code, hire_type, * employment_type_id from GET /employment-types/, contract_type (INDEFINITE or * FIXED), and legal_entity_id from GET /company-legal-entities/ for direct hire; * omit legal_entity_id for EOR. Read this field's available value. If available is * absent, availability is unresolved. If unavailable, the hire item fails with * invalid_request before creation. Its currency must match base pay for those * countries. */ interface Relocation { /** * Total relocation reimbursement or benefit, using currency_type as a three-letter * ISO 4217 code and value as the decimal amount. */ amount: Relocation.Amount; } namespace Relocation { /** * Total relocation reimbursement or benefit, using currency_type as a three-letter * ISO 4217 code and value as the decimal amount. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Mexico direct hire relocation expense. Provide only when listed by GET * /hire-requirements/ for the selected country and hire type. This is not * compensation.relocation. currency_type, such as MXN, must match * compensation.base_pay_amount.currency_type. */ interface RelocationExpense { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Recurring allowance paid for remote-work expenses. Provide only when listed by * GET /hire-requirements/ for the selected country and hire type; use a zero * amount when the catalog requires the field but no allowance is offered. * Switzerland maps this to the Swiss remote-working allowance. Mexico maps this to * the Mexico remote work allowance: direct hire sends it when selected. Mexico EOR * sets it automatically and rejects a caller-supplied value. */ interface RemoteWorkingAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly rice allowance for Philippines direct hire and EOR. Omit for * other countries. Send PHP from zero to 2500 per month. currency_type must be PHP * and match compensation.base_pay_amount.currency_type for every Philippines hire. * Direct hires with non-PHP base pay must omit this allowance. No currency * conversion is performed. Amounts round to the PHP cent using ROUND_HALF_UP. * Omission leaves the allowance unset; zero means no allowance and is stored as * unset. The cap is checked after rounding. Negative or nonfinite amounts are * rejected during request validation; an excessive amount or currency mismatch * fails the hire item with invalid_request before creation. */ interface RiceAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * One-time payment offered for accepting or starting the job. When provided, * amount and schedule are required; payment_days is optional. Starting with API * version 2025-08-01, this field does not apply to contractor hires and is * reported in ignored_fields. */ interface SigningBonus { /** * Total one-time signing bonus, using currency_type as a three-letter ISO 4217 * code and value as the decimal amount. */ amount: SigningBonus.Amount; /** * Payment event or schedule for the signing bonus, for example FIRST_PAYROLL. Use * an allowed value returned by GET /hire-requirements/. */ schedule: string; /** * Number of days after the applicable start or schedule event when the bonus is * paid, if used. */ payment_days?: number; } namespace SigningBonus { /** * Total one-time signing bonus, using currency_type as a three-letter ISO 4217 * code and value as the decimal amount. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Uruguay EOR annual special allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface SpecialAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Bonus earned for meeting the role's target performance. Express the target as * exactly one of a monetary amount or a percentage of base pay; provide * payment_frequency where required by GET /hire-requirements/. Starting with API * version 2025-08-01, this field does not apply to contractor hires and is * reported in ignored_fields. */ interface TargetBonus { /** * Target bonus amount using currency_type as a three-letter ISO 4217 code and * value as the decimal amount. Provide exactly one of amount or percent. */ amount?: TargetBonus.Amount; /** * How often the target bonus is paid: MONTH, QUARTER, SEMI_ANNUAL, or YEAR. * Required when indicated by GET /hire-requirements/ for the selected country and * hire type. */ payment_frequency?: 'MONTH' | 'QUARTER' | 'SEMI_ANNUAL' | 'YEAR'; /** * Target bonus as a percentage of base pay, written as a numeric string without * the percent sign, for example 15. Provide exactly one of amount or percent. */ percent?: string; } namespace TargetBonus { /** * Target bonus amount using currency_type as a three-letter ISO 4217 code and * value as the decimal amount. Provide exactly one of amount or percent. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Mexico direct hire telecommunications and electricity allowance. Required for * every Mexico direct hire. currency_type, such as MXN, must match * compensation.base_pay_amount.currency_type. */ interface TelecomAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Contractually required thirteenth-month salary payment. Provide only when listed * by GET /hire-requirements/ for the selected country and hire type. Brazil EOR * calculates this automatically as one-twelfth of annual base pay in BRL, rounded * down to the cent. To annualize base_pay_amount.value, multiply by 260 for DAY, * 52 for WEEK, 12 for MONTH, or 1 for YEAR, using base_pay_period. Brazil EOR * rejects a caller-supplied value. */ interface ThirteenthMonthBonus { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Optional monthly uniform and clothing allowance for Philippines direct hire and * EOR. Omit for other countries. Send PHP from zero to 666.67 per month. * currency_type must be PHP and match compensation.base_pay_amount.currency_type * for every Philippines hire. Direct hires with non-PHP base pay must omit this * allowance. No currency conversion is performed. Amounts round to the PHP cent * using ROUND_HALF_UP. Omission leaves the allowance unset; zero means no * allowance and is stored as unset. The cap is checked after rounding. Negative or * nonfinite amounts are rejected during request validation; an excessive amount or * currency mismatch fails the hire item with invalid_request before creation. */ interface UniformAndClothingAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual vacation allowance. Optional for Uruguay EOR. Omit this for * Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface VacationAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Uruguay EOR annual work-from-home allowance. Optional for Uruguay EOR. Omit this * for Uruguay direct hire and for every other country. currency_type must match * compensation.base_pay_amount.currency_type. */ interface WorkFromHomeAllowance { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * The job: title, hours, and country-specific details. */ interface Employment { /** * Employment type id from GET /employment-types/. Starting with API version * 2025-08-01, a contractor employment type changes which fields are required or * ignored. Call GET /hire-requirements/ for the applicable rules. */ employment_type_id: string; /** * Start date in YYYY-MM-DD format. */ start_date: string; /** * Job title. */ title: string; /** * Colombia statutory occupational-risk insurance contribution percentage, based on * the work's hazard class: class I (minimal risk) is 0.5220; class II (low risk) * is 1.0440; class III (medium risk) is 2.4360; class IV (high risk) is 4.3500; * class V (maximum risk) is 6.9600. Select the rate for the employer-assessed * occupational risk class. Send the exact numeric string without a percent sign. * Other values reject the whole request during schema validation. Required for * Colombia direct hire when the selected legal entity uses Rippling Standard * Global Payroll; rejected for other entities, EOR, and other countries. Before * POST /hires/, call GET /hire-requirements/ with country_code=CO, * hire_type=direct_hire, and legal_entity_id from GET /company-legal-entities/ to * resolve this field's availability and requiredness. Without legal_entity_id, * these rules remain unresolved. An incorrect or missing value fails the hire item * with invalid_request before creation. */ arl_risk_percentage?: '0.5220' | '1.0440' | '2.4360' | '4.3500' | '6.9600'; /** * Whether the person is legally authorized to work in the work_location country. * Provide only when listed by GET /hire-requirements/; true confirms authorization * and false may make the hire ineligible. */ authorized_to_work?: boolean; /** * Brazil Classificação Brasileira de Ocupações occupation code, formatted as * NNNN-NN, such as 2124-05. Required for Brazil EOR and for direct hires whose * legal entity uses Rippling Standard Global Payroll; optional for other Brazil * direct hires. Resolve this requirement by calling GET /hire-requirements/ with * country_code=BR, hire_type=direct_hire, and legal_entity_id set to the selected * entity's id from GET /company-legal-entities/. Missing a required code causes * the hire item to fail with invalid_request before creation. */ cbo_code?: string; /** * Collective-bargaining coverage and the applicable agreement identifiers. */ collective_bargaining?: Employment.CollectiveBargaining; /** * Mexico EOR. Free-text description of equipment the company assigns. Optional. */ company_equipment?: string; /** * Whether the hiring company conducts business involving cryptocurrency or another * digital currency. Required for China EOR hires. A true value may make the hire * ineligible for the selected EOR service. */ company_uses_digital_currency?: boolean; /** * Employment term: ongoing with no predetermined end or fixed for a defined term. */ contract?: Employment.Contract; /** * COMPANY_OWN_ENTITY hires the contractor on the company's own legal entity. Send * that entity in employment.legal_entity_id. Send this when the company is fully * migrated to Global Payroll and the work location is in a Contractor of Record * state. Omit for non-contractor hires. When the hiring flow requires it and it is * omitted, the hire stays incomplete. */ contractor_paying_entity_type?: 'COMPANY_OWN_ENTITY'; /** * Colombia social-security contributor category. DEPENDENT means a worker under a * standard employment contract. PENSIONER means a pensioner who continues to work. * APPRENTICE means a worker under a learning contract (contrato de aprendizaje). * PRODUCTIVE_APPRENTICE means an apprentice in the productive phase of that * contract. RETIREMENT_PENSIONER means a retired pensioner receiving retirement * benefits. Required for Colombia direct hire when the selected legal entity uses * Rippling Standard Global Payroll; rejected for other entities, EOR, and other * countries. Before POST /hires/, call GET /hire-requirements/ with * country_code=CO, hire_type=direct_hire, and legal_entity_id from GET * /company-legal-entities/ to resolve this field's availability and requiredness. * Without legal_entity_id, these rules remain unresolved. An incorrect or missing * value fails the hire item with invalid_request before creation. */ contributor_type?: 'DEPENDENT' | 'PENSIONER' | 'APPRENTICE' | 'PRODUCTIVE_APPRENTICE' | 'RETIREMENT_PENSIONER'; /** * Mexico direct hire. THIRTY_DAYS divides monthly pay by 30. * THIRTY_POINT_FOUR_DAYS divides monthly pay by 30.4. Required when the selected * legal entity uses Rippling Global Payroll; otherwise optional. Check the * entity's Global Payroll settings in Rippling. */ daily_salary_basis?: 'THIRTY_DAYS' | 'THIRTY_POINT_FOUR_DAYS'; /** * Department id from GET /departments/. */ department_id?: string; /** * Plain-text summary of the role's primary responsibilities and day-to-day work. */ duties?: string; /** * Employment model for a Germany EOR hire. Use AUG for employee leasing or * CONSULTANT for a remote consultant engagement. CONSULTANT is valid only when * work_location.is_remote is true. */ employment_model?: 'AUG' | 'CONSULTANT'; /** * Professional field and consulting-project details required by the hire context. */ engagement?: Employment.Engagement; /** * Confirms that the caller has reviewed and accepts the estimated EOR costs and * applicable Rippling EOR terms for this hire. Required for EOR hires and must be * true; false means the hire cannot proceed. See * https://help.rippling.com/s/article/850659217136 and * https://app.rippling.com/legal/eor. */ eor_costs_acknowledged?: boolean; /** * Confirms that the caller has reviewed and accepts Rippling's EOR eligibility * conditions for this proposed hire, including the EOR screenout guidance. * Required for EOR hires and must be true; false means the hire cannot proceed. * See https://help.rippling.com/s/article/757822852718. */ eor_eligibility_terms_acknowledged?: boolean; /** * Previous employer-of-record provider and tenure details. Required for Colombia * and Philippines EOR when is_eor_transfer is true. Rejected when is_eor_transfer * is false or omitted, for direct hire, or for other countries. Missing or * incompatible details fail the hire item with invalid_request before creation. */ eor_transfer_details?: Employment.EorTransferDetails; /** * Colombian employer-affiliated family compensation fund (caja de compensacion * familiar), which provides social benefits to workers and their families. * Identifies the fund receiving the employer's required payroll contributions for * this worker. Select the employer's affiliated fund using an exact allowed value * from GET /hire-requirements/. Required for Colombia direct hire when the * selected legal entity uses Rippling Standard Global Payroll; rejected for other * entities, EOR, and other countries. Before POST /hires/, call GET * /hire-requirements/ with country_code=CO, hire_type=direct_hire, and * legal_entity_id from GET /company-legal-entities/ to resolve this field's * availability and requiredness. Without legal_entity_id, these rules remain * unresolved. An incorrect or missing value fails the hire item with * invalid_request before creation. */ family_compensation_fund?: string; /** * Additional German framework-agreement clauses that are not already represented * by compensation, hours, or vacation. */ framework_agreement?: Employment.FrameworkAgreement; /** * French Professions et Catégories Socioprofessionnelles (PCS) code that * classifies the occupation performed by this role, such as 100X. Use a code * allowed by GET /hire-requirements/. */ french_occupation_classification_code?: string; /** * Taiwan EOR gender. Uses the same GenderIdentification values as workers.gender. * The Taiwan hiring flow accepts MALE and FEMALE. NONBINARY is accepted only when * the company has non-binary gender enabled. The other GenderIdentification values * are rejected. Omit this for Taiwan direct hire and for every other country. */ gender?: 'MALE' | 'FEMALE' | 'NONBINARY' | 'UNDETERMINED' | 'DIVERSE' | 'DOES_NOT_APPLY' | 'PREFER_NOT_TO_SAY'; /** * Required for Taiwan EOR. Whether the person is a citizen of Taiwan. Send true. * False is rejected because the visa questions that follow are not on this API * yet. */ has_citizenship_of_country?: boolean; /** * Required for GB and IE EOR. True if this hire is from a merger or acquisition. */ hired_due_to_merger?: boolean; /** * Taiwan EOR home address. This is the same Address object used elsewhere. type * and formatted may be omitted; formatted is read-only. Taiwan EOR only. Omit this * for Taiwan direct hire and for every other country. */ home_address?: Shared.Address; /** * Required for Uruguay EOR. Whether the company provides home-office equipment. * Send true or false. Omit this for Uruguay direct hire and for every other * country. */ home_office_equipment_provided?: boolean; /** * Required for Taiwan EOR. Whether the person intends to leave Taiwan. Send false. * True is rejected because the reason question that follows is not on this API * yet. */ intention_to_leave_country?: boolean; /** * Whether the worker's employment is transferring from another employer-of-record * provider. Send true for an EOR-to-EOR transfer and false when this is not an EOR * transfer. Required for EOR hires outside the United States. */ is_eor_transfer?: boolean; /** * Whether the role is legally or contractually classified as shift work, rather * than merely having hours outside a typical workday. Send true when the * applicable employment terms designate the worker as a shift worker; send false * when they do not. Required only when listed by GET /hire-requirements/. */ is_shift_worker?: boolean; /** * Whether the role's primary work is technology-focused. Required for China EOR * hires when social_contribution_city is SHANGHAI or BEIJING; omit it for other * cities. */ is_technology_focused_role?: boolean; /** * US EEO-1 job category for the role. Use a value returned by GET * /hire-requirements/. Omit for contractor hires. */ job_classification?: string; /** * Job function that categorizes the type of work performed by this role. Send an * id returned by GET /job-functions/. */ job_function_id?: string; /** * Send the legal entity id from GET /company-legal-entities/. Required for * direct_hire; omit for eor. Rippling validates that the selected entity belongs * to the company and supports the requested hire. */ legal_entity_id?: string; /** * Job level for the role within the company's job architecture. Send an id * returned by GET /levels/. */ level_id?: string; /** * Manager worker id from GET /workers/. Omit or null for no manager. */ manager_id?: string; /** * Confirms that the proposed hire satisfies Rippling's country-specific EOR * eligibility screening criteria. Required for Hong Kong, Switzerland, New * Zealand, Mexico, Colombia, Philippines, Uruguay, and Taiwan EOR hires. Must be * `true`; `false` means the hire cannot proceed. Rippling maps this assertion to * the applicable country-specific screening response. See * https://help.rippling.com/s/article/757822852718. */ meets_eor_eligibility_criteria?: boolean; /** * Australian modern-award coverage and classification for this job. Required for * Australian hires. Send coverage NOT_COVERED when no award applies; otherwise * send COVERED with the applicable award and classification identifiers. */ modern_award?: Employment.ModernAward; /** * Whether the proposed employment terms include a non-compete restriction. Provide * only when listed by GET /hire-requirements/. For Colombia and Philippines EOR, * this chooses the country's standard non-compete and/or non-solicit clause as a * whole: true includes it and false omits it. These restrictions cannot be * selected separately through this field. Required for those EOR hires; omit for * their direct hires. Do not send for Brazil EOR; it is rejected. Use * non_solicitation for the separate Brazil EOR non-solicitation clause. */ non_compete?: boolean; /** * Whether to include a non-solicitation clause in the worker's employment * agreement. Required for Brazil EOR: true includes the clause and false excludes * it. Rejected for all other hire contexts. */ non_solicitation?: boolean; /** * Notice-period arrangement for ending employment: standard or a custom period. */ notice?: Employment.Notice; /** * The role's overtime classification under applicable employment law. EXEMPT means * overtime requirements do not apply; NON_EXEMPT means the worker may be entitled * to overtime pay. Omit for contractor hires. Required for Colombia hires and * Philippines direct hire. Colombia EOR INTEGRAL salary requires EXEMPT. Do not * send for Philippines EOR: worker_category determines it. Do not send for Brazil * EOR; Brazil EOR derives this from position_of_trust. */ overtime_classification?: 'EXEMPT' | 'NON_EXEMPT'; /** * Whether the hiring company owns a legal entity in the worker's country. Required * only when listed by GET /hire-requirements/; for Netherlands EOR hires, this * answer determines the applicable hiring path. */ owns_entity_in_country?: boolean; /** * Mexico EOR. True when pay is in a currency other than Mexican pesos. Optional. * Omitting this uses false. */ paid_in_foreign_currency?: boolean; /** * Annual company-provided paid sick-day allowance, excluding any separate * statutory entitlement. Provide only when listed by GET /hire-requirements/. */ paid_sick_days?: number; /** * Required for Uruguay EOR. Date the passport or identification document was * issued, as YYYY-MM-DD. Omit this for Uruguay direct hire and for every other * country. */ passport_issue_date?: string; /** * Required for Uruguay EOR. Place that issued the passport or identification * document. Omit this for Uruguay direct hire and for every other country. */ passport_issue_location?: string; /** * Required for Uruguay EOR. Passport or national ID number. Omit this for Uruguay * direct hire and for every other country. */ passport_number?: string; /** * Required for Mexico direct hire and EOR, and Brazil EOR. Rejected for Brazil * direct hire and all other countries. True when this worker is a manager or * director in a position of trust; otherwise false. For Brazil EOR only, Rippling * derives overtime_classification from this answer. True makes the worker exempt * from overtime (EXEMPT); false makes them non-exempt (NON_EXEMPT). Do not send * overtime_classification for Brazil EOR. */ position_of_trust?: boolean; /** * Probation arrangement for the employment: standard, a shorter custom period, or * none. */ probation?: Employment.Probation; /** * Whether the worker is expected to receive tips as part of this job. Omit for * contractor hires. */ receives_tips?: boolean; /** * The role's usual working days and, where required, its local daily start and end * times. This describes the regular work pattern; weekly_hours remains the total * expected hours per week. For Mexico EOR and Brazil hires, only days is accepted. * For Brazil hires, days must be nonempty when the object is supplied. Omitting * the object defaults to Monday through Friday for Mexico EOR and Brazil hires. * Omit for Colombia hires and Philippines direct hire. Required for Philippines * EOR only when weekly_work_schedule is not enabled; include days, start_time, * end_time, and time_zone. When weekly_work_schedule is enabled, omit this object * and supply that schedule instead. Before POST /hires/, call GET * /hire-requirements/ with country_code and hire_type to resolve schedule * availability and requiredness for the company. */ regular_working_hours?: Employment.RegularWorkingHours; /** * Whether the employment terms require the worker to complete training for this * role. For Spanish direct hires, send true when training is required and false * when it is not. */ requires_training?: boolean; /** * Mexico direct hire pay mix. FIXED is salary only. MIXED is salary plus bonus. * VARIABLE is a small base salary and a larger bonus. Required when the selected * legal entity uses Rippling Global Payroll; otherwise optional. Check the * entity's Global Payroll settings in Rippling. */ salary_composition?: 'FIXED' | 'MIXED' | 'VARIABLE'; /** * Colombia salary arrangement: ORDINARY or INTEGRAL. Required for EOR and direct * hire using Rippling Standard Global Payroll; rejected for other entities and * countries. For EOR, INTEGRAL requires EXEMPT overtime classification and has no * separate severance, severance interest, or service bonus. For ORDINARY, Rippling * calculates these components from base pay. Before POST /hires/, call GET * /hire-requirements/ with country_code=CO and hire_type=eor, or * hire_type=direct_hire and legal_entity_id from GET /company-legal-entities/, to * resolve this field's availability and requiredness. Direct-hire rules remain * unresolved without legal_entity_id. An incorrect or missing value fails the hire * item with invalid_request before creation. */ salary_type?: 'ORDINARY' | 'INTEGRAL'; /** * The role's recurring schedule pattern: FIXED_SCHEDULE for a consistent schedule * or ROTATING_SHIFT_SCHEDULE for shifts that rotate. Provide only when listed by * GET /hire-requirements/. */ schedule_type?: 'FIXED_SCHEDULE' | 'ROTATING_SHIFT_SCHEDULE'; /** * US Standard Occupational Classification code for the job, such as 15-1252. Omit * for contractor hires. */ soc_code?: string; /** * Chinese city whose local social-insurance and statutory contribution rules apply * to the worker, such as SHANGHAI or BEIJING. Required for China EOR hires. Use a * value returned by GET /hire-requirements/. */ social_contribution_city?: string; /** * Country-specific statutory contract code. For Spain, use an allowed value * returned by GET /hire-requirements/ that is compatible with contract.type and * employment_type_id. */ statutory_contract_classification?: string; /** * Statutory employment classification for the role. For Germany, choose the * applicable value returned by GET /hire-requirements/, such as EMPLOYEE, * APPRENTICE, WORKING_STUDENT, INTERN, MARGINALLY_EMPLOYED, SHORT_TERM_WORK, or * MANAGING_DIRECTOR. Rippling derives the internal classification workflow from * this value. */ statutory_job_classification?: string; /** * Employment documents required to prepare the hire. */ supporting_documents?: Employment.SupportingDocuments; /** * Required for Taiwan EOR. Taiwan tax identification number. Omit this for Taiwan * direct hire and for every other country. */ tax_id?: string; /** * Teams the worker should belong to. Send team ids returned by GET /teams/. Omit * for no team assignments. */ team_ids?: Array; /** * Abbreviated name of the worker's Brazilian labor union. Required only for Brazil * direct hires whose legal entity uses Rippling Standard Global Payroll; rejected * for other hires. Resolve this requirement by calling GET /hire-requirements/ * with country_code=BR, hire_type=direct_hire, and legal_entity_id set to the * selected entity's id from GET /company-legal-entities/. For Brazil direct hire, * violating this entity-specific requirement causes the hire item to fail with * invalid_request before creation. */ union_abbreviation?: string; /** * Brazilian labor union's CNPJ registration number, formatted as * NN.NNN.NNN/NNNN-NN, such as 12.345.678/0001-90. Required only for Brazil direct * hires whose legal entity uses Rippling Standard Global Payroll; rejected for * other hires. Resolve this requirement by calling GET /hire-requirements/ with * country_code=BR, hire_type=direct_hire, and legal_entity_id set to the selected * entity's id from GET /company-legal-entities/. For Brazil direct hire, violating * this entity-specific requirement causes the hire item to fail with * invalid_request before creation. */ union_cnpj?: string; /** * Name of the worker's Brazilian labor union. Required only for Brazil direct * hires whose legal entity uses Rippling Standard Global Payroll; rejected for * other hires. Resolve this requirement by calling GET /hire-requirements/ with * country_code=BR, hire_type=direct_hire, and legal_entity_id set to the selected * entity's id from GET /company-legal-entities/. For Brazil direct hire, violating * this entity-specific requirement causes the hire item to fail with * invalid_request before creation. */ union_name?: string; /** * Month of the Brazilian labor union's annual collective bargaining negotiation, * using an uppercase English month name such as JANUARY. Required only for Brazil * direct hires whose legal entity uses Rippling Standard Global Payroll; rejected * for other hires. Resolve this requirement by calling GET /hire-requirements/ * with country_code=BR, hire_type=direct_hire, and legal_entity_id set to the * selected entity's id from GET /company-legal-entities/. For Brazil direct hire, * violating this entity-specific requirement causes the hire item to fail with * invalid_request before creation. */ union_negotiation_month?: 'JANUARY' | 'FEBRUARY' | 'MARCH' | 'APRIL' | 'MAY' | 'JUNE' | 'JULY' | 'AUGUST' | 'SEPTEMBER' | 'OCTOBER' | 'NOVEMBER' | 'DECEMBER'; /** * Set to true to start tenure on the start date. False keeps a prior tenure date * unset. */ use_default_tenure?: boolean; /** * How annual paid vacation is determined: statutory entitlement or a custom annual * allowance. For Philippines EOR, custom vacation adds nonstatutory * additional_days instead of replacing total entitlement. Do not send for Colombia * or Philippines direct hire, or Brazil EOR, including an empty object. */ vacation?: Employment.Vacation; /** * Maximum unused vacation days the worker may carry into the next leave year. * Provide only when listed by GET /hire-requirements/. */ vacation_rollover_days?: number; /** * Expected working hours per week. Supports whole or fractional hours, such as 40 * or 37.5. Rippling derives any internal weekly-hours classification from this * value. Omit for contractor hires. */ weekly_hours?: string; /** * Recurring work schedule for Colombia and Philippines direct hire or EOR when * working-hours schedules are enabled for the company and country and work-pattern * auto-assignment is disabled. Required in that configuration; rejected otherwise * and for other countries. Omit regular_working_hours when sending this object. * Before POST /hires/, call GET /hire-requirements/ with country_code and * hire_type to resolve schedule availability and requiredness for the company. A * missing schedule or incompatible company configuration fails the hire item with * invalid_request before creation. Colombia and Philippines hires with * work-pattern auto-assignment enabled cannot be created through this API, even * when this object is omitted; complete those hires in Rippling. They fail with * invalid_request before creation. Malformed objects reject the whole request * during schema validation. Paid-hour spans and weekly totals are also checked * before creation. Country-specific schedule policy is checked while saving hiring * pages; a policy violation can leave an incomplete hire with an id and * validation_failed errors. */ weekly_work_schedule?: Employment.WeeklyWorkSchedule; /** * Required for Uruguay EOR. Work authorization document number. Omit this for * Uruguay direct hire and for every other country. */ work_authorization_document_number?: string; /** * Work email for the hire. */ work_email?: string; /** * Set to false to skip work-email assignment for this hire, including generation * by company policy. Do not combine false with a nonempty employment.work_email. * Set to true to enable the normal work-email flow. For a newly created hire, * true, omission, and null have the same behavior. Omission or null preserves any * saved work-email preference. If related_records.existing_role_id identifies a * hire that has already moved beyond creation, an explicit true or false can * return that hire as incomplete with a validation error. */ work_email_required?: boolean; /** * Required for Mexico direct hire. DAY_SHIFT_48_HOURS, NIGHT_SHIFT_42_HOURS, or * DAY_SHIFT_45_HOURS. */ work_shift?: 'DAY_SHIFT_48_HOURS' | 'NIGHT_SHIFT_42_HOURS' | 'DAY_SHIFT_45_HOURS'; /** * Required for Philippines EOR; rejected for direct hire and other countries. * OTHER means other workers and produces NON_EXEMPT overtime classification. * MANAGERIAL means managerial workers; OFFICERS_OR_MEMBERS_OF_MANAGERIAL_STAFF * means officers or members of managerial staff; FIELD_PERSONNEL means field * personnel. Each of these three produces EXEMPT classification. Do not send * overtime_classification for Philippines EOR. */ worker_category?: 'MANAGERIAL' | 'OFFICERS_OR_MEMBERS_OF_MANAGERIAL_STAFF' | 'FIELD_PERSONNEL' | 'OTHER'; /** * Worker's professional qualification for a Switzerland EOR role, such as * Engineer. This is plain text, not a Rippling resource identifier. Provide it * only when GET /hire-requirements/ lists worker_qualification for the selected * country and hire type. */ worker_qualification?: string; /** * Working-hours system that legally applies to a China EOR role. Use * STANDARD_WORKING_HOURS for a role governed by the standard daily and weekly * limits, or FLEXIBLE_WORKING_HOURS when an approved flexible-hours system * applies. Required for China EOR hires. */ working_hours_arrangement?: 'STANDARD_WORKING_HOURS' | 'FLEXIBLE_WORKING_HOURS'; /** * Whether the worker will perform work in Germany's construction industry. * Required for Germany EOR hires. Rippling EOR does not currently support these * roles, so true makes the hire ineligible. */ works_in_construction_industry?: boolean; } namespace Employment { /** * Collective-bargaining coverage and the applicable agreement identifiers. */ interface CollectiveBargaining { /** * Official country-specific identifier of the applicable collective bargaining * agreement. This is an external statutory code, not a Rippling resource ID; GET * /hire-requirements/ describes its source and format for the selected country. */ agreement_code?: string; /** * Name of the employer's applicable collective labor or bargaining agreement. * Provide it only when a named agreement applies; other union activity does not * require a name. Use an allowed value from GET /hire-requirements/. */ agreement_name?: string; /** * Geographic or industry area governed by the agreement. */ area?: string; /** * Whether a collective bargaining agreement covers the worker. */ coverage?: 'COVERED' | 'NOT_COVERED'; /** * Worker group or category within the applicable agreement. */ group?: string; /** * Whether the employer has a collective labor agreement, collective bargaining * agreement, or other union activity in place. This is an employer-level fact and * is distinct from whether an agreement covers this worker. */ has_union_activity?: boolean; } /** * Employment term: ongoing with no predetermined end or fixed for a defined term. */ interface Contract { /** * Whether employment is ongoing or fixed-term. Use INDEFINITE when there is no * predetermined end and FIXED when the employment is limited to a defined term. */ type: 'FIXED' | 'INDEFINITE'; /** * Exact fixed-term length. Use only with type FIXED; omit for INDEFINITE. */ duration?: Contract.Duration; /** * Minimum contract length guaranteed to the worker, distinct from the exact total * duration. */ minimum_guaranteed_duration?: Contract.MinimumGuaranteedDuration; /** * Mission-specific contract facts, only when listed by GET /hire-requirements/. */ mission?: Contract.Mission; /** * Exact number of prior fixed-term contracts with this worker, excluding the * contract being created. Required for Philippines EOR FIXED contracts. The * supported counts for this hiring flow are the integer 0 (no prior fixed-term * contracts) or 1 (exactly one prior fixed-term contract). Other values reject the * whole request during schema validation. Omit for direct hire and other * countries: supplying this field rejects the whole request during schema * validation. For Philippines EOR, a missing value on FIXED or a supplied value on * INDEFINITE fails the hire item with invalid_request before creation. */ previous_fixed_term_contracts?: 0 | 1; } namespace Contract { /** * Exact fixed-term length. Use only with type FIXED; omit for INDEFINITE. */ interface Duration { /** * Duration unit: DAYS, WEEKS, MONTHS, or YEARS. */ unit: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; /** * Positive number of duration units. */ value: number; } /** * Minimum contract length guaranteed to the worker, distinct from the exact total * duration. */ interface MinimumGuaranteedDuration { /** * Duration unit: DAYS, WEEKS, MONTHS, or YEARS. */ unit: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; /** * Positive number of duration units. */ value: number; } /** * Mission-specific contract facts, only when listed by GET /hire-requirements/. */ interface Mission { /** * Whether the assignment or project has a defined completion timeline. */ has_defined_timeline: boolean; /** * Description of the mission or project. Required when has_defined_timeline is * true; omit when there is no defined mission timeline. */ description?: string; } } /** * Professional field and consulting-project details required by the hire context. */ interface Engagement { /** * Description of the client project and the work the worker will perform. */ consulting_project_description: string; /** * Professional field in which the worker will perform the engagement. */ field_of_work: string; } /** * Previous employer-of-record provider and tenure details. Required for Colombia * and Philippines EOR when is_eor_transfer is true. Rejected when is_eor_transfer * is false or omitted, for direct hire, or for other countries. Missing or * incompatible details fail the hire item with invalid_request before creation. */ interface EorTransferDetails { /** * Previous employer-of-record provider code. PEBL identifies Pebl (formerly * Velocity Global). Required for Colombia or Philippines EOR when is_eor_transfer * is true. Choose OTHER and supply other_provider_name when the provider is not * listed. */ previous_provider: 'ATLAS' | 'DEEL' | 'GLOBALIZATION_PARTNERS' | 'GOGLOBAL' | 'OYSTER' | 'PAPAYA_GLOBAL' | 'PEBL' | 'REMOTE' | 'OTHER'; /** * Date the worker started with the prior employer-of-record provider, in * YYYY-MM-DD format. Required for the transfer and must be before today. */ previous_start_date: string; /** * Whether to recognize tenure from previous_start_date. Send an explicit true to * recognize it or false to start tenure with the new employment. Required for the * transfer. */ recognize_previous_tenure: boolean; /** * Name of the previous employer-of-record provider. Required only when * previous_provider is OTHER; rejected for a listed provider. */ other_provider_name?: string; /** * Days excluded from recognized prior tenure. Accepted only when * recognize_previous_tenure is true and this country's tenure-gap configuration is * enabled; rejected otherwise. Before POST /hires/, call GET /hire-requirements/ * with country_code and hire_type=eor to read this field's available value for the * company's country configuration. Omission uses zero gap days when available. * Send a nonnegative integer no greater than the days from previous_start_date * through today. An incompatible or excessive value fails the hire item with * invalid_request before creation. */ tenure_gap_days?: number; } /** * Additional German framework-agreement clauses that are not already represented * by compensation, hours, or vacation. */ interface FrameworkAgreement { /** * Additional benefits stated in the framework agreement. */ additional_benefits: string; /** * Framework-agreement continued-remuneration terms. */ continued_remuneration_terms: string; /** * Other essential working conditions in the framework agreement. */ other_working_conditions: string; /** * Framework-agreement overtime-pay terms. */ overtime_pay_terms: string; /** * Rest-period terms stated in the framework agreement. */ rest_periods: string; /** * Shared facilities available to the worker. */ shared_facilities: string; /** * Surcharges required by the framework agreement. */ surcharges: string; /** * Framework-agreement variable-compensation terms. */ variable_compensation_terms: string; /** * Functional workwear supplied for the engagement. */ work_wear: string; } /** * Australian modern-award coverage and classification for this job. Required for * Australian hires. Send coverage NOT_COVERED when no award applies; otherwise * send COVERED with the applicable award and classification identifiers. */ interface ModernAward { /** * Whether an Australian modern award covers this job. Use NOT_COVERED when no * modern award applies. Use COVERED together with award_id and classification_id * when one applies. */ coverage: 'COVERED' | 'NOT_COVERED'; /** * Identifier of the Australian modern award governing the job. Required when * coverage is COVERED; omit when coverage is NOT_COVERED. Select a currently * active identifier from award_id.allowed_values returned by GET * /hire-requirements/. This is a catalog identifier, not an expandable Platform * API relationship. */ award_id?: string; /** * Identifier of the worker's classification within the selected modern award. This * classification captures the applicable level or sub-level. Required when * coverage is COVERED; omit when coverage is NOT_COVERED. Select an identifier * from classification_id.allowed_values returned by GET /hire-requirements/ and * use allowed_value_parents to match it to award_id. This is a catalog identifier, * not an expandable Platform API relationship. */ classification_id?: string; } /** * Notice-period arrangement for ending employment: standard or a custom period. */ interface Notice { /** * Notice-period arrangement for ending employment. STANDARD_NOTICE applies the * standard period; CUSTOM_NOTICE supplies a specific period. */ type: 'STANDARD_NOTICE' | 'CUSTOM_NOTICE'; /** * Number of notice-period units. Required for CUSTOM_NOTICE; omit for * STANDARD_NOTICE. */ quantity?: number; /** * Unit for the custom notice period: DAYS, WEEKS, MONTHS, or YEARS. Required for * CUSTOM_NOTICE; omit for STANDARD_NOTICE. */ unit?: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; } /** * Probation arrangement for the employment: standard, a shorter custom period, or * none. */ interface Probation { /** * Probation arrangement for the employment. STANDARD_PROBATION applies the * standard period, SHORTER_PROBATION supplies a shorter custom period, and * FORGO_PROBATION means no probation. */ type: 'STANDARD_PROBATION' | 'SHORTER_PROBATION' | 'FORGO_PROBATION'; /** * Number of probation units. Required for SHORTER_PROBATION; omit otherwise. */ quantity?: number; /** * Unit for the custom probation length: DAYS, WEEKS, MONTHS, or YEARS. Required * for SHORTER_PROBATION; omit otherwise. */ unit?: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; } /** * The role's usual working days and, where required, its local daily start and end * times. This describes the regular work pattern; weekly_hours remains the total * expected hours per week. For Mexico EOR and Brazil hires, only days is accepted. * For Brazil hires, days must be nonempty when the object is supplied. Omitting * the object defaults to Monday through Friday for Mexico EOR and Brazil hires. * Omit for Colombia hires and Philippines direct hire. Required for Philippines * EOR only when weekly_work_schedule is not enabled; include days, start_time, * end_time, and time_zone. When weekly_work_schedule is enabled, omit this object * and supply that schedule instead. Before POST /hires/, call GET * /hire-requirements/ with country_code and hire_type to resolve schedule * availability and requiredness for the company. */ interface RegularWorkingHours { /** * Weekdays the worker ordinarily works. Use uppercase values such as MONDAY and * FRIDAY. For Mexico EOR and Brazil hires, this is the only accepted member of * regular_working_hours. For Brazil hires, days must be nonempty when the object * is supplied. Omitting the whole object defaults to Monday through Friday for * Mexico EOR and Brazil hires. */ days: Array<'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'>; /** * Number of days ordinarily worked per week, such as 5. */ days_per_week?: number; /** * Number of days ordinarily worked per year, when the country tracks annual * working days. */ days_per_year?: number; /** * Usual local end time on a working day in HH:MM:SS format, such as 17:00:00. This * is a wall-clock time in time_zone, not a UTC timestamp. Do not send for Mexico * EOR or Brazil hires. */ end_time?: string; /** * Expected hours for each weekday. Use null for a day off. */ hours_by_weekday?: RegularWorkingHours.HoursByWeekday; /** * Usual local start time on a working day in HH:MM:SS format, such as 09:00:00. * This is a wall-clock time in time_zone, not a UTC timestamp. Do not send for * Mexico EOR or Brazil hires. */ start_time?: string; /** * IANA time zone used to interpret start_time and end_time, such as * Australia/Sydney or Europe/London. Do not send for Mexico EOR or Brazil hires. */ time_zone?: string; /** * Unit used to track working time when required by the country: DAYS or HOURS. */ tracking_unit?: 'DAYS' | 'HOURS'; } namespace RegularWorkingHours { /** * Expected hours for each weekday. Use null for a day off. */ interface HoursByWeekday { /** * Hours worked on Friday; null means the day is off. */ friday?: string; /** * Hours worked on Monday; null means the day is off. */ monday?: string; /** * Hours worked on Saturday; null means the day is off. */ saturday?: string; /** * Hours worked on Sunday; null means the day is off. */ sunday?: string; /** * Hours worked on Thursday; null means the day is off. */ thursday?: string; /** * Hours worked on Tuesday; null means the day is off. */ tuesday?: string; /** * Hours worked on Wednesday; null means the day is off. */ wednesday?: string; } } /** * Employment documents required to prepare the hire. */ interface SupportingDocuments { /** * Id of the confirmed company-owned PDF or Word resume uploaded through POST * /files/. */ resume_file_id?: string; /** * Id of the confirmed company-owned PDF or Word variable-compensation plan. */ variable_compensation_plan_file_id?: string; } /** * How annual paid vacation is determined: statutory entitlement or a custom annual * allowance. For Philippines EOR, custom vacation adds nonstatutory * additional_days instead of replacing total entitlement. Do not send for Colombia * or Philippines direct hire, or Brazil EOR, including an empty object. */ interface Vacation { /** * How annual paid vacation is determined. Use STATUTORY_VACATION to apply the * statutory entitlement or CUSTOM_VACATION to provide a specific annual allowance * in days. For Philippines EOR, CUSTOM_VACATION instead supplies additional * nonstatutory days through additional_days. Colombia EOR accepts only * STATUTORY_VACATION. Omit the vacation object for Colombia and Philippines direct * hire. */ type: 'STATUTORY_VACATION' | 'CUSTOM_VACATION'; /** * Company-provided annual vacation days in addition to statutory entitlement. * Required for Philippines EOR CUSTOM_VACATION. Omit for STATUTORY_VACATION, * direct hire, and other countries. This is not the total annual vacation * allowance. */ additional_days?: number; /** * Annual vacation allowance in days. Required for CUSTOM_VACATION except * Philippines EOR, which rejects days and uses additional_days. Omit for * STATUTORY_VACATION. */ days?: number; } /** * Recurring work schedule for Colombia and Philippines direct hire or EOR when * working-hours schedules are enabled for the company and country and work-pattern * auto-assignment is disabled. Required in that configuration; rejected otherwise * and for other countries. Omit regular_working_hours when sending this object. * Before POST /hires/, call GET /hire-requirements/ with country_code and * hire_type to resolve schedule availability and requiredness for the company. A * missing schedule or incompatible company configuration fails the hire item with * invalid_request before creation. Colombia and Philippines hires with * work-pattern auto-assignment enabled cannot be created through this API, even * when this object is omitted; complete those hires in Rippling. They fail with * invalid_request before creation. Malformed objects reject the whole request * during schema validation. Paid-hour spans and weekly totals are also checked * before creation. Country-specific schedule policy is checked while saving hiring * pages; a policy violation can leave an incomplete hire with an id and * validation_failed errors. */ interface WeeklyWorkSchedule { /** * One-week or two-week repeating schedule, including days off and paid hours. * Before POST /hires/, call GET /hire-requirements/ with country_code and * hire_type to resolve schedule availability and requiredness for the company. */ recurrence: WeeklyWorkSchedule.Recurrence; /** * IANA time zone for all local times in the schedule, such as America/Bogota or * Asia/Manila. */ schedule_time_zone: string; /** * First weekday in the recurring cycle, using uppercase such as MONDAY. */ start_day_of_week: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY'; /** * Date in YYYY-MM-DD on which the first day of a two-week cycle occurs. Required * for a two-week cycle; omit for a one-week cycle. Its weekday must match * start_day_of_week. */ anchor_date?: string; } namespace WeeklyWorkSchedule { /** * One-week or two-week repeating schedule, including days off and paid hours. * Before POST /hires/, call GET /hire-requirements/ with country_code and * hire_type to resolve schedule availability and requiredness for the company. */ interface Recurrence { /** * Ordered days starting on start_day_of_week: exactly 7 days for one week or 14 * for two weeks. Send an empty object for each day off. */ expansion: Array; /** * Number of weeks in the repeating cycle: 1 or 2. */ length: 1 | 2; /** * Recurrence unit. Send WEEKS. */ unit: 'WEEKS'; } namespace Recurrence { interface Expansion { /** * Paid working hours for this day as a decimal string greater than zero and at * most 24 hours, excluding unpaid breaks. May be shorter than the start-to-end * span. */ duration?: string; /** * Local end time in HH:MM:SS. An earlier time ends on the following day. */ end_time?: string; /** * Local start time in HH:MM:SS. Omit all members for a day off. */ start_time?: string; } } } } /** * The person's legal name and the email address or mobile number used to send * their invitation. */ interface Personal { /** * Person's legal given name as it should appear on employment and payroll records. */ first_name: string; /** * Person's legal family name as it should appear on employment and payroll * records. */ last_name: string; /** * Email address where the person should receive their Rippling invitation. At * least one of invite_email or invite_phone is required; both may be provided. */ invite_email?: string; /** * Mobile number where the person should receive their Rippling invitation, in * international format including the country calling code, for example * +14155550123. At least one of invite_email or invite_phone is required; both may * be provided. */ invite_phone?: string; /** * Person's nationality as an ISO 3166-1 alpha-2 country code, such as FR for * French nationality. Provide it only when listed by GET /hire-requirements/. This * is not the country where the person works. */ nationality_code?: string; } /** * Where the person will work. Provide either a Rippling work-location ID or mark * the hire as remote, and always provide the work country. */ interface WorkLocation { /** * Two-letter ISO 3166-1 country code for the place where the person performs the * work, such as US or CA. Required for both office-based and remote hires and used * to determine country-specific hiring requirements. */ country_code: string; /** * Whether the person works remotely rather than from a company work location. When * true, omit location_id and provide country_code plus state_code when applicable. * Defaults to false. */ is_remote?: boolean; /** * Rippling work-location ID for the office or site where the person will work. * Obtain it from GET /work-locations/. Required when is_remote is false; omit when * is_remote is true. */ location_id?: string; /** * State, province, or region code for a remote work location, such as CA for * California. Supply it when the selected country requires a regional location; * omit it for an office-based hire whose work-location record already identifies * the region. */ state_code?: string; } interface CustomField { /** * Identifier of a company-configured custom field collected during hiring. Use a * field configured for the hiring company. */ field_id: string; /** * Value for the selected custom field. Its JSON type and allowed options depend on * that field's configuration in Rippling. */ value: unknown; } /** * References that associate this hire with recruiting, headcount planning, a prior * employment record, or an existing Rippling hiring process. These references * control hiring behavior; they are not arbitrary metadata. Omit the object when * no association applies. */ interface RelatedRecords { /** * Rippling Recruiting applicant/application ID for the ATS application that * produced this hire. Obtain it from GET /candidate-applications/. Omit when the * hire is not linked to a Rippling ATS application. */ ats_applicant_id?: string; /** * Rippling role ID for an in-progress hire to continue instead of starting another * hiring process. Use the ID returned by a prior hire result when instructed to * continue that hire. */ existing_role_id?: string; /** * Rippling headcount-position ID for the approved or open position this person * will fill. Obtain it from GET /headcount-positions/. */ headcount_position_id?: string; /** * How to initialize the rehire identified by rehire_role_id. REUSE_WORKER_DETAILS * prefills eligible non-compensation details from the prior employment record, * while NEW_WORKER_DETAILS starts those hiring questions without that prefill. * Both choices rehire the existing person identified by rehire_role_id. The * request's required first_name and last_name do not replace that person's * identity; invite_email or invite_phone supplies the invitation destination for * the new role. Required with rehire_role_id; omit otherwise. */ rehire_choice?: 'REUSE_WORKER_DETAILS' | 'NEW_WORKER_DETAILS'; /** * Rippling role ID for this person's prior employment record: the previous role * being rehired. When POST /hires/ reports a possible_rehire next action, use its * target_id here. Providing this ID starts a rehire and also requires * rehire_choice. */ rehire_role_id?: string; } } } export declare namespace Hires { export { type HireCreateResponse as HireCreateResponse, type HireCreateParams as HireCreateParams }; } //# sourceMappingURL=hires.d.ts.map