/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { signatoriesCreate } from "../funcs/signatoriesCreate.js"; import { signatoriesDelete } from "../funcs/signatoriesDelete.js"; import { signatoriesInvite } from "../funcs/signatoriesInvite.js"; import { signatoriesList } from "../funcs/signatoriesList.js"; import { signatoriesUpdate } from "../funcs/signatoriesUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { DeleteV1CompaniesCompanyUuidSignatoriesSignatoryUuidRequest, DeleteV1CompaniesCompanyUuidSignatoriesSignatoryUuidResponse, } from "../models/operations/deletev1companiescompanyuuidsignatoriessignatoryuuid.js"; import { GetV1CompaniesCompanyUuidSignatoriesRequest, GetV1CompaniesCompanyUuidSignatoriesResponse, } from "../models/operations/getv1companiescompanyuuidsignatories.js"; import { PostV1CompaniesCompanyUuidSignatoriesInviteRequest, PostV1CompaniesCompanyUuidSignatoriesInviteResponse, } from "../models/operations/postv1companiescompanyuuidsignatoriesinvite.js"; import { PostV1CompanySignatoriesRequest, PostV1CompanySignatoriesResponse, } from "../models/operations/postv1companysignatories.js"; import { PutV1CompaniesCompanyUuidSignatoriesSignatoryUuidRequest, PutV1CompaniesCompanyUuidSignatoriesSignatoryUuidResponse, } from "../models/operations/putv1companiescompanyuuidsignatoriessignatoryuuid.js"; import { unwrapAsync } from "../types/fp.js"; export class Signatories extends ClientSDK { /** * Get the signatories for a company * * @remarks * Returns the signatories for a company. A company has at most one signatory. * * ## Related guides * - [Signatory Events](doc:signatory-events) * * scope: `signatories:read` */ async list( request: GetV1CompaniesCompanyUuidSignatoriesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(signatoriesList( this, request, options, )); } /** * Create a signatory * * @remarks * Creates a company signatory with complete information. The company must not already have a signatory. * * A signatory can legally sign forms once the identity verification process is successful. The signatory should be an officer, owner, general partner or LLC member manager, plan administrator, fiduciary, or an authorized representative who is designated to sign agreements on the company's behalf. An officer is the president, vice president, treasurer, chief accounting officer, etc. There can only be a single primary signatory in a company. * * ### Webhooks * - `signatory.created`: Fires when a signatory is successfully created. * * ### Related guides * - [Signatory Events](doc:signatory-events) * * scope: `signatories:manage` */ async create( request: PostV1CompanySignatoriesRequest, options?: RequestOptions, ): Promise { return unwrapAsync(signatoriesCreate( this, request, options, )); } /** * Invite a signatory * * @remarks * Creates a signatory with minimal information. This signatory can be invited to provide more information through the [Update a signatory](ref:put-v1-companies-company_uuid-signatories-signatory_uuid) endpoint. This will start the identity verification process and allow the signatory to be verified to sign documents. * * ## Related guides * - [Signatory Events](doc:signatory-events) * * scope: `signatories:manage` */ async invite( request: PostV1CompaniesCompanyUuidSignatoriesInviteRequest, options?: RequestOptions, ): Promise { return unwrapAsync(signatoriesInvite( this, request, options, )); } /** * Update a signatory * * @remarks * Updates a signatory that has been either invited or created. If the signatory has been created with minimal information through the [Invite a signatory](ref:post-v1-companies-company_uuid-signatories-invite) endpoint, then the first update must contain all attributes specified in the request body in order to start the identity verification process. * * ## Related guides * - [Signatory Events](doc:signatory-events) * * scope: `signatories:write` */ async update( request: PutV1CompaniesCompanyUuidSignatoriesSignatoryUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(signatoriesUpdate( this, request, options, )); } /** * Delete a signatory * * @remarks * Deletes a company signatory. * * ## Related guides * - [Signatory Events](doc:signatory-events) * * scope: `signatories:manage` */ async delete( request: DeleteV1CompaniesCompanyUuidSignatoriesSignatoryUuidRequest, options?: RequestOptions, ): Promise { return unwrapAsync(signatoriesDelete( this, request, options, )); } }