/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { externalPayrollsCalculateTaxes } from "../funcs/externalPayrollsCalculateTaxes.js"; import { externalPayrollsCreate } from "../funcs/externalPayrollsCreate.js"; import { externalPayrollsDelete } from "../funcs/externalPayrollsDelete.js"; import { externalPayrollsFinalizeTaxLiabilities } from "../funcs/externalPayrollsFinalizeTaxLiabilities.js"; import { externalPayrollsGet } from "../funcs/externalPayrollsGet.js"; import { externalPayrollsListTaxLiabilities } from "../funcs/externalPayrollsListTaxLiabilities.js"; import { externalPayrollsRetrieve } from "../funcs/externalPayrollsRetrieve.js"; import { externalPayrollsUpdate } from "../funcs/externalPayrollsUpdate.js"; import { externalPayrollsUpdateTaxLiabilities } from "../funcs/externalPayrollsUpdateTaxLiabilities.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { DeleteV1ExternalPayrollRequest, DeleteV1ExternalPayrollResponse, } from "../models/operations/deletev1externalpayroll.js"; import { GetV1CompanyExternalPayrollsRequest, GetV1CompanyExternalPayrollsResponse, } from "../models/operations/getv1companyexternalpayrolls.js"; import { GetV1ExternalPayrollRequest, GetV1ExternalPayrollResponse, } from "../models/operations/getv1externalpayroll.js"; import { GetV1ExternalPayrollCalculateTaxesRequest, GetV1ExternalPayrollCalculateTaxesResponse, } from "../models/operations/getv1externalpayrollcalculatetaxes.js"; import { GetV1TaxLiabilitiesRequest, GetV1TaxLiabilitiesResponse, } from "../models/operations/getv1taxliabilities.js"; import { PostV1ExternalPayrollRequest, PostV1ExternalPayrollResponse, } from "../models/operations/postv1externalpayroll.js"; import { PutV1ExternalPayrollRequest, PutV1ExternalPayrollResponse, } from "../models/operations/putv1externalpayroll.js"; import { PutV1TaxLiabilitiesRequest, PutV1TaxLiabilitiesResponse, } from "../models/operations/putv1taxliabilities.js"; import { PutV1TaxLiabilitiesFinishRequest, PutV1TaxLiabilitiesFinishResponse, } from "../models/operations/putv1taxliabilitiesfinish.js"; import { unwrapAsync } from "../types/fp.js"; export class ExternalPayrolls extends ClientSDK { /** * Get external payrolls for a company * * @remarks * Get external payrolls for a company. * * scope: `external_payrolls:read` */ async get( request: GetV1CompanyExternalPayrollsRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsGet( this, request, options, )); } /** * Create an external payroll for a company * * @remarks * Creates a new external payroll for a company. * * scope: `external_payrolls:write` */ async create( request: PostV1ExternalPayrollRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsCreate( this, request, options, )); } /** * Get an external payroll * * @remarks * Get an external payroll for a given company. * * scope: `external_payrolls:read` */ async retrieve( request: GetV1ExternalPayrollRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsRetrieve( this, request, options, )); } /** * Update an external payroll * * @remarks * Update an external payroll with a list of external payroll items. * * scope: `external_payrolls:write` */ async update( request: PutV1ExternalPayrollRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsUpdate( this, request, options, )); } /** * Delete an external payroll * * @remarks * Delete an external payroll. * * scope: `external_payrolls:write` */ async delete( request: DeleteV1ExternalPayrollRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsDelete( this, request, options, )); } /** * Get tax suggestions for an external payroll * * @remarks * Get tax suggestions for an external payroll. Earnings and/or benefits data must be saved prior to the calculation in order to retrieve accurate tax calculation. * * scope: `external_payrolls:read` */ async calculateTaxes( request: GetV1ExternalPayrollCalculateTaxesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsCalculateTaxes( this, request, options, )); } /** * Get tax liabilities * * @remarks * Get tax liabilities from aggregate external payrolls for a company. * * scope: `external_payrolls:read` */ async listTaxLiabilities( request: GetV1TaxLiabilitiesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsListTaxLiabilities( this, request, options, )); } /** * Update tax liabilities * * @remarks * Update tax liabilities for a company. * * scope: `external_payrolls:write` */ async updateTaxLiabilities( request: PutV1TaxLiabilitiesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsUpdateTaxLiabilities( this, request, options, )); } /** * Finalize tax liabilities options and convert into processed payrolls * * @remarks * Finalizes tax liabilities for a company. All external payrolls edit action will be disabled. * * ### Asynchronous processing * This endpoint triggers an asynchronous operation. The external payrolls will be processed in the background after finalization. * * scope: `external_payrolls:write` */ async finalizeTaxLiabilities( request: PutV1TaxLiabilitiesFinishRequest, options?: RequestOptions, ): Promise { return unwrapAsync(externalPayrollsFinalizeTaxLiabilities( this, request, options, )); } }