Endpoints
Reference for every Verdocs Platform API operation exposed by the SDKs.
apiKey.createApiKey
Create an API key.
createApiKey(endpoint: VerdocsEndpoint, params: ICreateApiKeyRequest): Promise<IApiKey>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ICreateApiKeyRequest |
apiKey.deleteApiKey
Delete an API key.
deleteApiKey(endpoint: VerdocsEndpoint, clientId: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
clientId | string |
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[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
clientId | string |
apiKey.updateApiKey
Update an API key to change its assigned Profile ID or Name.
updateApiKey(endpoint: VerdocsEndpoint, clientId: string, params: IUpdateApiKeyRequest): Promise<IApiKey>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
clientId | string | |
params | IUpdateApiKeyRequest |
apiKey.createApiKey
Create an API key.
create(params: ApiKeyCreateParams) -> ApiKey| Parameter | Type | Description |
|---|---|---|
params | ApiKeyCreateParams | Name and acting profile for the new key. |
apiKey.deleteApiKey
Delete an API key.
delete(client_id: str) -> None| Parameter | Type | Description |
|---|---|---|
client_id | str | The 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| Parameter | Type | Description |
|---|---|---|
client_id | str | The 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| Parameter | Type | Description |
|---|---|---|
client_id | str | The client ID of the key to update. |
params | ApiKeyUpdateParams | The 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.authenticate
Authenticate to Verdocs.
authenticate(endpoint: VerdocsEndpoint, params: TAuthenticationRequest): Promise<IAuthenticateResponse>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | TAuthenticationRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | IChangePasswordRequest |
auth.getMyUser
Get the caller's current user record.
getMyUser(endpoint: VerdocsEndpoint): Promise<IUser>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | IOAuth2AuthorizeParams |
auth.refreshToken
If called before the session expires, this will refresh the caller's session and tokens.
refreshToken(endpoint: VerdocsEndpoint, refreshToken: string): Promise<IAuthenticateResponse>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
refreshToken | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | object |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | IVerifyEmailRequest |
auth.authenticate
Authenticate to Verdocs.
authenticate(params: AuthenticationRequest) -> AuthenticateResponse| Parameter | Type | Description |
|---|---|---|
params | AuthenticationRequest | OAuth2 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| Parameter | Type | Description |
|---|---|---|
old_password | str | The caller's current password. |
new_password | str | The new password. Must meet strength requirements. |
auth.getMyUser
Get the caller's current user record.
me() -> Userauth.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| Parameter | Type | Description |
|---|---|---|
client_id | str | Client ID of the registered OAuth2 application. |
redirect_uri | str | Where to send the user afterwards. Must match a registered redirect URI. |
response_type? | Literal['code'] | Always "code" for the authorization code flow. |
state? | str | None | Opaque CSRF-protection value, returned unchanged in the redirect. |
scope? | str | None | Optional 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| Parameter | Type | Description |
|---|---|---|
refresh_token | str | The 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| Parameter | Type | Description |
|---|---|---|
access_token? | str | None | Optional 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| Parameter | Type | Description |
|---|---|---|
email | str | Email address of the account. |
code? | str | None | The emailed reset code; omit when initiating the flow. |
new_password? | str | None | The 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| Parameter | Type | Description |
|---|---|---|
email | str | Email address of the account being verified. |
token | str | The 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.addBrandEmailDomain
Add a custom email domain to a brand.
addBrandEmailDomain(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, params: IAddBrandEmailDomainRequest): Promise<IBrand>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string | |
params | IAddBrandEmailDomainRequest |
brand.createBrand
Create a brand.
createBrand(endpoint: VerdocsEndpoint, organizationId: string, params: ICreateBrandRequest): Promise<IBrand>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
params | ICreateBrandRequest |
brand.deleteBrand
Delete a brand. Cannot delete the org's default brand.
deleteBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string |
brand.getBrand
Get a brand by ID.
getBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<IBrand>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string |
brand.getBrands
Get all brands for an organization.
getBrands(endpoint: VerdocsEndpoint, organizationId: string): Promise<IBrand[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string |
brand.removeBrandEmailDomain
Remove a custom email domain from a brand.
removeBrandEmailDomain(endpoint: VerdocsEndpoint, organizationId: string, brandId: string): Promise<IBrand>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string |
brand.updateBrand
Update a brand.
updateBrand(endpoint: VerdocsEndpoint, organizationId: string, brandId: string, params: IUpdateBrandRequest): Promise<IBrand>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string | |
params | IUpdateBrandRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string | |
file | File | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string | |
file | File | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
brandId | string |
brand.addBrandEmailDomain
Add a custom email domain to a brand.
add_email_domain(organization_id: str, brand_id: str, params: BrandEmailDomainAddParams) -> Brand| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand. |
params | BrandEmailDomainAddParams | The domain and from-address details. |
brand.createBrand
Create a brand.
create(organization_id: str, params: BrandCreateParams) -> Brand| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
params | BrandCreateParams | Fields 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand to delete. |
brand.getBrand
Get a brand by ID.
get(organization_id: str, brand_id: str) -> Brand| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand to fetch. |
brand.getBrands
Get all brands for an organization.
list(organization_id: str) -> list[Brand]| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand. |
brand.updateBrand
Update a brand.
update(organization_id: str, brand_id: str, params: BrandUpdateParams) -> Brand| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand to update. |
params | BrandUpdateParams | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand to update. |
logo | FileInput | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID of the brand to update. |
thumbnail | FileInput | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
brand_id | str | ID 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.createOrganizationContact
Create a contact in the caller's organization.
createOrganizationContact(endpoint: VerdocsEndpoint, params: Pick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'>): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | Pick<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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string |
contact.getOrganizationContacts
Get a list of the contacts in the caller's organization.
getOrganizationContacts(endpoint: VerdocsEndpoint): Promise<IProfile[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string | |
params | Pick<IProfile, 'email' | 'first_name' | 'last_name' | 'phone'> |
contact.createOrganizationContact
Create a contact in the caller's organization.
create(params: ContactCreateParams) -> Profile| Parameter | Type | Description |
|---|---|---|
params | ContactCreateParams | Details 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | The 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | The contact profile to update. |
params | ContactUpdateParams | The 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.cancelEnvelope
Cancel an Envelope.
cancelEnvelope(endpoint: VerdocsEndpoint, envelopeId: string): Promise<TEnvelopeUpdateResult>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string |
envelope.createEnvelope
Create an envelope
createEnvelope(endpoint: VerdocsEndpoint, request: TCreateEnvelopeRequest): Promise<IEnvelope>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
request | TCreateEnvelopeRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
fieldName | string |
envelope.downloadEnvelopeDocument
Download a document directly.
downloadEnvelopeDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string | |
page | number | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
envelope.getEnvelopes
Lists all envelopes accessible by the caller, with optional filters.
getEnvelopes(endpoint: VerdocsEndpoint, params?: IListEnvelopesParams): Promise<object>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
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>>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_ids | string[] |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
params | Partial<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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
fieldName | string | |
value | string | |
prepared | boolean |
envelope.uploadEnvelopeFieldAttachment
Upload an attachment to an attachment field.
uploadEnvelopeFieldAttachment(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, fieldName: string, file: File, onUploadProgress?: object): Promise<IEnvelopeFieldSettings>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
fieldName | string | |
file | File | |
onUploadProgress? | object |
envelope.cancelEnvelope
Cancel an Envelope.
cancel(envelope_id: str) -> Envelope| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID of the envelope to cancel. |
envelope.createEnvelope
Create an envelope
create(params: EnvelopeCreateParams) -> Envelope| Parameter | Type | Description |
|---|---|---|
params | EnvelopeCreateParams | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID of the envelope to operate on. |
role_name | str | The role the field belongs to. |
field_name | str | The machine name of the attachment field. |
envelope.downloadEnvelopeDocument
Download a document directly.
download_document(document_id: str) -> bytes| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID of the document to render. |
page | int | The 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID of the document to download. |
envelope.getEnvelopes
Lists all envelopes accessible by the caller, with optional filters.
list(params: EnvelopeListParams | None = None) -> EnvelopeList| Parameter | Type | Description |
|---|---|---|
params? | EnvelopeListParams | None | Optional 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| Parameter | Type | Description |
|---|---|---|
envelope_ids | list[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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID of the envelope to update. |
params | EnvelopeUpdateParams | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID of the envelope to operate on. |
role_name | str | The role the field belongs to, e.g. "Recipient 1". |
field_name | str | The machine name of the field, e.g. "Buyer-textbox-1". |
value | str | The value to set. |
prepared? | bool | Mark 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | ID of the envelope to operate on. |
role_name | str | The role the field belongs to. |
field_name | str | The machine name of the attachment field. |
file | FileInput | A 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.createField
Add a field to a template.
createField(endpoint: VerdocsEndpoint, templateId: string, params: ITemplateField): Promise<ITemplateField>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
params | ITemplateField |
field.deleteField
Remove a field from a template.
deleteField(endpoint: VerdocsEndpoint, templateId: string, name: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
name | string |
field.updateField
Update a template field.
updateField(endpoint: VerdocsEndpoint, templateId: string, name: string, params: Partial<ITemplateField>): Promise<ITemplateField>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
name | string | |
params | Partial<ITemplateField> |
field.createField
Add a field to a template.
create(template_id: str, params: FieldCreateParams) -> TemplateField| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to add the field to. |
params | FieldCreateParams | The field definition. |
field.deleteField
Remove a field from a template.
delete(template_id: str, name: str) -> None| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the field belongs to. |
name | str | Name of the field to delete. |
field.updateField
Update a template field.
update(template_id: str, name: str, params: FieldUpdateParams) -> TemplateField| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the field belongs to. |
name | str | The field's current name. |
params | FieldUpdateParams | The 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.addGroupMember
Add a member to a group.
addGroupMember(endpoint: VerdocsEndpoint, groupId: string, profile_id: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
groupId | string | |
profile_id | string |
group.createGroup
Create a group. Note that "everyone" is a reserved name and may not be created.
createGroup(endpoint: VerdocsEndpoint, params: object): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | object |
group.deleteGroup
Get an organization by ID. Note that the "everyone" group cannot be deleted.
deleteGroup(endpoint: VerdocsEndpoint, groupId: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
groupId | string |
group.deleteGroupMember
Remove a member from a group.
deleteGroupMember(endpoint: VerdocsEndpoint, groupId: string, profile_id: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
groupId | string | |
profile_id | string |
group.getGroup
Get the details for a group, including its member profiles and list of permissions.
getGroup(endpoint: VerdocsEndpoint, groupId: string): Promise<IGroup>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
groupId | string |
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[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
groupId | string | |
params | object |
group.addGroupMember
Add a member to a group.
add_member(group_id: str, profile_id: str) -> GroupProfile | None| Parameter | Type | Description |
|---|---|---|
group_id | str | ID of the group. |
profile_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
params | GroupCreateParams | Name 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| Parameter | Type | Description |
|---|---|---|
group_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
group_id | str | ID of the group. |
profile_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
group_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
group_id | str | ID of the group to update. |
params | GroupUpdateParams | New 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
name | string | |
initials | Blob |
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| Parameter | Type | Description |
|---|---|---|
image | FileInput | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | IAcceptOrganizationInvitationRequest |
invitation.createOrganizationInvitation
Invite a new user to join the organization.
createOrganizationInvitation(endpoint: VerdocsEndpoint, params: ICreateInvitationRequest): Promise<IOrganizationInvitation>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ICreateInvitationRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
email | string | |
token | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
email | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
email | string | |
token | string |
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[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
invitation.resendOrganizationInvitation
Send a reminder to the invitee to join the organization.
resendOrganizationInvitation(endpoint: VerdocsEndpoint, email: string): Promise<IOrganizationInvitation>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
email | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
email | string | |
params | Pick<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| Parameter | Type | Description |
|---|---|---|
params | InvitationAcceptParams | The invitee's details, invite token, and new password. |
invitation.createOrganizationInvitation
Invite a new user to join the organization.
create(params: InvitationCreateParams) -> OrganizationInvitation| Parameter | Type | Description |
|---|---|---|
params | InvitationCreateParams | Details 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| Parameter | Type | Description |
|---|---|---|
email | str | Email address the invitation was sent to. |
token | str | The 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| Parameter | Type | Description |
|---|---|---|
email | str | Email 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| Parameter | Type | Description |
|---|---|---|
email | str | Email address the invitation was sent to. |
token | str | The 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| Parameter | Type | Description |
|---|---|---|
email | str | Email 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| Parameter | Type | Description |
|---|---|---|
email | str | Email address of the invitation to update. |
params | InvitationUpdateParams | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string | |
responses | IKbaChallengeResponse[] |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string | |
identity | IKbaIdentity |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string | |
pin | string |
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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role completing the challenge. |
responses | list[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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role completing the challenge. |
identity | KbaIdentity | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role completing the challenge. |
pin | str | The 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.createOrganizationMember
Create an organization member directly, bypassing the invite process.
createOrganizationMember(endpoint: VerdocsEndpoint, params: object): Promise<IProfile>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | object |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string |
member.getOrganizationMembers
Get a list of the members in the caller's organization.
getOrganizationMembers(endpoint: VerdocsEndpoint): Promise<IProfile[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string | |
reason | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string |
member.updateOrganizationMember
Update an organization member.
updateOrganizationMember(endpoint: VerdocsEndpoint, profileId: string, params: Partial<Pick<IProfile, 'first_name' | 'last_name' | 'roles'>>): Promise<IProfile>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string | |
params | Partial<Pick<IProfile, 'first_name' | 'last_name' | 'roles'>> |
member.createOrganizationMember
Create an organization member directly, bypassing the invite process.
create(params: MemberCreateParams) -> MemberCreateResponse| Parameter | Type | Description |
|---|---|---|
params | MemberCreateParams | Details 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | The 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | The profile to lock. |
reason | str | Why 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | The profile to unlock. |
member.updateOrganizationMember
Update an organization member.
update(profile_id: str, params: MemberUpdateParams) -> Profile| Parameter | Type | Description |
|---|---|---|
profile_id | str | The profile to update. |
params | MemberUpdateParams | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ICreateNotificationTemplateRequest |
notification.deleteNotificationTemplate
Delete a notification template.
deleteNotificationTemplate(endpoint: VerdocsEndpoint, id: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
id | string |
notification.getNotifications
Get notifications for the caller's current profile.
getNotifications(endpoint: VerdocsEndpoint): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
notification.getNotificationTemplate
Get a single notification template by ID.
getNotificationTemplate(endpoint: VerdocsEndpoint, id: string): Promise<INotificationTemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
id | string |
notification.getNotificationTemplates
Get all notification templates for the caller's organization.
getNotificationTemplates(endpoint: VerdocsEndpoint): Promise<INotificationTemplate[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
id | string | |
params | IUpdateNotificationTemplateRequest |
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| Parameter | Type | Description |
|---|---|---|
params | NotificationTemplateCreateParams | The 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the notification template to update. |
params | NotificationTemplateUpdateParams | The 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.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>| Parameter | Type | Description |
|---|---|---|
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'>> |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string |
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>>>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
organization.getEntitlements
Get the caller's organization entitlements.
getEntitlements(endpoint: VerdocsEndpoint): Promise<IEntitlement[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string |
organization.getOrganizationChildren
Get an organization's "children".
getOrganizationChildren(endpoint: VerdocsEndpoint, organizationId: string): Promise<IOrganization>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
params | Partial<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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
file | File | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
params | Partial<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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
organizationId | string | |
file | File | |
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| Parameter | Type | Description |
|---|---|---|
params | OrganizationCreateParams | Fields 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID 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() -> ActiveEntitlementsorganization.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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID 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]| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
start_date? | str | None | ISO 8601 UTC datetime string (e.g. "2026-01-01T00:00:00Z"). The server defaults to 90 days ago. |
end_date? | str | None | ISO 8601 UTC datetime string. The server defaults to now. |
usage_type? | str | None | Restrict 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization to update. Must be the caller's own. |
params | OrganizationUpdateParams | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization to update. Must be the caller's own. |
logo | FileInput | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization. Must be the caller's own. |
params | PipelineSettingsUpdateParams | The 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| Parameter | Type | Description |
|---|---|---|
organization_id | str | ID of the organization to update. Must be the caller's own. |
thumbnail | FileInput | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ICreateProfileRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
profile.getProfiles
Get the caller's available profiles. The current profile will be marked with `current: true`.
getProfiles(endpoint: VerdocsEndpoint): Promise<IProfile[]>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string | |
params | IUpdateProfileRequest |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
profileId | string | |
file | File | |
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| Parameter | Type | Description |
|---|---|---|
params | CreateProfileRequest | The 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | ID 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 | Noneprofile.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| Parameter | Type | Description |
|---|---|---|
profile_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | ID of the profile to update. |
params | UpdateProfileRequest | The 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| Parameter | Type | Description |
|---|---|---|
profile_id | str | ID of the caller's own profile. |
picture | FileInput | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
params | object |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
params | object |
recipient.envelopeRecipientAgree
Agree to electronic signing dislosures.
envelopeRecipientAgree(endpoint: VerdocsEndpoint, envelopeId: string, roleName: string, disclosures?: string, data?: IRecipientDisclosureAgreeBody): Promise<IRecipient>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelope_id | string | |
role_name | string | |
key | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
envelopeId | string | |
roleName | string | |
params | IUpdateRecipientParams |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | TAuthenticateRecipientRequest |
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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role asking the question. |
question | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role delegating their tasks. |
params | RecipientDelegateParams | Name 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role agreeing to the disclosures. |
disclosures? | str | None | The disclosure text the recipient accepted. DEFAULT_DISCLOSURES in verdocs.models.envelopes carries the stock text used when the organization has no override. |
params? | RecipientAgreeParams | None | Optional 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role submitting. |
params? | RecipientSubmitParams | None | Optional 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to sign. |
role_name | str | The role to sign as. |
key | str | Access 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| Parameter | Type | Description |
|---|---|---|
envelope_id | str | The envelope to operate on. |
role_name | str | The role to update. |
params | RecipientUpdateParams | The 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| Parameter | Type | Description |
|---|---|---|
params | RecipientVerifyParams | The 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.createTemplateRole
Create a role.
createTemplateRole(endpoint: VerdocsEndpoint, template_id: string, params: IRole): Promise<IRole>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
template_id | string | |
params | IRole |
role.deleteTemplateRole
Delete a role.
deleteTemplateRole(endpoint: VerdocsEndpoint, template_id: string, name: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
template_id | string | |
name | string |
role.updateTemplateRole
Update a role.
updateTemplateRole(endpoint: VerdocsEndpoint, template_id: string, name: string, params: Partial<IRole>): Promise<IRole>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
template_id | string | |
name | string | |
params | Partial<IRole> |
role.createTemplateRole
Create a role.
create(template_id: str, params: RoleCreateParams) -> Role| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to add the role to. |
params | RoleCreateParams | The role definition; only name is required. |
role.deleteTemplateRole
Delete a role.
delete(template_id: str, name: str) -> None| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the role belongs to. |
name | str | Name of the role to delete. |
role.updateTemplateRole
Update a role.
update(template_id: str, name: str, params: RoleUpdateParams) -> Role| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the role belongs to. |
name | str | The role's current name. |
params | RoleUpdateParams | The 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
name | string | |
signature | Blob |
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| Parameter | Type | Description |
|---|---|---|
image | FileInput | The 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.createTemplate
Create a template.
createTemplate(endpoint: VerdocsEndpoint, params: ITemplateCreateParams, onUploadProgress?: object): Promise<ITemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ITemplateCreateParams | |
onUploadProgress? | object |
template.createTemplateFromSharepoint
Create a template from a Sharepoint asset.
createTemplateFromSharepoint(endpoint: VerdocsEndpoint, params: ITemplateCreateFromSharepointParams): Promise<ITemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ITemplateCreateFromSharepointParams |
template.deleteTemplate
Delete a template.
deleteTemplate(endpoint: VerdocsEndpoint, templateId: string): Promise<string>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
name | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string |
template.getTemplates
Get all templates accessible by the caller, with optional filters.
getTemplates(endpoint: VerdocsEndpoint, params?: IGetTemplatesParams): Promise<object>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params? | IGetTemplatesParams |
template.toggleTemplateStar
Toggle the template star for a template.
toggleTemplateStar(endpoint: VerdocsEndpoint, templateId: string): Promise<ITemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string |
template.updateTemplate
Update a template.
updateTemplate(endpoint: VerdocsEndpoint, templateId: string, params: Partial<ITemplateCreateParams>): Promise<ITemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
params | Partial<ITemplateCreateParams> |
template.createTemplate
Create a template.
create(params: TemplateCreateParams, files: Sequence[TemplateFile] | None = None) -> Template| Parameter | Type | Description |
|---|---|---|
params | TemplateCreateParams | Fields for the new template; only name is required. |
files? | Sequence[TemplateFile] | None | Optional 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| Parameter | Type | Description |
|---|---|---|
params | TemplateCreateFromSharepointParams | Sharepoint site/item coordinates and the On-Behalf-Of token. |
template.deleteTemplate
Delete a template.
delete(template_id: str) -> None| Parameter | Type | Description |
|---|---|---|
template_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to copy. |
name | str | Name 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to fetch. |
template.getTemplates
Get all templates accessible by the caller, with optional filters.
list(params: TemplateListParams | None = None) -> TemplateList| Parameter | Type | Description |
|---|---|---|
params? | TemplateListParams | None | Optional filters, sorting, and pagination. |
template.toggleTemplateStar
Toggle the template star for a template.
toggle_star(template_id: str) -> Template| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to star or unstar. |
template.updateTemplate
Update a template.
update(template_id: str, params: TemplateUpdateParams) -> Template| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to update. |
params | TemplateUpdateParams | The 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.createTemplateDocument
Create a Document for a particular Template.
createTemplateDocument(endpoint: VerdocsEndpoint, template_id: string, file: File, onUploadProgress?: object): Promise<ITemplateDocument>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
template_id | string | |
file | File | |
onUploadProgress? | object |
templateDocument.deleteTemplateDocument
Delete a specific Document.
deleteTemplateDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<ITemplate>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
templateDocument.downloadTemplateDocument
Download a document directly.
downloadTemplateDocument(endpoint: VerdocsEndpoint, documentId: string): Promise<any>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
_templateId | string | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
documentId | string | |
page | number | |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
_templateId | string | |
documentId | string |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
templateId | string | |
documentId | string |
templateDocument.createTemplateDocument
Create a Document for a particular Template.
create(template_id: str, file: TemplateFile) -> TemplateDocument| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template to attach the document to. |
file | TemplateFile | The 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID of the document to delete. |
templateDocument.downloadTemplateDocument
Download a document directly.
download(document_id: str) -> bytes| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the document belongs to. |
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID of the document to render. |
page | int | 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| Parameter | Type | Description |
|---|---|---|
document_id | str | ID 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| Parameter | Type | Description |
|---|---|---|
template_id | str | ID of the template the document belongs to. |
document_id | str | ID 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.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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint |
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>| Parameter | Type | Description |
|---|---|---|
endpoint | VerdocsEndpoint | |
params | ISetWebhookRequest |
webhook.getWebhooks
Get the registered Webhook configuration for the caller's organization. Note that an organization may only have a single Webhook configuration.
get() -> Webhookwebhook.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() -> Webhookwebhook.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| Parameter | Type | Description |
|---|---|---|
params | WebhookSetParams | The 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#.