import { APIResource } from "../core/resource.js"; import * as BusinessPartnersAPI from "./business-partners.js"; import * as WorkersAPI from "./workers.js"; import { APIPromise } from "../core/api-promise.js"; import { PageCursorURL, PagePromise } from "../core/pagination.js"; import { RequestOptions } from "../internal/request-options.js"; /** * Compensation associated with workers */ export declare class ScheduledPayouts extends APIResource { /** * List scheduled payouts. Paginated with limit and cursor. Filter with string * equality joined by and on payee_id, client, external_id, status, * source_label_id, and group_label_id, for example filter=client eq 'CUSTOM' and * status eq 'SCHEDULED'. Supports * expand=payee,payout_type,source_label,group_label. Always uses the company admin * payout rowset; callers without admin payout visibility receive an empty list. * Retrieve returns NotFound for the same rows. * * - Requires: `Internal Testing` * * @example HTTP * Representative request and response shapes. * ``` * GET /scheduled-payouts/?limit=0&cursor=cursor&filter=filter&expand=expand HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "__meta": { * "redacted_fields": [ * { * "name": "date_of_birth", * "reason": "Insufficient entitlements" * } * ] * }, * "results": [ * { * "id": "string", * "payee_id": "string", * "payee": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "user_id": "string", * "user": {}, * "is_manager": "string", * "manager_id": "string", * "manager": {}, * "legal_entity_id": "string", * "legal_entity": {}, * "country": "AF", * "start_date": "string", * "end_date": "string", * "number": "string", * "work_email": "string", * "personal_email": "string", * "status": "INIT", * "location": {}, * "employment_type_id": "string", * "employment_type": {}, * "gender": "MALE", * "date_of_birth": "string", * "race": "BLACK", * "ethnicity": "HISPANIC_OR_LATINO", * "citizenship": "AF", * "compensation_id": "string", * "compensation": {}, * "overtime_exemption": "EXEMPT", * "department_id": "string", * "department": {}, * "teams_id": [], * "teams": [], * "title": "string", * "title_effective_date": "string", * "level_id": "string", * "level": {}, * "job_function_id": "string", * "job_function": {}, * "termination_details": {}, * "pay_schedule_id": "string", * "work_schedule": {}, * "compensation_grade": {}, * "original_start_date": "string", * "custom_fields": [], * "country_fields": {}, * "business_partners_id": [], * "business_partners": [] * }, * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "amount_base": { * "currency_type": "string", * "value": "string" * }, * "amount_usd": { * "currency_type": "string", * "value": "string" * }, * "pay_classification": "string", * "payout_type_id": "string", * "payout_type": { * "id": "string", * "key": "string", * "display_name": "string", * "is_system": "string", * "created_by_id": "string", * "created_by": {} * }, * "scheduled_date": "string", * "effective_start_date": "string", * "effective_end_date": "string", * "name": "string", * "description": "string", * "status": "DRAFT", * "cancel_reason": "string", * "source_label_id": "string", * "source_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "group_label_id": "string", * "group_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "paystub_id": "string", * "created_at": "string", * "updated_at": "string" * } * ], * "next_link": "string" * } * ``` */ list(query?: ScheduledPayoutListParams | null | undefined, options?: RequestOptions): PagePromise; /** * Create or update one payout. Identity is (client, external_id), not id. Same key * and same body replays with 200. Same key and a different body overwrites a * SCHEDULED or EVALUATION_FAILED payout when the caller can edit scheduled * payouts; otherwise 403. RELEASED payouts return 409. Successful creates and * updates return 200. client must be CUSTOM; other clients are written by Rippling * systems and return 400. * * @example HTTP * Representative request and response shapes. * ``` * POST /scheduled-payouts/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * { * "amount_base": {}, * "amount_usd": {}, * "client": "VC_PLAN_CYCLE", * "effective_end_date": "effective_end_date", * "effective_start_date": "effective_start_date", * "external_id": "external_id", * "payee_id": "payee_id", * "payout_type_id": "payout_type_id", * "scheduled_date": "scheduled_date" * } * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "payee_id": "string", * "payee": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "amount_base": {}, * "amount_usd": {}, * "pay_classification": "string", * "payout_type_id": "string", * "payout_type": { * "id": "string", * "key": "string", * "display_name": "string", * "is_system": false, * "created_by_id": "string", * "created_by": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "user_id": "string", * "user": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "is_manager": false, * "manager_id": "string", * "manager": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "legal_entity_id": "string", * "legal_entity": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "country": "AF", * "start_date": "string", * "end_date": "string", * "number": 0, * "work_email": "string", * "personal_email": "string", * "status": "INIT", * "location": { * "type": "REMOTE", * "work_location_id": "string" * }, * "employment_type_id": "string", * "employment_type": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "label": "string" * }, * "gender": "MALE", * "date_of_birth": "string", * "race": "BLACK", * "ethnicity": "HISPANIC_OR_LATINO", * "citizenship": "AF", * "compensation_id": "string", * "compensation": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "overtime_exemption": "EXEMPT", * "department_id": "string", * "department": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "parent_id": "string", * "parent": {}, * "reference_code": "string", * "department_hierarchy_id": [], * "department_hierarchy": [] * }, * "teams_id": [ * "string" * ], * "teams": [ * {} * ], * "title": "string", * "title_effective_date": "string", * "level_id": "string", * "level": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "parent_id": "string", * "parent": {}, * "global_level": "string", * "description": "string", * "scope_of_responsibilities": "string", * "experience_requirements": "string", * "rank": "string", * "track_id": "string", * "track": {} * }, * "job_function_id": "string", * "job_function": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string" * }, * "termination_details": { * "type": "VOLUNTARY", * "reason": "string" * }, * "pay_schedule_id": "string", * "work_schedule": {}, * "compensation_grade": { * "id": "string", * "label": "string" * }, * "original_start_date": "string", * "custom_fields": [ * "string" * ], * "country_fields": { * "us": {}, * "ca": {}, * "nz": {} * }, * "business_partners_id": [ * "string" * ], * "business_partners": [ * {} * ] * } * }, * "scheduled_date": "string", * "effective_start_date": "string", * "effective_end_date": "string", * "name": "string", * "description": "string", * "status": "DRAFT", * "cancel_reason": "string", * "source_label_id": "string", * "source_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "group_label_id": "string", * "group_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "paystub_id": "string", * "created_at": "string", * "updated_at": "string" * } * ``` */ create(body: ScheduledPayoutCreateParams, options?: RequestOptions): APIPromise; /** * Retrieve a specific scheduled payout. Uses the company admin payout rowset; * callers without admin payout visibility receive NotFound. * * @example HTTP * Representative request and response shapes. * ``` * GET /scheduled-payouts/{id}/ HTTP/1.1 * Host: rest.ripplingapis.com * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "__meta": { * "redacted_fields": [ * {} * ] * } * } * ``` */ retrieve(id: string, options?: RequestOptions): APIPromise; /** * SCHEDULED and EVALUATION_FAILED payouts can be cancelled; cancelling an already * cancelled payout returns it unchanged. Payouts in any other status return 409. * Only CUSTOM payouts can be cancelled through this API; other clients return 400. * The required reason is stored as cancel_reason. Callers without admin payout * visibility receive 404. * * @example HTTP * Representative request and response shapes. * ``` * POST /scheduled-payouts/{id}/cancel/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * { * "reason": "reason" * } * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "payee_id": "string", * "payee": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "amount_base": {}, * "amount_usd": {}, * "pay_classification": "string", * "payout_type_id": "string", * "payout_type": { * "id": "string", * "key": "string", * "display_name": "string", * "is_system": false, * "created_by_id": "string", * "created_by": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "user_id": "string", * "user": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "is_manager": false, * "manager_id": "string", * "manager": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "legal_entity_id": "string", * "legal_entity": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "country": "AF", * "start_date": "string", * "end_date": "string", * "number": 0, * "work_email": "string", * "personal_email": "string", * "status": "INIT", * "location": { * "type": "REMOTE", * "work_location_id": "string" * }, * "employment_type_id": "string", * "employment_type": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "label": "string" * }, * "gender": "MALE", * "date_of_birth": "string", * "race": "BLACK", * "ethnicity": "HISPANIC_OR_LATINO", * "citizenship": "AF", * "compensation_id": "string", * "compensation": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "overtime_exemption": "EXEMPT", * "department_id": "string", * "department": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "parent_id": "string", * "parent": {}, * "reference_code": "string", * "department_hierarchy_id": [], * "department_hierarchy": [] * }, * "teams_id": [ * "string" * ], * "teams": [ * {} * ], * "title": "string", * "title_effective_date": "string", * "level_id": "string", * "level": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "parent_id": "string", * "parent": {}, * "global_level": "string", * "description": "string", * "scope_of_responsibilities": "string", * "experience_requirements": "string", * "rank": "string", * "track_id": "string", * "track": {} * }, * "job_function_id": "string", * "job_function": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string" * }, * "termination_details": { * "type": "VOLUNTARY", * "reason": "string" * }, * "pay_schedule_id": "string", * "work_schedule": {}, * "compensation_grade": { * "id": "string", * "label": "string" * }, * "original_start_date": "string", * "custom_fields": [ * "string" * ], * "country_fields": { * "us": {}, * "ca": {}, * "nz": {} * }, * "business_partners_id": [ * "string" * ], * "business_partners": [ * {} * ] * } * }, * "scheduled_date": "string", * "effective_start_date": "string", * "effective_end_date": "string", * "name": "string", * "description": "string", * "status": "DRAFT", * "cancel_reason": "string", * "source_label_id": "string", * "source_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "group_label_id": "string", * "group_label": { * "id": "string", * "client": "VC_PLAN_CYCLE", * "external_id": "string", * "name": "string" * }, * "paystub_id": "string", * "created_at": "string", * "updated_at": "string" * } * ``` */ cancel(id: string, body: ScheduledPayoutCancelParams, options?: RequestOptions): APIPromise; } export type ScheduledPayoutListResponsesPageCursorURL = PageCursorURL; export interface ScheduledPayoutListResponse { /** * Unique identifier of the payout. */ id: string; /** * Payout amount in the worker's base currency. */ amount_base: ScheduledPayoutListResponse.AmountBase; /** * Payout amount converted to USD. */ amount_usd: ScheduledPayoutListResponse.AmountUsd; /** * System that owns the payout; together with external_id it is the upsert * identity. CUSTOM: created by an integrator through this API (the only value * accepted on create). Rippling-generated, read-only here: VC_PLAN_CYCLE and * VC_EVENT_DRIVEN_PLAN (variable compensation plans), MANUAL_PAYOUT (entered in * Rippling), HRIS_SIGN_ON (new-hire sign-on bonuses), OFFLINE_RECOMMENDATION and * NEW_HIRE_AGENT (Rippling recommendations). */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * When the payout was created, as an ISO 8601 UTC timestamp. */ created_at: string; /** * Last day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_end_date: string; /** * First day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_start_date: string; /** * External identifier unique per company and client. */ external_id: string; /** * ID of the worker who receives this payout. */ payee_id: string; /** * Key of the company payout type used for this payout. List valid keys with GET * /scheduled-payout-types/. */ payout_type_id: string; /** * Date the payout becomes eligible for release, as YYYY-MM-DD. */ scheduled_date: string; /** * Lifecycle status. Before scheduling: DRAFT, PENDING_APPROVAL, APPROVAL_REJECTED. * SCHEDULED: waiting for scheduled_date and its release conditions. * EVALUATION_FAILED: release conditions could not be evaluated and will be * retried; editable like SCHEDULED. RELEASED: sent to payroll and locked. * PAYROLL_RETRACT_IN_PROGRESS: being removed from payroll. Terminal: PAID, * FORFEITED (release conditions not met), CANCELLED. */ status: 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVAL_REJECTED' | 'SCHEDULED' | 'RELEASED' | 'PAYROLL_RETRACT_IN_PROGRESS' | 'PAID' | 'FORFEITED' | 'EVALUATION_FAILED' | 'CANCELLED'; /** * When the payout was last updated, as an ISO 8601 UTC timestamp. */ updated_at: string; /** * Reason provided when the payout was cancelled. */ cancel_reason?: string; /** * Optional payout description. */ description?: string; /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ group_label?: ScheduledPayoutListResponse.GroupLabel; /** * ID of the group label attached to the payout. */ group_label_id?: string; /** * Optional payout name. */ name?: string; /** * Payroll earning code resolved from the payout type's mapping for the payee's * payroll entity. While the payout is open, reads reflect the current mapping; * from RELEASED, PAYROLL_RETRACT_IN_PROGRESS, PAID, FORFEITED, CANCELLED, or * APPROVAL_REJECTED onward it is the value stored at that transition. Payouts not * paid through Rippling payroll return the stored value, which may be null. */ pay_classification?: string; /** * Worker who receives this payout. Populated only with expand=payee, which * requires workers.read. */ payee?: WorkersAPI.Worker; /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ payout_type?: ScheduledPayoutListResponse.PayoutType; /** * Paystub identifier when the payout has been synced to payroll. */ paystub_id?: string; /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ source_label?: ScheduledPayoutListResponse.SourceLabel; /** * ID of the source label attached to the payout. */ source_label_id?: string; } export declare namespace ScheduledPayoutListResponse { /** * Payout amount in the worker's base currency. */ interface AmountBase { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Payout amount converted to USD. */ interface AmountUsd { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ interface GroupLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ interface PayoutType { /** * Unique identifier of the payout type, used in /scheduled-payout-types/{id}/ * paths. Always equal to key; both are returned because every resource exposes id * while payouts reference types by key (payout_type_id). */ id: string; /** * Display name of the payout type. */ display_name: string; /** * Whether this is a built-in payout type. */ is_system: boolean; /** * Stable payout type key assigned by the server on create. */ key: string; /** * Worker who created this custom payout type. Populated only with * expand=created_by, which requires workers.read. */ created_by?: WorkersAPI.Worker; /** * ID of the worker who created this custom payout type; null for built-in types. */ created_by_id?: string; } /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ interface SourceLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } } export interface ScheduledPayoutCreateResponse { /** * Unique identifier of the payout. */ id: string; /** * Payout amount in the worker's base currency. */ amount_base: ScheduledPayoutCreateResponse.AmountBase; /** * Payout amount converted to USD. */ amount_usd: ScheduledPayoutCreateResponse.AmountUsd; /** * System that owns the payout; together with external_id it is the upsert * identity. CUSTOM: created by an integrator through this API (the only value * accepted on create). Rippling-generated, read-only here: VC_PLAN_CYCLE and * VC_EVENT_DRIVEN_PLAN (variable compensation plans), MANUAL_PAYOUT (entered in * Rippling), HRIS_SIGN_ON (new-hire sign-on bonuses), OFFLINE_RECOMMENDATION and * NEW_HIRE_AGENT (Rippling recommendations). */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * When the payout was created, as an ISO 8601 UTC timestamp. */ created_at: string; /** * Last day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_end_date: string; /** * First day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_start_date: string; /** * External identifier unique per company and client. */ external_id: string; /** * ID of the worker who receives this payout. */ payee_id: string; /** * Key of the company payout type used for this payout. List valid keys with GET * /scheduled-payout-types/. */ payout_type_id: string; /** * Date the payout becomes eligible for release, as YYYY-MM-DD. */ scheduled_date: string; /** * Lifecycle status. Before scheduling: DRAFT, PENDING_APPROVAL, APPROVAL_REJECTED. * SCHEDULED: waiting for scheduled_date and its release conditions. * EVALUATION_FAILED: release conditions could not be evaluated and will be * retried; editable like SCHEDULED. RELEASED: sent to payroll and locked. * PAYROLL_RETRACT_IN_PROGRESS: being removed from payroll. Terminal: PAID, * FORFEITED (release conditions not met), CANCELLED. */ status: 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVAL_REJECTED' | 'SCHEDULED' | 'RELEASED' | 'PAYROLL_RETRACT_IN_PROGRESS' | 'PAID' | 'FORFEITED' | 'EVALUATION_FAILED' | 'CANCELLED'; /** * When the payout was last updated, as an ISO 8601 UTC timestamp. */ updated_at: string; /** * Reason provided when the payout was cancelled. */ cancel_reason?: string; /** * Optional payout description. */ description?: string; /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ group_label?: ScheduledPayoutCreateResponse.GroupLabel; /** * ID of the group label attached to the payout. */ group_label_id?: string; /** * Optional payout name. */ name?: string; /** * Payroll earning code resolved from the payout type's mapping for the payee's * payroll entity. While the payout is open, reads reflect the current mapping; * from RELEASED, PAYROLL_RETRACT_IN_PROGRESS, PAID, FORFEITED, CANCELLED, or * APPROVAL_REJECTED onward it is the value stored at that transition. Payouts not * paid through Rippling payroll return the stored value, which may be null. */ pay_classification?: string; /** * Worker who receives this payout. Populated only with expand=payee, which * requires workers.read. */ payee?: WorkersAPI.Worker; /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ payout_type?: ScheduledPayoutCreateResponse.PayoutType; /** * Paystub identifier when the payout has been synced to payroll. */ paystub_id?: string; /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ source_label?: ScheduledPayoutCreateResponse.SourceLabel; /** * ID of the source label attached to the payout. */ source_label_id?: string; } export declare namespace ScheduledPayoutCreateResponse { /** * Payout amount in the worker's base currency. */ interface AmountBase { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Payout amount converted to USD. */ interface AmountUsd { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ interface GroupLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ interface PayoutType { /** * Unique identifier of the payout type, used in /scheduled-payout-types/{id}/ * paths. Always equal to key; both are returned because every resource exposes id * while payouts reference types by key (payout_type_id). */ id: string; /** * Display name of the payout type. */ display_name: string; /** * Whether this is a built-in payout type. */ is_system: boolean; /** * Stable payout type key assigned by the server on create. */ key: string; /** * Worker who created this custom payout type. Populated only with * expand=created_by, which requires workers.read. */ created_by?: WorkersAPI.Worker; /** * ID of the worker who created this custom payout type; null for built-in types. */ created_by_id?: string; } /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ interface SourceLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } } /** * Meta information for the response. */ export interface ScheduledPayoutRetrieveResponse extends BusinessPartnersAPI.Meta { /** * Unique identifier of the payout. */ id: string; /** * Payout amount in the worker's base currency. */ amount_base: ScheduledPayoutRetrieveResponse.AmountBase; /** * Payout amount converted to USD. */ amount_usd: ScheduledPayoutRetrieveResponse.AmountUsd; /** * System that owns the payout; together with external_id it is the upsert * identity. CUSTOM: created by an integrator through this API (the only value * accepted on create). Rippling-generated, read-only here: VC_PLAN_CYCLE and * VC_EVENT_DRIVEN_PLAN (variable compensation plans), MANUAL_PAYOUT (entered in * Rippling), HRIS_SIGN_ON (new-hire sign-on bonuses), OFFLINE_RECOMMENDATION and * NEW_HIRE_AGENT (Rippling recommendations). */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * When the payout was created, as an ISO 8601 UTC timestamp. */ created_at: string; /** * Last day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_end_date: string; /** * First day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_start_date: string; /** * External identifier unique per company and client. */ external_id: string; /** * ID of the worker who receives this payout. */ payee_id: string; /** * Key of the company payout type used for this payout. List valid keys with GET * /scheduled-payout-types/. */ payout_type_id: string; /** * Date the payout becomes eligible for release, as YYYY-MM-DD. */ scheduled_date: string; /** * Lifecycle status. Before scheduling: DRAFT, PENDING_APPROVAL, APPROVAL_REJECTED. * SCHEDULED: waiting for scheduled_date and its release conditions. * EVALUATION_FAILED: release conditions could not be evaluated and will be * retried; editable like SCHEDULED. RELEASED: sent to payroll and locked. * PAYROLL_RETRACT_IN_PROGRESS: being removed from payroll. Terminal: PAID, * FORFEITED (release conditions not met), CANCELLED. */ status: 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVAL_REJECTED' | 'SCHEDULED' | 'RELEASED' | 'PAYROLL_RETRACT_IN_PROGRESS' | 'PAID' | 'FORFEITED' | 'EVALUATION_FAILED' | 'CANCELLED'; /** * When the payout was last updated, as an ISO 8601 UTC timestamp. */ updated_at: string; /** * Reason provided when the payout was cancelled. */ cancel_reason?: string; /** * Optional payout description. */ description?: string; /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ group_label?: ScheduledPayoutRetrieveResponse.GroupLabel; /** * ID of the group label attached to the payout. */ group_label_id?: string; /** * Optional payout name. */ name?: string; /** * Payroll earning code resolved from the payout type's mapping for the payee's * payroll entity. While the payout is open, reads reflect the current mapping; * from RELEASED, PAYROLL_RETRACT_IN_PROGRESS, PAID, FORFEITED, CANCELLED, or * APPROVAL_REJECTED onward it is the value stored at that transition. Payouts not * paid through Rippling payroll return the stored value, which may be null. */ pay_classification?: string; /** * Worker who receives this payout. Populated only with expand=payee, which * requires workers.read. */ payee?: WorkersAPI.Worker; /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ payout_type?: ScheduledPayoutRetrieveResponse.PayoutType; /** * Paystub identifier when the payout has been synced to payroll. */ paystub_id?: string; /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ source_label?: ScheduledPayoutRetrieveResponse.SourceLabel; /** * ID of the source label attached to the payout. */ source_label_id?: string; } export declare namespace ScheduledPayoutRetrieveResponse { /** * Payout amount in the worker's base currency. */ interface AmountBase { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Payout amount converted to USD. */ interface AmountUsd { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ interface GroupLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ interface PayoutType { /** * Unique identifier of the payout type, used in /scheduled-payout-types/{id}/ * paths. Always equal to key; both are returned because every resource exposes id * while payouts reference types by key (payout_type_id). */ id: string; /** * Display name of the payout type. */ display_name: string; /** * Whether this is a built-in payout type. */ is_system: boolean; /** * Stable payout type key assigned by the server on create. */ key: string; /** * Worker who created this custom payout type. Populated only with * expand=created_by, which requires workers.read. */ created_by?: WorkersAPI.Worker; /** * ID of the worker who created this custom payout type; null for built-in types. */ created_by_id?: string; } /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ interface SourceLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } } export interface ScheduledPayoutCancelResponse { /** * Unique identifier of the payout. */ id: string; /** * Payout amount in the worker's base currency. */ amount_base: ScheduledPayoutCancelResponse.AmountBase; /** * Payout amount converted to USD. */ amount_usd: ScheduledPayoutCancelResponse.AmountUsd; /** * System that owns the payout; together with external_id it is the upsert * identity. CUSTOM: created by an integrator through this API (the only value * accepted on create). Rippling-generated, read-only here: VC_PLAN_CYCLE and * VC_EVENT_DRIVEN_PLAN (variable compensation plans), MANUAL_PAYOUT (entered in * Rippling), HRIS_SIGN_ON (new-hire sign-on bonuses), OFFLINE_RECOMMENDATION and * NEW_HIRE_AGENT (Rippling recommendations). */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * When the payout was created, as an ISO 8601 UTC timestamp. */ created_at: string; /** * Last day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_end_date: string; /** * First day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_start_date: string; /** * External identifier unique per company and client. */ external_id: string; /** * ID of the worker who receives this payout. */ payee_id: string; /** * Key of the company payout type used for this payout. List valid keys with GET * /scheduled-payout-types/. */ payout_type_id: string; /** * Date the payout becomes eligible for release, as YYYY-MM-DD. */ scheduled_date: string; /** * Lifecycle status. Before scheduling: DRAFT, PENDING_APPROVAL, APPROVAL_REJECTED. * SCHEDULED: waiting for scheduled_date and its release conditions. * EVALUATION_FAILED: release conditions could not be evaluated and will be * retried; editable like SCHEDULED. RELEASED: sent to payroll and locked. * PAYROLL_RETRACT_IN_PROGRESS: being removed from payroll. Terminal: PAID, * FORFEITED (release conditions not met), CANCELLED. */ status: 'DRAFT' | 'PENDING_APPROVAL' | 'APPROVAL_REJECTED' | 'SCHEDULED' | 'RELEASED' | 'PAYROLL_RETRACT_IN_PROGRESS' | 'PAID' | 'FORFEITED' | 'EVALUATION_FAILED' | 'CANCELLED'; /** * When the payout was last updated, as an ISO 8601 UTC timestamp. */ updated_at: string; /** * Reason provided when the payout was cancelled. */ cancel_reason?: string; /** * Optional payout description. */ description?: string; /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ group_label?: ScheduledPayoutCancelResponse.GroupLabel; /** * ID of the group label attached to the payout. */ group_label_id?: string; /** * Optional payout name. */ name?: string; /** * Payroll earning code resolved from the payout type's mapping for the payee's * payroll entity. While the payout is open, reads reflect the current mapping; * from RELEASED, PAYROLL_RETRACT_IN_PROGRESS, PAID, FORFEITED, CANCELLED, or * APPROVAL_REJECTED onward it is the value stored at that transition. Payouts not * paid through Rippling payroll return the stored value, which may be null. */ pay_classification?: string; /** * Worker who receives this payout. Populated only with expand=payee, which * requires workers.read. */ payee?: WorkersAPI.Worker; /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ payout_type?: ScheduledPayoutCancelResponse.PayoutType; /** * Paystub identifier when the payout has been synced to payroll. */ paystub_id?: string; /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ source_label?: ScheduledPayoutCancelResponse.SourceLabel; /** * ID of the source label attached to the payout. */ source_label_id?: string; } export declare namespace ScheduledPayoutCancelResponse { /** * Payout amount in the worker's base currency. */ interface AmountBase { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Payout amount converted to USD. */ interface AmountUsd { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Group label attached to the payout. Populated only with expand=group_label, * which requires scheduled-payout-labels.read. */ interface GroupLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } /** * Payout type used for this payout. Populated only with expand=payout_type, which * requires scheduled-payout-types.read. */ interface PayoutType { /** * Unique identifier of the payout type, used in /scheduled-payout-types/{id}/ * paths. Always equal to key; both are returned because every resource exposes id * while payouts reference types by key (payout_type_id). */ id: string; /** * Display name of the payout type. */ display_name: string; /** * Whether this is a built-in payout type. */ is_system: boolean; /** * Stable payout type key assigned by the server on create. */ key: string; /** * Worker who created this custom payout type. Populated only with * expand=created_by, which requires workers.read. */ created_by?: WorkersAPI.Worker; /** * ID of the worker who created this custom payout type; null for built-in types. */ created_by_id?: string; } /** * Source label attached to the payout. Populated only with expand=source_label, * which requires scheduled-payout-labels.read. */ interface SourceLabel { /** * Unique identifier of the payout label. */ id: string; /** * System that owns the label; together with external_id it is the label identity. * Same values as the payout client. */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * External identifier unique per company and client. */ external_id: string; /** * Display name of the label. */ name: string; } } export interface ScheduledPayoutListParams { /** * Opaque pagination cursor from the previous page's next_link. */ cursor?: string; /** * Comma-separated relationships to include: payee (requires workers.read), * payout_type (requires scheduled-payout-types.read), source_label and group_label * (require scheduled-payout-labels.read). Retrieve accepts the same values. */ expand?: string; /** * String equality filters joined by and. Supported fields: payee_id, client, * external_id, status, source_label_id, group_label_id. payout_type_id is returned * but not filterable. */ filter?: string; /** * Page size. Defaults to 50. Maximum 100. */ limit?: number; } export interface ScheduledPayoutCreateParams { /** * Payout amount in the worker's base currency. */ amount_base: ScheduledPayoutCreateParams.AmountBase; /** * Payout amount converted to USD. */ amount_usd: ScheduledPayoutCreateParams.AmountUsd; /** * System that owns the payout; together with external_id it is the upsert * identity. CUSTOM: created by an integrator through this API (the only value * accepted on create). Rippling-generated, read-only here: VC_PLAN_CYCLE and * VC_EVENT_DRIVEN_PLAN (variable compensation plans), MANUAL_PAYOUT (entered in * Rippling), HRIS_SIGN_ON (new-hire sign-on bonuses), OFFLINE_RECOMMENDATION and * NEW_HIRE_AGENT (Rippling recommendations). */ client: 'VC_PLAN_CYCLE' | 'VC_EVENT_DRIVEN_PLAN' | 'CUSTOM' | 'MANUAL_PAYOUT' | 'HRIS_SIGN_ON' | 'OFFLINE_RECOMMENDATION' | 'NEW_HIRE_AGENT'; /** * Last day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_end_date: string; /** * First day of the period the payout covers, as YYYY-MM-DD (inclusive). */ effective_start_date: string; /** * External identifier unique per company and client. */ external_id: string; /** * ID of the worker who receives this payout. */ payee_id: string; /** * Key of the company payout type used for this payout. List valid keys with GET * /scheduled-payout-types/. */ payout_type_id: string; /** * Date the payout becomes eligible for release, as YYYY-MM-DD. */ scheduled_date: string; /** * Optional payout description. */ description?: string; /** * ID of the group label attached to the payout. */ group_label_id?: string; /** * Optional payout name. */ name?: string; /** * ID of the source label attached to the payout. */ source_label_id?: string; } export declare namespace ScheduledPayoutCreateParams { /** * Payout amount in the worker's base currency. */ interface AmountBase { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Payout amount converted to USD. */ interface AmountUsd { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } export interface ScheduledPayoutCancelParams { /** * Why the payout is being cancelled. Stored on the payout as cancel_reason. */ reason: string; } export declare namespace ScheduledPayouts { export { type ScheduledPayoutListResponse as ScheduledPayoutListResponse, type ScheduledPayoutCreateResponse as ScheduledPayoutCreateResponse, type ScheduledPayoutRetrieveResponse as ScheduledPayoutRetrieveResponse, type ScheduledPayoutCancelResponse as ScheduledPayoutCancelResponse, type ScheduledPayoutListResponsesPageCursorURL as ScheduledPayoutListResponsesPageCursorURL, type ScheduledPayoutListParams as ScheduledPayoutListParams, type ScheduledPayoutCreateParams as ScheduledPayoutCreateParams, type ScheduledPayoutCancelParams as ScheduledPayoutCancelParams, }; } //# sourceMappingURL=scheduled-payouts.d.ts.map