Verdocs - Developer Documentation
ReferenceSDKServer-Side

Endpoints

Reference for every Verdocs Platform API operation exposed by the SDKs.

ApiKey

apiKey.createApiKey

Create an API key.

createApiKey(endpoint: VerdocsEndpoint, params: ICreateApiKeyRequest): Promise<IApiKey>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsICreateApiKeyRequest

apiKey.deleteApiKey

Delete an API key.

deleteApiKey(endpoint: VerdocsEndpoint, clientId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
clientIdstring

apiKey.getApiKeys

Get a list of keys for a given organization. The caller must have admin access to the organization.

getApiKeys(endpoint: VerdocsEndpoint): Promise<IApiKey[]>
ParameterTypeDescription
endpointVerdocsEndpoint

apiKey.rotateApiKey

Rotate the secret for an API key. The caller must have admin access to the organization.

rotateApiKey(endpoint: VerdocsEndpoint, clientId: string): Promise<IApiKey>
ParameterTypeDescription
endpointVerdocsEndpoint
clientIdstring

apiKey.updateApiKey

Update an API key to change its assigned Profile ID or Name.

updateApiKey(endpoint: VerdocsEndpoint, clientId: string, params: IUpdateApiKeyRequest): Promise<IApiKey>
ParameterTypeDescription
endpointVerdocsEndpoint
clientIdstring
paramsIUpdateApiKeyRequest

apiKey.createApiKey

Create an API key.

create(params: ApiKeyCreateParams) -> ApiKey
ParameterTypeDescription
paramsApiKeyCreateParamsName and acting profile for the new key.

apiKey.deleteApiKey

Delete an API key.

delete(client_id: str) -> None
ParameterTypeDescription
client_idstrThe client ID of the key to delete.

apiKey.getApiKeys

Get a list of keys for a given organization. The caller must have admin access to the organization.

list() -> list[ApiKey]

apiKey.rotateApiKey

Rotate the secret for an API key. The caller must have admin access to the organization.

rotate(client_id: str) -> ApiKey
ParameterTypeDescription
client_idstrThe client ID of the key to rotate.

apiKey.updateApiKey

Update an API key to change its assigned Profile ID or Name.

update(client_id: str, params: ApiKeyUpdateParams) -> ApiKey
ParameterTypeDescription
client_idstrThe client ID of the key to update.
paramsApiKeyUpdateParamsThe fields to change.

apiKey.createApiKey

Create an API key.

Not yet available for C#.

apiKey.deleteApiKey

Delete an API key.

Not yet available for C#.

apiKey.getApiKeys

Get a list of keys for a given organization. The caller must have admin access to the organization.

Not yet available for C#.

apiKey.rotateApiKey

Rotate the secret for an API key. The caller must have admin access to the organization.

Not yet available for C#.

apiKey.updateApiKey

Update an API key to change its assigned Profile ID or Name.

Not yet available for C#.

Auth

auth.authenticate

Authenticate to Verdocs.

authenticate(endpoint: VerdocsEndpoint, params: TAuthenticationRequest): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsTAuthenticationRequest

auth.changePassword

Update the caller's password when the old password is known (typically for logged-in users).

changePassword(endpoint: VerdocsEndpoint, params: IChangePasswordRequest): Promise<IChangePasswordResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsIChangePasswordRequest

auth.getMyUser

Get the caller's current user record.

getMyUser(endpoint: VerdocsEndpoint): Promise<IUser>
ParameterTypeDescription
endpointVerdocsEndpoint

auth.getOAuth2AuthorizeUrl

Build the URL that starts an OAuth2 authorization code flow. Redirect the user's browser to this URL to begin the flow. After the user authenticates and authorizes, they will be redirected to `redirect_uri` with a `code` query parameter that can be exchanged for tokens via `authenticate()` with `grant_type: 'authorization_code'`.

getOAuth2AuthorizeUrl(endpoint: VerdocsEndpoint, params: IOAuth2AuthorizeParams): string
ParameterTypeDescription
endpointVerdocsEndpoint
paramsIOAuth2AuthorizeParams

auth.refreshToken

If called before the session expires, this will refresh the caller's session and tokens.

refreshToken(endpoint: VerdocsEndpoint, refreshToken: string): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
refreshTokenstring

auth.resendVerification

Resend the email verification request if the email or token are unknown. Instead, an accessToken may be supplied through which the user will be identified. This is intended to be used in post-signup cases where the user is "partially" authenticated (has a session, but is not yet verified).

resendVerification(endpoint: VerdocsEndpoint, accessToken?: string): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
accessToken?string

auth.resetPassword

Request a password reset, when the old password is not known (typically in login forms).

resetPassword(endpoint: VerdocsEndpoint, params: object): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsobject

auth.verifyEmail

Resend the email verification request if the user is unauthenticated, but the email and token are known. Used if the token is valid but has expired.

verifyEmail(endpoint: VerdocsEndpoint, params: IVerifyEmailRequest): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsIVerifyEmailRequest

auth.authenticate

Authenticate to Verdocs.

authenticate(params: AuthenticationRequest) -> AuthenticateResponse
ParameterTypeDescription
paramsAuthenticationRequestOAuth2 token request (password, client_credentials, refresh_token, or authorization_code).

auth.changePassword

Update the caller's password when the old password is known (typically for logged-in users).

change_password(old_password: str, new_password: str) -> ChangePasswordResponse
ParameterTypeDescription
old_passwordstrThe caller's current password.
new_passwordstrThe new password. Must meet strength requirements.

auth.getMyUser

Get the caller's current user record.

me() -> User

auth.getOAuth2AuthorizeUrl

Build the URL that starts an OAuth2 authorization code flow. Redirect the user's browser to this URL to begin the flow. After the user authenticates and authorizes, they will be redirected to `redirect_uri` with a `code` query parameter that can be exchanged for tokens via `authenticate()` with `grant_type: 'authorization_code'`.

get_oauth2_authorize_url(client_id: str, redirect_uri: str, response_type: Literal['code'] = 'code', state: str | None = None, scope: str | None = None) -> str
ParameterTypeDescription
client_idstrClient ID of the registered OAuth2 application.
redirect_uristrWhere to send the user afterwards. Must match a registered redirect URI.
response_type?Literal['code']Always "code" for the authorization code flow.
state?str | NoneOpaque CSRF-protection value, returned unchanged in the redirect.
scope?str | NoneOptional scope to request.

auth.refreshToken

If called before the session expires, this will refresh the caller's session and tokens.

refresh_token(refresh_token: str) -> AuthenticateResponse
ParameterTypeDescription
refresh_tokenstrThe refresh token from a previous AuthenticateResponse.

auth.resendVerification

Resend the email verification request if the email or token are unknown. Instead, an accessToken may be supplied through which the user will be identified. This is intended to be used in post-signup cases where the user is "partially" authenticated (has a session, but is not yet verified).

resend_verification(access_token: str | None = None) -> None
ParameterTypeDescription
access_token?str | NoneOptional bearer token to use for just this call, instead of the endpoint's current session.

auth.resetPassword

Request a password reset, when the old password is not known (typically in login forms).

reset_password(email: str, code: str | None = None, new_password: str | None = None) -> ResetPasswordResponse
ParameterTypeDescription
emailstrEmail address of the account.
code?str | NoneThe emailed reset code; omit when initiating the flow.
new_password?str | NoneThe new password; omit when initiating the flow.

auth.verifyEmail

Resend the email verification request if the user is unauthenticated, but the email and token are known. Used if the token is valid but has expired.

verify_email(email: str, token: str) -> AuthenticateResponse
ParameterTypeDescription
emailstrEmail address of the account being verified.
tokenstrThe verification code from the email.

auth.authenticate

Authenticate to Verdocs.

Not yet available for C#.

auth.changePassword

Update the caller's password when the old password is known (typically for logged-in users).

Not yet available for C#.

auth.getMyUser

Get the caller's current user record.

Not yet available for C#.

auth.getOAuth2AuthorizeUrl

Build the URL that starts an OAuth2 authorization code flow. Redirect the user's browser to this URL to begin the flow. After the user authenticates and authorizes, they will be redirected to `redirect_uri` with a `code` query parameter that can be exchanged for tokens via `authenticate()` with `grant_type: 'authorization_code'`.

Not yet available for C#.

auth.refreshToken

If called before the session expires, this will refresh the caller's session and tokens.

Not yet available for C#.

auth.resendVerification

Resend the email verification request if the email or token are unknown. Instead, an accessToken may be supplied through which the user will be identified. This is intended to be used in post-signup cases where the user is "partially" authenticated (has a session, but is not yet verified).

Not yet available for C#.

auth.resetPassword

Request a password reset, when the old password is not known (typically in login forms).

Not yet available for C#.

auth.verifyEmail

Resend the email verification request if the user is unauthenticated, but the email and token are known. Used if the token is valid but has expired.

Not yet available for C#.

Brand

brand.addBrandEmailDomain

Add a custom email domain to a brand.

addBrandEmailDomain(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, params: IAddBrandEmailDomainRequest): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring
paramsIAddBrandEmailDomainRequest

brand.createBrand

Create a brand.

createBrand(endpoint: VerdocsEndpoint, organizationId: string, params: ICreateBrandRequest): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
paramsICreateBrandRequest

brand.deleteBrand

Delete a brand. Cannot delete the org's default brand.

deleteBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring

brand.getBrand

Get a brand by ID.

getBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring

brand.getBrands

Get all brands for an organization.

getBrands(endpoint: VerdocsEndpoint, organizationId: string): Promise<IBrand[]>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring

brand.removeBrandEmailDomain

Remove a custom email domain from a brand.

removeBrandEmailDomain(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring

brand.updateBrand

Update a brand.

updateBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, params: IUpdateBrandRequest): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring
paramsIUpdateBrandRequest

brand.updateBrandLogo

Update a brand's logo. Uploads the file and sets `full_logo_url`.

updateBrandLogo(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, file: File, onUploadProgress?: object): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring
fileFile
onUploadProgress?object

brand.updateBrandThumbnail

Update a brand's thumbnail. Uploads the file and sets `thumbnail_url`.

updateBrandThumbnail(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, file: File, onUploadProgress?: object): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring
fileFile
onUploadProgress?object

brand.verifyBrandEmailDomain

Trigger verification of a brand's email domain (checks SPF, DKIM, DMARC).

verifyBrandEmailDomain(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<IBrand>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
brandIdstring

brand.addBrandEmailDomain

Add a custom email domain to a brand.

add_email_domain(organization_id: str, brand_id: str, params: BrandEmailDomainAddParams) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand.
paramsBrandEmailDomainAddParamsThe domain and from-address details.

brand.createBrand

Create a brand.

create(organization_id: str, params: BrandCreateParams) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
paramsBrandCreateParamsFields for the new brand; only key is required.

brand.deleteBrand

Delete a brand. Cannot delete the org's default brand.

delete(organization_id: str, brand_id: str) -> None
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand to delete.

brand.getBrand

Get a brand by ID.

get(organization_id: str, brand_id: str) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand to fetch.

brand.getBrands

Get all brands for an organization.

list(organization_id: str) -> list[Brand]
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.

brand.removeBrandEmailDomain

Remove a custom email domain from a brand.

remove_email_domain(organization_id: str, brand_id: str) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand.

brand.updateBrand

Update a brand.

update(organization_id: str, brand_id: str, params: BrandUpdateParams) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand to update.
paramsBrandUpdateParamsThe fields to change; unset fields are left alone.

brand.updateBrandLogo

Update a brand's logo. Uploads the file and sets `full_logo_url`.

update_logo(organization_id: str, brand_id: str, logo: FileInput) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand to update.
logoFileInputThe image: a path, raw bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple.

brand.updateBrandThumbnail

Update a brand's thumbnail. Uploads the file and sets `thumbnail_url`.

update_thumbnail(organization_id: str, brand_id: str, thumbnail: FileInput) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand to update.
thumbnailFileInputThe image: a path, raw bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple.

brand.verifyBrandEmailDomain

Trigger verification of a brand's email domain (checks SPF, DKIM, DMARC).

verify_email_domain(organization_id: str, brand_id: str) -> Brand
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
brand_idstrID of the brand.

brand.addBrandEmailDomain

Add a custom email domain to a brand.

Not yet available for C#.

brand.createBrand

Create a brand.

Not yet available for C#.

brand.deleteBrand

Delete a brand. Cannot delete the org's default brand.

Not yet available for C#.

brand.getBrand

Get a brand by ID.

Not yet available for C#.

brand.getBrands

Get all brands for an organization.

Not yet available for C#.

brand.removeBrandEmailDomain

Remove a custom email domain from a brand.

Not yet available for C#.

brand.updateBrand

Update a brand.

Not yet available for C#.

brand.updateBrandLogo

Update a brand's logo. Uploads the file and sets `full_logo_url`.

Not yet available for C#.

brand.updateBrandThumbnail

Update a brand's thumbnail. Uploads the file and sets `thumbnail_url`.

Not yet available for C#.

brand.verifyBrandEmailDomain

Trigger verification of a brand's email domain (checks SPF, DKIM, DMARC).

Not yet available for C#.

Contact

contact.createOrganizationContact

Create a contact in the caller's organization.

createOrganizationContact(endpoint: VerdocsEndpoint, params: Pick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'>): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsPick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'>

contact.deleteOrganizationContact

Delete a contact from the caller's organization. Note that the caller must be an admin or owner.

deleteOrganizationContact(endpoint: VerdocsEndpoint, profileId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring

contact.getOrganizationContacts

Get a list of the contacts in the caller's organization.

getOrganizationContacts(endpoint: VerdocsEndpoint): Promise<IProfile[]>
ParameterTypeDescription
endpointVerdocsEndpoint

contact.updateOrganizationContact

Update a contact in the caller's organization.

updateOrganizationContact(endpoint: VerdocsEndpoint, profileId: string, params: Pick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'>): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring
paramsPick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'>

contact.createOrganizationContact

Create a contact in the caller's organization.

create(params: ContactCreateParams) -> Profile
ParameterTypeDescription
paramsContactCreateParamsDetails for the new contact.

contact.deleteOrganizationContact

Delete a contact from the caller's organization. Note that the caller must be an admin or owner.

delete(profile_id: str) -> None
ParameterTypeDescription
profile_idstrThe contact profile to remove.

contact.getOrganizationContacts

Get a list of the contacts in the caller's organization.

list() -> list[Profile]

contact.updateOrganizationContact

Update a contact in the caller's organization.

update(profile_id: str, params: ContactUpdateParams) -> Profile
ParameterTypeDescription
profile_idstrThe contact profile to update.
paramsContactUpdateParamsThe contact's details.

contact.createOrganizationContact

Create a contact in the caller's organization.

Not yet available for C#.

contact.deleteOrganizationContact

Delete a contact from the caller's organization. Note that the caller must be an admin or owner.

Not yet available for C#.

contact.getOrganizationContacts

Get a list of the contacts in the caller's organization.

Not yet available for C#.

contact.updateOrganizationContact

Update a contact in the caller's organization.

Not yet available for C#.

Envelope

envelope.cancelEnvelope

Cancel an Envelope.

cancelEnvelope(endpoint: VerdocsEndpoint, envelopeId: string): Promise<TEnvelopeUpdateResult>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring

envelope.createEnvelope

Create an envelope

createEnvelope(endpoint: VerdocsEndpoint, request: TCreateEnvelopeRequest): Promise<IEnvelope>
ParameterTypeDescription
endpointVerdocsEndpoint
requestTCreateEnvelopeRequest

envelope.deleteEnvelopeFieldAttachment

Delete an attachment. Note that this is not a DELETE endpoint because the field itself is not being deleted. Instead, it is a similar operation to uploading a new attachment, but the omission of the attachment signals the server to delete the current entry.

deleteEnvelopeFieldAttachment(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, fieldName: string): Promise<IEnvelopeFieldSettings>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
fieldNamestring

envelope.downloadEnvelopeDocument

Download a document directly.

downloadEnvelopeDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getCombinedEnvelopeDocumentDownloadLink

Generates a single, signed PDF that combines all of an envelope's attached documents along with its completion certificate. Pages within the combined PDF are organized in the order of recipients' actions, preserving the signing workflow sequence.

getCombinedEnvelopeDocumentDownloadLink(endpoint: VerdocsEndpoint, documentId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getEnvelope

Get all metadata for an envelope. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

getEnvelope(endpoint: VerdocsEndpoint, envelopeId: string): Promise<IEnvelope>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring

envelope.getEnvelopeDocument

Get all metadata for an envelope document. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

getEnvelopeDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<IEnvelopeDocument>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getEnvelopeDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

getEnvelopeDocumentDownloadLink(endpoint: VerdocsEndpoint, documentId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getEnvelopeDocumentPageDisplayUri

Get a display URI for a given page in a file attached to an envelope document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants.

getEnvelopeDocumentPageDisplayUri(endpoint: VerdocsEndpoint, documentId: string, page: number, variant: 'certificate' | 'original' | 'filled' = 'original'): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring
pagenumber
variant?'certificate' | 'original' | 'filled'

envelope.getEnvelopeDocumentPreviewLink

Get a pre-signed preview link for an Envelope Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

getEnvelopeDocumentPreviewLink(endpoint: VerdocsEndpoint, documentId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getEnvelopeFile

Get (binary download) a file attached to an Envelope. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

getEnvelopeFile(endpoint: VerdocsEndpoint, documentId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

envelope.getEnvelopes

Lists all envelopes accessible by the caller, with optional filters.

getEnvelopes(endpoint: VerdocsEndpoint, params?: IListEnvelopesParams): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
params?IListEnvelopesParams

envelope.getEnvelopesZip

Generate a ZIP file containing all data for the specified envelopes. The caller must be the owner of each envelope. The returned ZIP file contains a folder for each envelope.

getEnvelopesZip(endpoint: VerdocsEndpoint, envelope_ids: string[]): Promise<AxiosResponse<any, any, object>>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idsstring[]

envelope.updateEnvelope

Update an envelope. Currently, only reminder settings may be changed.

updateEnvelope(endpoint: VerdocsEndpoint, envelopeId: string, params: Partial<Pick<IEnvelope, 'name' | 'sender_name' | 'sender_email' | 'no_contact' | 'initial_reminder' | 'followup_reminders' | 'expires_at' | 'visibility' | 'data'>>): Promise<IEnvelope>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
paramsPartial<Pick<IEnvelope, 'name' | 'sender_name' | 'sender_email' | 'no_contact' | 'initial_reminder' | 'followup_reminders' | 'expires_at' | 'visibility' | 'data'>>

envelope.updateEnvelopeField

Update an Envelope field. Typically called during the signing process as a Recipient fills in fields.

updateEnvelopeField(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, fieldName: string, value: string, prepared: boolean): Promise<IEnvelopeField>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
fieldNamestring
valuestring
preparedboolean

envelope.uploadEnvelopeFieldAttachment

Upload an attachment to an attachment field.

uploadEnvelopeFieldAttachment(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, fieldName: string, file: File, onUploadProgress?: object): Promise<IEnvelopeFieldSettings>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
fieldNamestring
fileFile
onUploadProgress?object

envelope.cancelEnvelope

Cancel an Envelope.

cancel(envelope_id: str) -> Envelope
ParameterTypeDescription
envelope_idstrID of the envelope to cancel.

envelope.createEnvelope

Create an envelope

create(params: EnvelopeCreateParams) -> Envelope
ParameterTypeDescription
paramsEnvelopeCreateParamsThe envelope definition, built from a template or directly.

envelope.deleteEnvelopeFieldAttachment

Delete an attachment. Note that this is not a DELETE endpoint because the field itself is not being deleted. Instead, it is a similar operation to uploading a new attachment, but the omission of the attachment signals the server to delete the current entry.

delete_field_attachment(envelope_id: str, role_name: str, field_name: str) -> EnvelopeField
ParameterTypeDescription
envelope_idstrID of the envelope to operate on.
role_namestrThe role the field belongs to.
field_namestrThe machine name of the attachment field.

envelope.downloadEnvelopeDocument

Download a document directly.

download_document(document_id: str) -> bytes
ParameterTypeDescription
document_idstrID of the document to download.

envelope.getCombinedEnvelopeDocumentDownloadLink

Generates a single, signed PDF that combines all of an envelope's attached documents along with its completion certificate. Pages within the combined PDF are organized in the order of recipients' actions, preserving the signing workflow sequence.

get_combined_document_download_link(document_id: str) -> str
ParameterTypeDescription
document_idstrID of the envelope's certificate document.

envelope.getEnvelope

Get all metadata for an envelope. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

get(envelope_id: str) -> Envelope
ParameterTypeDescription
envelope_idstrID of the envelope to fetch.

envelope.getEnvelopeDocument

Get all metadata for an envelope document. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

get_document(document_id: str) -> EnvelopeDocument
ParameterTypeDescription
document_idstrID of the document to fetch.

envelope.getEnvelopeDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

get_document_download_link(document_id: str) -> str
ParameterTypeDescription
document_idstrID of the document to link to.

envelope.getEnvelopeDocumentPageDisplayUri

Get a display URI for a given page in a file attached to an envelope document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants.

get_document_page_display_uri(document_id: str, page: int, variant: Literal['original', 'filled', 'certificate'] = 'original') -> str
ParameterTypeDescription
document_idstrID of the document to render.
pageintThe page number to retrieve.
variant?Literal['original', 'filled', 'certificate']Which rendering of the document to use.

envelope.getEnvelopeDocumentPreviewLink

Get a pre-signed preview link for an Envelope Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

get_document_preview_link(document_id: str) -> str
ParameterTypeDescription
document_idstrID of the document to link to.

envelope.getEnvelopeFile

Get (binary download) a file attached to an Envelope. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

get_file(document_id: str) -> bytes
ParameterTypeDescription
document_idstrID of the document to download.

envelope.getEnvelopes

Lists all envelopes accessible by the caller, with optional filters.

list(params: EnvelopeListParams | None = None) -> EnvelopeList
ParameterTypeDescription
params?EnvelopeListParams | NoneOptional filters, sorting, and pagination.

envelope.getEnvelopesZip

Generate a ZIP file containing all data for the specified envelopes. The caller must be the owner of each envelope. The returned ZIP file contains a folder for each envelope.

get_zip(envelope_ids: list[str]) -> bytes
ParameterTypeDescription
envelope_idslist[str]IDs of the envelopes to include.

envelope.updateEnvelope

Update an envelope. Currently, only reminder settings may be changed.

update(envelope_id: str, params: EnvelopeUpdateParams) -> Envelope
ParameterTypeDescription
envelope_idstrID of the envelope to update.
paramsEnvelopeUpdateParamsThe fields to change; unset fields are left alone.

envelope.updateEnvelopeField

Update an Envelope field. Typically called during the signing process as a Recipient fills in fields.

update_field(envelope_id: str, role_name: str, field_name: str, value: str, prepared: bool = False) -> EnvelopeField
ParameterTypeDescription
envelope_idstrID of the envelope to operate on.
role_namestrThe role the field belongs to, e.g. "Recipient 1".
field_namestrThe machine name of the field, e.g. "Buyer-textbox-1".
valuestrThe value to set.
prepared?boolMark the field as prepared by the envelope creator. The js-sdk makes callers pass this explicitly; it defaults to False here.

envelope.uploadEnvelopeFieldAttachment

Upload an attachment to an attachment field.

upload_field_attachment(envelope_id: str, role_name: str, field_name: str, file: FileInput) -> EnvelopeField
ParameterTypeDescription
envelope_idstrID of the envelope to operate on.
role_namestrThe role the field belongs to.
field_namestrThe machine name of the attachment field.
fileFileInputA file path, raw bytes, a binary file-like object, or an httpx-style (filename, content, content_type) tuple.

envelope.cancelEnvelope

Cancel an Envelope.

Not yet available for C#.

envelope.createEnvelope

Create an envelope

Not yet available for C#.

envelope.deleteEnvelopeFieldAttachment

Delete an attachment. Note that this is not a DELETE endpoint because the field itself is not being deleted. Instead, it is a similar operation to uploading a new attachment, but the omission of the attachment signals the server to delete the current entry.

Not yet available for C#.

envelope.downloadEnvelopeDocument

Download a document directly.

Not yet available for C#.

envelope.getCombinedEnvelopeDocumentDownloadLink

Generates a single, signed PDF that combines all of an envelope's attached documents along with its completion certificate. Pages within the combined PDF are organized in the order of recipients' actions, preserving the signing workflow sequence.

Not yet available for C#.

envelope.getEnvelope

Get all metadata for an envelope. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

Not yet available for C#.

envelope.getEnvelopeDocument

Get all metadata for an envelope document. Note that when called by non-creators (e.g. Recipients) this will return only the **metadata** the caller is allowed to view.

Not yet available for C#.

envelope.getEnvelopeDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

Not yet available for C#.

envelope.getEnvelopeDocumentPageDisplayUri

Get a display URI for a given page in a file attached to an envelope document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants.

Not yet available for C#.

envelope.getEnvelopeDocumentPreviewLink

Get a pre-signed preview link for an Envelope Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

Not yet available for C#.

envelope.getEnvelopeFile

Get (binary download) a file attached to an Envelope. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

Not yet available for C#.

envelope.getEnvelopes

Lists all envelopes accessible by the caller, with optional filters.

Not yet available for C#.

envelope.getEnvelopesZip

Generate a ZIP file containing all data for the specified envelopes. The caller must be the owner of each envelope. The returned ZIP file contains a folder for each envelope.

Not yet available for C#.

envelope.updateEnvelope

Update an envelope. Currently, only reminder settings may be changed.

Not yet available for C#.

envelope.updateEnvelopeField

Update an Envelope field. Typically called during the signing process as a Recipient fills in fields.

Not yet available for C#.

envelope.uploadEnvelopeFieldAttachment

Upload an attachment to an attachment field.

Not yet available for C#.

Field

field.createField

Add a field to a template.

createField(endpoint: VerdocsEndpoint, templateId: string, params: ITemplateField): Promise<ITemplateField>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
paramsITemplateField

field.deleteField

Remove a field from a template.

deleteField(endpoint: VerdocsEndpoint, templateId: string, name: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
namestring

field.updateField

Update a template field.

updateField(endpoint: VerdocsEndpoint, templateId: string, name: string, params: Partial<ITemplateField>): Promise<ITemplateField>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
namestring
paramsPartial<ITemplateField>

field.createField

Add a field to a template.

create(template_id: str, params: FieldCreateParams) -> TemplateField
ParameterTypeDescription
template_idstrID of the template to add the field to.
paramsFieldCreateParamsThe field definition.

field.deleteField

Remove a field from a template.

delete(template_id: str, name: str) -> None
ParameterTypeDescription
template_idstrID of the template the field belongs to.
namestrName of the field to delete.

field.updateField

Update a template field.

update(template_id: str, name: str, params: FieldUpdateParams) -> TemplateField
ParameterTypeDescription
template_idstrID of the template the field belongs to.
namestrThe field's current name.
paramsFieldUpdateParamsThe fields to change; unset fields are left alone.

field.createField

Add a field to a template.

Not yet available for C#.

field.deleteField

Remove a field from a template.

Not yet available for C#.

field.updateField

Update a template field.

Not yet available for C#.

Group

group.addGroupMember

Add a member to a group.

addGroupMember(endpoint: VerdocsEndpoint, groupId: string, profile_id: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
groupIdstring
profile_idstring

group.createGroup

Create a group. Note that "everyone" is a reserved name and may not be created.

createGroup(endpoint: VerdocsEndpoint, params: object): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsobject

group.deleteGroup

Get an organization by ID. Note that the "everyone" group cannot be deleted.

deleteGroup(endpoint: VerdocsEndpoint, groupId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
groupIdstring

group.deleteGroupMember

Remove a member from a group.

deleteGroupMember(endpoint: VerdocsEndpoint, groupId: string, profile_id: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
groupIdstring
profile_idstring

group.getGroup

Get the details for a group, including its member profiles and list of permissions.

getGroup(endpoint: VerdocsEndpoint, groupId: string): Promise<IGroup>
ParameterTypeDescription
endpointVerdocsEndpoint
groupIdstring

group.getGroups

Get a list of groups for the caller's organization. NOTE: Any organization member may request the list of groups, but only Owners and Admins may update them.

getGroups(endpoint: VerdocsEndpoint): Promise<IGroup[]>
ParameterTypeDescription
endpointVerdocsEndpoint

group.updateGroup

Update a group. Note that "everyone" is a reserved name and may not be changed.

updateGroup(endpoint: VerdocsEndpoint, groupId: string, params: object): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
groupIdstring
paramsobject

group.addGroupMember

Add a member to a group.

add_member(group_id: str, profile_id: str) -> GroupProfile | None
ParameterTypeDescription
group_idstrID of the group.
profile_idstrID of the profile to add.

group.createGroup

Create a group. Note that "everyone" is a reserved name and may not be created.

create(params: GroupCreateParams) -> Group
ParameterTypeDescription
paramsGroupCreateParamsName and permissions for the new group. "everyone" is reserved, and the server lowercases the name.

group.deleteGroup

Get an organization by ID. Note that the "everyone" group cannot be deleted.

delete(group_id: str) -> None
ParameterTypeDescription
group_idstrID of the group to delete. The "everyone" group is refused.

group.deleteGroupMember

Remove a member from a group.

delete_member(group_id: str, profile_id: str) -> None
ParameterTypeDescription
group_idstrID of the group.
profile_idstrID of the profile to remove.

group.getGroup

Get the details for a group, including its member profiles and list of permissions.

get(group_id: str) -> Group
ParameterTypeDescription
group_idstrID of the group to fetch.

group.getGroups

Get a list of groups for the caller's organization. NOTE: Any organization member may request the list of groups, but only Owners and Admins may update them.

list() -> list[Group]

group.updateGroup

Update a group. Note that "everyone" is a reserved name and may not be changed.

update(group_id: str, params: GroupUpdateParams) -> Group
ParameterTypeDescription
group_idstrID of the group to update.
paramsGroupUpdateParamsNew name and permissions; the server requires both, so pass the current value for anything you are not changing.

group.addGroupMember

Add a member to a group.

Not yet available for C#.

group.createGroup

Create a group. Note that "everyone" is a reserved name and may not be created.

Not yet available for C#.

group.deleteGroup

Get an organization by ID. Note that the "everyone" group cannot be deleted.

Not yet available for C#.

group.deleteGroupMember

Remove a member from a group.

Not yet available for C#.

group.getGroup

Get the details for a group, including its member profiles and list of permissions.

Not yet available for C#.

group.getGroups

Get a list of groups for the caller's organization. NOTE: Any organization member may request the list of groups, but only Owners and Admins may update them.

Not yet available for C#.

group.updateGroup

Update a group. Note that "everyone" is a reserved name and may not be changed.

Not yet available for C#.

Initial

initial.createInitials

Create an initials block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" an initials block to be used for all initials fields in the document. Thus, this is typically called one time to create and store an initials block. Thereafter, the ID of the initials block may be re-used for each initials field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

createInitials(endpoint: VerdocsEndpoint, name: string, initials: Blob): Promise<IInitial>
ParameterTypeDescription
endpointVerdocsEndpoint
namestring
initialsBlob

initial.createInitials

Create an initials block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" an initials block to be used for all initials fields in the document. Thus, this is typically called one time to create and store an initials block. Thereafter, the ID of the initials block may be re-used for each initials field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

create(image: FileInput) -> Initial
ParameterTypeDescription
imageFileInputThe initials image: a file path, raw bytes, a binary file-like object, or an httpx-style (filename, content, content_type) tuple.

initial.createInitials

Create an initials block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" an initials block to be used for all initials fields in the document. Thus, this is typically called one time to create and store an initials block. Thereafter, the ID of the initials block may be re-used for each initials field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

Not yet available for C#.

Invitation

invitation.acceptOrganizationInvitation

Accept an invitation. This will automatically create a user record for the caller as well as a profile with the appropriate role as specified in the invite. The profile will be set as "current" for the caller, and session tokens will be returned to access the new profile. The profile's email_verified flag will also be set to true.

acceptOrganizationInvitation(endpoint: VerdocsEndpoint, params: IAcceptOrganizationInvitationRequest): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsIAcceptOrganizationInvitationRequest

invitation.createOrganizationInvitation

Invite a new user to join the organization.

createOrganizationInvitation(endpoint: VerdocsEndpoint, params: ICreateInvitationRequest): Promise<IOrganizationInvitation>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsICreateInvitationRequest

invitation.declineOrganizationInvitation

Decline an invitation. This will mark the status "declined," providing a visual indication to the organization's admins that the invite was declined, preventing further invites from being created to the same email address, and also preventing the invitee from receiving reminders to join.

declineOrganizationInvitation(endpoint: VerdocsEndpoint, email: string, token: string): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
emailstring
tokenstring

invitation.deleteOrganizationInvitation

Delete an invitation. Note that no cancellation message will be sent. Invitations are also one-time-use. If the invitee attempts to join after the invitation is deleted, accepted, or decline, they will be shown an error.

deleteOrganizationInvitation(endpoint: VerdocsEndpoint, email: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
emailstring

invitation.getOrganizationInvitation

(_Authenticated via invite token, not an active session._). Get an invitation's details. This is generally used as the first step of accepting the invite, and is authenticated via an invite token - not an active session.A successful response will indicate that the invite token is still valid, and include some metadata for the organization to style the acceptance screen. Intended to be called by the invitee to get details about the invitation they are about to accept.

getOrganizationInvitation(endpoint: VerdocsEndpoint, email: string, token: string): Promise<IOrganizationInvitation>
ParameterTypeDescription
endpointVerdocsEndpoint
emailstring
tokenstring

invitation.getOrganizationInvitations

Get a list of invitations pending for the caller's organization. The caller must be an admin or owner.

getOrganizationInvitations(endpoint: VerdocsEndpoint): Promise<IOrganizationInvitation[]>
ParameterTypeDescription
endpointVerdocsEndpoint

invitation.resendOrganizationInvitation

Send a reminder to the invitee to join the organization.

resendOrganizationInvitation(endpoint: VerdocsEndpoint, email: string): Promise<IOrganizationInvitation>
ParameterTypeDescription
endpointVerdocsEndpoint
emailstring

invitation.updateOrganizationInvitation

Update an invitation. Note that email may not be changed after the invite is sent. To change an invitee's email, delete the incorrect entry and create one with the correct value.

updateOrganizationInvitation(endpoint: VerdocsEndpoint, email: string, params: Pick<ICreateInvitationRequest, 'first_name' | 'last_name' | 'role'>): Promise<IOrganizationInvitation>
ParameterTypeDescription
endpointVerdocsEndpoint
emailstring
paramsPick<ICreateInvitationRequest, 'first_name' | 'last_name' | 'role'>

invitation.acceptOrganizationInvitation

Accept an invitation. This will automatically create a user record for the caller as well as a profile with the appropriate role as specified in the invite. The profile will be set as "current" for the caller, and session tokens will be returned to access the new profile. The profile's email_verified flag will also be set to true.

accept(params: InvitationAcceptParams) -> AuthenticateResponse
ParameterTypeDescription
paramsInvitationAcceptParamsThe invitee's details, invite token, and new password.

invitation.createOrganizationInvitation

Invite a new user to join the organization.

create(params: InvitationCreateParams) -> OrganizationInvitation
ParameterTypeDescription
paramsInvitationCreateParamsDetails for the invitation.

invitation.declineOrganizationInvitation

Decline an invitation. This will mark the status "declined," providing a visual indication to the organization's admins that the invite was declined, preventing further invites from being created to the same email address, and also preventing the invitee from receiving reminders to join.

decline(email: str, token: str) -> None
ParameterTypeDescription
emailstrEmail address the invitation was sent to.
tokenstrThe invite token from the invitation email.

invitation.deleteOrganizationInvitation

Delete an invitation. Note that no cancellation message will be sent. Invitations are also one-time-use. If the invitee attempts to join after the invitation is deleted, accepted, or decline, they will be shown an error.

delete(email: str) -> None
ParameterTypeDescription
emailstrEmail address of the invitation to delete.

invitation.getOrganizationInvitation

(_Authenticated via invite token, not an active session._). Get an invitation's details. This is generally used as the first step of accepting the invite, and is authenticated via an invite token - not an active session.A successful response will indicate that the invite token is still valid, and include some metadata for the organization to style the acceptance screen. Intended to be called by the invitee to get details about the invitation they are about to accept.

get(email: str, token: str) -> OrganizationInvitation
ParameterTypeDescription
emailstrEmail address the invitation was sent to.
tokenstrThe invite token from the invitation email.

invitation.getOrganizationInvitations

Get a list of invitations pending for the caller's organization. The caller must be an admin or owner.

list() -> list[OrganizationInvitation]

invitation.resendOrganizationInvitation

Send a reminder to the invitee to join the organization.

resend(email: str) -> None
ParameterTypeDescription
emailstrEmail address of the invitee to remind.

invitation.updateOrganizationInvitation

Update an invitation. Note that email may not be changed after the invite is sent. To change an invitee's email, delete the incorrect entry and create one with the correct value.

update(email: str, params: InvitationUpdateParams) -> OrganizationInvitation | None
ParameterTypeDescription
emailstrEmail address of the invitation to update.
paramsInvitationUpdateParamsThe fields to change.

invitation.acceptOrganizationInvitation

Accept an invitation. This will automatically create a user record for the caller as well as a profile with the appropriate role as specified in the invite. The profile will be set as "current" for the caller, and session tokens will be returned to access the new profile. The profile's email_verified flag will also be set to true.

Not yet available for C#.

invitation.createOrganizationInvitation

Invite a new user to join the organization.

Not yet available for C#.

invitation.declineOrganizationInvitation

Decline an invitation. This will mark the status "declined," providing a visual indication to the organization's admins that the invite was declined, preventing further invites from being created to the same email address, and also preventing the invitee from receiving reminders to join.

Not yet available for C#.

invitation.deleteOrganizationInvitation

Delete an invitation. Note that no cancellation message will be sent. Invitations are also one-time-use. If the invitee attempts to join after the invitation is deleted, accepted, or decline, they will be shown an error.

Not yet available for C#.

invitation.getOrganizationInvitation

(_Authenticated via invite token, not an active session._). Get an invitation's details. This is generally used as the first step of accepting the invite, and is authenticated via an invite token - not an active session.A successful response will indicate that the invite token is still valid, and include some metadata for the organization to style the acceptance screen. Intended to be called by the invitee to get details about the invitation they are about to accept.

Not yet available for C#.

invitation.getOrganizationInvitations

Get a list of invitations pending for the caller's organization. The caller must be an admin or owner.

Not yet available for C#.

invitation.resendOrganizationInvitation

Send a reminder to the invitee to join the organization.

Not yet available for C#.

invitation.updateOrganizationInvitation

Update an invitation. Note that email may not be changed after the invite is sent. To change an invitee's email, delete the incorrect entry and create one with the correct value.

Not yet available for C#.

KBA

kba.getKbaStep

Get the current KBA status. Note that this may only be called by the recipient and requires a valid signing session to proceed. Although the Recipient object itself contains indications of whether KBA is required, it will not contain the current status of the process. If `recipient.auth_methods` is set (not empty), and `recipient.kba_completed` is false, this endpoint should be called to determine the next KBA step required.

getKbaStep(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string): Promise<IRecipientKbaStepNone | IRecipientKbaStepComplete | IRecipientKbaStepPin | IRecipientKbaStepIdentity | IRecipientKbaStepChallenge | IRecipientKbaStepFailed>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring

kba.submitKbaChallengeResponse

Submit an identity response to a KBA challenge. Answers should be submitted in the same order as the challenges were listed in `IRecipientKbaStepChallenge.questions`.

submitKbaChallengeResponse(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string, responses: IKbaChallengeResponse[]): Promise<IRecipientKbaStepNone | IRecipientKbaStepComplete | IRecipientKbaStepPin | IRecipientKbaStepIdentity | IRecipientKbaStepChallenge | IRecipientKbaStepFailed>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring
responsesIKbaChallengeResponse[]

kba.submitKbaIdentity

Submit an identity response to a KBA challenge.

submitKbaIdentity(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string, identity: IKbaIdentity): Promise<IRecipientKbaStepNone | IRecipientKbaStepComplete | IRecipientKbaStepPin | IRecipientKbaStepIdentity | IRecipientKbaStepChallenge | IRecipientKbaStepFailed>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring
identityIKbaIdentity

kba.submitKbaPin

Submit a response to a KBA PIN challenge.

submitKbaPin(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string, pin: string): Promise<IRecipientKbaStepNone | IRecipientKbaStepComplete | IRecipientKbaStepPin | IRecipientKbaStepIdentity | IRecipientKbaStepChallenge | IRecipientKbaStepFailed>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring
pinstring

kba.getKbaStep

Get the current KBA status. Note that this may only be called by the recipient and requires a valid signing session to proceed. Although the Recipient object itself contains indications of whether KBA is required, it will not contain the current status of the process. If `recipient.auth_methods` is set (not empty), and `recipient.kba_completed` is false, this endpoint should be called to determine the next KBA step required.

get_step(envelope_id: str, role_name: str) -> RecipientKbaStep
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role to check.

kba.submitKbaChallengeResponse

Submit an identity response to a KBA challenge. Answers should be submitted in the same order as the challenges were listed in `IRecipientKbaStepChallenge.questions`.

submit_challenge_response(envelope_id: str, role_name: str, responses: list[KbaChallengeResponse]) -> RecipientKbaStep
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role completing the challenge.
responseslist[KbaChallengeResponse]One answer per challenge question, in order.

kba.submitKbaIdentity

Submit an identity response to a KBA challenge.

submit_identity(envelope_id: str, role_name: str, identity: KbaIdentity) -> RecipientKbaStep
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role completing the challenge.
identityKbaIdentityThe recipient's identity details.

kba.submitKbaPin

Submit a response to a KBA PIN challenge.

submit_pin(envelope_id: str, role_name: str, pin: str) -> RecipientKbaStep
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role completing the challenge.
pinstrThe PIN the recipient entered.

kba.getKbaStep

Get the current KBA status. Note that this may only be called by the recipient and requires a valid signing session to proceed. Although the Recipient object itself contains indications of whether KBA is required, it will not contain the current status of the process. If `recipient.auth_methods` is set (not empty), and `recipient.kba_completed` is false, this endpoint should be called to determine the next KBA step required.

Not yet available for C#.

kba.submitKbaChallengeResponse

Submit an identity response to a KBA challenge. Answers should be submitted in the same order as the challenges were listed in `IRecipientKbaStepChallenge.questions`.

Not yet available for C#.

kba.submitKbaIdentity

Submit an identity response to a KBA challenge.

Not yet available for C#.

kba.submitKbaPin

Submit a response to a KBA PIN challenge.

Not yet available for C#.

Member

member.createOrganizationMember

Create an organization member directly, bypassing the invite process.

createOrganizationMember(endpoint: VerdocsEndpoint, params: object): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsobject

member.deleteOrganizationMember

Delete a member from the caller's organization. Note that the caller must be an admin or owner, may not delete him/herself.

deleteOrganizationMember(endpoint: VerdocsEndpoint, profileId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring

member.getOrganizationMembers

Get a list of the members in the caller's organization.

getOrganizationMembers(endpoint: VerdocsEndpoint): Promise<IProfile[]>
ParameterTypeDescription
endpointVerdocsEndpoint

member.lockOrganizationMember

Lock an organization member's account. The member will be unable to sign in until an admin unlocks them or they complete the password-reset flow. Caller must be an admin or owner, may not lock him/herself, and the target must have a linked user account.

lockOrganizationMember(endpoint: VerdocsEndpoint, profileId: string, reason: string): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring
reasonstring

member.unlockOrganizationMember

Unlock a member whose account has been locked (typically after too many failed sign-in attempts or via an earlier admin lock). Caller must be an admin or owner, may not unlock him/herself, and the target must have a linked user account. Clears `locked`, `lock_reason`, and `login_failures`.

unlockOrganizationMember(endpoint: VerdocsEndpoint, profileId: string): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring

member.updateOrganizationMember

Update an organization member.

updateOrganizationMember(endpoint: VerdocsEndpoint, profileId: string, params: Partial<Pick<IProfile, 'first_name' | 'last_name' | 'roles'>>): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring
paramsPartial<Pick<IProfile, 'first_name' | 'last_name' | 'roles'>>

member.createOrganizationMember

Create an organization member directly, bypassing the invite process.

create(params: MemberCreateParams) -> MemberCreateResponse
ParameterTypeDescription
paramsMemberCreateParamsDetails for the new member.

member.deleteOrganizationMember

Delete a member from the caller's organization. Note that the caller must be an admin or owner, may not delete him/herself.

delete(profile_id: str) -> None
ParameterTypeDescription
profile_idstrThe profile to remove.

member.getOrganizationMembers

Get a list of the members in the caller's organization.

list() -> list[Profile]

member.lockOrganizationMember

Lock an organization member's account. The member will be unable to sign in until an admin unlocks them or they complete the password-reset flow. Caller must be an admin or owner, may not lock him/herself, and the target must have a linked user account.

lock(profile_id: str, reason: str) -> Profile
ParameterTypeDescription
profile_idstrThe profile to lock.
reasonstrWhy the account is being locked (1-255 chars); stored on the user record and shown to admins.

member.unlockOrganizationMember

Unlock a member whose account has been locked (typically after too many failed sign-in attempts or via an earlier admin lock). Caller must be an admin or owner, may not unlock him/herself, and the target must have a linked user account. Clears `locked`, `lock_reason`, and `login_failures`.

unlock(profile_id: str) -> Profile
ParameterTypeDescription
profile_idstrThe profile to unlock.

member.updateOrganizationMember

Update an organization member.

update(profile_id: str, params: MemberUpdateParams) -> Profile
ParameterTypeDescription
profile_idstrThe profile to update.
paramsMemberUpdateParamsThe fields to change.

member.createOrganizationMember

Create an organization member directly, bypassing the invite process.

Not yet available for C#.

member.deleteOrganizationMember

Delete a member from the caller's organization. Note that the caller must be an admin or owner, may not delete him/herself.

Not yet available for C#.

member.getOrganizationMembers

Get a list of the members in the caller's organization.

Not yet available for C#.

member.lockOrganizationMember

Lock an organization member's account. The member will be unable to sign in until an admin unlocks them or they complete the password-reset flow. Caller must be an admin or owner, may not lock him/herself, and the target must have a linked user account.

Not yet available for C#.

member.unlockOrganizationMember

Unlock a member whose account has been locked (typically after too many failed sign-in attempts or via an earlier admin lock). Caller must be an admin or owner, may not unlock him/herself, and the target must have a linked user account. Clears `locked`, `lock_reason`, and `login_failures`.

Not yet available for C#.

member.updateOrganizationMember

Update an organization member.

Not yet available for C#.

Notification

notification.createNotificationTemplate

Create a notification template. Only one template may exist per combination of type and event_name. At least one of `html_template` or `text_template` must be provided.

createNotificationTemplate(endpoint: VerdocsEndpoint, params: ICreateNotificationTemplateRequest): Promise<INotificationTemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsICreateNotificationTemplateRequest

notification.deleteNotificationTemplate

Delete a notification template.

deleteNotificationTemplate(endpoint: VerdocsEndpoint, id: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
idstring

notification.getNotifications

Get notifications for the caller's current profile.

getNotifications(endpoint: VerdocsEndpoint): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint

notification.getNotificationTemplate

Get a single notification template by ID.

getNotificationTemplate(endpoint: VerdocsEndpoint, id: string): Promise<INotificationTemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
idstring

notification.getNotificationTemplates

Get all notification templates for the caller's organization.

getNotificationTemplates(endpoint: VerdocsEndpoint): Promise<INotificationTemplate[]>
ParameterTypeDescription
endpointVerdocsEndpoint

notification.updateNotificationTemplate

Update a notification template. At least one of `html_template` or `text_template` must be provided.

updateNotificationTemplate(endpoint: VerdocsEndpoint, id: string, params: IUpdateNotificationTemplateRequest): Promise<INotificationTemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
idstring
paramsIUpdateNotificationTemplateRequest

notification.createNotificationTemplate

Create a notification template. Only one template may exist per combination of type and event_name. At least one of `html_template` or `text_template` must be provided.

create(params: NotificationTemplateCreateParams) -> NotificationTemplate
ParameterTypeDescription
paramsNotificationTemplateCreateParamsThe channel type, trigger event, and content. At least one of html_template or text_template is required.

notification.deleteNotificationTemplate

Delete a notification template.

delete(template_id: str) -> None
ParameterTypeDescription
template_idstrID of the notification template to delete.

notification.getNotifications

Get notifications for the caller's current profile.

notifications() -> list[dict[str, Any]]

notification.getNotificationTemplate

Get a single notification template by ID.

get(template_id: str) -> NotificationTemplate
ParameterTypeDescription
template_idstrID of the notification template to fetch.

notification.getNotificationTemplates

Get all notification templates for the caller's organization.

list() -> list[NotificationTemplate]

notification.updateNotificationTemplate

Update a notification template. At least one of `html_template` or `text_template` must be provided.

update(template_id: str, params: NotificationTemplateUpdateParams) -> NotificationTemplate
ParameterTypeDescription
template_idstrID of the notification template to update.
paramsNotificationTemplateUpdateParamsThe new content; at least one body is required.

notification.createNotificationTemplate

Create a notification template. Only one template may exist per combination of type and event_name. At least one of `html_template` or `text_template` must be provided.

Not yet available for C#.

notification.deleteNotificationTemplate

Delete a notification template.

Not yet available for C#.

notification.getNotifications

Get notifications for the caller's current profile.

Not yet available for C#.

notification.getNotificationTemplate

Get a single notification template by ID.

Not yet available for C#.

notification.getNotificationTemplates

Get all notification templates for the caller's organization.

Not yet available for C#.

notification.updateNotificationTemplate

Update a notification template. At least one of `html_template` or `text_template` must be provided.

Not yet available for C#.

Organization

organization.createOrganization

Create an organization. The caller will be assigned an "Owner" profile in the new organization, and it will be set to "current" automatically. A new set of session tokens will be issued to the caller, and the caller should update their endpoint to use the new tokens.

createOrganization(endpoint: VerdocsEndpoint, params: object & Partial<Pick<IOrganization, 'data' | 'url' | 'locale' | 'timezone' | 'parent_id' | 'contact_email' | 'full_logo_url' | 'thumbnail_url' | 'primary_color' | 'secondary_color' | 'terms_use_url' | 'privacy_policy_url' | 'powered_by_label' | 'powered_by_url' | 'disclaimer' | 'deletion_protected'>>): Promise<IAuthenticateResponse & object>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsobject & Partial<Pick<IOrganization, 'data' | 'url' | 'locale' | 'timezone' | 'parent_id' | 'contact_email' | 'full_logo_url' | 'thumbnail_url' | 'primary_color' | 'secondary_color' | 'terms_use_url' | 'privacy_policy_url' | 'powered_by_label' | 'powered_by_url' | 'disclaimer' | 'deletion_protected'>>

organization.deleteOrganization

Delete an organization. This can only be called by an owner. Inclusion of the organization ID to delete is just a safety check. The caller may only delete the organization they have currently selected.

deleteOrganization(endpoint: VerdocsEndpoint, organizationId: string): Promise<null | IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring

organization.getActiveEntitlements

Largely intended to be used internally by Web SDK components but may be informative for other cases. Entitlements are feature grants such as "ID-based KBA" that require paid contracts to enable, typically because the underlying services that support them are fee-based. Entitlements may run concurrently, and may have different start/end dates e.g. "ID-based KBA" may run 1/1/2026-12/31/2026 while "SMS Authentication" may be added later and run 6/1/2026-5/31/2027. The entitlements list is a simple array of enablements and may include entries that are not YET enabled or have now expired. In client code it is helpful to simply know "is XYZ feature currently enabled?" This function collapses the entitlements list to a simplified dictionary of current/active entitlements. Note that it is async because it calls the server to obtain the "most current" entitlements list. Existence of an entry in the resulting dictionary implies the feature is active. Metadata inside each entry can be used to determine limits, etc.

getActiveEntitlements(endpoint: VerdocsEndpoint): Promise<Partial<Record<TEntitlement, IEntitlement>>>
ParameterTypeDescription
endpointVerdocsEndpoint

organization.getEntitlements

Get the caller's organization entitlements.

getEntitlements(endpoint: VerdocsEndpoint): Promise<IEntitlement[]>
ParameterTypeDescription
endpointVerdocsEndpoint

organization.getOrganization

Get an organization by ID. Note that this endpoint will return only a subset of fields if the caller is not a member of the organization (the public fields).

getOrganization(endpoint: VerdocsEndpoint, organizationId: string): Promise<IOrganization>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring

organization.getOrganizationChildren

Get an organization's "children".

getOrganizationChildren(endpoint: VerdocsEndpoint, organizationId: string): Promise<IOrganization>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring

organization.getOrganizationPipelineSettings

Get an organization's document-pipeline settings. The caller must be an admin of the organization.

getOrganizationPipelineSettings(endpoint: VerdocsEndpoint, organizationId: string): Promise<IPipelineSettings>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring

organization.getOrganizationUsage

Get an organization's usage data. If the organization is a parent, usage data for children will be included as well. The response will be a nested object keyed by organization ID, with each entry being a dictionary of usageType:count entries.

getOrganizationUsage(endpoint: VerdocsEndpoint, organizationId: string, params?: object): Promise<TOrganizationUsage>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
params?object

organization.updateOrganization

Update an organization. This can only be called by an admin or owner.

updateOrganization(endpoint: VerdocsEndpoint, organizationId: string, params: Partial<IOrganization>): Promise<IOrganization>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
paramsPartial<IOrganization>

organization.updateOrganizationLogo

Update the organization's full or thumbnail logo. This can only be called by an admin or owner.

updateOrganizationLogo(endpoint: VerdocsEndpoint, organizationId: string, file: File, onUploadProgress?: object): Promise<IOrganization>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
fileFile
onUploadProgress?object

organization.updateOrganizationPipelineSettings

Update an organization's document-pipeline settings. Note that all fields are optional. Flags that are omitted will be ignored and left unchanged.

updateOrganizationPipelineSettings(endpoint: VerdocsEndpoint, organizationId: string, params: Partial<IPipelineSettings>): Promise<IPipelineSettings>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
paramsPartial<IPipelineSettings>

organization.updateOrganizationThumbnail

Update the organization's thumbnail. This can only be called by an admin or owner.

updateOrganizationThumbnail(endpoint: VerdocsEndpoint, organizationId: string, file: File, onUploadProgress?: object): Promise<IOrganization>
ParameterTypeDescription
endpointVerdocsEndpoint
organizationIdstring
fileFile
onUploadProgress?object

organization.createOrganization

Create an organization. The caller will be assigned an "Owner" profile in the new organization, and it will be set to "current" automatically. A new set of session tokens will be issued to the caller, and the caller should update their endpoint to use the new tokens.

create(params: OrganizationCreateParams) -> OrganizationCreateResponse | Organization
ParameterTypeDescription
paramsOrganizationCreateParamsFields for the new organization; only name is required. Note that the deployed handler consumes only name, parent_id, timezone, and locale; see OrganizationCreateParams.

organization.deleteOrganization

Delete an organization. This can only be called by an owner. Inclusion of the organization ID to delete is just a safety check. The caller may only delete the organization they have currently selected.

delete(organization_id: str) -> AuthenticateResponse | None
ParameterTypeDescription
organization_idstrID of the organization to delete.

organization.getActiveEntitlements

Largely intended to be used internally by Web SDK components but may be informative for other cases. Entitlements are feature grants such as "ID-based KBA" that require paid contracts to enable, typically because the underlying services that support them are fee-based. Entitlements may run concurrently, and may have different start/end dates e.g. "ID-based KBA" may run 1/1/2026-12/31/2026 while "SMS Authentication" may be added later and run 6/1/2026-5/31/2027. The entitlements list is a simple array of enablements and may include entries that are not YET enabled or have now expired. In client code it is helpful to simply know "is XYZ feature currently enabled?" This function collapses the entitlements list to a simplified dictionary of current/active entitlements. Note that it is async because it calls the server to obtain the "most current" entitlements list. Existence of an entry in the resulting dictionary implies the feature is active. Metadata inside each entry can be used to determine limits, etc.

get_active_entitlements() -> ActiveEntitlements

organization.getEntitlements

Get the caller's organization entitlements.

get_entitlements() -> list[Entitlement]

organization.getOrganization

Get an organization by ID. Note that this endpoint will return only a subset of fields if the caller is not a member of the organization (the public fields).

get(organization_id: str) -> Organization
ParameterTypeDescription
organization_idstrID of the organization to fetch. Must be the caller's own.

organization.getOrganizationChildren

Get an organization's "children".

get_children(organization_id: str) -> list[Organization]
ParameterTypeDescription
organization_idstrID of the parent organization. Must be the caller's own.

organization.getOrganizationPipelineSettings

Get an organization's document-pipeline settings. The caller must be an admin of the organization.

get_pipeline_settings(organization_id: str) -> PipelineSettings
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.

organization.getOrganizationUsage

Get an organization's usage data. If the organization is a parent, usage data for children will be included as well. The response will be a nested object keyed by organization ID, with each entry being a dictionary of usageType:count entries.

get_usage(organization_id: str, start_date: str | None = None, end_date: str | None = None, usage_type: str | None = None) -> OrganizationUsage
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
start_date?str | NoneISO 8601 UTC datetime string (e.g. "2026-01-01T00:00:00Z"). The server defaults to 90 days ago.
end_date?str | NoneISO 8601 UTC datetime string. The server defaults to now.
usage_type?str | NoneRestrict to one usage type. Known values: UsageType in models.base.

organization.updateOrganization

Update an organization. This can only be called by an admin or owner.

update(organization_id: str, params: OrganizationUpdateParams) -> Organization
ParameterTypeDescription
organization_idstrID of the organization to update. Must be the caller's own.
paramsOrganizationUpdateParamsThe fields to change; unset fields are left alone.

organization.updateOrganizationLogo

Update the organization's full or thumbnail logo. This can only be called by an admin or owner.

update_logo(organization_id: str, logo: FileInput) -> Organization
ParameterTypeDescription
organization_idstrID of the organization to update. Must be the caller's own.
logoFileInputThe image: a path, raw bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple.

organization.updateOrganizationPipelineSettings

Update an organization's document-pipeline settings. Note that all fields are optional. Flags that are omitted will be ignored and left unchanged.

update_pipeline_settings(organization_id: str, params: PipelineSettingsUpdateParams) -> PipelineSettings
ParameterTypeDescription
organization_idstrID of the organization. Must be the caller's own.
paramsPipelineSettingsUpdateParamsThe flags to change.

organization.updateOrganizationThumbnail

Update the organization's thumbnail. This can only be called by an admin or owner.

update_thumbnail(organization_id: str, thumbnail: FileInput) -> Organization
ParameterTypeDescription
organization_idstrID of the organization to update. Must be the caller's own.
thumbnailFileInputThe image: a path, raw bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple.

organization.createOrganization

Create an organization. The caller will be assigned an "Owner" profile in the new organization, and it will be set to "current" automatically. A new set of session tokens will be issued to the caller, and the caller should update their endpoint to use the new tokens.

Not yet available for C#.

organization.deleteOrganization

Delete an organization. This can only be called by an owner. Inclusion of the organization ID to delete is just a safety check. The caller may only delete the organization they have currently selected.

Not yet available for C#.

organization.getActiveEntitlements

Largely intended to be used internally by Web SDK components but may be informative for other cases. Entitlements are feature grants such as "ID-based KBA" that require paid contracts to enable, typically because the underlying services that support them are fee-based. Entitlements may run concurrently, and may have different start/end dates e.g. "ID-based KBA" may run 1/1/2026-12/31/2026 while "SMS Authentication" may be added later and run 6/1/2026-5/31/2027. The entitlements list is a simple array of enablements and may include entries that are not YET enabled or have now expired. In client code it is helpful to simply know "is XYZ feature currently enabled?" This function collapses the entitlements list to a simplified dictionary of current/active entitlements. Note that it is async because it calls the server to obtain the "most current" entitlements list. Existence of an entry in the resulting dictionary implies the feature is active. Metadata inside each entry can be used to determine limits, etc.

Not yet available for C#.

organization.getEntitlements

Get the caller's organization entitlements.

Not yet available for C#.

organization.getOrganization

Get an organization by ID. Note that this endpoint will return only a subset of fields if the caller is not a member of the organization (the public fields).

Not yet available for C#.

organization.getOrganizationChildren

Get an organization's "children".

Not yet available for C#.

organization.getOrganizationPipelineSettings

Get an organization's document-pipeline settings. The caller must be an admin of the organization.

Not yet available for C#.

organization.getOrganizationUsage

Get an organization's usage data. If the organization is a parent, usage data for children will be included as well. The response will be a nested object keyed by organization ID, with each entry being a dictionary of usageType:count entries.

Not yet available for C#.

organization.updateOrganization

Update an organization. This can only be called by an admin or owner.

Not yet available for C#.

organization.updateOrganizationLogo

Update the organization's full or thumbnail logo. This can only be called by an admin or owner.

Not yet available for C#.

organization.updateOrganizationPipelineSettings

Update an organization's document-pipeline settings. Note that all fields are optional. Flags that are omitted will be ignored and left unchanged.

Not yet available for C#.

organization.updateOrganizationThumbnail

Update the organization's thumbnail. This can only be called by an admin or owner.

Not yet available for C#.

Profile

profile.createProfile

Create a new profile. Note that there are two registration paths for creation: - Get invited to an organization, by an admin or owner of that org. - Created a new organization. The caller will become the first owner of the new org. This endpoint is for the second path, so an organization name is required. It is NOT required to be unique because it is very common for businesses to have the same names, without conflicting (e.g. "Delta" could be Delta Faucet or Delta Airlines). The new profile will automatically be set as the user's "current" profile, and new session tokens will be returned to the caller. However, the caller's email may not yet be verified. In that case, the caller will not yet be able to call other endpoints in the Verdocs API. The caller will need to check their email for a verification code, which should be submitted via the `verifyEmail` endpoint.

createProfile(endpoint: VerdocsEndpoint, params: ICreateProfileRequest): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsICreateProfileRequest

profile.deleteProfile

Delete a profile. If the requested profile is the caller's curent profile, the next available profile will be selected.

deleteProfile(endpoint: VerdocsEndpoint, profileId: string): Promise<IAuthenticateResponse | object>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring

profile.getCurrentProfile

Get the caller's current profile. This is just a convenience accessor that calls `getProfiles()` and returns the first `current: true` entry.

getCurrentProfile(endpoint: VerdocsEndpoint): Promise<undefined | IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint

profile.getProfiles

Get the caller's available profiles. The current profile will be marked with `current: true`.

getProfiles(endpoint: VerdocsEndpoint): Promise<IProfile[]>
ParameterTypeDescription
endpointVerdocsEndpoint

profile.switchProfile

Switch the caller's "current" profile. The current profile is used for permissions checking and profile_id field settings for most operations in Verdocs. It is important to select the appropropriate profile before calling other API functions.

switchProfile(endpoint: VerdocsEndpoint, profileId: string): Promise<IAuthenticateResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring

profile.updateProfile

Update a profile. For future expansion, the profile ID to update is required, but currently this must also be the "current" profile for the caller.

updateProfile(endpoint: VerdocsEndpoint, profileId: string, params: IUpdateProfileRequest): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring
paramsIUpdateProfileRequest

profile.updateProfilePhoto

Update the caller's profile photo. This can only be called for the user's "current" profile.

updateProfilePhoto(endpoint: VerdocsEndpoint, profileId: string, file: File, onUploadProgress?: object): Promise<IProfile>
ParameterTypeDescription
endpointVerdocsEndpoint
profileIdstring
fileFile
onUploadProgress?object

profile.createProfile

Create a new profile. Note that there are two registration paths for creation: - Get invited to an organization, by an admin or owner of that org. - Created a new organization. The caller will become the first owner of the new org. This endpoint is for the second path, so an organization name is required. It is NOT required to be unique because it is very common for businesses to have the same names, without conflicting (e.g. "Delta" could be Delta Faucet or Delta Airlines). The new profile will automatically be set as the user's "current" profile, and new session tokens will be returned to the caller. However, the caller's email may not yet be verified. In that case, the caller will not yet be able to call other endpoints in the Verdocs API. The caller will need to check their email for a verification code, which should be submitted via the `verifyEmail` endpoint.

create(params: CreateProfileRequest) -> AuthenticateResponse
ParameterTypeDescription
paramsCreateProfileRequestThe signup fields; org_name does not need to be unique.

profile.deleteProfile

Delete a profile. If the requested profile is the caller's curent profile, the next available profile will be selected.

delete(profile_id: str) -> AuthenticateResponse | None
ParameterTypeDescription
profile_idstrID of the caller's profile to delete.

profile.getCurrentProfile

Get the caller's current profile. This is just a convenience accessor that calls `getProfiles()` and returns the first `current: true` entry.

current() -> Profile | None

profile.getProfiles

Get the caller's available profiles. The current profile will be marked with `current: true`.

list() -> list[Profile]

profile.switchProfile

Switch the caller's "current" profile. The current profile is used for permissions checking and profile_id field settings for most operations in Verdocs. It is important to select the appropropriate profile before calling other API functions.

switch(profile_id: str) -> AuthenticateResponse
ParameterTypeDescription
profile_idstrID of the caller's profile to make current.

profile.updateProfile

Update a profile. For future expansion, the profile ID to update is required, but currently this must also be the "current" profile for the caller.

update(profile_id: str, params: UpdateProfileRequest) -> Profile
ParameterTypeDescription
profile_idstrID of the profile to update.
paramsUpdateProfileRequestThe fields to change; unset fields are left alone.

profile.updateProfilePhoto

Update the caller's profile photo. This can only be called for the user's "current" profile.

update_photo(profile_id: str, picture: FileInput) -> Profile
ParameterTypeDescription
profile_idstrID of the caller's own profile.
pictureFileInputThe photo: a filesystem path (str or PathLike), raw bytes, a binary file-like object, or an httpx-style (filename, content[, content_type]) tuple.

profile.createProfile

Create a new profile. Note that there are two registration paths for creation: - Get invited to an organization, by an admin or owner of that org. - Created a new organization. The caller will become the first owner of the new org. This endpoint is for the second path, so an organization name is required. It is NOT required to be unique because it is very common for businesses to have the same names, without conflicting (e.g. "Delta" could be Delta Faucet or Delta Airlines). The new profile will automatically be set as the user's "current" profile, and new session tokens will be returned to the caller. However, the caller's email may not yet be verified. In that case, the caller will not yet be able to call other endpoints in the Verdocs API. The caller will need to check their email for a verification code, which should be submitted via the `verifyEmail` endpoint.

Not yet available for C#.

profile.deleteProfile

Delete a profile. If the requested profile is the caller's curent profile, the next available profile will be selected.

Not yet available for C#.

profile.getCurrentProfile

Get the caller's current profile. This is just a convenience accessor that calls `getProfiles()` and returns the first `current: true` entry.

Not yet available for C#.

profile.getProfiles

Get the caller's available profiles. The current profile will be marked with `current: true`.

Not yet available for C#.

profile.switchProfile

Switch the caller's "current" profile. The current profile is used for permissions checking and profile_id field settings for most operations in Verdocs. It is important to select the appropropriate profile before calling other API functions.

Not yet available for C#.

profile.updateProfile

Update a profile. For future expansion, the profile ID to update is required, but currently this must also be the "current" profile for the caller.

Not yet available for C#.

profile.updateProfilePhoto

Update the caller's profile photo. This can only be called for the user's "current" profile.

Not yet available for C#.

Recipient

recipient.askQuestion

Ask the sender a question. This will email the envelope's sender (via sender_email, if set when the envelope was created) with the recipient's information and their question. It is up to the sender to determine how to reply.

askQuestion(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, params: object): Promise<IRecipient>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
paramsobject

recipient.delegateRecipient

Delegate a recipient's signing responsibility. The envelope sender must enable this before the recipient calls this endpoint, and only the recipient may call it, or the call will be rejected. The recipient's role will be renamed and configured to indicate to whom the delegation was made, and a new recipient entry with the updated details (e.g. name and email address) will be added to the flow with the same role_name, order, and sequence of the original recipient. Unless no_contact is set on the envelope, the delegation recipient and envelope creator will also be notified.

delegateRecipient(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, params: object): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
paramsobject

recipient.envelopeRecipientAgree

Agree to electronic signing dislosures.

envelopeRecipientAgree(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, disclosures?: string, data?: IRecipientDisclosureAgreeBody): Promise<IRecipient>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
disclosures?string
data?IRecipientDisclosureAgreeBody

recipient.envelopeRecipientDecline

Decline electronic signing dislosures. Note that if any recipient declines, the entire envelope becomes non-viable and later recipients may no longer act. The creator will receive a notification when this occurs.

envelopeRecipientDecline(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string): Promise<IRecipient>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring

recipient.envelopeRecipientSubmit

Submit an envelope (signing is finished). Note that all fields must be valid/completed for this to succeed.

envelopeRecipientSubmit(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, data?: IRecipientSubmitBody): Promise<IRecipient>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
data?IRecipientSubmitBody

recipient.getInPersonLink

Get an in-person signing link. Must be called by the owner/creator of the envelope. The response also includes the raw access key that may be used to directly initiate a signing session (see `startSigningSession`) as well as an access token representing a valid signing session for immediate use in embeds or other applications. Note that in-person signing is considered a lower-security operation than authenticated signing, and the final envelope certificate will reflect this.

getInPersonLink(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string): Promise<IInPersonLinkResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring

recipient.remindRecipient

Send a reminder to a recipient. The recipient must still be an active member of the signing flow (e.g. not declined, already submitted, etc.)

remindRecipient(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring

recipient.resetRecipient

Fully reset a recipient. This allows the recipient to restart failed KBA flows, change fields they may have filled in incorrectly while signing, etc. This cannot be used on a canceled or completed envelope, but may be used to restart an envelope marked declined.

resetRecipient(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring

recipient.startSigningSession

Begin a signing session for an Envelope. This path requires an invite code, and should generally be called with a NON-default Endpoint to avoid conflicting with any active user session the user may have. To initiate in-person signing by an authenticated user (e.g. self-signing), call getInPersonLink() instead. The response from that call includes both a link for direct signing via a Web browser as well as an in-person access_key. That access_key.key may be used here as well.

startSigningSession(endpoint: VerdocsEndpoint, envelope_id: string, role_name: string, key: string): Promise<ISignerTokenResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
envelope_idstring
role_namestring
keystring

recipient.updateRecipient

Update a recipient. NOTE: User interfaces should rate-limit this operation to avoid spamming recipients. Excessive use of this endpoint may result in Verdocs rate-limiting the calling application to prevent abuse. This endpoint will return a 200 OK even if the no_contact flag is set on the envelope (in which case the call will be silently ignored).

updateRecipient(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, params: IUpdateRecipientParams): Promise<IRecipient>
ParameterTypeDescription
endpointVerdocsEndpoint
envelopeIdstring
roleNamestring
paramsIUpdateRecipientParams

recipient.verifySigner

Verify a recipient within a signing session. All signing sessions use an invite code at a minimum, but many scenarios require more robust verification of recipients, so one or more verification methods may be attached to each recipient. If an authentication method is enabled, the signer must first accept the e-signature disclosures, then complete each verification step before attempting to view/display documents, complete any fields, or submit the envelope. This endpoint should be called to complete each step. If the call fails an error will be thrown.

verifySigner(endpoint: VerdocsEndpoint, params: TAuthenticateRecipientRequest): Promise<ISignerTokenResponse>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsTAuthenticateRecipientRequest

recipient.askQuestion

Ask the sender a question. This will email the envelope's sender (via sender_email, if set when the envelope was created) with the recipient's information and their question. It is up to the sender to determine how to reply.

ask_question(envelope_id: str, role_name: str, question: str) -> None
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role asking the question.
questionstrThe question to send.

recipient.delegateRecipient

Delegate a recipient's signing responsibility. The envelope sender must enable this before the recipient calls this endpoint, and only the recipient may call it, or the call will be rejected. The recipient's role will be renamed and configured to indicate to whom the delegation was made, and a new recipient entry with the updated details (e.g. name and email address) will be added to the flow with the same role_name, order, and sequence of the original recipient. Unless no_contact is set on the envelope, the delegation recipient and envelope creator will also be notified.

delegate(envelope_id: str, role_name: str, params: RecipientDelegateParams) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role delegating their tasks.
paramsRecipientDelegateParamsName and contact details of the new recipient.

recipient.envelopeRecipientAgree

Agree to electronic signing dislosures.

agree(envelope_id: str, role_name: str, disclosures: str | None = None, params: RecipientAgreeParams | None = None) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role agreeing to the disclosures.
disclosures?str | NoneThe disclosure text the recipient accepted. DEFAULT_DISCLOSURES in verdocs.models.envelopes carries the stock text used when the organization has no override.
params?RecipientAgreeParams | NoneOptional locale and timezone to record for the recipient.

recipient.envelopeRecipientDecline

Decline electronic signing dislosures. Note that if any recipient declines, the entire envelope becomes non-viable and later recipients may no longer act. The creator will receive a notification when this occurs.

decline(envelope_id: str, role_name: str) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role declining.

recipient.envelopeRecipientSubmit

Submit an envelope (signing is finished). Note that all fields must be valid/completed for this to succeed.

submit(envelope_id: str, role_name: str, params: RecipientSubmitParams | None = None) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role submitting.
params?RecipientSubmitParams | NoneOptional locale and timezone to record for the recipient.

recipient.getInPersonLink

Get an in-person signing link. Must be called by the owner/creator of the envelope. The response also includes the raw access key that may be used to directly initiate a signing session (see `startSigningSession`) as well as an access token representing a valid signing session for immediate use in embeds or other applications. Note that in-person signing is considered a lower-security operation than authenticated signing, and the final envelope certificate will reflect this.

get_in_person_link(envelope_id: str, role_name: str) -> InPersonLinkResponse
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role to generate the link for.

recipient.remindRecipient

Send a reminder to a recipient. The recipient must still be an active member of the signing flow (e.g. not declined, already submitted, etc.)

remind(envelope_id: str, role_name: str) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role to remind.

recipient.resetRecipient

Fully reset a recipient. This allows the recipient to restart failed KBA flows, change fields they may have filled in incorrectly while signing, etc. This cannot be used on a canceled or completed envelope, but may be used to restart an envelope marked declined.

reset(envelope_id: str, role_name: str) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role to reset.

recipient.startSigningSession

Begin a signing session for an Envelope. This path requires an invite code, and should generally be called with a NON-default Endpoint to avoid conflicting with any active user session the user may have. To initiate in-person signing by an authenticated user (e.g. self-signing), call getInPersonLink() instead. The response from that call includes both a link for direct signing via a Web browser as well as an in-person access_key. That access_key.key may be used here as well.

start_signing_session(envelope_id: str, role_name: str, key: str) -> SignerTokenResponse
ParameterTypeDescription
envelope_idstrThe envelope to sign.
role_namestrThe role to sign as.
keystrAccess key from the email/SMS invite or the envelope creator.

recipient.updateRecipient

Update a recipient. NOTE: User interfaces should rate-limit this operation to avoid spamming recipients. Excessive use of this endpoint may result in Verdocs rate-limiting the calling application to prevent abuse. This endpoint will return a 200 OK even if the no_contact flag is set on the envelope (in which case the call will be silently ignored).

update(envelope_id: str, role_name: str, params: RecipientUpdateParams) -> Recipient
ParameterTypeDescription
envelope_idstrThe envelope to operate on.
role_namestrThe role to update.
paramsRecipientUpdateParamsThe fields to change; unset fields are left alone.

recipient.verifySigner

Verify a recipient within a signing session. All signing sessions use an invite code at a minimum, but many scenarios require more robust verification of recipients, so one or more verification methods may be attached to each recipient. If an authentication method is enabled, the signer must first accept the e-signature disclosures, then complete each verification step before attempting to view/display documents, complete any fields, or submit the envelope. This endpoint should be called to complete each step. If the call fails an error will be thrown.

verify_signer(params: RecipientVerifyParams) -> SignerTokenResponse
ParameterTypeDescription
paramsRecipientVerifyParamsThe verification step being completed: passcode, email, sms, or kba.

recipient.askQuestion

Ask the sender a question. This will email the envelope's sender (via sender_email, if set when the envelope was created) with the recipient's information and their question. It is up to the sender to determine how to reply.

Not yet available for C#.

recipient.delegateRecipient

Delegate a recipient's signing responsibility. The envelope sender must enable this before the recipient calls this endpoint, and only the recipient may call it, or the call will be rejected. The recipient's role will be renamed and configured to indicate to whom the delegation was made, and a new recipient entry with the updated details (e.g. name and email address) will be added to the flow with the same role_name, order, and sequence of the original recipient. Unless no_contact is set on the envelope, the delegation recipient and envelope creator will also be notified.

Not yet available for C#.

recipient.envelopeRecipientAgree

Agree to electronic signing dislosures.

Not yet available for C#.

recipient.envelopeRecipientDecline

Decline electronic signing dislosures. Note that if any recipient declines, the entire envelope becomes non-viable and later recipients may no longer act. The creator will receive a notification when this occurs.

Not yet available for C#.

recipient.envelopeRecipientSubmit

Submit an envelope (signing is finished). Note that all fields must be valid/completed for this to succeed.

Not yet available for C#.

recipient.getInPersonLink

Get an in-person signing link. Must be called by the owner/creator of the envelope. The response also includes the raw access key that may be used to directly initiate a signing session (see `startSigningSession`) as well as an access token representing a valid signing session for immediate use in embeds or other applications. Note that in-person signing is considered a lower-security operation than authenticated signing, and the final envelope certificate will reflect this.

Not yet available for C#.

recipient.remindRecipient

Send a reminder to a recipient. The recipient must still be an active member of the signing flow (e.g. not declined, already submitted, etc.)

Not yet available for C#.

recipient.resetRecipient

Fully reset a recipient. This allows the recipient to restart failed KBA flows, change fields they may have filled in incorrectly while signing, etc. This cannot be used on a canceled or completed envelope, but may be used to restart an envelope marked declined.

Not yet available for C#.

recipient.startSigningSession

Begin a signing session for an Envelope. This path requires an invite code, and should generally be called with a NON-default Endpoint to avoid conflicting with any active user session the user may have. To initiate in-person signing by an authenticated user (e.g. self-signing), call getInPersonLink() instead. The response from that call includes both a link for direct signing via a Web browser as well as an in-person access_key. That access_key.key may be used here as well.

Not yet available for C#.

recipient.updateRecipient

Update a recipient. NOTE: User interfaces should rate-limit this operation to avoid spamming recipients. Excessive use of this endpoint may result in Verdocs rate-limiting the calling application to prevent abuse. This endpoint will return a 200 OK even if the no_contact flag is set on the envelope (in which case the call will be silently ignored).

Not yet available for C#.

recipient.verifySigner

Verify a recipient within a signing session. All signing sessions use an invite code at a minimum, but many scenarios require more robust verification of recipients, so one or more verification methods may be attached to each recipient. If an authentication method is enabled, the signer must first accept the e-signature disclosures, then complete each verification step before attempting to view/display documents, complete any fields, or submit the envelope. This endpoint should be called to complete each step. If the call fails an error will be thrown.

Not yet available for C#.

Role

role.createTemplateRole

Create a role.

createTemplateRole(endpoint: VerdocsEndpoint, template_id: string, params: IRole): Promise<IRole>
ParameterTypeDescription
endpointVerdocsEndpoint
template_idstring
paramsIRole

role.deleteTemplateRole

Delete a role.

deleteTemplateRole(endpoint: VerdocsEndpoint, template_id: string, name: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
template_idstring
namestring

role.updateTemplateRole

Update a role.

updateTemplateRole(endpoint: VerdocsEndpoint, template_id: string, name: string, params: Partial<IRole>): Promise<IRole>
ParameterTypeDescription
endpointVerdocsEndpoint
template_idstring
namestring
paramsPartial<IRole>

role.createTemplateRole

Create a role.

create(template_id: str, params: RoleCreateParams) -> Role
ParameterTypeDescription
template_idstrID of the template to add the role to.
paramsRoleCreateParamsThe role definition; only name is required.

role.deleteTemplateRole

Delete a role.

delete(template_id: str, name: str) -> None
ParameterTypeDescription
template_idstrID of the template the role belongs to.
namestrName of the role to delete.

role.updateTemplateRole

Update a role.

update(template_id: str, name: str, params: RoleUpdateParams) -> Role
ParameterTypeDescription
template_idstrID of the template the role belongs to.
namestrThe role's current name.
paramsRoleUpdateParamsThe fields to change; unset fields are left alone.

role.createTemplateRole

Create a role.

Not yet available for C#.

role.deleteTemplateRole

Delete a role.

Not yet available for C#.

role.updateTemplateRole

Update a role.

Not yet available for C#.

Signature

signature.createSignature

Create a signature block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" a signature block to be used for all signature fields in the document. Thus, this is typically called one time to create and store a signature block. Thereafter, the ID of the signature block may be re-used for each signature field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

createSignature(endpoint: VerdocsEndpoint, name: string, signature: Blob): Promise<ISignature>
ParameterTypeDescription
endpointVerdocsEndpoint
namestring
signatureBlob

signature.createSignature

Create a signature block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" a signature block to be used for all signature fields in the document. Thus, this is typically called one time to create and store a signature block. Thereafter, the ID of the signature block may be re-used for each signature field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

create(image: FileInput) -> Signature
ParameterTypeDescription
imageFileInputThe signature image: a file path, raw bytes, a binary file-like object, or an httpx-style (filename, content, content_type) tuple.

signature.createSignature

Create a signature block. In a typical signing workflow, the user is asked at the beginning of the process to "adopt" a signature block to be used for all signature fields in the document. Thus, this is typically called one time to create and store a signature block. Thereafter, the ID of the signature block may be re-used for each signature field to be "stamped" by the user. Note: Both "guest" signers and authenticated users can create initials blocks. Guest signers typically only ever have one, tied to that session. But authenticated users can create more than one, and can use them interchangeably.

Not yet available for C#.

Template

template.createTemplate

Create a template.

createTemplate(endpoint: VerdocsEndpoint, params: ITemplateCreateParams, onUploadProgress?: object): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsITemplateCreateParams
onUploadProgress?object

template.createTemplateFromSharepoint

Create a template from a Sharepoint asset.

createTemplateFromSharepoint(endpoint: VerdocsEndpoint, params: ITemplateCreateFromSharepointParams): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsITemplateCreateFromSharepointParams

template.deleteTemplate

Delete a template.

deleteTemplate(endpoint: VerdocsEndpoint, templateId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring

template.duplicateTemplate

Duplicate a template. Creates a complete clone, including all settings (e.g. reminders), fields, roles, and documents.

duplicateTemplate(endpoint: VerdocsEndpoint, templateId: string, name: string): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
namestring

template.getTemplate

Get one template by its ID. Note that the caller must have at least View access to the template.

getTemplate(endpoint: VerdocsEndpoint, templateId: string): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring

template.getTemplates

Get all templates accessible by the caller, with optional filters.

getTemplates(endpoint: VerdocsEndpoint, params?: IGetTemplatesParams): Promise<object>
ParameterTypeDescription
endpointVerdocsEndpoint
params?IGetTemplatesParams

template.toggleTemplateStar

Toggle the template star for a template.

toggleTemplateStar(endpoint: VerdocsEndpoint, templateId: string): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring

template.updateTemplate

Update a template.

updateTemplate(endpoint: VerdocsEndpoint, templateId: string, params: Partial<ITemplateCreateParams>): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
paramsPartial<ITemplateCreateParams>

template.createTemplate

Create a template.

create(params: TemplateCreateParams, files: Sequence[TemplateFile] | None = None) -> Template
ParameterTypeDescription
paramsTemplateCreateParamsFields for the new template; only name is required.
files?Sequence[TemplateFile] | NoneOptional documents to attach. Each entry may be a path, raw PDF bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple. Bare bytes are sent as "document.pdf" with an application/pdf content type; use a tuple to control the name or to send DOCX bytes.

template.createTemplateFromSharepoint

Create a template from a Sharepoint asset.

create_from_sharepoint(params: TemplateCreateFromSharepointParams) -> Template
ParameterTypeDescription
paramsTemplateCreateFromSharepointParamsSharepoint site/item coordinates and the On-Behalf-Of token.

template.deleteTemplate

Delete a template.

delete(template_id: str) -> None
ParameterTypeDescription
template_idstrID of the template to delete.

template.duplicateTemplate

Duplicate a template. Creates a complete clone, including all settings (e.g. reminders), fields, roles, and documents.

duplicate(template_id: str, name: str) -> Template
ParameterTypeDescription
template_idstrID of the template to copy.
namestrName for the new copy.

template.getTemplate

Get one template by its ID. Note that the caller must have at least View access to the template.

get(template_id: str) -> Template
ParameterTypeDescription
template_idstrID of the template to fetch.

template.getTemplates

Get all templates accessible by the caller, with optional filters.

list(params: TemplateListParams | None = None) -> TemplateList
ParameterTypeDescription
params?TemplateListParams | NoneOptional filters, sorting, and pagination.

template.toggleTemplateStar

Toggle the template star for a template.

toggle_star(template_id: str) -> Template
ParameterTypeDescription
template_idstrID of the template to star or unstar.

template.updateTemplate

Update a template.

update(template_id: str, params: TemplateUpdateParams) -> Template
ParameterTypeDescription
template_idstrID of the template to update.
paramsTemplateUpdateParamsThe fields to change; unset fields are left alone.

template.createTemplate

Create a template.

Not yet available for C#.

template.createTemplateFromSharepoint

Create a template from a Sharepoint asset.

Not yet available for C#.

template.deleteTemplate

Delete a template.

Not yet available for C#.

template.duplicateTemplate

Duplicate a template. Creates a complete clone, including all settings (e.g. reminders), fields, roles, and documents.

Not yet available for C#.

template.getTemplate

Get one template by its ID. Note that the caller must have at least View access to the template.

Not yet available for C#.

template.getTemplates

Get all templates accessible by the caller, with optional filters.

Not yet available for C#.

template.toggleTemplateStar

Toggle the template star for a template.

Not yet available for C#.

template.updateTemplate

Update a template.

Not yet available for C#.

TemplateDocument

templateDocument.createTemplateDocument

Create a Document for a particular Template.

createTemplateDocument(endpoint: VerdocsEndpoint, template_id: string, file: File, onUploadProgress?: object): Promise<ITemplateDocument>
ParameterTypeDescription
endpointVerdocsEndpoint
template_idstring
fileFile
onUploadProgress?object

templateDocument.deleteTemplateDocument

Delete a specific Document.

deleteTemplateDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<ITemplate>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

templateDocument.downloadTemplateDocument

Download a document directly.

downloadTemplateDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

templateDocument.getTemplateDocument

Get all metadata for a template document. Note that when called by non-creators (e.g. Org Collaborators) this will return only the **metadata** the caller is allowed to view.

getTemplateDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<ITemplateDocument>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring

templateDocument.getTemplateDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

getTemplateDocumentDownloadLink(endpoint: VerdocsEndpoint, _templateId: string, documentId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
_templateIdstring
documentIdstring

templateDocument.getTemplateDocumentFile

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

getTemplateDocumentFile(endpoint: VerdocsEndpoint, templateId: string, documentId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
documentIdstring

templateDocument.getTemplateDocumentPageDisplayUri

Get a display URI for a given page in a file attached to a template document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants. The original asset may be obtained by calling `getTemplateDocumentFile()` or similar.

getTemplateDocumentPageDisplayUri(endpoint: VerdocsEndpoint, documentId: string, page: number, variant: 'original' | 'tagged' = 'original'): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
documentIdstring
pagenumber
variant?'original' | 'tagged'

templateDocument.getTemplateDocumentPreviewLink

Get a pre-signed preview link for a Template Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

getTemplateDocumentPreviewLink(endpoint: VerdocsEndpoint, _templateId: string, documentId: string): Promise<string>
ParameterTypeDescription
endpointVerdocsEndpoint
_templateIdstring
documentIdstring

templateDocument.getTemplateDocumentThumbnail

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

getTemplateDocumentThumbnail(endpoint: VerdocsEndpoint, templateId: string, documentId: string): Promise<any>
ParameterTypeDescription
endpointVerdocsEndpoint
templateIdstring
documentIdstring

templateDocument.createTemplateDocument

Create a Document for a particular Template.

create(template_id: str, file: TemplateFile) -> TemplateDocument
ParameterTypeDescription
template_idstrID of the template to attach the document to.
fileTemplateFileThe document: a path, raw PDF bytes, an open binary file, or an httpx-style (filename, content[, content_type]) tuple.

templateDocument.deleteTemplateDocument

Delete a specific Document.

delete(document_id: str) -> Template
ParameterTypeDescription
document_idstrID of the document to delete.

templateDocument.downloadTemplateDocument

Download a document directly.

download(document_id: str) -> bytes
ParameterTypeDescription
document_idstrID of the document to download.

templateDocument.getTemplateDocument

Get all metadata for a template document. Note that when called by non-creators (e.g. Org Collaborators) this will return only the **metadata** the caller is allowed to view.

get(document_id: str) -> TemplateDocument
ParameterTypeDescription
document_idstrID of the document to fetch.

templateDocument.getTemplateDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

get_download_link(document_id: str) -> str
ParameterTypeDescription
document_idstrID of the document to link to.

templateDocument.getTemplateDocumentFile

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

get_file(template_id: str, document_id: str) -> bytes
ParameterTypeDescription
template_idstrID of the template the document belongs to.
document_idstrID of the document to download.

templateDocument.getTemplateDocumentPageDisplayUri

Get a display URI for a given page in a file attached to a template document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants. The original asset may be obtained by calling `getTemplateDocumentFile()` or similar.

get_page_display_uri(document_id: str, page: int | Literal['thumb'], variant: Literal['original', 'tagged'] = 'original') -> str
ParameterTypeDescription
document_idstrID of the document to render.
pageint | Literal['thumb']0-based page number, or "thumb" for the thumbnail.
variant?Literal['original', 'tagged']"original" (default) or "tagged".

templateDocument.getTemplateDocumentPreviewLink

Get a pre-signed preview link for a Template Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

get_preview_link(document_id: str) -> str
ParameterTypeDescription
document_idstrID of the document to link to.

templateDocument.getTemplateDocumentThumbnail

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

get_thumbnail(template_id: str, document_id: str) -> bytes
ParameterTypeDescription
template_idstrID of the template the document belongs to.
document_idstrID of the document to thumbnail.

templateDocument.createTemplateDocument

Create a Document for a particular Template.

Not yet available for C#.

templateDocument.deleteTemplateDocument

Delete a specific Document.

Not yet available for C#.

templateDocument.downloadTemplateDocument

Download a document directly.

Not yet available for C#.

templateDocument.getTemplateDocument

Get all metadata for a template document. Note that when called by non-creators (e.g. Org Collaborators) this will return only the **metadata** the caller is allowed to view.

Not yet available for C#.

templateDocument.getTemplateDocumentDownloadLink

Get an envelope document's metadata, or the document itself. If no "type" parameter is specified, the document metadata is returned. If "type" is set to "file", the document binary content is returned with Content-Type set to the MIME type of the file. If "type" is set to "download", a string download link will be returned. If "type" is set to "preview" a string preview link will be returned. This link expires quickly, so it should be accessed immediately and never shared.

Not yet available for C#.

templateDocument.getTemplateDocumentFile

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

Not yet available for C#.

templateDocument.getTemplateDocumentPageDisplayUri

Get a display URI for a given page in a file attached to a template document. These pages are rendered server-side into PNG resources suitable for display in IMG tags although they may be used elsewhere. Note that these are intended for DISPLAY ONLY, are not legally binding documents, and do not contain any encoded metadata from participants. The original asset may be obtained by calling `getTemplateDocumentFile()` or similar.

Not yet available for C#.

templateDocument.getTemplateDocumentPreviewLink

Get a pre-signed preview link for a Template Document. This link expires quickly, so it should be accessed immediately and never shared. Content-Disposition will be set to "inline".

Not yet available for C#.

templateDocument.getTemplateDocumentThumbnail

Get (binary download) a file attached to a Template. It is important to use this method rather than a direct A HREF or similar link to set the authorization headers for the request.

Not yet available for C#.

Webhook

webhook.getWebhooks

Get the registered Webhook configuration for the caller's organization. Note that an organization may only have a single Webhook configuration.

getWebhooks(endpoint: VerdocsEndpoint): Promise<IWebhook>
ParameterTypeDescription
endpointVerdocsEndpoint

webhook.rotateWebhookSecret

Rotate the secret key used to authenticate Webhooks. If a secret key has not yet been set, it will be created. Until this is done, Webhook calls will not have a signature applied to their headers. Pending Webhook deliveries are not affected until the next event is triggered. To authenticate a Webhook call, compute an HMAC-SHA256 hex digest of the JSON payload `body` field and compare it to the `x-webhook-signature` header:

rotateWebhookSecret(endpoint: VerdocsEndpoint): Promise<IWebhook>
ParameterTypeDescription
endpointVerdocsEndpoint

webhook.setWebhooks

Update the registered Webhook configuration for the caller's organization. Note that Webhooks cannot currently be deleted, but may be easily disabled by setting `active` to `false` and/or setting the `url` to an empty string.

setWebhooks(endpoint: VerdocsEndpoint, params: ISetWebhookRequest): Promise<IWebhook>
ParameterTypeDescription
endpointVerdocsEndpoint
paramsISetWebhookRequest

webhook.getWebhooks

Get the registered Webhook configuration for the caller's organization. Note that an organization may only have a single Webhook configuration.

get() -> Webhook

webhook.rotateWebhookSecret

Rotate the secret key used to authenticate Webhooks. If a secret key has not yet been set, it will be created. Until this is done, Webhook calls will not have a signature applied to their headers. Pending Webhook deliveries are not affected until the next event is triggered. To authenticate a Webhook call, compute an HMAC-SHA256 hex digest of the JSON payload `body` field and compare it to the `x-webhook-signature` header:

rotate_secret() -> Webhook

webhook.setWebhooks

Update the registered Webhook configuration for the caller's organization. Note that Webhooks cannot currently be deleted, but may be easily disabled by setting `active` to `false` and/or setting the `url` to an empty string.

set(params: WebhookSetParams) -> Webhook
ParameterTypeDescription
paramsWebhookSetParamsThe full configuration to apply. The URL must be HTTPS, or "" to disable deliveries.

webhook.getWebhooks

Get the registered Webhook configuration for the caller's organization. Note that an organization may only have a single Webhook configuration.

Not yet available for C#.

webhook.rotateWebhookSecret

Rotate the secret key used to authenticate Webhooks. If a secret key has not yet been set, it will be created. Until this is done, Webhook calls will not have a signature applied to their headers. Pending Webhook deliveries are not affected until the next event is triggered. To authenticate a Webhook call, compute an HMAC-SHA256 hex digest of the JSON payload `body` field and compare it to the `x-webhook-signature` header:

Not yet available for C#.

webhook.setWebhooks

Update the registered Webhook configuration for the caller's organization. Note that Webhooks cannot currently be deleted, but may be easily disabled by setting `active` to `false` and/or setting the `url` to an empty string.

Not yet available for C#.