/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { taxRequirementsGet } from "../funcs/taxRequirementsGet.js"; import { taxRequirementsGetAll } from "../funcs/taxRequirementsGetAll.js"; import { taxRequirementsUpdateState } from "../funcs/taxRequirementsUpdateState.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { GetV1CompaniesCompanyUuidTaxRequirementsRequest, GetV1CompaniesCompanyUuidTaxRequirementsResponse, } from "../models/operations/getv1companiescompanyuuidtaxrequirements.js"; import { GetV1CompaniesCompanyUuidTaxRequirementsStateRequest, GetV1CompaniesCompanyUuidTaxRequirementsStateResponse, } from "../models/operations/getv1companiescompanyuuidtaxrequirementsstate.js"; import { PutV1CompaniesCompanyUuidTaxRequirementsStateRequest, PutV1CompaniesCompanyUuidTaxRequirementsStateResponse, } from "../models/operations/putv1companiescompanyuuidtaxrequirementsstate.js"; import { unwrapAsync } from "../types/fp.js"; export class TaxRequirements extends ClientSDK { /** * Get tax requirements for a state * * @remarks * Retrieves the detailed tax requirements for a specific state. The response includes requirement sets grouped by * category (e.g., registrations, tax rates, deposit schedules), each containing individual requirements with their * current values, labels, and metadata describing the expected input format. * * Use this to build dynamic UIs for tax setup or to read the current tax configuration for a state. * * scope: `company_tax_requirements:read` */ async get( request: GetV1CompaniesCompanyUuidTaxRequirementsStateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(taxRequirementsGet( this, request, options, )); } /** * Update tax requirements for a state * * @remarks * Updates the tax requirement answers for a specific state. Submit answers to the requirement questions returned * by [GET /v1/companies/{company_uuid}/tax_requirements/{state}](ref:get-v1-companies-company_uuid-tax_requirements-state). * * ### Prerequisites * * 1. Retrieve current requirements via [GET /v1/companies/{company_uuid}/tax_requirements/{state}](ref:get-v1-companies-company_uuid-tax_requirements-state) * 2. Ensure that each requirement set that you're updating includes the correct `key`, `state`, and `effective_from` values from the GET response * * scope: `company_tax_requirements:write` */ async updateState( request: PutV1CompaniesCompanyUuidTaxRequirementsStateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(taxRequirementsUpdateState( this, request, options, )); } /** * Get all tax requirements for a company * * @remarks * Retrieves all states for which a company has tax requirements, along with a boolean indicating whether tax setup * is complete for each state. Use this to determine which states still need tax setup during company onboarding. * * scope: `company_tax_requirements:read` */ async getAll( request: GetV1CompaniesCompanyUuidTaxRequirementsRequest, options?: RequestOptions, ): Promise { return unwrapAsync(taxRequirementsGetAll( this, request, options, )); } }