import { APIResource } from "../core/resource.mjs"; import * as BusinessPartnersAPI from "./business-partners.mjs"; import * as WorkersAPI from "./workers.mjs"; import { APIPromise } from "../core/api-promise.mjs"; import { PageCursorURL, PagePromise } from "../core/pagination.mjs"; import { type Uploadable } from "../core/uploads.mjs"; import { RequestOptions } from "../internal/request-options.mjs"; /** * Expense reimbursements, including mileage and per diem */ export declare class Reimbursements extends APIResource { /** * A list of reimbursements. * * - Requires: `Spend Management Platform API` * - Filterable fields: `worker_id`, `entity_id`, `vendor_id`, `transaction_date`, * `transaction_type` * - Expandable fields: `worker`, `vendor`, `mileage_rate`, `per_diem_rate` * - Sortable fields: `id`, `created_at`, `updated_at`, `transaction_date` * * @example HTTP * Representative request and response shapes. * ``` * GET /reimbursements/?filter=filter&expand=expand&order_by=order_by&limit=50&cursor=cursor 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", * "created_at": "string", * "updated_at": "string", * "worker_id": "string", * "worker": { * "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": [] * }, * "company_amount": { * "currency_type": "string", * "value": "string" * }, * "merchant_amount": { * "currency_type": "string", * "value": "string" * }, * "accounting_date": "string", * "gl_sync_state": "NOT_FINALIZED", * "approval_status": "DRAFT", * "entity_id": "string", * "vendor": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "logo": "string", * "is_archived": "string" * }, * "gl_vendor": { * "id": "string", * "name": "string", * "gl_vendor_id": "string" * }, * "memo": "string", * "attachments": [ * {} * ], * "line_items": [ * {} * ], * "vendor_id": "string", * "transaction_date": "string", * "receipt": { * "url": "string", * "file_name": "string" * }, * "transaction_type": "REIMBURSEMENT", * "payout_amount": { * "currency_type": "string", * "value": "string" * }, * "payout_method": "NOT_SET", * "payout_date": "string", * "distance": 0, * "mileage_rate_id": "string", * "mileage_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "rate": {}, * "units": "km", * "start_date": "string", * "end_date": "string", * "country": "string", * "half_cent": "string" * }, * "start_location": { * "address": "string", * "coordinates": {} * }, * "end_location": { * "address": "string", * "coordinates": {} * }, * "waypoints": [ * {} * ], * "trip_start_date": "string", * "trip_end_date": "string", * "per_diem_rate_id": "string", * "per_diem_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "destination_name": "string", * "country": "string", * "currency": "string", * "start_date": "string", * "end_date": "string", * "is_current": "string", * "is_archived": "string" * }, * "per_diem_line_items": [ * {} * ] * } * ], * "next_link": "string" * } * ``` */ list(query?: ReimbursementListParams | null | undefined, options?: RequestOptions): PagePromise; /** * Retrieve a specific reimbursement. Expandable fields: `worker`, `vendor`, * `mileage_rate`, `per_diem_rate`. * * @example HTTP * Representative request and response shapes. * ``` * GET /reimbursements/{id}/?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": [ * {} * ] * } * } * ``` */ retrieve(id: string, query?: ReimbursementRetrieveParams | null | undefined, options?: RequestOptions): APIPromise; /** * Replace a reimbursement's line items. Supplying `line_items` replaces the entire * list: unlisted lines are deleted, omitted or null optional fields on supplied * lines are cleared. `amount` and `tax_amount` are decimal strings in the merchant * currency; GET responses return them as Currency objects. Line item `amount` * values must sum to the reimbursement's merchant amount. Line items on per-diem * reimbursements cannot be updated. Mileage reimbursements must have exactly one * line item. * * @example HTTP * Representative request and response shapes. * ``` * PATCH /reimbursements/{id}/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: application/json * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * {} * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "created_at": "string", * "updated_at": "string", * "worker_id": "string", * "worker": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "company_amount": {}, * "merchant_amount": { * "currency_type": "string", * "value": 0 * }, * "accounting_date": "string", * "gl_sync_state": "NOT_FINALIZED", * "approval_status": "DRAFT", * "entity_id": "string", * "vendor": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "logo": "string", * "is_archived": false * }, * "gl_vendor": { * "id": "string", * "name": "string", * "gl_vendor_id": "string" * }, * "memo": "string", * "attachments": [ * { * "url": "string", * "file_name": "string", * "uploaded_at": "string", * "uploaded_by_id": "string" * } * ], * "line_items": [ * { * "gl_customer": "string", * "gl_billable": "BILLABLE", * "dimension_choices": {}, * "memo": "string", * "gl_amortization_template": { * "gl_object_id": "string", * "accounting_integration_id": "string", * "name": "string", * "gl_object_type": "GL_AMORTIZATION_TEMPLATE" * }, * "amortized": false, * "start_date": "string", * "end_date": "string", * "prepaid_account": { * "account_id": "string", * "name": "string", * "code": "string", * "type": "RECEIVABLE", * "required_custom_dimensions": [], * "requires_department": "string", * "requires_work_location": "string" * }, * "gl_amortization_schedule": { * "gl_object_id": "string", * "accounting_integration_id": "string", * "name": "string", * "gl_object_type": "GL_AMORTIZATION_TEMPLATE", * "start_date": "string", * "end_date": "string", * "total_amount": "string", * "total_amortized_amount": "string", * "amortization_period": "string", * "status": "NOT_STARTED" * }, * "gl_tax_code": "string", * "id": "string", * "category_id": "string", * "category_name": "string", * "amount": { * "currency_type": "string", * "value": "string" * }, * "tax_amount": { * "currency_type": "string", * "value": "string" * } * } * ], * "vendor_id": "string", * "transaction_date": "string", * "receipt": { * "url": "string", * "file_name": "string" * }, * "transaction_type": "REIMBURSEMENT", * "payout_amount": { * "currency_type": "string", * "value": 0 * }, * "payout_method": "NOT_SET", * "payout_date": "string", * "distance": 0, * "mileage_rate_id": "string", * "mileage_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "rate": { * "currency_type": "string", * "value": 0 * }, * "units": "km", * "start_date": "string", * "end_date": "string", * "country": "string", * "half_cent": false * }, * "start_location": { * "address": "string", * "coordinates": { * "latitude": 0, * "longitude": 0 * } * }, * "end_location": { * "address": "string", * "coordinates": { * "latitude": 0, * "longitude": 0 * } * }, * "waypoints": [ * { * "address": "string", * "coordinates": { * "latitude": "string", * "longitude": "string" * } * } * ], * "trip_start_date": "string", * "trip_end_date": "string", * "per_diem_rate_id": "string", * "per_diem_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "destination_name": "string", * "country": "string", * "currency": "string", * "start_date": "string", * "end_date": "string", * "is_current": false, * "is_archived": false * }, * "per_diem_line_items": [ * { * "sub_rate_id": "string", * "sub_rate_type": "FULL_DAY", * "label": "string", * "amount": { * "currency_type": "string", * "value": "string" * }, * "count": 0, * "line_type": "INCLUDE", * "calculated_amount": { * "currency_type": "string", * "value": "string" * } * } * ] * } * ``` */ update(id: string, body?: ReimbursementUpdateParams | null | undefined, options?: RequestOptions): APIPromise; /** * Send the receipt file as `multipart/form-data` in a `file` field. It is stored * and attached in a single request, replacing the existing receipt, so a retried * request does not add a second receipt. Reimbursements that are paid out, * finalized, or failed cannot be changed. * * The receipt is attached without scanning or populating reimbursement fields from * its contents. Returns the updated reimbursement in the same shape as * `GET /reimbursements/{id}/`, with the new receipt in `receipt`. For a PDF, * `receipt` is an image of its first page; the original PDF is not returned yet. * * @example HTTP * Representative request and response shapes. * ``` * POST /reimbursements/{id}/receipts/ HTTP/1.1 * Host: rest.ripplingapis.com * Content-Type: multipart/form-data * Accept: application/json * Rippling-Api-Version: 2024-08-01 * * * * HTTP/1.1 200 OK * Content-Type: application/json * * { * "id": "string", * "created_at": "string", * "updated_at": "string", * "worker_id": "string", * "worker": { * "id": "string", * "created_at": "string", * "updated_at": "string" * }, * "company_amount": {}, * "merchant_amount": { * "currency_type": "string", * "value": 0 * }, * "accounting_date": "string", * "gl_sync_state": "NOT_FINALIZED", * "approval_status": "DRAFT", * "entity_id": "string", * "vendor": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "logo": "string", * "is_archived": false * }, * "gl_vendor": { * "id": "string", * "name": "string", * "gl_vendor_id": "string" * }, * "memo": "string", * "attachments": [ * { * "url": "string", * "file_name": "string", * "uploaded_at": "string", * "uploaded_by_id": "string" * } * ], * "line_items": [ * { * "gl_customer": "string", * "gl_billable": "BILLABLE", * "dimension_choices": {}, * "memo": "string", * "gl_amortization_template": { * "gl_object_id": "string", * "accounting_integration_id": "string", * "name": "string", * "gl_object_type": "GL_AMORTIZATION_TEMPLATE" * }, * "amortized": false, * "start_date": "string", * "end_date": "string", * "prepaid_account": { * "account_id": "string", * "name": "string", * "code": "string", * "type": "RECEIVABLE", * "required_custom_dimensions": [], * "requires_department": "string", * "requires_work_location": "string" * }, * "gl_amortization_schedule": { * "gl_object_id": "string", * "accounting_integration_id": "string", * "name": "string", * "gl_object_type": "GL_AMORTIZATION_TEMPLATE", * "start_date": "string", * "end_date": "string", * "total_amount": "string", * "total_amortized_amount": "string", * "amortization_period": "string", * "status": "NOT_STARTED" * }, * "gl_tax_code": "string", * "id": "string", * "category_id": "string", * "category_name": "string", * "amount": { * "currency_type": "string", * "value": "string" * }, * "tax_amount": { * "currency_type": "string", * "value": "string" * } * } * ], * "vendor_id": "string", * "transaction_date": "string", * "receipt": { * "url": "string", * "file_name": "string" * }, * "transaction_type": "REIMBURSEMENT", * "payout_amount": { * "currency_type": "string", * "value": 0 * }, * "payout_method": "NOT_SET", * "payout_date": "string", * "distance": 0, * "mileage_rate_id": "string", * "mileage_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "name": "string", * "rate": { * "currency_type": "string", * "value": 0 * }, * "units": "km", * "start_date": "string", * "end_date": "string", * "country": "string", * "half_cent": false * }, * "start_location": { * "address": "string", * "coordinates": { * "latitude": 0, * "longitude": 0 * } * }, * "end_location": { * "address": "string", * "coordinates": { * "latitude": 0, * "longitude": 0 * } * }, * "waypoints": [ * { * "address": "string", * "coordinates": { * "latitude": "string", * "longitude": "string" * } * } * ], * "trip_start_date": "string", * "trip_end_date": "string", * "per_diem_rate_id": "string", * "per_diem_rate": { * "id": "string", * "created_at": "string", * "updated_at": "string", * "destination_name": "string", * "country": "string", * "currency": "string", * "start_date": "string", * "end_date": "string", * "is_current": false, * "is_archived": false * }, * "per_diem_line_items": [ * { * "sub_rate_id": "string", * "sub_rate_type": "FULL_DAY", * "label": "string", * "amount": { * "currency_type": "string", * "value": "string" * }, * "count": 0, * "line_type": "INCLUDE", * "calculated_amount": { * "currency_type": "string", * "value": "string" * } * } * ] * } * ``` */ uploadReceipt(id: string, body: ReimbursementUploadReceiptParams, options?: RequestOptions): APIPromise; } export type ReimbursementListResponsesPageCursorURL = PageCursorURL; /** * A Finance reimbursement the caller can see. * * A reimbursement is an expense the worker paid and the company pays back. Mileage and per diem * use the same resource, with transaction_type MILEAGE_REIMBURSEMENT or PER_DIEM_REIMBURSEMENT. * Retrieve returns one by ID. A reimbursement the caller cannot see returns 404, the same as one * that does not exist. PATCH `/reimbursements/{id}/` accepts only `line_items` and replaces the entire list. * Request `amount` and `tax_amount` are decimal strings (for example `"75.00"`), not Currency * objects. GET responses return those fields as Currency objects (`currency_type` + `value`). * The sum of request `amount` values must equal the reimbursement's merchant amount. */ export interface ReimbursementListResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Date the transaction is booked in the accounting system, as an ISO 8601 date * (YYYY-MM-DD). */ accounting_date?: string; /** * Approval status of the transaction. `DRAFT`: not submitted for approval. * `PENDING`: awaiting required information or submission before approval. * `REQUESTED`: submitted and awaiting approval. `APPROVED`: approved. `REJECTED`: * rejected. `FINALIZED`: finalized for payment. `ACTIONED`: payment or * reimbursement completed. `CANCELLED`: cancelled. `FAILED`: payment failed. Null * for card authorizations. */ approval_status?: 'DRAFT' | 'PENDING' | 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'FINALIZED' | 'ACTIONED' | 'CANCELLED' | 'FAILED'; /** * Other attached files, including filenames and recorded upload metadata. */ attachments?: Array; /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ company_amount?: ReimbursementListResponse.CompanyAmount; /** * Trip length in mileage_rate.units. Null except on mileage reimbursements. */ distance?: number; /** * End of a mileage trip. Null except on mileage reimbursements. */ end_location?: ReimbursementListResponse.EndLocation; /** * ID of the legal entity the transaction belongs to. Use it with * `/company-legal-entities/{id}/`. */ entity_id?: string; /** * State of the sync to the accounting system. `NOT_FINALIZED`: not ready for * accounting review. `FOR_REVIEW`: ready for accounting review. `PENDING_SYNC`: * sync is in progress. `SYNCED`: synced to the accounting system. `ERROR`: sync * failed. `DO_NOT_SYNC`: marked to be excluded from sync. `EXPORTED`: exported for * accounting. `NOT_SYNCABLE`: this record cannot be synced. `AUTO_SYNC`: ready to * be synced automatically. Null when no sync state is set. */ gl_sync_state?: 'NOT_FINALIZED' | 'FOR_REVIEW' | 'PENDING_SYNC' | 'SYNCED' | 'ERROR' | 'DO_NOT_SYNC' | 'EXPORTED' | 'NOT_SYNCABLE' | 'AUTO_SYNC'; /** * Vendor in the connected accounting system. */ gl_vendor?: ReimbursementListResponse.GlVendor; /** * Category splits of the transaction amount. Updates replace the entire list. */ line_items?: Array; /** * Memo entered on the transaction. */ memo?: string; /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ merchant_amount?: ReimbursementListResponse.MerchantAmount; /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ mileage_rate?: ReimbursementListResponse.MileageRate; /** * ID of the company mileage rate. Null except on mileage reimbursements. Resolve * it with `expand=mileage_rate` on this reimbursement using `reimbursements.read`; * there is no standalone rate lookup endpoint. */ mileage_rate_id?: string; /** * Amount credited to the worker. The `value` is a decimal string. */ payout_amount?: ReimbursementListResponse.PayoutAmount; /** * Date the worker is paid, as an ISO 8601 date (YYYY-MM-DD). Null before a run is * assigned. */ payout_date?: string; /** * How the worker is paid. `NOT_SET`: no payout run is assigned. `US_PAYROLL`: * assigned to a US payroll run. `GLOBAL_PAYROLL`: assigned to a global payroll * run. `DIRECT_DEPOSIT`: assigned to a direct deposit run. `EOR`: assigned to an * employer-of-record payroll run. `MANUAL`: marked paid outside a run. If a payout * method override is set, it is returned. */ payout_method?: 'NOT_SET' | 'GLOBAL_PAYROLL' | 'US_PAYROLL' | 'DIRECT_DEPOSIT' | 'EOR' | 'MANUAL'; /** * Per diem sub-rate rows. Null except on per diem reimbursements. */ per_diem_line_items?: Array; /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ per_diem_rate?: ReimbursementListResponse.PerDiemRate; /** * ID of the per diem rate. Null except on per diem reimbursements. Resolve it with * `expand=per_diem_rate` on this reimbursement using `reimbursements.read`; there * is no standalone rate lookup endpoint. */ per_diem_rate_id?: string; /** * Receipt file and its filename. */ receipt?: ReimbursementListResponse.Receipt; /** * Start of a mileage trip. Null except on mileage reimbursements. */ start_location?: ReimbursementListResponse.StartLocation; /** * When the purchase or authorization happened, as an ISO 8601 date-time in UTC. */ transaction_date?: string; /** * `REIMBURSEMENT`: an expense the worker paid and the company pays back. * `MILEAGE_REIMBURSEMENT`: payback for distance driven. `PER_DIEM_REIMBURSEMENT`: * payback for a daily travel allowance. This decides which mileage or per diem * fields are set. */ transaction_type?: 'REIMBURSEMENT' | 'MILEAGE_REIMBURSEMENT' | 'PER_DIEM_REIMBURSEMENT'; /** * Per diem trip end date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_end_date?: string; /** * Per diem trip start date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_start_date?: string; /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ vendor?: ReimbursementListResponse.Vendor; /** * ID of the Finance vendor. Use it with `/finance-vendors/{id}/`. */ vendor_id?: string; /** * List of intermediate stops during the trip, for mileage reimbursements. Null * except on mileage reimbursements. */ waypoints?: Array; /** * Worker details. Expand with `reimbursements.read` and `workers.read`. * * Expandable field */ worker?: WorkersAPI.Worker; /** * ID of the worker who made the transaction. Use it with `/workers/{id}/`. */ worker_id?: string; } export declare namespace ReimbursementListResponse { /** * A Finance transaction attachment with recorded upload details. */ interface Attachment { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; /** * When the attachment was uploaded, as an ISO 8601 date-time in UTC, when * recorded. */ uploaded_at?: string; /** * ID of the worker who uploaded the attachment. Use it with `/workers/{id}/`. */ uploaded_by_id?: string; } /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ interface CompanyAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * End of a mileage trip. Null except on mileage reimbursements. */ interface EndLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: EndLocation.Coordinates; } namespace EndLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor in the connected accounting system. */ interface GlVendor { /** * ID of the accounting vendor in Rippling. */ id?: string; /** * ID of the vendor in the accounting system. */ gl_vendor_id?: string; /** * Name of the vendor in the accounting system. */ name?: string; } interface LineItem { /** * Unique identifier of this line item. Null for older line items that have not * been assigned one yet. */ id?: string; /** * Whether this line is amortized. */ amortized?: boolean; /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ amount?: LineItem.Amount; /** * ID of the Finance category assigned to this split. Use it with * `/finance-categories/{id}/`. The category name is in `category_name`. */ category_id?: string; /** * Name of the finance category. */ category_name?: string; /** * Selected dimension values, keyed by dimension ID. `DEPARTMENT` and * `WORK_LOCATION` are the built-in keys. Get custom dimension IDs from * `/job-dimensions/` and `/job-dimensions/{id}/`. Each choice `value` is a job * code ID from `/job-codes/` and `/job-codes/{id}/`. */ dimension_choices?: { [key: string]: LineItem.DimensionChoices; }; /** * End of the amortization period (YYYY-MM-DD). */ end_date?: string; /** * ERP amortization schedule associated with this line. */ gl_amortization_schedule?: LineItem.GlAmortizationSchedule; /** * ERP amortization template for this line. */ gl_amortization_template?: LineItem.GlAmortizationTemplate; /** * Whether this split is billed to `gl_customer` in the accounting system. * `BILLABLE` means it is billed, `NOT_BILLABLE` means it is not. Null when not * set. */ gl_billable?: 'BILLABLE' | 'NOT_BILLABLE'; /** * ID of the customer record in the connected accounting integration. No public * Rippling API is currently available to retrieve this accounting customer. */ gl_customer?: string; /** * Rippling ID of the accounting tax code. No public Rippling API is currently * available to retrieve this accounting tax code. */ gl_tax_code?: string; /** * Memo entered on this split. */ memo?: string; /** * Prepaid asset account for Rippling-managed amortization. */ prepaid_account?: LineItem.PrepaidAccount; /** * Start of the amortization period (YYYY-MM-DD). */ start_date?: string; /** * Total tax amount for this line in the merchant currency. */ tax_amount?: LineItem.TaxAmount; } namespace LineItem { /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface DimensionChoices { /** * Name of the dimension, such as Department. */ dimension_name?: string; /** * Display name of the selected dimension value. */ label?: string; /** * ID of the selected value. For `DEPARTMENT` use `/departments/{id}/`, for * `WORK_LOCATION` use `/work-locations/{id}/`, and for a custom job dimension use * `/job-codes/{id}/`. */ value?: string; } /** * ERP amortization schedule associated with this line. */ interface GlAmortizationSchedule { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Number of amortization periods. */ amortization_period?: number; /** * End of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-12-31T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ end_date?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; /** * Start of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-01-01T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ start_date?: string; /** * ERP amortization schedule status: NOT_STARTED means amortization has not begun; * IN_PROGRESS means amortization is underway; COMPLETED means amortization is * complete; ON_HOLD means amortization is paused. Null when not set. */ status?: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'ON_HOLD'; /** * Amount already amortized as reported by the ERP, in the same currency as * total_amount. No currency conversion is applied; the schedule currency code is * not available in this response. */ total_amortized_amount?: number; /** * Total schedule amount as reported by the ERP, without currency conversion. The * schedule currency code is not available in this response. */ total_amount?: number; } /** * ERP amortization template for this line. */ interface GlAmortizationTemplate { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; } /** * Prepaid asset account for Rippling-managed amortization. */ interface PrepaidAccount { /** * Account ID in the connected accounting system. */ account_id?: string; /** * Account code. */ code?: string; /** * Account name. */ name?: string; /** * IDs of custom dimensions required by this account. */ required_custom_dimensions?: Array; /** * Whether this account requires a department. */ requires_department?: boolean; /** * Whether this account requires a work location. */ requires_work_location?: boolean; /** * Accounting account type: RECEIVABLE for accounts receivable, PAYABLE for * accounts payable, EXPENSE for expense accounts, or BANK for bank accounts. Null * when not set. */ type?: 'RECEIVABLE' | 'PAYABLE' | 'EXPENSE' | 'BANK'; } /** * Total tax amount for this line in the merchant currency. */ interface TaxAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ interface MerchantAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ interface MileageRate { /** * Company mileage rate ID. */ id: string; /** * When the mileage rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the mileage rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * ISO 3166-1 alpha-2 country code. */ country?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether an additional half cent per distance unit applies. */ half_cent?: boolean; /** * Company-defined label for this mileage rate, such as the rate used for a country * or vehicle type. */ name?: string; /** * Amount per distance unit. The `value` is a decimal string. */ rate?: MileageRate.Rate; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; /** * Distance unit, mi or km. */ units?: 'km' | 'mi'; } namespace MileageRate { /** * Amount per distance unit. The `value` is a decimal string. */ interface Rate { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount credited to the worker. The `value` is a decimal string. */ interface PayoutAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ amount?: PerDiemLineItem.Amount; /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ calculated_amount?: PerDiemLineItem.CalculatedAmount; /** * How many units. */ count?: number; /** * Sub-rate label. */ label?: string; /** * `INCLUDE`: this row is added to the reimbursement. `EXCLUDE`: this row is * subtracted. `calculated_amount.value` is negative when excluded. */ line_type?: 'INCLUDE' | 'EXCLUDE'; /** * Per diem sub-rate ID. */ sub_rate_id?: string; /** * `FULL_DAY`: the full daily allowance. `MEALS`: the meals portion of the daily * allowance. `OTHERS`: an allowance that is not the full day or meals. */ sub_rate_type?: 'FULL_DAY' | 'MEALS' | 'OTHERS'; } namespace PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ interface CalculatedAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ interface PerDiemRate { /** * Per diem rate ID. */ id: string; /** * When the per diem rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the per diem rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * Country this per diem rate applies to, as an ISO 3166-1 alpha-2 code. Example: * US. */ country?: string; /** * Currency of the per diem rate, as an ISO 4217 code. Example: USD. */ currency?: string; /** * Place this per diem rate applies to, such as a city. */ destination_name?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether the rate is archived. Archived rates remain readable for historical * references. */ is_archived?: boolean; /** * Whether this is the current version of the rate. */ is_current?: boolean; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; } /** * Receipt file and its filename. */ interface Receipt { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; } /** * Start of a mileage trip. Null except on mileage reimbursements. */ interface StartLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: StartLocation.Coordinates; } namespace StartLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ interface Vendor { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Whether the vendor is archived. Archived vendors remain available for historical * references. */ is_archived?: boolean; /** * URL of the vendor's logo. Null when no logo is available. */ logo?: string; /** * Canonical name of the Finance vendor. Name eq, ne, and in filters also match * alternate names. */ name?: string; } /** * Start, end, or intermediate stop on a mileage trip. */ interface Waypoint { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: Waypoint.Coordinates; } namespace Waypoint { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } } /** * Meta information for the response. */ export interface ReimbursementRetrieveResponse extends BusinessPartnersAPI.Meta { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Date the transaction is booked in the accounting system, as an ISO 8601 date * (YYYY-MM-DD). */ accounting_date?: string; /** * Approval status of the transaction. `DRAFT`: not submitted for approval. * `PENDING`: awaiting required information or submission before approval. * `REQUESTED`: submitted and awaiting approval. `APPROVED`: approved. `REJECTED`: * rejected. `FINALIZED`: finalized for payment. `ACTIONED`: payment or * reimbursement completed. `CANCELLED`: cancelled. `FAILED`: payment failed. Null * for card authorizations. */ approval_status?: 'DRAFT' | 'PENDING' | 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'FINALIZED' | 'ACTIONED' | 'CANCELLED' | 'FAILED'; /** * Other attached files, including filenames and recorded upload metadata. */ attachments?: Array; /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ company_amount?: ReimbursementRetrieveResponse.CompanyAmount; /** * Trip length in mileage_rate.units. Null except on mileage reimbursements. */ distance?: number; /** * End of a mileage trip. Null except on mileage reimbursements. */ end_location?: ReimbursementRetrieveResponse.EndLocation; /** * ID of the legal entity the transaction belongs to. Use it with * `/company-legal-entities/{id}/`. */ entity_id?: string; /** * State of the sync to the accounting system. `NOT_FINALIZED`: not ready for * accounting review. `FOR_REVIEW`: ready for accounting review. `PENDING_SYNC`: * sync is in progress. `SYNCED`: synced to the accounting system. `ERROR`: sync * failed. `DO_NOT_SYNC`: marked to be excluded from sync. `EXPORTED`: exported for * accounting. `NOT_SYNCABLE`: this record cannot be synced. `AUTO_SYNC`: ready to * be synced automatically. Null when no sync state is set. */ gl_sync_state?: 'NOT_FINALIZED' | 'FOR_REVIEW' | 'PENDING_SYNC' | 'SYNCED' | 'ERROR' | 'DO_NOT_SYNC' | 'EXPORTED' | 'NOT_SYNCABLE' | 'AUTO_SYNC'; /** * Vendor in the connected accounting system. */ gl_vendor?: ReimbursementRetrieveResponse.GlVendor; /** * Category splits of the transaction amount. Updates replace the entire list. */ line_items?: Array; /** * Memo entered on the transaction. */ memo?: string; /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ merchant_amount?: ReimbursementRetrieveResponse.MerchantAmount; /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ mileage_rate?: ReimbursementRetrieveResponse.MileageRate; /** * ID of the company mileage rate. Null except on mileage reimbursements. Resolve * it with `expand=mileage_rate` on this reimbursement using `reimbursements.read`; * there is no standalone rate lookup endpoint. */ mileage_rate_id?: string; /** * Amount credited to the worker. The `value` is a decimal string. */ payout_amount?: ReimbursementRetrieveResponse.PayoutAmount; /** * Date the worker is paid, as an ISO 8601 date (YYYY-MM-DD). Null before a run is * assigned. */ payout_date?: string; /** * How the worker is paid. `NOT_SET`: no payout run is assigned. `US_PAYROLL`: * assigned to a US payroll run. `GLOBAL_PAYROLL`: assigned to a global payroll * run. `DIRECT_DEPOSIT`: assigned to a direct deposit run. `EOR`: assigned to an * employer-of-record payroll run. `MANUAL`: marked paid outside a run. If a payout * method override is set, it is returned. */ payout_method?: 'NOT_SET' | 'GLOBAL_PAYROLL' | 'US_PAYROLL' | 'DIRECT_DEPOSIT' | 'EOR' | 'MANUAL'; /** * Per diem sub-rate rows. Null except on per diem reimbursements. */ per_diem_line_items?: Array; /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ per_diem_rate?: ReimbursementRetrieveResponse.PerDiemRate; /** * ID of the per diem rate. Null except on per diem reimbursements. Resolve it with * `expand=per_diem_rate` on this reimbursement using `reimbursements.read`; there * is no standalone rate lookup endpoint. */ per_diem_rate_id?: string; /** * Receipt file and its filename. */ receipt?: ReimbursementRetrieveResponse.Receipt; /** * Start of a mileage trip. Null except on mileage reimbursements. */ start_location?: ReimbursementRetrieveResponse.StartLocation; /** * When the purchase or authorization happened, as an ISO 8601 date-time in UTC. */ transaction_date?: string; /** * `REIMBURSEMENT`: an expense the worker paid and the company pays back. * `MILEAGE_REIMBURSEMENT`: payback for distance driven. `PER_DIEM_REIMBURSEMENT`: * payback for a daily travel allowance. This decides which mileage or per diem * fields are set. */ transaction_type?: 'REIMBURSEMENT' | 'MILEAGE_REIMBURSEMENT' | 'PER_DIEM_REIMBURSEMENT'; /** * Per diem trip end date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_end_date?: string; /** * Per diem trip start date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_start_date?: string; /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ vendor?: ReimbursementRetrieveResponse.Vendor; /** * ID of the Finance vendor. Use it with `/finance-vendors/{id}/`. */ vendor_id?: string; /** * List of intermediate stops during the trip, for mileage reimbursements. Null * except on mileage reimbursements. */ waypoints?: Array; /** * Worker details. Expand with `reimbursements.read` and `workers.read`. * * Expandable field */ worker?: WorkersAPI.Worker; /** * ID of the worker who made the transaction. Use it with `/workers/{id}/`. */ worker_id?: string; } export declare namespace ReimbursementRetrieveResponse { /** * A Finance transaction attachment with recorded upload details. */ interface Attachment { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; /** * When the attachment was uploaded, as an ISO 8601 date-time in UTC, when * recorded. */ uploaded_at?: string; /** * ID of the worker who uploaded the attachment. Use it with `/workers/{id}/`. */ uploaded_by_id?: string; } /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ interface CompanyAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * End of a mileage trip. Null except on mileage reimbursements. */ interface EndLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: EndLocation.Coordinates; } namespace EndLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor in the connected accounting system. */ interface GlVendor { /** * ID of the accounting vendor in Rippling. */ id?: string; /** * ID of the vendor in the accounting system. */ gl_vendor_id?: string; /** * Name of the vendor in the accounting system. */ name?: string; } interface LineItem { /** * Unique identifier of this line item. Null for older line items that have not * been assigned one yet. */ id?: string; /** * Whether this line is amortized. */ amortized?: boolean; /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ amount?: LineItem.Amount; /** * ID of the Finance category assigned to this split. Use it with * `/finance-categories/{id}/`. The category name is in `category_name`. */ category_id?: string; /** * Name of the finance category. */ category_name?: string; /** * Selected dimension values, keyed by dimension ID. `DEPARTMENT` and * `WORK_LOCATION` are the built-in keys. Get custom dimension IDs from * `/job-dimensions/` and `/job-dimensions/{id}/`. Each choice `value` is a job * code ID from `/job-codes/` and `/job-codes/{id}/`. */ dimension_choices?: { [key: string]: LineItem.DimensionChoices; }; /** * End of the amortization period (YYYY-MM-DD). */ end_date?: string; /** * ERP amortization schedule associated with this line. */ gl_amortization_schedule?: LineItem.GlAmortizationSchedule; /** * ERP amortization template for this line. */ gl_amortization_template?: LineItem.GlAmortizationTemplate; /** * Whether this split is billed to `gl_customer` in the accounting system. * `BILLABLE` means it is billed, `NOT_BILLABLE` means it is not. Null when not * set. */ gl_billable?: 'BILLABLE' | 'NOT_BILLABLE'; /** * ID of the customer record in the connected accounting integration. No public * Rippling API is currently available to retrieve this accounting customer. */ gl_customer?: string; /** * Rippling ID of the accounting tax code. No public Rippling API is currently * available to retrieve this accounting tax code. */ gl_tax_code?: string; /** * Memo entered on this split. */ memo?: string; /** * Prepaid asset account for Rippling-managed amortization. */ prepaid_account?: LineItem.PrepaidAccount; /** * Start of the amortization period (YYYY-MM-DD). */ start_date?: string; /** * Total tax amount for this line in the merchant currency. */ tax_amount?: LineItem.TaxAmount; } namespace LineItem { /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface DimensionChoices { /** * Name of the dimension, such as Department. */ dimension_name?: string; /** * Display name of the selected dimension value. */ label?: string; /** * ID of the selected value. For `DEPARTMENT` use `/departments/{id}/`, for * `WORK_LOCATION` use `/work-locations/{id}/`, and for a custom job dimension use * `/job-codes/{id}/`. */ value?: string; } /** * ERP amortization schedule associated with this line. */ interface GlAmortizationSchedule { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Number of amortization periods. */ amortization_period?: number; /** * End of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-12-31T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ end_date?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; /** * Start of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-01-01T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ start_date?: string; /** * ERP amortization schedule status: NOT_STARTED means amortization has not begun; * IN_PROGRESS means amortization is underway; COMPLETED means amortization is * complete; ON_HOLD means amortization is paused. Null when not set. */ status?: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'ON_HOLD'; /** * Amount already amortized as reported by the ERP, in the same currency as * total_amount. No currency conversion is applied; the schedule currency code is * not available in this response. */ total_amortized_amount?: number; /** * Total schedule amount as reported by the ERP, without currency conversion. The * schedule currency code is not available in this response. */ total_amount?: number; } /** * ERP amortization template for this line. */ interface GlAmortizationTemplate { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; } /** * Prepaid asset account for Rippling-managed amortization. */ interface PrepaidAccount { /** * Account ID in the connected accounting system. */ account_id?: string; /** * Account code. */ code?: string; /** * Account name. */ name?: string; /** * IDs of custom dimensions required by this account. */ required_custom_dimensions?: Array; /** * Whether this account requires a department. */ requires_department?: boolean; /** * Whether this account requires a work location. */ requires_work_location?: boolean; /** * Accounting account type: RECEIVABLE for accounts receivable, PAYABLE for * accounts payable, EXPENSE for expense accounts, or BANK for bank accounts. Null * when not set. */ type?: 'RECEIVABLE' | 'PAYABLE' | 'EXPENSE' | 'BANK'; } /** * Total tax amount for this line in the merchant currency. */ interface TaxAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ interface MerchantAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ interface MileageRate { /** * Company mileage rate ID. */ id: string; /** * When the mileage rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the mileage rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * ISO 3166-1 alpha-2 country code. */ country?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether an additional half cent per distance unit applies. */ half_cent?: boolean; /** * Company-defined label for this mileage rate, such as the rate used for a country * or vehicle type. */ name?: string; /** * Amount per distance unit. The `value` is a decimal string. */ rate?: MileageRate.Rate; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; /** * Distance unit, mi or km. */ units?: 'km' | 'mi'; } namespace MileageRate { /** * Amount per distance unit. The `value` is a decimal string. */ interface Rate { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount credited to the worker. The `value` is a decimal string. */ interface PayoutAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ amount?: PerDiemLineItem.Amount; /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ calculated_amount?: PerDiemLineItem.CalculatedAmount; /** * How many units. */ count?: number; /** * Sub-rate label. */ label?: string; /** * `INCLUDE`: this row is added to the reimbursement. `EXCLUDE`: this row is * subtracted. `calculated_amount.value` is negative when excluded. */ line_type?: 'INCLUDE' | 'EXCLUDE'; /** * Per diem sub-rate ID. */ sub_rate_id?: string; /** * `FULL_DAY`: the full daily allowance. `MEALS`: the meals portion of the daily * allowance. `OTHERS`: an allowance that is not the full day or meals. */ sub_rate_type?: 'FULL_DAY' | 'MEALS' | 'OTHERS'; } namespace PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ interface CalculatedAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ interface PerDiemRate { /** * Per diem rate ID. */ id: string; /** * When the per diem rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the per diem rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * Country this per diem rate applies to, as an ISO 3166-1 alpha-2 code. Example: * US. */ country?: string; /** * Currency of the per diem rate, as an ISO 4217 code. Example: USD. */ currency?: string; /** * Place this per diem rate applies to, such as a city. */ destination_name?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether the rate is archived. Archived rates remain readable for historical * references. */ is_archived?: boolean; /** * Whether this is the current version of the rate. */ is_current?: boolean; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; } /** * Receipt file and its filename. */ interface Receipt { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; } /** * Start of a mileage trip. Null except on mileage reimbursements. */ interface StartLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: StartLocation.Coordinates; } namespace StartLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ interface Vendor { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Whether the vendor is archived. Archived vendors remain available for historical * references. */ is_archived?: boolean; /** * URL of the vendor's logo. Null when no logo is available. */ logo?: string; /** * Canonical name of the Finance vendor. Name eq, ne, and in filters also match * alternate names. */ name?: string; } /** * Start, end, or intermediate stop on a mileage trip. */ interface Waypoint { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: Waypoint.Coordinates; } namespace Waypoint { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } } /** * A Finance reimbursement the caller can see. * * A reimbursement is an expense the worker paid and the company pays back. Mileage and per diem * use the same resource, with transaction_type MILEAGE_REIMBURSEMENT or PER_DIEM_REIMBURSEMENT. * Retrieve returns one by ID. A reimbursement the caller cannot see returns 404, the same as one * that does not exist. PATCH `/reimbursements/{id}/` accepts only `line_items` and replaces the entire list. * Request `amount` and `tax_amount` are decimal strings (for example `"75.00"`), not Currency * objects. GET responses return those fields as Currency objects (`currency_type` + `value`). * The sum of request `amount` values must equal the reimbursement's merchant amount. */ export interface ReimbursementUpdateResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Date the transaction is booked in the accounting system, as an ISO 8601 date * (YYYY-MM-DD). */ accounting_date?: string; /** * Approval status of the transaction. `DRAFT`: not submitted for approval. * `PENDING`: awaiting required information or submission before approval. * `REQUESTED`: submitted and awaiting approval. `APPROVED`: approved. `REJECTED`: * rejected. `FINALIZED`: finalized for payment. `ACTIONED`: payment or * reimbursement completed. `CANCELLED`: cancelled. `FAILED`: payment failed. Null * for card authorizations. */ approval_status?: 'DRAFT' | 'PENDING' | 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'FINALIZED' | 'ACTIONED' | 'CANCELLED' | 'FAILED'; /** * Other attached files, including filenames and recorded upload metadata. */ attachments?: Array; /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ company_amount?: ReimbursementUpdateResponse.CompanyAmount; /** * Trip length in mileage_rate.units. Null except on mileage reimbursements. */ distance?: number; /** * End of a mileage trip. Null except on mileage reimbursements. */ end_location?: ReimbursementUpdateResponse.EndLocation; /** * ID of the legal entity the transaction belongs to. Use it with * `/company-legal-entities/{id}/`. */ entity_id?: string; /** * State of the sync to the accounting system. `NOT_FINALIZED`: not ready for * accounting review. `FOR_REVIEW`: ready for accounting review. `PENDING_SYNC`: * sync is in progress. `SYNCED`: synced to the accounting system. `ERROR`: sync * failed. `DO_NOT_SYNC`: marked to be excluded from sync. `EXPORTED`: exported for * accounting. `NOT_SYNCABLE`: this record cannot be synced. `AUTO_SYNC`: ready to * be synced automatically. Null when no sync state is set. */ gl_sync_state?: 'NOT_FINALIZED' | 'FOR_REVIEW' | 'PENDING_SYNC' | 'SYNCED' | 'ERROR' | 'DO_NOT_SYNC' | 'EXPORTED' | 'NOT_SYNCABLE' | 'AUTO_SYNC'; /** * Vendor in the connected accounting system. */ gl_vendor?: ReimbursementUpdateResponse.GlVendor; /** * Category splits of the transaction amount. Updates replace the entire list. */ line_items?: Array; /** * Memo entered on the transaction. */ memo?: string; /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ merchant_amount?: ReimbursementUpdateResponse.MerchantAmount; /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ mileage_rate?: ReimbursementUpdateResponse.MileageRate; /** * ID of the company mileage rate. Null except on mileage reimbursements. Resolve * it with `expand=mileage_rate` on this reimbursement using `reimbursements.read`; * there is no standalone rate lookup endpoint. */ mileage_rate_id?: string; /** * Amount credited to the worker. The `value` is a decimal string. */ payout_amount?: ReimbursementUpdateResponse.PayoutAmount; /** * Date the worker is paid, as an ISO 8601 date (YYYY-MM-DD). Null before a run is * assigned. */ payout_date?: string; /** * How the worker is paid. `NOT_SET`: no payout run is assigned. `US_PAYROLL`: * assigned to a US payroll run. `GLOBAL_PAYROLL`: assigned to a global payroll * run. `DIRECT_DEPOSIT`: assigned to a direct deposit run. `EOR`: assigned to an * employer-of-record payroll run. `MANUAL`: marked paid outside a run. If a payout * method override is set, it is returned. */ payout_method?: 'NOT_SET' | 'GLOBAL_PAYROLL' | 'US_PAYROLL' | 'DIRECT_DEPOSIT' | 'EOR' | 'MANUAL'; /** * Per diem sub-rate rows. Null except on per diem reimbursements. */ per_diem_line_items?: Array; /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ per_diem_rate?: ReimbursementUpdateResponse.PerDiemRate; /** * ID of the per diem rate. Null except on per diem reimbursements. Resolve it with * `expand=per_diem_rate` on this reimbursement using `reimbursements.read`; there * is no standalone rate lookup endpoint. */ per_diem_rate_id?: string; /** * Receipt file and its filename. */ receipt?: ReimbursementUpdateResponse.Receipt; /** * Start of a mileage trip. Null except on mileage reimbursements. */ start_location?: ReimbursementUpdateResponse.StartLocation; /** * When the purchase or authorization happened, as an ISO 8601 date-time in UTC. */ transaction_date?: string; /** * `REIMBURSEMENT`: an expense the worker paid and the company pays back. * `MILEAGE_REIMBURSEMENT`: payback for distance driven. `PER_DIEM_REIMBURSEMENT`: * payback for a daily travel allowance. This decides which mileage or per diem * fields are set. */ transaction_type?: 'REIMBURSEMENT' | 'MILEAGE_REIMBURSEMENT' | 'PER_DIEM_REIMBURSEMENT'; /** * Per diem trip end date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_end_date?: string; /** * Per diem trip start date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_start_date?: string; /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ vendor?: ReimbursementUpdateResponse.Vendor; /** * ID of the Finance vendor. Use it with `/finance-vendors/{id}/`. */ vendor_id?: string; /** * List of intermediate stops during the trip, for mileage reimbursements. Null * except on mileage reimbursements. */ waypoints?: Array; /** * Worker details. Expand with `reimbursements.read` and `workers.read`. * * Expandable field */ worker?: WorkersAPI.Worker; /** * ID of the worker who made the transaction. Use it with `/workers/{id}/`. */ worker_id?: string; } export declare namespace ReimbursementUpdateResponse { /** * A Finance transaction attachment with recorded upload details. */ interface Attachment { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; /** * When the attachment was uploaded, as an ISO 8601 date-time in UTC, when * recorded. */ uploaded_at?: string; /** * ID of the worker who uploaded the attachment. Use it with `/workers/{id}/`. */ uploaded_by_id?: string; } /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ interface CompanyAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * End of a mileage trip. Null except on mileage reimbursements. */ interface EndLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: EndLocation.Coordinates; } namespace EndLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor in the connected accounting system. */ interface GlVendor { /** * ID of the accounting vendor in Rippling. */ id?: string; /** * ID of the vendor in the accounting system. */ gl_vendor_id?: string; /** * Name of the vendor in the accounting system. */ name?: string; } interface LineItem { /** * Unique identifier of this line item. Null for older line items that have not * been assigned one yet. */ id?: string; /** * Whether this line is amortized. */ amortized?: boolean; /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ amount?: LineItem.Amount; /** * ID of the Finance category assigned to this split. Use it with * `/finance-categories/{id}/`. The category name is in `category_name`. */ category_id?: string; /** * Name of the finance category. */ category_name?: string; /** * Selected dimension values, keyed by dimension ID. `DEPARTMENT` and * `WORK_LOCATION` are the built-in keys. Get custom dimension IDs from * `/job-dimensions/` and `/job-dimensions/{id}/`. Each choice `value` is a job * code ID from `/job-codes/` and `/job-codes/{id}/`. */ dimension_choices?: { [key: string]: LineItem.DimensionChoices; }; /** * End of the amortization period (YYYY-MM-DD). */ end_date?: string; /** * ERP amortization schedule associated with this line. */ gl_amortization_schedule?: LineItem.GlAmortizationSchedule; /** * ERP amortization template for this line. */ gl_amortization_template?: LineItem.GlAmortizationTemplate; /** * Whether this split is billed to `gl_customer` in the accounting system. * `BILLABLE` means it is billed, `NOT_BILLABLE` means it is not. Null when not * set. */ gl_billable?: 'BILLABLE' | 'NOT_BILLABLE'; /** * ID of the customer record in the connected accounting integration. No public * Rippling API is currently available to retrieve this accounting customer. */ gl_customer?: string; /** * Rippling ID of the accounting tax code. No public Rippling API is currently * available to retrieve this accounting tax code. */ gl_tax_code?: string; /** * Memo entered on this split. */ memo?: string; /** * Prepaid asset account for Rippling-managed amortization. */ prepaid_account?: LineItem.PrepaidAccount; /** * Start of the amortization period (YYYY-MM-DD). */ start_date?: string; /** * Total tax amount for this line in the merchant currency. */ tax_amount?: LineItem.TaxAmount; } namespace LineItem { /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface DimensionChoices { /** * Name of the dimension, such as Department. */ dimension_name?: string; /** * Display name of the selected dimension value. */ label?: string; /** * ID of the selected value. For `DEPARTMENT` use `/departments/{id}/`, for * `WORK_LOCATION` use `/work-locations/{id}/`, and for a custom job dimension use * `/job-codes/{id}/`. */ value?: string; } /** * ERP amortization schedule associated with this line. */ interface GlAmortizationSchedule { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Number of amortization periods. */ amortization_period?: number; /** * End of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-12-31T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ end_date?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; /** * Start of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-01-01T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ start_date?: string; /** * ERP amortization schedule status: NOT_STARTED means amortization has not begun; * IN_PROGRESS means amortization is underway; COMPLETED means amortization is * complete; ON_HOLD means amortization is paused. Null when not set. */ status?: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'ON_HOLD'; /** * Amount already amortized as reported by the ERP, in the same currency as * total_amount. No currency conversion is applied; the schedule currency code is * not available in this response. */ total_amortized_amount?: number; /** * Total schedule amount as reported by the ERP, without currency conversion. The * schedule currency code is not available in this response. */ total_amount?: number; } /** * ERP amortization template for this line. */ interface GlAmortizationTemplate { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; } /** * Prepaid asset account for Rippling-managed amortization. */ interface PrepaidAccount { /** * Account ID in the connected accounting system. */ account_id?: string; /** * Account code. */ code?: string; /** * Account name. */ name?: string; /** * IDs of custom dimensions required by this account. */ required_custom_dimensions?: Array; /** * Whether this account requires a department. */ requires_department?: boolean; /** * Whether this account requires a work location. */ requires_work_location?: boolean; /** * Accounting account type: RECEIVABLE for accounts receivable, PAYABLE for * accounts payable, EXPENSE for expense accounts, or BANK for bank accounts. Null * when not set. */ type?: 'RECEIVABLE' | 'PAYABLE' | 'EXPENSE' | 'BANK'; } /** * Total tax amount for this line in the merchant currency. */ interface TaxAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ interface MerchantAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ interface MileageRate { /** * Company mileage rate ID. */ id: string; /** * When the mileage rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the mileage rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * ISO 3166-1 alpha-2 country code. */ country?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether an additional half cent per distance unit applies. */ half_cent?: boolean; /** * Company-defined label for this mileage rate, such as the rate used for a country * or vehicle type. */ name?: string; /** * Amount per distance unit. The `value` is a decimal string. */ rate?: MileageRate.Rate; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; /** * Distance unit, mi or km. */ units?: 'km' | 'mi'; } namespace MileageRate { /** * Amount per distance unit. The `value` is a decimal string. */ interface Rate { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount credited to the worker. The `value` is a decimal string. */ interface PayoutAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ amount?: PerDiemLineItem.Amount; /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ calculated_amount?: PerDiemLineItem.CalculatedAmount; /** * How many units. */ count?: number; /** * Sub-rate label. */ label?: string; /** * `INCLUDE`: this row is added to the reimbursement. `EXCLUDE`: this row is * subtracted. `calculated_amount.value` is negative when excluded. */ line_type?: 'INCLUDE' | 'EXCLUDE'; /** * Per diem sub-rate ID. */ sub_rate_id?: string; /** * `FULL_DAY`: the full daily allowance. `MEALS`: the meals portion of the daily * allowance. `OTHERS`: an allowance that is not the full day or meals. */ sub_rate_type?: 'FULL_DAY' | 'MEALS' | 'OTHERS'; } namespace PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ interface CalculatedAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ interface PerDiemRate { /** * Per diem rate ID. */ id: string; /** * When the per diem rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the per diem rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * Country this per diem rate applies to, as an ISO 3166-1 alpha-2 code. Example: * US. */ country?: string; /** * Currency of the per diem rate, as an ISO 4217 code. Example: USD. */ currency?: string; /** * Place this per diem rate applies to, such as a city. */ destination_name?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether the rate is archived. Archived rates remain readable for historical * references. */ is_archived?: boolean; /** * Whether this is the current version of the rate. */ is_current?: boolean; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; } /** * Receipt file and its filename. */ interface Receipt { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; } /** * Start of a mileage trip. Null except on mileage reimbursements. */ interface StartLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: StartLocation.Coordinates; } namespace StartLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ interface Vendor { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Whether the vendor is archived. Archived vendors remain available for historical * references. */ is_archived?: boolean; /** * URL of the vendor's logo. Null when no logo is available. */ logo?: string; /** * Canonical name of the Finance vendor. Name eq, ne, and in filters also match * alternate names. */ name?: string; } /** * Start, end, or intermediate stop on a mileage trip. */ interface Waypoint { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: Waypoint.Coordinates; } namespace Waypoint { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } } /** * A Finance reimbursement the caller can see. * * A reimbursement is an expense the worker paid and the company pays back. Mileage and per diem * use the same resource, with transaction_type MILEAGE_REIMBURSEMENT or PER_DIEM_REIMBURSEMENT. * Retrieve returns one by ID. A reimbursement the caller cannot see returns 404, the same as one * that does not exist. PATCH `/reimbursements/{id}/` accepts only `line_items` and replaces the entire list. * Request `amount` and `tax_amount` are decimal strings (for example `"75.00"`), not Currency * objects. GET responses return those fields as Currency objects (`currency_type` + `value`). * The sum of request `amount` values must equal the reimbursement's merchant amount. */ export interface ReimbursementUploadReceiptResponse { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Date the transaction is booked in the accounting system, as an ISO 8601 date * (YYYY-MM-DD). */ accounting_date?: string; /** * Approval status of the transaction. `DRAFT`: not submitted for approval. * `PENDING`: awaiting required information or submission before approval. * `REQUESTED`: submitted and awaiting approval. `APPROVED`: approved. `REJECTED`: * rejected. `FINALIZED`: finalized for payment. `ACTIONED`: payment or * reimbursement completed. `CANCELLED`: cancelled. `FAILED`: payment failed. Null * for card authorizations. */ approval_status?: 'DRAFT' | 'PENDING' | 'REQUESTED' | 'APPROVED' | 'REJECTED' | 'FINALIZED' | 'ACTIONED' | 'CANCELLED' | 'FAILED'; /** * Other attached files, including filenames and recorded upload metadata. */ attachments?: Array; /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ company_amount?: ReimbursementUploadReceiptResponse.CompanyAmount; /** * Trip length in mileage_rate.units. Null except on mileage reimbursements. */ distance?: number; /** * End of a mileage trip. Null except on mileage reimbursements. */ end_location?: ReimbursementUploadReceiptResponse.EndLocation; /** * ID of the legal entity the transaction belongs to. Use it with * `/company-legal-entities/{id}/`. */ entity_id?: string; /** * State of the sync to the accounting system. `NOT_FINALIZED`: not ready for * accounting review. `FOR_REVIEW`: ready for accounting review. `PENDING_SYNC`: * sync is in progress. `SYNCED`: synced to the accounting system. `ERROR`: sync * failed. `DO_NOT_SYNC`: marked to be excluded from sync. `EXPORTED`: exported for * accounting. `NOT_SYNCABLE`: this record cannot be synced. `AUTO_SYNC`: ready to * be synced automatically. Null when no sync state is set. */ gl_sync_state?: 'NOT_FINALIZED' | 'FOR_REVIEW' | 'PENDING_SYNC' | 'SYNCED' | 'ERROR' | 'DO_NOT_SYNC' | 'EXPORTED' | 'NOT_SYNCABLE' | 'AUTO_SYNC'; /** * Vendor in the connected accounting system. */ gl_vendor?: ReimbursementUploadReceiptResponse.GlVendor; /** * Category splits of the transaction amount. Updates replace the entire list. */ line_items?: Array; /** * Memo entered on the transaction. */ memo?: string; /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ merchant_amount?: ReimbursementUploadReceiptResponse.MerchantAmount; /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ mileage_rate?: ReimbursementUploadReceiptResponse.MileageRate; /** * ID of the company mileage rate. Null except on mileage reimbursements. Resolve * it with `expand=mileage_rate` on this reimbursement using `reimbursements.read`; * there is no standalone rate lookup endpoint. */ mileage_rate_id?: string; /** * Amount credited to the worker. The `value` is a decimal string. */ payout_amount?: ReimbursementUploadReceiptResponse.PayoutAmount; /** * Date the worker is paid, as an ISO 8601 date (YYYY-MM-DD). Null before a run is * assigned. */ payout_date?: string; /** * How the worker is paid. `NOT_SET`: no payout run is assigned. `US_PAYROLL`: * assigned to a US payroll run. `GLOBAL_PAYROLL`: assigned to a global payroll * run. `DIRECT_DEPOSIT`: assigned to a direct deposit run. `EOR`: assigned to an * employer-of-record payroll run. `MANUAL`: marked paid outside a run. If a payout * method override is set, it is returned. */ payout_method?: 'NOT_SET' | 'GLOBAL_PAYROLL' | 'US_PAYROLL' | 'DIRECT_DEPOSIT' | 'EOR' | 'MANUAL'; /** * Per diem sub-rate rows. Null except on per diem reimbursements. */ per_diem_line_items?: Array; /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ per_diem_rate?: ReimbursementUploadReceiptResponse.PerDiemRate; /** * ID of the per diem rate. Null except on per diem reimbursements. Resolve it with * `expand=per_diem_rate` on this reimbursement using `reimbursements.read`; there * is no standalone rate lookup endpoint. */ per_diem_rate_id?: string; /** * Receipt file and its filename. */ receipt?: ReimbursementUploadReceiptResponse.Receipt; /** * Start of a mileage trip. Null except on mileage reimbursements. */ start_location?: ReimbursementUploadReceiptResponse.StartLocation; /** * When the purchase or authorization happened, as an ISO 8601 date-time in UTC. */ transaction_date?: string; /** * `REIMBURSEMENT`: an expense the worker paid and the company pays back. * `MILEAGE_REIMBURSEMENT`: payback for distance driven. `PER_DIEM_REIMBURSEMENT`: * payback for a daily travel allowance. This decides which mileage or per diem * fields are set. */ transaction_type?: 'REIMBURSEMENT' | 'MILEAGE_REIMBURSEMENT' | 'PER_DIEM_REIMBURSEMENT'; /** * Per diem trip end date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_end_date?: string; /** * Per diem trip start date, as an ISO 8601 date (YYYY-MM-DD). Null except on per * diem reimbursements. */ trip_start_date?: string; /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ vendor?: ReimbursementUploadReceiptResponse.Vendor; /** * ID of the Finance vendor. Use it with `/finance-vendors/{id}/`. */ vendor_id?: string; /** * List of intermediate stops during the trip, for mileage reimbursements. Null * except on mileage reimbursements. */ waypoints?: Array; /** * Worker details. Expand with `reimbursements.read` and `workers.read`. * * Expandable field */ worker?: WorkersAPI.Worker; /** * ID of the worker who made the transaction. Use it with `/workers/{id}/`. */ worker_id?: string; } export declare namespace ReimbursementUploadReceiptResponse { /** * A Finance transaction attachment with recorded upload details. */ interface Attachment { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; /** * When the attachment was uploaded, as an ISO 8601 date-time in UTC, when * recorded. */ uploaded_at?: string; /** * ID of the worker who uploaded the attachment. Use it with `/workers/{id}/`. */ uploaded_by_id?: string; } /** * Amount in the company's headquarters currency. The `value` is a decimal string. */ interface CompanyAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * End of a mileage trip. Null except on mileage reimbursements. */ interface EndLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: EndLocation.Coordinates; } namespace EndLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor in the connected accounting system. */ interface GlVendor { /** * ID of the accounting vendor in Rippling. */ id?: string; /** * ID of the vendor in the accounting system. */ gl_vendor_id?: string; /** * Name of the vendor in the accounting system. */ name?: string; } interface LineItem { /** * Unique identifier of this line item. Null for older line items that have not * been assigned one yet. */ id?: string; /** * Whether this line is amortized. */ amortized?: boolean; /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ amount?: LineItem.Amount; /** * ID of the Finance category assigned to this split. Use it with * `/finance-categories/{id}/`. The category name is in `category_name`. */ category_id?: string; /** * Name of the finance category. */ category_name?: string; /** * Selected dimension values, keyed by dimension ID. `DEPARTMENT` and * `WORK_LOCATION` are the built-in keys. Get custom dimension IDs from * `/job-dimensions/` and `/job-dimensions/{id}/`. Each choice `value` is a job * code ID from `/job-codes/` and `/job-codes/{id}/`. */ dimension_choices?: { [key: string]: LineItem.DimensionChoices; }; /** * End of the amortization period (YYYY-MM-DD). */ end_date?: string; /** * ERP amortization schedule associated with this line. */ gl_amortization_schedule?: LineItem.GlAmortizationSchedule; /** * ERP amortization template for this line. */ gl_amortization_template?: LineItem.GlAmortizationTemplate; /** * Whether this split is billed to `gl_customer` in the accounting system. * `BILLABLE` means it is billed, `NOT_BILLABLE` means it is not. Null when not * set. */ gl_billable?: 'BILLABLE' | 'NOT_BILLABLE'; /** * ID of the customer record in the connected accounting integration. No public * Rippling API is currently available to retrieve this accounting customer. */ gl_customer?: string; /** * Rippling ID of the accounting tax code. No public Rippling API is currently * available to retrieve this accounting tax code. */ gl_tax_code?: string; /** * Memo entered on this split. */ memo?: string; /** * Prepaid asset account for Rippling-managed amortization. */ prepaid_account?: LineItem.PrepaidAccount; /** * Start of the amortization period (YYYY-MM-DD). */ start_date?: string; /** * Total tax amount for this line in the merchant currency. */ tax_amount?: LineItem.TaxAmount; } namespace LineItem { /** * Amount of this split, in the merchant currency. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface DimensionChoices { /** * Name of the dimension, such as Department. */ dimension_name?: string; /** * Display name of the selected dimension value. */ label?: string; /** * ID of the selected value. For `DEPARTMENT` use `/departments/{id}/`, for * `WORK_LOCATION` use `/work-locations/{id}/`, and for a custom job dimension use * `/job-codes/{id}/`. */ value?: string; } /** * ERP amortization schedule associated with this line. */ interface GlAmortizationSchedule { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Number of amortization periods. */ amortization_period?: number; /** * End of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-12-31T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ end_date?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; /** * Start of the ERP amortization schedule as an ISO 8601 timestamp (for example, * 2026-01-01T00:00:00). May omit a timezone offset; an omitted offset does not * indicate UTC. Null when not set. */ start_date?: string; /** * ERP amortization schedule status: NOT_STARTED means amortization has not begun; * IN_PROGRESS means amortization is underway; COMPLETED means amortization is * complete; ON_HOLD means amortization is paused. Null when not set. */ status?: 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'ON_HOLD'; /** * Amount already amortized as reported by the ERP, in the same currency as * total_amount. No currency conversion is applied; the schedule currency code is * not available in this response. */ total_amortized_amount?: number; /** * Total schedule amount as reported by the ERP, without currency conversion. The * schedule currency code is not available in this response. */ total_amount?: number; } /** * ERP amortization template for this line. */ interface GlAmortizationTemplate { /** * Rippling ID of the accounting integration that owns this object. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Object ID in the connected accounting system. */ gl_object_id?: string; /** * Type of object in the connected accounting system: GL_AMORTIZATION_TEMPLATE * defines amortization rules; GL_AMORTIZATION_SCHEDULE tracks amortization; * GL_AMORTIZATION_SCHEDULE_RECURRENCE is a schedule entry; GL_ACCOUNT is a general * ledger account; GL_JOURNAL_ENTRY is a journal entry; GL_POSTING_PERIOD is an * accounting period; GL_VENDOR, GL_CUSTOMER, and GL_EMPLOYEE identify a vendor, * customer, and employee respectively; GL_SUBSIDIARY identifies a subsidiary. Null * when not set. */ gl_object_type?: 'GL_AMORTIZATION_TEMPLATE' | 'GL_AMORTIZATION_SCHEDULE' | 'GL_AMORTIZATION_SCHEDULE_RECURRENCE' | 'GL_ACCOUNT' | 'GL_JOURNAL_ENTRY' | 'GL_POSTING_PERIOD' | 'GL_VENDOR' | 'GL_CUSTOMER' | 'GL_EMPLOYEE' | 'GL_SUBSIDIARY'; /** * Accounting object name. */ name?: string; } /** * Prepaid asset account for Rippling-managed amortization. */ interface PrepaidAccount { /** * Account ID in the connected accounting system. */ account_id?: string; /** * Account code. */ code?: string; /** * Account name. */ name?: string; /** * IDs of custom dimensions required by this account. */ required_custom_dimensions?: Array; /** * Whether this account requires a department. */ requires_department?: boolean; /** * Whether this account requires a work location. */ requires_work_location?: boolean; /** * Accounting account type: RECEIVABLE for accounts receivable, PAYABLE for * accounts payable, EXPENSE for expense accounts, or BANK for bank accounts. Null * when not set. */ type?: 'RECEIVABLE' | 'PAYABLE' | 'EXPENSE' | 'BANK'; } /** * Total tax amount for this line in the merchant currency. */ interface TaxAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount charged by the merchant, in the merchant currency. The `value` is a * decimal string. */ interface MerchantAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * Company mileage rate. Include with `expand=mileage_rate` using * `reimbursements.read`. * * Expandable field */ interface MileageRate { /** * Company mileage rate ID. */ id: string; /** * When the mileage rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the mileage rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * ISO 3166-1 alpha-2 country code. */ country?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether an additional half cent per distance unit applies. */ half_cent?: boolean; /** * Company-defined label for this mileage rate, such as the rate used for a country * or vehicle type. */ name?: string; /** * Amount per distance unit. The `value` is a decimal string. */ rate?: MileageRate.Rate; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; /** * Distance unit, mi or km. */ units?: 'km' | 'mi'; } namespace MileageRate { /** * Amount per distance unit. The `value` is a decimal string. */ interface Rate { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Amount credited to the worker. The `value` is a decimal string. */ interface PayoutAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } interface PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ amount?: PerDiemLineItem.Amount; /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ calculated_amount?: PerDiemLineItem.CalculatedAmount; /** * How many units. */ count?: number; /** * Sub-rate label. */ label?: string; /** * `INCLUDE`: this row is added to the reimbursement. `EXCLUDE`: this row is * subtracted. `calculated_amount.value` is negative when excluded. */ line_type?: 'INCLUDE' | 'EXCLUDE'; /** * Per diem sub-rate ID. */ sub_rate_id?: string; /** * `FULL_DAY`: the full daily allowance. `MEALS`: the meals portion of the daily * allowance. `OTHERS`: an allowance that is not the full day or meals. */ sub_rate_type?: 'FULL_DAY' | 'MEALS' | 'OTHERS'; } namespace PerDiemLineItem { /** * Sub-rate amount for one unit. The `value` is a decimal string. */ interface Amount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } /** * amount times count. The `value` is a decimal string. Negative when line_type is * EXCLUDE. */ interface CalculatedAmount { /** * The currency type, ex: USD, EUR, etc. */ currency_type?: string; /** * The decimal amount for the currency. */ value?: number; } } /** * Per diem rate for the trip. Include with `expand=per_diem_rate` using * `reimbursements.read`. * * Expandable field */ interface PerDiemRate { /** * Per diem rate ID. */ id: string; /** * When the per diem rate was created, as an ISO 8601 date-time in UTC. */ created_at: string; /** * When the per diem rate was last updated, as an ISO 8601 date-time in UTC. */ updated_at: string; /** * Country this per diem rate applies to, as an ISO 3166-1 alpha-2 code. Example: * US. */ country?: string; /** * Currency of the per diem rate, as an ISO 4217 code. Example: USD. */ currency?: string; /** * Place this per diem rate applies to, such as a city. */ destination_name?: string; /** * Effective end date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ end_date?: string; /** * Whether the rate is archived. Archived rates remain readable for historical * references. */ is_archived?: boolean; /** * Whether this is the current version of the rate. */ is_current?: boolean; /** * Effective start date of the rate, as an ISO 8601 date (YYYY-MM-DD). */ start_date?: string; } /** * Receipt file and its filename. */ interface Receipt { /** * URL for accessing the file. */ url: string; /** * Original file name, when recorded. */ file_name?: string; } /** * Start of a mileage trip. Null except on mileage reimbursements. */ interface StartLocation { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: StartLocation.Coordinates; } namespace StartLocation { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } /** * Vendor details. Expand with `reimbursements.read` and `finance-vendors.read`. * * Expandable field */ interface Vendor { /** * Identifier field */ id: string; /** * Record creation date */ created_at: string; /** * Record update date */ updated_at: string; /** * Whether the vendor is archived. Archived vendors remain available for historical * references. */ is_archived?: boolean; /** * URL of the vendor's logo. Null when no logo is available. */ logo?: string; /** * Canonical name of the Finance vendor. Name eq, ne, and in filters also match * alternate names. */ name?: string; } /** * Start, end, or intermediate stop on a mileage trip. */ interface Waypoint { /** * Address of this point. Null when the point has no address. */ address?: string; /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ coordinates?: Waypoint.Coordinates; } namespace Waypoint { /** * Latitude and longitude of this point, in decimal degrees. Null when the point * has no coordinates. */ interface Coordinates { /** * Latitude of this point, in decimal degrees. */ latitude?: number; /** * Longitude of this point, in decimal degrees. */ longitude?: number; } } } export interface ReimbursementListParams { cursor?: string; expand?: string; filter?: string; /** * The maximum number of results to return. Defaults to 50. Maximum is 100. */ limit?: number; order_by?: string; } export interface ReimbursementRetrieveParams { expand?: string; } export interface ReimbursementUpdateParams { /** * Category splits of the transaction amount. Updates replace the entire list. * `amount` and `tax_amount` are decimal strings in the merchant currency. The sum * of `amount` values must match the transaction's merchant amount. */ line_items?: Array; } export declare namespace ReimbursementUpdateParams { /** * PATCH body for a line item. `amount` and `tax_amount` are decimal strings, not * Currency objects. */ interface LineItem { /** * Amount of this split, in the merchant currency, as a decimal string. */ amount: string; /** * ID of the Finance category assigned to this split. Use it with * `/finance-categories/{id}/`. */ category_id: string; /** * Optional. Omit to create a new line. Replacing `line_items` assigns new IDs; a * supplied `id` is not preserved. */ id?: string; /** * Whether this line is amortized. */ amortized?: boolean; /** * Selected dimension values, keyed by dimension ID. `DEPARTMENT` and * `WORK_LOCATION` are the built-in keys. Get custom dimension IDs from * `/job-dimensions/` and `/job-dimensions/{id}/`. Each value is an ID: * `/departments/{id}/` for `DEPARTMENT`, `/work-locations/{id}/` for * `WORK_LOCATION`, and `/job-codes/{id}/` for a custom job dimension. */ dimension_choices?: { [key: string]: string; }; /** * End of the amortization period (YYYY-MM-DD). */ end_date?: string; /** * ERP amortization template for this line. */ gl_amortization_template?: LineItem.GlAmortizationTemplate; /** * Whether this split is billed to `gl_customer` in the accounting system. * `BILLABLE` means it is billed, `NOT_BILLABLE` means it is not. Null when not * set. */ gl_billable?: 'BILLABLE' | 'NOT_BILLABLE'; /** * ID of the customer record in the connected accounting integration. No public * Rippling API is currently available to retrieve this accounting customer. */ gl_customer?: string; /** * Rippling ID of the accounting tax code. No public Rippling API is currently * available to retrieve this accounting tax code. */ gl_tax_code?: string; /** * Memo entered on this split. */ memo?: string; /** * Prepaid asset account for Rippling-managed amortization. */ prepaid_account?: LineItem.PrepaidAccount; /** * Start of the amortization period (YYYY-MM-DD). */ start_date?: string; /** * Total tax amount for this line in the merchant currency, as a decimal string. */ tax_amount?: string; } namespace LineItem { /** * ERP amortization template for this line. */ interface GlAmortizationTemplate { /** * Rippling ID of the accounting integration that owns this template. No public * Rippling API is currently available to retrieve this accounting integration. */ accounting_integration_id?: string; /** * Object ID of the amortization template in the connected accounting system. */ gl_object_id?: string; /** * Amortization template name. */ name?: string; } /** * Prepaid asset account for Rippling-managed amortization. */ interface PrepaidAccount { /** * Account ID in the connected accounting system. */ account_id?: string; /** * Account name. */ name?: string; /** * Accounting account type: RECEIVABLE for accounts receivable, PAYABLE for * accounts payable, EXPENSE for expense accounts, or BANK for bank accounts. Null * when not set. */ type?: 'RECEIVABLE' | 'PAYABLE' | 'EXPENSE' | 'BANK'; } } } export interface ReimbursementUploadReceiptParams { /** * The receipt file: PDF, JPEG, PNG, or BMP, up to 10 MB. The type is detected from * the file's contents. */ file: Uploadable; } export declare namespace Reimbursements { export { type ReimbursementListResponse as ReimbursementListResponse, type ReimbursementRetrieveResponse as ReimbursementRetrieveResponse, type ReimbursementUpdateResponse as ReimbursementUpdateResponse, type ReimbursementUploadReceiptResponse as ReimbursementUploadReceiptResponse, type ReimbursementListResponsesPageCursorURL as ReimbursementListResponsesPageCursorURL, type ReimbursementListParams as ReimbursementListParams, type ReimbursementRetrieveParams as ReimbursementRetrieveParams, type ReimbursementUpdateParams as ReimbursementUpdateParams, type ReimbursementUploadReceiptParams as ReimbursementUploadReceiptParams, }; } //# sourceMappingURL=reimbursements.d.mts.map