# The Account object
Source: https://docs.annature.com.au/api-reference/accounts/account-object
The `account` object represents an individual user account within your Annature organisation. Every person who uses the Annature dashboard to send or manage documents will be represented by an account.
Accounts are required to create and send envelopes, and they determine both who initiated the envelope and what permissions that user has within the organisation.
When [creating an envelope](/api-reference/envelopes/create-envelope), you must specify the account responsible for sending it.
## Account roles
Accounts can be assigned one of three roles, each of which defines what the user can see and do in the Annature platform. These roles give organisations the flexibility to reflect real-world business structures — such as admin teams, department-based permissions, or read-only access for oversight and compliance.
* **`administrator`**\
This role is typically used by business owners, IT admins, or operations staff who need complete visibility and control. Administrators can view and manage all envelopes, regardless of sender; add, edit, or remove user accounts (including other administrators); and manage organisation-level settings and groups.
* **`standard`**\
Ideal for client-facing staff like accountants, consultants, or team members who manage their own documents. Standard users can create, send, and manage envelopes from their own account; and access envelopes shared by other accounts in the same [group](/api-reference/groups/group-object).
* **`read-only`**\
Suitable for roles that need visibility into document activity without the ability to create or modify anything. Read-only users can view and download envelopes sent by other accounts in their group.
## Sharing envelopes between accounts
By default, `standard` accounts can only access the envelopes they personally send.
However, when accounts are assigned to a shared [group](/api-reference/groups/group-object), they can collaborate more easily. If an envelope is flagged as `shared`, it becomes visible to all members of the group.
This is useful in team-based environments — for example, when multiple accountants in a firm need to access each other’s client documents.
A `standard` account can still choose to send private envelopes by not marking them as shared.
`administrator` accounts always have access to envelopes from any `standard` account in the organisation, regardless of whether sharing is enabled.
## Attributes
The unique identifier for the account.
The full name of the account holder.
The email address associated with the account. This is used to log in to the Annature dashboard.
The account holder’s contact number.
The timezone used for displaying dates in the dashboard and on envelopes sent by this account. This affects timestamps on envelope certificates and date [fields](/api-reference/fields/field-object).
Timezones must be supplied as a 6-digit UTC offset. For example:
* `+10:00` → Australia/Brisbane
* `+08:00` → Australia/Perth
The role assigned to this account. Possible values: `administrator`, `standard` (default), or `read-only`.
Indicates whether the account is currently active. Inactive accounts cannot log in or send envelopes.
The unique identifier of the [group](/api-reference/groups/group-object) this account belongs to.
The unique identifier of the [organisation](/api-reference/organisations/organisation-object) this account belongs to.
The ISO 8601 timestamp for when the account was created.
The ISO 8601 timestamp for when the account was verified. An account must be verified before it can sign in to the dashboard.
```bash Endpoints theme={null}
GET /v1/accounts
GET /v1/accounts/:id
POST /v1/accounts
POST /v1/accounts/register
POST /v1/accounts/:id/verification
POST /v1/accounts/:id/deactivate
POST /v1/accounts/:id/restore
PUT /v1/accounts/:id
```
```json Account Object theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}
```
# Create an account
Source: https://docs.annature.com.au/api-reference/accounts/create-account
POST /v1/accounts
Creates a new account that can be used to log in to the Annature dashboard and send, sign, or manage envelopes.
By default, newly created accounts will receive a verification email from Annature prompting them to set a password. Until verified, accounts cannot log in or send envelopes.
Optionally, a password can be provided in the request to set it programmatically. This is useful when provisioning internal users or simplifying onboarding. If no password is provided, the user will need to set it manually via the verification email.
Verification emails can be resent using the [Resend verification](/api-reference/accounts/resend-verification) endpoint.
### Partner-specific behavior
If you're part of the [Partner Program](/api-reference/partner-program) and supply the `X-Annature-Partner` header, you may include a `skip_verification` flag in the request to bypass the standard email verification process.
This allows accounts to be created in a pre-verified state — for example, when programmatically provisioning known users or performing a controlled migration.
## Parameters
The full name of the account holder.
The email address associated with the account. This will be used to log in to the Annature dashboard.
Email addresses must be unique. An error will be returned if the supplied email already exists for another account.
Set the password for the account at the time of creation. If omitted, the user will be asked to set their password via the email verification link.
The account holder’s contact number.
The timezone assigned to this account, supplied as a 6-digit UTC offset.
Timezones must be supplied as a 6-digit UTC offset. For example:
* `+10:00` → Australia/Brisbane
* `+08:00` → Australia/Perth
The account role. If not specified, the account will default to `standard`.
Possible values: `administrator`, `standard`, `read-only`.
The unique identifier of the [group](/api-reference/groups/group-object) this account should be assigned to.
**Partner-only**: Set this to `true` to mark the account as verified without sending an email. Requires the `X-Annature-Partner` header.
```bash Endpoint theme={null}
POST /v1/accounts
```
```json Body theme={null}
{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"password": "secret123",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"skip_verification": true
}
```
```json Response theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}
```
# Deactivate an account
Source: https://docs.annature.com.au/api-reference/accounts/deactivate-account
POST /v1/accounts/:id/deactivate
Deactivates an account, immediately revoking their ability to log in to the Annature dashboard or send envelopes.
All existing application sessions will be expired, and the user will be fully signed out across all devices.
> Deactivating an account **does not affect** their previously sent envelopes.\
> Envelopes sent by the account can still be completed or declined as normal, and standard email notifications will continue to be delivered to the sender — even if the account is inactive.
This action is typically used to suspend access for users who have left the business or no longer require Annature access.
## Parameters
The unique identifier for the account.
```bash Endpoint theme={null}
POST /v1/accounts/:id/deactivate
```
```bash theme={null}
204
```
# Get authentication code
Source: https://docs.annature.com.au/api-reference/accounts/get-authentication-code
GET /v1/accounts/:id/auth-code
This endpoint is only available for use with our Partner Program. You must include a valid `X-Annature-Partner` header in the request.
Generates a short-lived one-time-use code that can be used to sign in to the Annature dashboard as a specific account.
This endpoint enables software platforms to provide a seamless Single Sign-On (SSO) experience for users they manage — without needing to know or store the user’s password.
Once generated, the code can be exchanged via a special login URL:
```
https://dashboard.annature.com.au/code-exchange?code={{code}}
```
When accessed in a browser, this URL will sign the user into the dashboard using the target account, provided the code is valid and unexpired.
## Parameters
The unique identifier of the account you wish to sign in as.
```bash Endpoint theme={null}
GET /v1/accounts/:id/auth-code
```
```json theme={null}
{
"code": "f07de398c9c1422291b7698f26efb3f4",
"expiration": "2025-05-15T10:00:00Z"
}
```
# List all accounts
Source: https://docs.annature.com.au/api-reference/accounts/list-all-accounts
GET /v1/accounts
Returns a list of accounts associated with your organisation. Results are returned in descending order of creation date, with the most recently created accounts appearing first.
Use this endpoint to manage your organisation’s team structure, audit user accounts, or retrieve subsets of accounts based on role, group membership, or other attributes. Results can be narrowed using exact-match filters.
The response is limited to a maximum of 1,000 results.
### Partner-specific behavior
If you’re part of the [Partner Program](/api-reference/partner-program) and supply a valid `X-Annature-Partner` header, this endpoint will return all accounts provisioned by your integration — across every organisation you've registered using the [Register an account](/api-reference/accounts/register-account) endpoint. It excludes your own internal users.
If the `X-Annature-Partner` header is **not** provided, the endpoint returns only the accounts within your own organisation.
## Parameters
Filter results by exact match on the account's `name` property.
Filter results by exact match on the account's `email` property.
Filter results by exact match on the account's `role`. Valid values include: `administrator`, `standard`, `read-only`.
Filter results by exact match on the account's `active` status. Accepts `true` or `false`.
Filter results by exact match on the `group_id` to list accounts within a specific account group.
Return accounts created before the specified ISO 8601 timestamp.
Return accounts created after the specified ISO 8601 timestamp.
```bash Endpoint theme={null}
GET /v1/accounts
```
```json theme={null}
[{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}]
```
# List all accounts (paged)
Source: https://docs.annature.com.au/api-reference/accounts/list-all-accounts-paged
GET /v2/accounts
Returns a paginated list of accounts associated with your organisation. Results are returned in descending order of creation date, with the most recently created accounts appearing first. If multiple accounts share the same timestamp, they are secondarily ordered by `id` to ensure consistent pagination.
Use this endpoint to manage your organisation’s team structure, audit user accounts, or retrieve subsets of accounts based on role, group membership, or other attributes. Filtering works exactly as it does in the original [List all accounts](/api-reference/accounts/list-all-accounts) endpoint, with the addition of cursor-based pagination.
To retrieve the next page of results, pass the `cursor` value from the previous response into your next request. The `has_more` property will indicate whether additional results are available.
### Partner-specific behavior
If you’re part of the [Partner Program](/api-reference/partner-program) and supply a valid `X-Annature-Partner` header, this endpoint will return all accounts provisioned by your integration — across every organisation you've registered using the [Register an account](/api-reference/accounts/register-account) endpoint. It excludes your own internal users.
If the `X-Annature-Partner` header is **not** provided, the endpoint returns only the accounts within your own organisation.
## Parameters
Filter results by exact match on the account's `name` property.
Filter results by exact match on the account's `email` property.
Filter results by exact match on the account's `role`. Valid values include: `administrator`, `standard`, `read-only`.
Filter results by exact match on the account's `active` status. Accepts `true` or `false`.
Filter results by exact match on the `group_id` to list accounts within a specific account group.
Return accounts created before the specified ISO 8601 timestamp.
Return accounts created after the specified ISO 8601 timestamp.
Pagination cursor returned from a previous request. Use this to fetch the next page of results.
```bash Endpoint theme={null}
GET /v2/accounts
```
```json theme={null}
{
"accounts": [
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}
],
"cursor": "eyJpZCI6ImYxMjMiLCJjcmVhdGVkIjoiMjAyNS0wNy0wOVQwODozMDowMFoifQ==",
"has_more": true
}
```
# Register an account
Source: https://docs.annature.com.au/api-reference/accounts/register-account
POST /v1/accounts/register
This endpoint is only available for use with our Partner Program. You must include a valid `X-Annature-Partner` header in the request.
Creates a new independent account **and** organisation in a single request. This is typically used by integrators or software platforms who need to provision accounts on behalf of their clients.
Upon successful creation, this endpoint returns a pair of long-lived API credentials under the `credentials` object. These API keys are tied to the newly created organisation and allow you to immediately begin sending envelopes or performing other actions **on behalf of that organisation**.
> You **cannot** use your own Partner API key to send envelopes for a downstream organisation. Each organisation must authenticate using its own API credentials when performing actions like sending envelopes or managing templates.
By default, a verification email will be sent to the new account holder prompting them to set a password. If you're automating this flow, you can provide a `password` in the request body and set `skip_verification` to `true` to mark the account as verified without sending an email.
## Parameters
The full name of the account holder.
The email address for the account. This will be used to log in to the Annature dashboard.
Email addresses must be unique. An error will be returned if the supplied email is already associated with an existing account.
The name of the account holder's business. This is used to establish the new organisation.
The account holder’s contact number.
The timezone for this account, supplied as a 6-digit UTC offset.
Timezones must be supplied as a 6-digit UTC offset. For example:
* `+10:00` → Australia/Brisbane
* `+08:00` → Australia/Perth
Set the account holder's password during creation. If omitted, the user will be prompted to set a password via the verification email.
If you plan to automate verification using `skip_verification`, it's strongly recommended that you capture and supply a password at the time of account creation.
Set this to `true` to automatically mark the account as verified and suppress the verification email.
```bash Endpoint theme={null}
POST /v1/accounts/register
```
```json Body theme={null}
{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"business": "Annature",
"number": "1300 000 000",
"timezone": "+10:00",
"password": "password1",
"skip_verification": false
}
```
```json theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z",
"credentials": {
"id": "39e2c46c5bfa88d3d7b13f569b305436",
"key": "ae87dccad5f1f7ae43d3c0edb08d79fe"
}
}
```
# Resend verification
Source: https://docs.annature.com.au/api-reference/accounts/resend-verification
POST /v1/accounts/:id/verification
Resends the account verification email. This is typically used when a newly registered user has not yet verified their email and requires a new link.
This invalidates any previously sent verification links. If an old link is used, the user will see a friendly error message prompting them to check their inbox for the most recent email.
A new verification email can only be sent if the account’s `verified` property is still `null`.
```bash Endpoint theme={null}
POST /v1/accounts/:id/verification
```
```bash theme={null}
204
```
# Restore an account
Source: https://docs.annature.com.au/api-reference/accounts/restore-account
POST /v1/accounts/:id/restore
Restores a previously deactivated account, re-enabling their ability to log in to the Annature dashboard and send envelopes.
This action reverses the effects of a deactivation. All permissions and access will be reinstated immediately.
## Parameters
The unique identifier for the account.
```bash Endpoint theme={null}
POST /v1/accounts/:id/restore
```
```bash theme={null}
204
```
# Retrieve an account
Source: https://docs.annature.com.au/api-reference/accounts/retrieve-account
GET /v1/accounts/:id
Retrieves the details of an existing account in your organisation.
This endpoint is typically used to look up a specific team member’s profile — for example, to determine their assigned role, group membership, or timezone configuration. You’ll need the account’s unique ID to make this request.
## Parameters
The unique identifier for the account.
```bash Endpoint theme={null}
GET /v1/accounts/:id
```
```json theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}
```
# Update an account
Source: https://docs.annature.com.au/api-reference/accounts/update-account
PUT /v1/accounts/:id
Updates the details of an existing account in your organisation.
You can use this endpoint to change an account’s name, email address, contact number, timezone, role, or group assignment.
## Parameters
The unique identifier for the account.
The account holder’s full name.
The account holder’s email address. This will be used to log in to the Annature dashboard.
If the email is updated, a confirmation email is sent to the new address. The change will not take effect until the user clicks the confirmation link.
Email addresses must be unique. You cannot update an account to use an email that already exists.
> Currently, there is no way to check whether an email change is pending via the API.
The account holder’s contact number.
The timezone for this account, supplied as a 6-digit UTC offset.
Timezones must be supplied as a 6-digit UTC offset. For example:
* `+10:00` → Australia/Brisbane
* `+08:00` → Australia/Perth
The account role.
Valid values: `administrator`, `standard`, `read-only`.
The unique identifier of the [group](/api-reference/groups/group-object) this account should be assigned to.
```bash Endpoint theme={null}
PUT /v1/accounts/:id
```
```json Body theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9"
}
```
```json theme={null}
{
"id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"timezone": "+10:00",
"role": "administrator",
"active": true,
"organisation_id": "62e9a87c6ed1444d9d228c4a0374017d",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"created": "2019-12-17T05:30:00Z",
"verified": "2019-12-17T05:30:00Z"
}
```
# Authentication
Source: https://docs.annature.com.au/api-reference/authentication
All requests to the Annature API must be authenticated using a pair of API keys: your **public key** and **private key**. These keys are unique to your account and are used to identify and authorize each request.
Authentication is handled via custom HTTP headers. You must include both keys in every request to successfully interact with the API.
This mechanism ensures that only approved systems and users can access your data and resources. The private key should always be kept secure and never exposed in client-side code.
All requests must:
* Be made over [HTTPS](https://en.wikipedia.org/wiki/HTTPS)
* Include both authentication headers
```bash Headers theme={null}
{
"X-Annature-Id": "your-public-key",
"X-Annature-Key": "your-private-key"
}
```
# Create a document
Source: https://docs.annature.com.au/api-reference/documents/create-document
POST /v1/documents
Adds a new document to a draft envelope.
This endpoint allows integrators to dynamically build draft envelopes by uploading additional documents before sending. It accepts the same document structure used when creating an envelope, and applies the same file size and page count validations.
Word documents (`.doc`, `.docx`) are automatically converted to PDF on upload. The converted PDF will be optimised and stored, and the document returned in the response will always be in PDF format.
**Note**: Documents can only be added to envelopes that are still in draft status and have not been sent. Adding documents to a **recalled envelope** is not supported via the API.
## Parameters
Optional user-defined unique identifier for the document, must be unique per envelope. If omitted, one will be auto-generated.
Optional display name of the document. If omitted, one will be auto-generated.
The base64-encoded content of the document. Must be a valid PDF or Word document. Max size: 10mb per document.
The MIME type of the uploaded file (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`).
Word documents are converted to PDF automatically. Standard file size and page count limits apply — see [Document limits](/api-reference/documents/document-object#document-limits) for details.
The unique identifier of the envelope to which this document should be attached. Envelope must be in `draft` status.
```bash Endpoint theme={null}
POST /v1/documents
```
```bash Body theme={null}
{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"base": "iVBORw0KGgoAAAANSUhE..",
"type": "application/pdf",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1"
}
```
```json theme={null}
{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"pages": 3,
"original": "https://annature..",
"master": null,
"created": "2025-07-23T02:00:00Z"
}
```
# Delete a document
Source: https://docs.annature.com.au/api-reference/documents/delete-document
DELETE /v1/documents/:id
Deletes a document from a draft envelope. This permanently removes the document, along with any associated fields and permissions.
Use this endpoint to allow integrators to dynamically build or modify draft envelopes before sending.
This endpoint can only be used on envelopes that are still in `draft` status and have not been sent.
**Note**: Deleting documents from a **recalled envelope** is not supported via the API. This must be done through the dashboard.
## Parameters
The unique identifier of the document to delete.
The unique identifier of the draft envelope the document belongs to.
```bash Endpoint theme={null}
DELETE /v1/documents/:id
```
```bash theme={null}
204
```
# The Document object
Source: https://docs.annature.com.au/api-reference/documents/document-object
A document represents the content of an envelope in the form of a PDF. It includes metadata such as the file name and number of pages.
Documents can only be created when [creating an envelope](/api-reference/envelopes/create-envelope), and each envelope must contain at least one document.
### Original and master copies
Each document, like the envelope it belongs to, has two versions:
* The **original copy** represents the document exactly as it was uploaded — before any fields (such as signatures or dates) were applied.
* The **master copy** (also referred to as the "live copy") reflects the most up-to-date version of the document, with any applied fields and completed actions.
The master copy is available only if the envelope has progressed beyond the `created` status. If the envelope is voided, download access to the document is disabled.
### Document limits
Annature imposes the following limits on uploaded documents to ensure consistent performance and reliability:
* Maximum size per document: 10mb (raw base64 input)
* Maximum total size per envelope: 50mb (across all documents)
* Maximum pages per document: 500
* Maximum total pages per envelope: 500 (across all documents)
If a document exceeds any of these limits, the API will return an error when the envelope is created or the document is uploaded.
Need to send larger files? [Contact us](https://www.annature.com.au/contact) to request a limit increase.
Annature supports both PDF and Word documents. Word files (.doc or .docx) are automatically converted to PDF during upload.
## Attributes
A user-defined identifier for the document.
If not supplied, Annature will generate one automatically. Supplying your own ID is recommended, as it allows you to reference this document in future API requests without needing to store the generated ID from the response.
The file name of the document. This value is used as the download file name when retrieving the document from Annature.
The number of pages in the document.
A temporary URL that can be used to download the original version of the document (before any fields were applied).
Download links are valid for 60 minutes. After expiry, the endpoint will return a 403 Forbidden response.
A temporary URL that can be used to download the master version of the document.
This value will be `null` if the associated envelope has a `created` status.
Download links are valid for 60 minutes. After expiry, the endpoint will return a 403 Forbidden response.
The ISO 8601 timestamp for when the document was created.
```bash Endpoints theme={null}
GET /v1/documents
GET /v1/documents/:id
```
```json Document Object theme={null}
{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"pages": 10,
"original": "https://annature..",
"master": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}
```
# List all documents
Source: https://docs.annature.com.au/api-reference/documents/list-all-documents
GET /v1/documents
Returns a list of documents that belong to a specific envelope.
This endpoint allows you to retrieve all documents created for a given envelope, along with download URLs for the original and master versions (if available).
> Documents are returned in the same order they were supplied in the request body when the envelope was created.
## Parameters
The unique identifier of the envelope whose documents you want to retrieve.
This parameter is required to filter results and ensures the returned list only includes documents from the specified envelope.
Sets how long the `original` and `master` document URLs will remain accessible.
The duration must be between 1 and 10,080 minutes (7 days). If omitted, the default duration is 60 minutes.
```bash Endpoint theme={null}
GET /v1/documents
```
```json theme={null}
[{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"pages": 10,
"original": "https://annature..",
"master": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}]
```
# Retrieve a document
Source: https://docs.annature.com.au/api-reference/documents/retrieve-document
GET /v1/documents/:id
Retrieves a single document that was created as part of an envelope, using the document’s `id` value.
This `id` must match the identifier supplied (or auto-generated) when the document was originally included in the [Create envelope](/api-reference/envelopes/create-envelope) request.
This endpoint can be used to access the unmerged state of a specific document, along with temporary download links to both the original and master versions (if available).
## Parameters
The unique identifier of the envelope the document belongs to.
Sets how long the `original` and `master` document URLs will remain accessible.
The duration must be between 1 and 10,080 minutes (7 days).
If omitted, the default duration is 60 minutes.
```bash Endpoint theme={null}
GET /v1/documents/:id
```
```json theme={null}
{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"pages": 10,
"original": "https://annature..",
"master": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}
```
# Create an endpoint
Source: https://docs.annature.com.au/api-reference/endpoints/create-endpoint
POST /v1/endpoints
Creates a new webhook endpoint with a specified HTTPS URL.
Once created, Annature will deliver event payloads to this endpoint whenever supported events occur within your organisation.
## Parameters
The HTTPS URL where webhook events will be sent.
Only HTTPS URLs are supported. Insecure (non-SSL) endpoints will be rejected.
```bash Endpoint theme={null}
POST /v1/endpoints
```
```json Body theme={null}
{
"url": "https://example.com/webhooks"
}
```
```json Response theme={null}
{
"id": "d53ec5c47bd8fa4463b0931251f7da3e",
"url": "https://example.com/webhooks",
"signature": "c7bbce6f29eadcdaa6570cc07d4bec83",
"active": true,
"created": "2019-12-17T05:30:00Z"
}
```
# Delete an endpoint
Source: https://docs.annature.com.au/api-reference/endpoints/delete-endpoint
DELETE /v1/endpoints/:id
Permanently deletes a webhook endpoint from your organisation.
Once deleted, the endpoint will no longer receive webhook events, and its signing secret will be invalidated.
> Any pending webhook delivery attempts to this endpoint will be immediately cancelled. No further retries will occur after deletion.
## Parameters
The unique identifier for the webhook endpoint.
```bash Endpoint theme={null}
DELETE /v1/endpoints/:id
```
```bash theme={null}
204
```
# The Endpoint object
Source: https://docs.annature.com.au/api-reference/endpoints/endpoint-object
Webhook endpoints allow Annature to notify your application via HTTP POST when specific events occur — such as when an envelope is completed or declined.
Endpoints can be created and managed via the API, or through the [Developers](https://dashboard.annature.com.au/developers) section of the Annature dashboard.
Each organisation can register up to 100 unique webhook endpoints.
Refer to the [Webhooks](/api-reference/webhooks) section for details on verifying and responding to webhook events.
## Attributes
The unique identifier for the webhook endpoint.
The HTTPS URL where webhook payloads will be delivered.
The signing secret used to verify the authenticity of webhook events delivered to this endpoint.
Indicates whether the endpoint is currently active. Inactive endpoints will not receive webhook events.
The ISO 8601 timestamp indicating when the endpoint was created.
```bash Endpoints theme={null}
GET /v1/endpoints
GET /v1/endpoints/:id
POST /v1/endpoints
PUT /v1/endpoints/:id
DELETE /v1/endpoints/:id
```
```json Endpoint Object theme={null}
{
"id": "d53ec5c47bd8fa4463b0931251f7da3e",
"url": "https://...",
"signature": "c7bbce6f29eadcdaa6570cc07d4bec83",
"active": true,
"created": "2019-12-17T05:30:00Z"
}
```
# List all endpoints
Source: https://docs.annature.com.au/api-reference/endpoints/list-all-endpoints
GET /v1/endpoints
Returns a list of all webhook endpoints registered to your organisation.
Endpoints are returned in descending order of creation date, with the most recently created appearing first.
```bash Endpoint theme={null}
GET /v1/endpoints
```
```json theme={null}
[{
"id": "d53ec5c47bd8fa4463b0931251f7da3e",
"url": "https://...",
"signature": "c7bbce6f29eadcdaa6570cc07d4bec83",
"active": true,
"created": "2019-12-17T05:30:00Z"
}]
```
# Retrieve an endpoint
Source: https://docs.annature.com.au/api-reference/endpoints/retrieve-endpoint
GET /v1/endpoints/:id
Retrieves the details of a specific webhook endpoint.
## Parameters
The unique identifier for the webhook endpoint.
```bash Endpoint theme={null}
GET /v1/endpoints/:id
```
```json theme={null}
{
"id": "d53ec5c47bd8fa4463b0931251f7da3e",
"url": "https://...",
"signature": "c7bbce6f29eadcdaa6570cc07d4bec83",
"active": true,
"created": "2019-12-17T05:30:00Z"
}
```
# Update an endpoint
Source: https://docs.annature.com.au/api-reference/endpoints/update-endpoint
PUT /v1/endpoints/:id
Updates the status of an existing webhook endpoint.
Currently, only the `active` property can be modified. If you need to change the endpoint URL, you must [create a new endpoint](api-reference/endpoints/create-endpoint).
This is typically used to temporarily deactivate or reactivate a webhook listener without removing it entirely.
> If an endpoint is deactivated, all **pending webhook delivery attempts** are immediately cancelled and will not be retried.
>
> When reactivated, the endpoint will begin receiving **new events only** from that point forward.
>
> Some developers use this toggle intentionally to discard a backlog of failed events — for example, if their API was temporarily unavailable and they want to resume cleanly after resolving the issue.
## Parameters
The unique identifier for the webhook endpoint.
Whether the endpoint is active (`true`) or inactive (`false`).
```bash Endpoint theme={null}
PUT /v1/endpoints/:id
```
```json Body theme={null}
{
"active": true
}
```
```json Response theme={null}
{
"id": "d53ec5c47bd8fa4463b0931251f7da3e",
"url": "https://example.com/webhooks",
"signature": "c7bbce6f29eadcdaa6570cc07d4bec83",
"active": true,
"created": "2019-12-17T05:30:00Z"
}
```
# Create an envelope
Source: https://docs.annature.com.au/api-reference/envelopes/create-envelope
POST /v1/envelopes
Creates a new envelope and, by default, sends a signing email to all eligible recipients, respecting the `order` and `muted` properties defined on each recipient. For more detail on how recipients behave, refer to the [recipients](api-reference/recipients/recipient-object) section.
All envelopes must include an `account_id` to identify the sender. If the account is assigned to a group, the envelope will automatically inherit that group. This can be overridden by supplying a `group_id` directly.
Each envelope must include at least one [document](api-reference/documents/document-object) and one [recipient](api-reference/recipients/recipient-object) with a type of `signer`. Every signer must have at least one [field](api-reference/fields/field-object) defined.
To create a draft envelope, set `draft` to true and include at least one document. Drafts can optionally include recipients, but recipient fields are not supported in drafts.
Drafts can be opened and completed in the Annature dashboard by visiting: `https://dashboard.annature.com.au/create-envelope?envelopeId={{envelope_id}}`
## Field placement methods
When creating fields for a recipient, there are two supported placement strategies: anchor-based (automatic) or coordinate-based (fixed).
Regardless of which method you use, any field whose bounding box would extend beyond the page bounds will be silently skipped. Ensure all fields fit entirely within the page dimensions to be rendered correctly.
### Anchors (automatic placement)
Anchors allow you to specify a text string, and fields will be automatically created at every location in all documents where that string appears. Anchors are a fast and flexible way to apply fields without knowing exact coordinates.
* All anchor matches use the bottom-left of the matched text as the origin.
* Optional `x_offset` and `y_offset` can be supplied to fine-tune placement.
### Coordinates (fixed positioning)
For precise control, coordinates can be supplied using absolute `x_coordinate` and `y_coordinate` values.
* All coordinates use 72 DPI rendering with a bottom-left origin.
* For most fields, positioning is relative to the bottom-left corner.
* For `input` fields, positioning is relative to the top-left, and height expands downward based on content.
## Parameters
The name of the envelope. Displayed in the subject line of emails sent to recipients and when viewing the envelope.
The envelope message. Displayed in the body of the emails sent to recipients and in the Annature UI.
If true, the envelope is shared with other accounts in the same group as the sender.
Set to true to create a draft envelope. Signing emails will not be sent until the envelope is sent manually or via API.
The unique identifier of the sender’s account.
The group to assign this envelope to. If not supplied, the sender’s group will be used automatically.
A collection of base64-encoded PDF or Word documents. Word files are automatically converted to PDF.
Each document can be up to 10mb in raw size. An envelope can include multiple documents, but total file size and page count limits apply. See [Document limits](/api-reference/documents/document-object#document-limits) for full details.
A user-defined identifier for the document. Must be unique per envelope.
Display name of the document. If omitted, one will be auto-generated.
The base64-encoded string of the PDF document.
The MIME type of the uploaded file (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`).
Word documents are converted to PDF automatically.
A collection of recipients. At least one recipient of type `signer` is required unless the envelope is a draft.
The full name of the recipient.
The email address of the recipient.
The recipient's mobile number, supplied in E.164 format. This number is used to send an SMS with a link to open the envelope.
While it is technically possible to use both `mobile` and `sms_auth`, we strongly recommend using only one. Sending both the envelope link and the OTP to the same device does not meet the requirements for two-factor authentication.
Recipient type. Defaults to `signer`.
Allowed values: `signer`, `viewer`, `carbon-copy`.
A custom message shown to this recipient. Overrides the envelope message.
A password the recipient must enter to view the envelope.
Enables SMS-based two-factor authentication by specifying the recipient’s mobile number, formatted in E.164.
When supplied, Annature will send a one-time code (OTP) to the recipient. This code must be entered before they can access the envelope.
While it is technically possible to use both `sms_auth` and `mobile`, we strongly recommend using only one. Sending both the envelope link and the OTP to the same device does not meet the requirements for two-factor authentication.
If true, Annature will not send any correspondence to this recipient — including emails, SMS messages, or automated reminders.
Used to control the recipient's position in the signing order. Recipients with lower order values must complete their actions first.
Redirect URLs for post-session navigation.
Redirect after recipient completes the envelope.
Redirect after recipient declines the envelope.
Fields the recipient must complete. This property is only required when:
* The recipient type is `signer`, **and**
* The envelope is **not** being created as a draft.
Fields are not supported for recipients who are not signers, or when the envelope is created as a draft.
A user-defined ID for the field.
Field type: `signature`, `initials`, `witness`, `date`, `input`, `checkbox`, or `dropdown`.
The 1-based page number the field should be placed on. Required when using fixed positioning; ignored if anchor is provided.
A text string used for automatic placement. Required when not using coordinates. If supplied, `page`, `x_coordinate`, and `y_coordinate` will be ignored.
X-axis offset in pixels.
Y-axis offset in pixels.
Absolute pixel-based coordinates used for fixed positioning. Both `x_coordinate` and `y_coordinate` are required when using fixed positioning.
Absolute pixel-based coordinates used for fixed positioning. Both `x_coordinate` and `y_coordinate` are required when using fixed positioning.
Whether this field must be completed before envelope can be completed.
Whether this field is view-only.
Whether later recipients can modify this field's value.
Default value for input or dropdown fields.
Default state of a checkbox field.
Field height in pixels.
Field width in pixels.
Dropdown options (required for `dropdown` type).
The stored value of the dropdown option.
The display text for the dropdown option.
Font size (8–32px). Default is 10.
Font type. Allowed values: `courier`, `helvetica`. Defaults to `courier`.
Display format for date fields. Defaults to `DD/MM/YYYY hh:mm a`.
Set of key-value pairs attached to the envelope.
```bash Endpoint theme={null}
POST /v1/envelopes
```
```bash Body theme={null}
{
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"shared": false,
"draft": false,
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"documents": [{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"base": "iVBORw0KGgoAAAANSUhE.."
}],
"recipients": [{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"message": "Lorem ipsum dolor sit amet.",
"password": "password1",
"sms_auth": "+61422000000",
"muted": false,
"order": 1,
"redirects": {
"session_completed": "https://..",
"session_declined": "https://..",
},
"fields": [{
"id": "f901e397780d6d8de7159857c596d18b",
"type": "signature",
"anchor": "{{signature}}"
}]
}],
"metadata": {}
}
```
```json theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "sent",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": null,
"declined": null,
"completed": null,
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": false,
"sms_auth": "+61422000000",
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": null,
"redirects": {
"session_completed": "https://..",
"session_declined": "https://..",
}
}],
"metadata": {}
}
```
# Delete an envelope
Source: https://docs.annature.com.au/api-reference/envelopes/delete-envelope
DELETE /v1/envelopes/:id
Deletes an existing envelope, but only if its status is `draft`.
Once an envelope has been sent, it can no longer be deleted — it must be voided instead.
Voided envelopes cannot be deleted.
## Parameters
The unique identifier of the envelope to delete.
```bash Endpoint theme={null}
DELETE /v1/envelopes/:id
```
```bash theme={null}
204
```
# The Envelope object
Source: https://docs.annature.com.au/api-reference/envelopes/envelope-object
An envelope is the core resource in Annature. It represents a single transaction between one or more [recipients](/api-reference/recipients/recipient-object), and contains one or more [documents](/api-reference/documents/document-object). Envelopes also include metadata about the sender, security settings, and the overall status of the transaction.
Not all recipients are required to sign the documents in an envelope. For example, a recipient with the `viewer` type is only required to view the documents.\
For more information about recipient types and their roles, refer to the [recipients](/api-reference/recipients/recipient-object) section.
Envelopes are always created and sent from a specific account, using the `account_id` property. The envelope will automatically inherit the branding configuration of the [group](/api-reference/groups/group-object) that the account belongs to. If no group is assigned, the organisation's default branding will be used.
### Envelope statuses
The `status` property indicates the current state of the envelope. Valid values include:
* `draft` – The envelope has been created but not yet sent. Draft envelopes can be sent programmatically using the [Send envelope](/api-reference/envelopes/send-envelope) endpoint or from the Annature dashboard.
* `created` – The envelope is in the process of being prepared for delivery. This is a short-lived transitional state immediately before sending.
* `sent` – The envelope has been sent and is awaiting action from one or more recipients.
* `completed` – All recipients have completed their actions. The finalised document and certificate of completion are available for download.
* `voided` – The envelope was cancelled by the sender before completion. Recipients can no longer view or interact with it.
### Downloadable copies
Envelopes expose several downloadable assets through temporary URLs, valid for 60 minutes by default.
* **original** – The combined document exactly as it was uploaded, before any fields (e.g. signatures, dates) were applied.
* **master** – The live, up-to-date version of the envelope with all completed actions applied. This is null while the envelope is still in `created` status.
* **certificate** – A certificate of completion PDF. Available only once the envelope is completed.
* **combined** – A single PDF file containing the master copy of the envelope and the certificate of completion appended to the end. This is available only once the envelope is completed.
### Envelope sharing and group visibility
Envelope visibility is controlled by the sender’s role, group membership, and the `shared` property on the envelope.
* **Administrators** can view and manage all envelopes across the organisation, regardless of sender or group.
* **Standard users** can only see envelopes they have personally sent — unless additional access is granted through group sharing.
When a standard user is assigned to a [group](/api-reference/groups/group-oObject), they gain access to any envelope sent by another member of that group — but **only** if the envelope is marked as `shared`.
By default, standard users can choose whether an envelope is shared with their group or kept private. However, default sharing behavior or forced sharing rules can be configured at the account level via the Annature dashboard.
> Each account can belong to **only one group**. Cross-group sharing is not supported.
This structure allows organisations to reflect real-world teams and permission boundaries — ensuring that users only access envelopes relevant to their role or department.
## Attributes
The unique identifier for the envelope.
The name of the envelope. Appears in the subject line of emails sent to recipients and in the Annature dashboard.
The message body shown in recipient emails and when viewing the envelope.
Read-only string representing the envelope’s current status.
Possible values: `draft`, `created`, `sent`, `completed`, `voided`.
Indicates whether the envelope is shared with other accounts in the same group as the sender.
Timestamp when the envelope was created (ISO 8601 format).
Timestamp when the envelope was sent to recipients (ISO 8601 format).
Timestamp when the envelope was voided by the sender (ISO 8601 format).
Timestamp when a recipient declined the envelope (ISO 8601 format).
Timestamp when the envelope was fully completed (ISO 8601 format).
Temporary URL to download the original (unmodified) copy of the envelope.
This link is valid for 60 minutes and will return a `403 Forbidden` response after expiry.
Temporary URL to download the master (live) version of the envelope.
This value is `null` if the envelope is still in the `created` status.
Link is valid for 60 minutes and will return a `403 Forbidden` response after expiry.
Temporary URL to download the envelope’s certificate of completion.
Only present when the envelope status is `completed`.
Link is valid for 60 minutes and will return a `403 Forbidden` response after expiry.
A temporary endpoint used to download a merged PDF that includes both the master copy of the envelope and the certificate of completion.
Only present when the envelope status is `completed`.
The link is valid for 60 minutes and will return a `403 Forbidden` response after expiry.
The unique identifier of the account that created (and sent) the envelope.
The group assigned to the envelope. If `shared` is `true`, other accounts in this group can view and manage the envelope.
A list of recipient objects associated with the envelope.
There must be at least one recipient with a type of `signer`.
A set of key–value pairs that can be attached to the envelope.
Use this to store custom metadata in a structured format.
```bash Endpoints theme={null}
GET /v1/envelopes
GET /v1/envelopes/:id
POST /v1/envelopes
POST /v1/envelopes/:id/void
PUT /v1/envelopes/:id
DELETE /v1/envelopes/:id
```
```bash Envelope Object theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "sent",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": "2019-12-17T05:30:00Z",
"declined": "2019-12-17T05:30:00Z",
"completed": "2019-12-17T05:30:00Z",
"master": "https://annature..",
"certificate": "https://annature..",
"combined": "https://annature..",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [],
"metadata": {}
}
```
# List all envelopes
Source: https://docs.annature.com.au/api-reference/envelopes/list-all-envelopes
GET /v1/envelopes
Returns a list of envelopes associated with your organisation.
Envelopes are sorted in descending order by their creation date, with the most recently created appearing first.
By default, envelopes with a status of `draft` will not be returned unless the `status` parameter is explicitly provided.
Date parameters must be supplied in ISO 8601 format. Dates submitted in an invalid format will be silently ignored.
The response is limited to a maximum of 1,000 results.
## Parameters
Exact-match filter based on the envelope's `name` property.
Exact-match filter based on the envelope's `status`.
Valid values include `draft`, `created`, `sent`, `completed`, and `voided`.
Exact-match filter based on a recipient’s name or email address.
When used, all recipients of the matching envelopes will still be returned in the response.
Return envelopes created before the specified ISO 8601 timestamp.
Return envelopes created after the specified ISO 8601 timestamp.
Return envelopes completed before the specified ISO 8601 timestamp.
Return envelopes completed after the specified ISO 8601 timestamp.
```bash Endpoint theme={null}
GET /v1/envelopes
```
```json theme={null}
[{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "completed",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": null,
"declined": null,
"completed": "2019-12-17T05:30:00Z",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "completed",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}]
}]
```
# List all envelopes (paged)
Source: https://docs.annature.com.au/api-reference/envelopes/list-all-envelopes-paged
GET /v2/envelopes
Returns a paginated list of envelopes associated with your organisation.
Envelopes are sorted in descending order by creation date, with the most recently created appearing first. If multiple envelopes share the same timestamp, they are secondarily ordered by `id` to ensure consistent pagination.
By default, envelopes with a status of `draft` are excluded unless the `status` parameter is explicitly provided.
This endpoint supports the same filtering behavior as [List all envelopes](/api-reference/envelopes/list-all-envelopes), with the addition of cursor-based pagination. To fetch the next page of results, pass the `cursor` value from the previous response. The `has_more` property indicates whether additional results are available.
Date parameters must be in ISO 8601 format. Invalid dates are silently ignored.
## Parameters
Exact-match filter based on the envelope's `name` property.
Exact-match filter based on the envelope's `status`.
Valid values include `draft`, `created`, `sent`, `completed`, and `voided`.
Exact-match filter based on a recipient’s name or email address.
When used, all recipients of the matching envelopes will still be returned in the response.
Return envelopes associated with the given `group_id`.
Return envelopes created before the specified ISO 8601 timestamp.
Return envelopes created after the specified ISO 8601 timestamp.
Return envelopes completed before the specified ISO 8601 timestamp.
Return envelopes completed after the specified ISO 8601 timestamp.
Pagination cursor returned from a previous request. Use this to fetch the next page of results.
```bash Endpoint theme={null}
GET /v2/envelopes
```
```json theme={null}
{
"envelopes": [
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "completed",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": null,
"declined": null,
"completed": "2019-12-17T05:30:00Z",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "completed",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}
]
}
],
"cursor": "eyJpZCI6ImYxMjMiLCJjcmVhdGVkIjoiMjAyNS0wNy0wOVQwODozMDowMFoifQ==",
"has_more": true
}
```
# Retrieve an envelope
Source: https://docs.annature.com.au/api-reference/envelopes/retrieve-envelope
GET /v1/envelopes/:id
Retrieves the details of a specific envelope.
The list of recipients will be returned in the same order they were provided in the [Create an envelope](/api-reference/envelopes/create-envelope) request.
## Parameters
The unique identifier of the envelope.
Specifies how long the `master`, `certificate`, and `combined` download links remain valid.
Acceptable range: 1 to 10,080 minutes (7 days).
Default is 60 minutes.
```bash Endpoint theme={null}
GET /v1/envelopes/:id
```
```json theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "sent",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": null,
"declined": null,
"completed": null,
"master": "https://annature..",
"certificate": "https://annature..",
"combined": "https://annature..",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": null,
"password": false,
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": null,
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}],
"metadata": {}
}
```
# Send an envelope
Source: https://docs.annature.com.au/api-reference/envelopes/send-envelope
POST /v1/envelopes/:id/send
Sends a previously created draft envelope to all eligible recipients.
This operation is only valid when the envelope’s status is `draft`. Once sent, the envelope status will transition to `created`, then `sent`.
### Signing order
The recipient `order` property controls how the envelope is routed for signing. If multiple recipients share the same order value, they will receive the envelope at the same time.
Recipients with a higher order will receive the envelope only after all recipients in the previous order group have completed their actions.
This allows you to configure fully sequential, fully parallel, or mixed signing flows.
## Parameters
The unique identifier of the envelope to send.
```bash Endpoint theme={null}
POST /v1/envelopes/:id/send
```
```bash theme={null}
204
```
# Void an envelope
Source: https://docs.annature.com.au/api-reference/envelopes/void-envelope
POST /v1/envelopes/:id/void
Voids a sent envelope, cancelling all outstanding signature requests and preventing the envelope from being completed.
This action is only permitted when the envelope’s status is `sent`.
Once voided, all recipients will be unable to open or complete the envelope. If a recipient attempts to access the envelope after it has been voided, they will see a message indicating it was cancelled by the sender.
## Active sessions and link invalidation
Voiding an envelope immediately **invalidates all access links** — including those sent via email or SMS. This prevents **new sessions** from being created and effectively disables further interaction with the envelope.
However, if a recipient has **already clicked a link and initiated a session**, that session will remain active for up to **60 minutes** from the time it was created. During this window, the recipient may still be viewing the envelope contents.
This behaviour is intentional and mirrors typical session-based security models. It allows Annature to revoke access to sensitive documents for future interactions, but cannot forcefully terminate existing sessions.
> If you accidentally send an envelope containing sensitive information to the wrong recipient, voiding it immediately ensures no one else can open it — but someone who already opened it may retain access for up to 60 minutes.
## Parameters
The unique identifier of the envelope to void.
```bash Endpoint theme={null}
POST /v1/envelopes/:id/void
```
```bash theme={null}
204
```
# Envelope completed
Source: https://docs.annature.com.au/api-reference/events/envelope-completed
Triggered when all recipients have completed their actions and the envelope is fully executed.
The webhook payload includes temporary download URLs for:
* The completed **master** version of the envelope (with all fields and signatures applied)
* The **certificate of completion** (a separate PDF documenting the signing timeline)
* The **combined** copy (a single PDF containing both the master and the certificate appended together)
These URLs are valid for **72 hours**. After expiry, they return a `403 Forbidden` response.
To regenerate download links at any time, use the [Retrieve an envelope](/api-reference/envelopes/retrieve-envelope) endpoint.
```json theme={null}
{
"event": "envelope_completed",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"completed": "2019-12-17T05:30:00Z",
"master": "https://annature..",
"certificate": "https://annature..",
"combined": "https://annature.."
}
```
# Envelope sent
Source: https://docs.annature.com.au/api-reference/events/envelope-sent
Triggered when an envelope is dispatched to all recipients and is ready for signing.
If the envelope includes muted recipients, this event indicates your system can begin generating signing tokens for recipients to access the envelope.
When muted delivery is used **in combination with signing order**, your application is responsible for determining when a recipient is eligible to sign. Recipients with a higher `order` value must wait until all prior recipients have completed their actions.
To avoid unnecessary complexity, we recommend maintaining your own internal state for recipient readiness in these scenarios.
```json theme={null}
{
"event": "envelope_sent",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"sent": "2019-12-17T05:30:00Z"
}
```
# Envelope voided
Source: https://docs.annature.com.au/api-reference/events/envelope-voided
Triggered when an envelope is voided by the sender before completion.
This event notifies your system that the envelope is no longer accessible to recipients. Any attempt to view the envelope — including through previously issued signing tokens — will result in a message indicating it has been voided.
Use this event to clean up pending tasks, update recipient status in your application, or prevent downstream processes from continuing unnecessarily.
```json theme={null}
{
"event": "envelope_voided",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"voided": "2019-12-17T05:30:00Z"
}
```
# Recipient completed
Source: https://docs.annature.com.au/api-reference/events/recipient-completed
Triggered when a recipient completes all required actions.
For recipients with the type `signer`, this means signing and filling in any assigned fields. For recipients with the type `viewer`, it means finishing their viewing session.
This event is especially useful when implementing sequential signing (`order`) or muted delivery. You can use it to determine when the next recipient becomes eligible to receive access.
The [Retrieve an envelope](/api-reference/envelopes/retrieve-envelope) endpoint can be used after this event to get the latest state of the envelope and its documents.
```json theme={null}
{
"event": "recipient_completed",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"completed": "2019-12-17T05:30:00Z"
}
```
# Recipient declined
Source: https://docs.annature.com.au/api-reference/events/recipient-declined
Triggered when a recipient declines to sign the envelope.
The payload includes an optional `declined_reason` — a free-text message that the recipient may enter when declining. While not mandatory, this message often explains the reason for their decision.
> Declining a document does **not** automatically void the envelope. You may choose to void it, update the recipient’s details, or send them a reminder — depending on your workflow.
If you choose to send the recipient a reminder after they’ve declined, their status will automatically revert to `sent`, allowing them to reopen and complete the envelope.
```json theme={null}
{
"event": "recipient_declined",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"declined": "2019-12-17T05:30:00Z",
"declined_reason": ""
}
```
# Recipient failed
Source: https://docs.annature.com.au/api-reference/events/recipient-failed
Triggered when an email or SMS delivery attempt to a recipient fails.
The payload includes a `diagnosis` field that contains the raw delivery error returned by the recipient’s mail server or telco provider.
You may respond to this event by:
* Using the [Resend email](/api-reference/recipients/resend-email) or [Resend sms](/api-reference/recipients/resend-sms) endpoints
* Updating the recipient’s contact details via the [Update a recipient](/api-reference/recipients/update-recipient) endpoint
```json theme={null}
{
"event": "recipient_failed",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"failed": "2019-12-17T05:30:00Z",
"method": "email",
"diagnosis": ""
}
```
# Recipient sent
Source: https://docs.annature.com.au/api-reference/events/recipient-sent
Triggered when a recipient has been sent a copy of the envelope to complete.
This event is only triggered for **non-muted recipients**. If you are using muted delivery, you must manage recipient dispatch and eligibility yourself — typically by listening to `envelope_sent` and `recipient_completed` events.
The payload includes a `method` property to indicate how the envelope was sent, such as `"email"` or `"sms"`. If the recipient was sent both, two separate events will be generated.
```json theme={null}
{
"event": "recipient_sent",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"sent": "2019-12-17T05:30:00Z",
"method": "email"
}
```
# Recipient token request
Source: https://docs.annature.com.au/api-reference/events/recipient-token-request
Triggered when a **muted recipient** requests a new signing token after their previous one has expired.
Since muted recipients do not receive email or SMS from Annature, your application is responsible for responding to this event and delivering the new token — typically via your own UI, SMS, or email system.
Listening for this event ensures that muted recipients always have a way to access their envelope, even if their original link expires.
```json theme={null}
{
"event": "recipient_token_request",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"method": "email"
}
```
# Recipient viewed
Source: https://docs.annature.com.au/api-reference/events/recipient-viewed
Triggered each time a recipient opens an envelope using a valid signing token.
This event may occur multiple times for the same recipient — for example, if they reopen the envelope on different devices or sessions.
Events may continue to be sent even after the envelope has been completed, provided the signing token remains valid.
```json theme={null}
{
"event": "recipient_viewed",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"envelope_id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"viewed": "2019-12-17T05:30:00Z"
}
```
# Verification cancelled
Source: https://docs.annature.com.au/api-reference/events/verification-cancelled
Triggered when a verification is cancelled before completion.
This event notifies your system that the verification is no longer accessible to the individual. Any attempt to open it — including through previously issued verification tokens — will result in a message indicating it has been cancelled.
Use this event to clean up pending tasks or update the verification’s status in your application.
```json theme={null}
{
"event": "verification_cancelled",
"verification_id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"cancelled": "2026-08-24T00:00:00Z"
}
```
# Verification completed
Source: https://docs.annature.com.au/api-reference/events/verification-completed
Triggered when the individual has submitted their identity documents and the verification is finished.
The [Retrieve a verification](/api-reference/verifications/retrieve-verification) endpoint can be used after this event to get the latest state of the verification. Reports may not be available immediately — listen for the [Verification reports](/api-reference/events/verification-reports) event, or retrieve them later via [Retrieve reports](/api-reference/verifications/retrieve-reports).
The payload includes a `verified` property for backwards compatibility. This property is deprecated and will be removed without notice to new integrators.
```json theme={null}
{
"event": "verification_completed",
"verification_id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"completed": "2026-08-24T00:00:00Z",
"verified": "2026-08-24T00:00:00Z" // deprecated
}
```
# Verification created
Source: https://docs.annature.com.au/api-reference/events/verification-created
Triggered when a new verification request is created.
Use this event to record the verification in your application, or to begin generating access tokens for muted verifications via the [Retrieve a verification token](/api-reference/verifications/retrieve-verification-token) endpoint.
```json theme={null}
{
"event": "verification_created",
"verification_id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"created": "2026-08-24T00:00:00Z"
}
```
# Verification reports
Source: https://docs.annature.com.au/api-reference/events/verification-reports
Triggered when a report associated with a completed verification is available for download.
This event is sent when the multi-bureau check report becomes available, and sent again when the AML & CTF screening report becomes available. If screening is enabled, expect two deliveries: the first usually includes whichever report finished first — often multi-bureau, with `screening` still `null` — and the second is sent once both are ready.
If screening was not enabled, the event is sent once, when the multi-bureau report is available.
The webhook payload includes temporary download URLs for:
* **certificate** – A certificate of verification PDF
* **multibureau** – The multi-bureau identity check report
* **screening** – The AML & CTF screening report. Only present when `screening` was enabled on the verification
Any report that is not available will be returned as `null`.
These URLs are valid for **72 hours**. After expiry, they return a `403 Forbidden` response.
To regenerate download links at any time, use the [Retrieve reports](/api-reference/verifications/retrieve-reports) endpoint.
```json theme={null}
{
"event": "verification_reports",
"verification_id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"certificate": "https://annature..",
"multibureau": "https://annature..",
"screening": "https://annature.."
}
```
# The Field object
Source: https://docs.annature.com.au/api-reference/fields/field-object
Fields are a required property of [recipients](/api-reference/recipients/recipient-object) with the type of `signer`, and define where and how those recipients interact with the document.
Each field is defined by its `type` property, with additional attributes used to control its placement, size, style, and behavior. Fields can be used to collect input, mark approvals, capture dates, or guide recipients through complex workflows.
## Placement methods
There are two supported strategies for placing fields on a document:
### Anchors (automatic placement)
Anchors allow fields to be automatically placed wherever a specific text string appears within the document.
* All documents in the envelope are scanned for the anchor string.
* A field is created directly **over** each match — the matched text is **not removed or replaced**.
* For best results, render anchor strings using a **text color that matches the background** (e.g. white) so they remain invisible to recipients.
* Anchors are positioned from the **bottom-left** of the matched text.
* Use `x_offset` and `y_offset` to fine-tune placement.
* Anchors near page edges may be ignored if placement would cause overflow.
### Coordinates (fixed positioning)
Fields can also be positioned precisely using absolute coordinates.
* Use `x_coordinate`, `y_coordinate`, and `page` to place a field at an exact location.
* All coordinates are based on a **72 DPI render**, with the origin `(0, 0)` in the **bottom-left corner**.
* All field types anchor from the bottom-left, **except** `input` fields, which anchor from the top-left and expand downward as content grows.
## Field types
Requires the recipient to sign the document by drawing or adopting a signature. `height` and `width` define dimensions.
Requires the recipient to provide their initials. Uses a fixed 1:1 aspect ratio derived from `height`.
Requires the recipient to have another individual witness their signature. Witnesses must enter their full name and email address.
Prints the date and time when the recipient completes the envelope. Supports font styling and formatting options.
Creates a free-text input box. Height expands dynamically as the recipient types.
Creates a single checkbox. Checked boxes display an “X”; unchecked boxes print nothing.
Creates a dropdown menu. The selected option is printed on the document.
## Date formats
For fields where the type is set to **date**, you can control how the date appears on the document using any combination of the tokens below.
**Supported format tokens:**
* `D` — Day (1–31)
* `DD` — Day (01–31)
* `M` — Month (1–12)
* `MM` — Month (01–12)
* `MMM` — Short month (Jan–Dec)
* `MMMM` — Full month (January–December)
* `YY` — Year (2-digit, e.g. 24)
* `YYYY` — Year (4-digit, e.g. 2024)
* `H` — Hour (0–23)
* `HH` — Hour (00–23)
* `h` — Hour (1–12)
* `hh` — Hour (01–12)
* `mm` — Minutes (00–59)
* `ss` — Seconds (00–59)
* `A` — AM/PM
* `a` — am/pm
Example format: `DD/MM/YYYY hh:mm a`
## Attributes
***
A user-defined identifier for the field. This must be unique across the entire envelope—including fields belonging to different recipients.
Supplying a field ID allows fields to be referenced programmatically (e.g., to retrieve a specific field or track user interactions), but is entirely optional.
The field’s type determines the expected recipient input and how it renders on the document.
Valid values include: `signature`, `initials`, `witness`, `date`, `input`, `checkbox`, and `dropdown`.
Each type supports different behaviours and additional properties. Refer to the [Field Types](#) section for detailed descriptions.
The page number on which to place the field. Pages are 1-indexed (the first page is `1`).
Required when using coordinates. If multiple documents are added to an envelope, page numbering continues as if all documents were merged into one.
A string of text used for automatic placement of the field (referred to as an *anchor*).
When this property is supplied, coordinates are not required. The anchor will be matched against all document text, and fields will be placed at each occurrence.
Anchors are positioned using a bottom-left origin, and may be fine-tuned with `x_offset` and `y_offset`.
The absolute horizontal pixel position for the field.
Used with `y_coordinate` and `page` to place a field at a specific location. Ignored when using anchors.
The absolute vertical pixel position for the field.
Used with `x_coordinate` and `page` to enable fixed field placement. Documents should be rendered at 72 DPI with bottom-left origin at `(0, 0)`.
Specifies whether the field must be completed before the recipient can finish signing.
For:
* `input`: at least one character must be entered.
* `checkbox`: must be checked.
* `dropdown`: a selection must be made.
For non-editable types (e.g., `date`), this flag is ignored.
Prevents the recipient from modifying the field’s value.
Can be combined with `value` to print a static string onto the document that the recipient cannot change. Useful for pre-filled, informational fields.
Allows the field’s value to be edited by multiple recipients.
Used in workflows where later signers must confirm or modify information previously entered. Collaborative fields are rendered live and only finalised when the envelope is completed.
The initial value of the field.
For `input` fields, this will be the starting text. For `dropdown` fields, it represents the default selected option. Will be updated upon recipient completion.
Specifies whether a `checkbox` field should start in a checked state when the document loads.
This is purely a presentation detail—recipients can still toggle the checkbox. The final result (i.e. whether it was left checked or unchecked) is recorded in the field’s `value` upon envelope completion.
The pixel-based height of the field.
For `input`, `signature`, `witness`, and `initials` fields, this defines the vertical size. Note that input fields grow downward as users type, starting from this height.
The pixel-based width of the field.
* For `signature` and `witness` fields, a 2.5:1 width-to-height ratio is recommended.
* For `initials`, width is automatically derived from height using a 1:1 ratio.
An array of selectable options for `dropdown` fields.
Each option includes a `value` (what is stored) and `option` (what is shown on the document).
The internal value that will be saved for the dropdown when selected.
The label that appears to the recipient and is printed on the document.
The pixel size of the font used to print text on the document.
Applies to fields where visible text is rendered, such as `input`, `dropdown`, and `date`. Acceptable range is 8–32 pixels. Default is 12.
The font family used when rendering field text on the document.
Acceptable values are `courier` and `helvetica`. Defaults to `courier` if not specified. Only applicable to `input`, `dropdown`, and `date` fields.
For fields where the type is set to `date`, this defines how the date appears on the document.
Formats can be customised using tokens such as `DD`, `MMMM`, `YYYY`, etc. For a full list of supported tokens, refer to the [Date formats](#date-formats) section.
Timestamp indicating when the field was created, in ISO 8601 format.
```bash Endpoints theme={null}
GET /v1/fields
GET /v1/fields/:id
GET /v1/fields/:id/attachments
```
```json Account Object theme={null}
{
"id": "5f66f4705e35d5c49d2a7af7a896b8b4",
"type": "signature",
"page": 1,
"anchor": "{{signature}}",
"x_coordinate": 150,
"y_coordinate": 400,
"required": true,
"read_only": false,
"collaborative": false,
"value": "foo",
"checked": false,
"height": 30,
"width": 100,
"options": [],
"font_size": 12,
"font_type": "courier",
"date_format": "DD/MM/YYYY",
"created": "2019-12-17T05:30:00Z"
}
```
# List all fields
Source: https://docs.annature.com.au/api-reference/fields/list-all-fields
GET /v1/fields
Retrieves all fields associated with a specific envelope.
This endpoint is typically used after an envelope has been created or sent, allowing you to inspect the full structure of interactive elements — including signature blocks, text inputs, checkboxes, dropdowns, and more. These fields define the recipient interaction layer across each document in the envelope.
Each returned field object includes metadata about its type, position, size, styling, and the recipient it is assigned to. The `recipient_id` is especially critical in multi-recipient workflows, where each participant may have different signing responsibilities.
If a field was created without an explicit `id` during envelope creation, one will be generated automatically.
## Parameters
The unique identifier of the envelope whose fields you want to retrieve.
```bash Endpoint theme={null}
GET /v1/fields
```
```json theme={null}
[{
"id": "5f66f4705e35d5c49d2a7af7a896b8b4",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"type": "signature",
"page": 1,
"anchor": "{{signature}}",
"x_coordinate": 150,
"y_coordinate": 400,
"required": true,
"read_only": false,
"collaborative": false,
"value": "foo",
"checked": false,
"height": 30,
"width": 100,
"options": [],
"font_size": 12,
"font_type": "courier",
"date_format": "DD/MM/YYYY",
"created": "2019-12-17T05:30:00Z"
}]
```
# Retrieve attachments
Source: https://docs.annature.com.au/api-reference/fields/retrieve-attachments
GET /v1/fields/:id/attachments
Retrieves all attachments associated with a specific field.
This endpoint is used to access uploaded files submitted by recipients during the signing process — specifically for fields of type `attachment`. It returns metadata for each file, along with a temporary download link to the original upload.
Attachments are available only after the recipient has completed the field. This endpoint is only applicable to fields with a `type` of `attachment`; using it on other field types will return an empty array.
## Parameters
The unique identifier of the field whose attachments you want to retrieve.
The unique identifier of the envelope that the field belongs to.
```bash Endpoint theme={null}
GET /v1/fields/:id/attachments
```
```json theme={null}
[{
"id": "5f66f4705e35d5c49d2a7af7a896b8b4",
"original": "https://annature..",
"name": "Drivers license.png",
"type": "image/png",
"size": 115226,
"created": "2019-12-17T05:30:00Z"
}]
```
# Retrieve a field
Source: https://docs.annature.com.au/api-reference/fields/retrieve-fields
GET /v1/fields/:id
Retrieves the details of a single field using its unique `id`.
This endpoint is typically used after an envelope has been sent or completed, particularly when you need to extract the value of a field — such as the input from a text field or the selection from a dropdown. It returns a complete field object including its type, placement, styling, and assigned recipient.
Fields are created as part of the [Create Envelope](/api-reference/envelopes/create-envelope) request. If no `id` was explicitly assigned during creation, one will have been automatically generated.
## Parameters
The unique identifier of the field you want to retrieve.
The unique identifier of the envelope that the field belongs to.
```bash Endpoint theme={null}
GET /v1/fields/:id
```
```json theme={null}
{
"id": "5f66f4705e35d5c49d2a7af7a896b8b4",
"recipient_id": "255e591c2c9fe1bc99be1ec03075b402",
"type": "signature",
"page": 1,
"anchor": "{{signature}}",
"x_coordinate": 150,
"y_coordinate": 400,
"required": true,
"read_only": false,
"collaborative": false,
"value": "foo",
"checked": false,
"height": 30,
"width": 100,
"options": [],
"font_size": 12,
"font_type": "courier",
"date_format": "DD/MM/YYYY",
"created": "2019-12-17T05:30:00Z"
}
```
# Create a group
Source: https://docs.annature.com.au/api-reference/groups/create-group
POST /v1/groups
Creates a new group within your organisation.
Groups provide a flexible way to represent business divisions, service lines, or departments — each with its own contact information and branding. When envelopes are sent by an account assigned to a group, the group’s branding and contact details are shown to recipients in place of the organisation's defaults.
This endpoint supports custom logos and colour settings to help create a fully branded recipient experience.
## Parameters
The display name for the group. This name will appear in the Annature dashboard.
The business name used in recipient-facing content. Replaces the organisation's business name when the envelope is sent by a group member.
Email address to be shown in place of the account or organisation email.
Phone number to appear in recipient communications.
Street address displayed to recipients in place of the organisation’s address.
Website URL shown in branded templates and email footers.
A base64-encoded logo image.
The image must decode to a valid `image/jpeg`, `image/png`, or `image/gif`. Maximum size is 5MB.
Hex colour code for the group’s branding.
Must be a 6-digit code prefixed with `#` (e.g. `#5469d4`).
```bash Endpoint theme={null}
POST /v1/groups
```
```json Body theme={null}
{
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "3 Clunies Ross Court, Eight Mile Plains, QLD, 4130",
"website": "www.annature.com.au",
"colour": "#5469d4",
"logo": "iVBORw0KGgoAAAANSUhE.."
}
```
```json theme={null}
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "3 Clunies Ross Court, Eight Mile Plains, QLD, 4130",
"website": "www.annature.com.au",
"colour": "#5469d4",
"logo": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}
```
# Delete a group
Source: https://docs.annature.com.au/api-reference/groups/delete-group
DELETE /v1/groups/:id
Permanently deletes a group from your organisation.
Deleting a group has immediate downstream effects on access control and envelope visibility:
* **Accounts** assigned to the group will be unassigned. This may restrict their access to envelopes that were previously shared within the group.
* **Envelopes** assigned to the group will be unassigned. This can impact which users are able to view or manage those envelopes.
* **Templates** assigned to the group will also be unassigned, and may no longer be editable or visible depending on your organisation’s permissions.
Once deleted, the group will no longer appear in the Annature dashboard and cannot be recovered. Group branding settings will no longer apply to any future or historical activity.
> This operation is destructive and cannot be undone. Ensure you understand the implications for account access and shared envelope visibility before proceeding.
## Parameters
The unique identifier of the group to delete.
```bash Endpoint theme={null}
DELETE /v1/groups/:id
```
```bash theme={null}
204
```
# The Group object
Source: https://docs.annature.com.au/api-reference/groups/group-object
A group represents a department, division, or sub-brand within your organisation, and provides an isolated configuration for business identity, contact information, and branding.
Groups are primarily used to assign envelopes to a shared context — allowing accounts within the same group to access and manage each other's envelopes when they are marked as `shared`. This makes them ideal for firms with multiple teams, service lines, or branded business units operating under a single organisation.
Each group can override the organisation’s default branding. Group-level settings such as business name, logo, contact number, email, and website will appear in envelope notifications and the signing experience for any envelope sent by an account in that group.
If group contact fields are set, they will replace both the sender account’s and the organisation’s values in all recipient-facing interactions.
## Attributes
The unique identifier for the group.
The label used to identify the group in the Annature dashboard.
The business name displayed to recipients, replacing the organisation’s name for envelopes sent from this group.
The email address displayed to recipients, overriding the sender’s and organisation’s default email.
The phone number associated with the group. Used in place of the organisation’s contact number.
The street address associated with the group. Displayed in place of the organisation’s address when shown to recipients.
The group’s website URL, used in recipient-facing templates and email footers.
The Annature-hosted URL of the group’s logo image. This logo will be displayed on signing pages and email communications for envelopes sent by this group.
Hex value representing the group’s branding color (e.g., `#0044CC`). Used for buttons and accents in the recipient UI.
The ISO 8601 timestamp indicating when the group was created.
```bash Endpoints theme={null}
GET /v1/groups
GET /v1/groups/:id
POST /v1/groups
PUT /v1/groups/:id
DELETE /v1/groups/:id
```
# List all groups
Source: https://docs.annature.com.au/api-reference/groups/list-all-groups
GET /v1/groups
Returns a list of all groups configured for your organisation.
Groups are returned in descending order of creation time, with the most recently created groups appearing first. Each group object includes contact details, branding information, and business identifiers used to theme envelopes and route shared access.
This endpoint supports basic exact-match filtering on key attributes. The response is limited to a maximum of 1,000 results.
## Parameters
Filter by exact match on the group's `name` property.
Filter by exact match on the group's `business` property.
Filter by exact match on the group's `email` property.
```bash Endpoint theme={null}
GET /v1/groups
```
```json theme={null}
[{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"logo": "https://annature..",
"colour": "#5469d4",
"created": "2019-12-17T05:30:00Z"
}]
```
# List all groups (paged)
Source: https://docs.annature.com.au/api-reference/groups/list-all-groups-paged
GET /v2/groups
Returns a paginated list of all groups configured for your organisation. Groups are returned in descending order of creation time, with the most recently created groups appearing first.
Each group object includes contact details, branding information, and business identifiers used to theme envelopes and route shared access.
Filtering and result structure is identical to the original [List all groups](/api-reference/groups/list-all-groups) endpoint, with the addition of cursor-based pagination.
To retrieve the next page of results, pass the `cursor` value from the previous response into your next request. The `has_more` property will indicate whether additional results are available.
## Parameters
Filter by exact match on the group's `name` property.
Filter by exact match on the group's `business` property.
Filter by exact match on the group's `email` property.
Pagination cursor returned from a previous request. Use this to fetch the next page of results.
```bash Endpoint theme={null}
GET /v2/groups
```
```json theme={null}
{
"groups": [
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"logo": "https://annature..",
"colour": "#5469d4",
"created": "2019-12-17T05:30:00Z"
}
],
"cursor": "eyJpZCI6ImYxMjMiLCJjcmVhdGVkIjoiMjAyNS0wNy0wOVQwODozMDowMFoifQ==",
"has_more": true
}
```
# Retrieve a group
Source: https://docs.annature.com.au/api-reference/groups/retrieve-group
GET /v1/groups/:id
Retrieves the full details of a specific group using its unique identifier.
This endpoint returns the group's business identity, contact details, and branding configuration, all of which are used when theming envelopes or replacing default organisation-level values in recipient-facing content.
## Parameters
The unique identifier of the group to retrieve.
```bash Endpoint theme={null}
GET /v1/groups/:id
```
```json theme={null}
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"logo": "https://annature..",
"colour": "#5469d4",
"created": "2019-12-17T05:30:00Z"
}
```
# Update a group
Source: https://docs.annature.com.au/api-reference/groups/update-group
PUT /v1/groups/:id
Updates the details of an existing group.
This endpoint allows you to modify a group's branding, contact information, or business identity. Updates will apply to all future envelopes sent by accounts in the group and may affect the recipient-facing appearance of previously sent envelopes if branding settings are reused or cached.
To update the logo, supply a new base64-encoded image string. Contact and branding changes will take effect immediately.
## Parameters
The unique identifier of the group to update.
The display name for the group, as shown in the Annature dashboard.
The business name to display to recipients. Overrides the organisation's default name.
Email address to use in place of the sender’s or organisation’s.
Contact number to display to recipients.
Street address to display in place of the organisation’s.
Website URL used in recipient-facing emails and branding.
A base64-encoded logo image.
The image must decode to a valid `image/jpeg`, `image/png`, or `image/gif` format. Maximum size: 5MB.
Hex colour code for the group’s branding theme.
Must be a 6-digit code prefixed with `#` (e.g. `#5469d4`).
```bash Endpoint theme={null}
PUT /v1/groups/:id
```
```json Body theme={null}
{
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"colour": "#5469d4",
"logo": "https://annature.."
}
```
```json theme={null}
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"business": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"colour": "#5469d4",
"logo": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}
```
# Introduction
Source: https://docs.annature.com.au/api-reference/introduction
Welcome to the Annature API documentation.
Annature is an Australian-made digital signature platform that helps businesses securely send, sign, and manage documents online. Our API gives you full programmatic access to the Annature platform, allowing you to integrate eSigning workflows into your own applications, systems, and customer journeys.
Whether you're building a native platform integration, managing client compliance at scale, or automating internal operations — the Annature API is designed to help you securely send, sign, and track documents with minimal friction.
The Annature API is built on REST principles, uses standard HTTP methods and status codes, and communicates using JSON. Authentication is handled using a pair of API keys (public and private), passed via HTTP headers with each request.
To get started, [create a free account](https://dashboard.annature.com.au/sign-up) to generate your API keys and access your dashboard.
```bash Base URL theme={null}
https://api.annature.com.au/
```
```json Headers theme={null}
{
"Accept": "application/json",
"Content-Type": "application/json"
}
```
# The Organisation object
Source: https://docs.annature.com.au/api-reference/organisations/organisation-object
An organisation is the top-level resource in Annature. It represents your business entity and owns all other resources — including envelopes, templates, accounts, groups, and webhook endpoints.
Organisation-level settings determine the default branding and contact information used throughout your account. These defaults apply to envelopes, notifications, and the signing experience unless overridden by a group or individual account.
This object allows you to retrieve and update your organisation’s name, contact details, and visual branding — including your logo and primary colour.
## Attributes
The unique identifier for the organisation.
The business name of the organisation.
The organisation-wide contact email address.
The contact phone number for the organisation.
The street address of the organisation.
The organisation’s public website URL.
The Annature-hosted URL of the organisation’s logo image. This logo will be used as the default for envelope branding unless overridden by a group.
The hex colour code representing the organisation’s default branding. Used for buttons, accents, and email styling unless overridden.
The ISO 8601 timestamp indicating when the organisation was created.
```bash Endpoints theme={null}
GET /v1/organisations
PUT /v1/organisations
```
```json Organisation Object theme={null}
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature group",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"logo": "https://annature..",
"color": "#5469d4",
"created": "2019-12-17T05:30:00Z"
}
```
# Retrieve organisation
Source: https://docs.annature.com.au/api-reference/organisations/retrieve-organisation
GET /v1/organisations
Retrieves the details of your organisation, including contact information, business name, and default branding settings.
This endpoint is typically used to display or configure the organisation's identity as it appears across envelopes, signing pages, and recipient communications.
## Parameters
*No parameters are required.*
```bash Endpoint theme={null}
GET /v1/organisations
```
```json theme={null}
{
"id": "0e9e7a5b390085c6179c3839274aa350",
"name": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"logo": "https://annature..",
"color": "#5469d4",
"created": "2019-12-17T05:30:00Z"
}
```
# Update organisation
Source: https://docs.annature.com.au/api-reference/organisations/update-organisation
PUT /v1/organisations
Updates the details of your organisation, including contact information and default branding.
Only fields included in the request body will be updated. Any fields not supplied will retain their existing values.
This endpoint is typically used to manage your organisation’s recipient-facing identity — such as the name shown on envelopes, the contact details included in recipient notifications, and the visual branding of signing pages.
## Parameters
The business name of the organisation.
The contact email address of the organisation.
The contact phone number of the organisation.
The street address of the organisation.
The public website URL of the organisation.
A base64-encoded logo image.
The image must decode to a valid `image/jpeg`, `image/png`, or `image/gif`. Maximum size: 5MB.
Hex colour code representing the organisation's branding.
Must be a 6-digit code prefixed with `#` (e.g. `#5469d4`).
```bash Endpoint theme={null}
PUT /v1/organisations
```
```json Body theme={null}
{
"name": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"color": "#5469d4",
"logo": "iVBORw0KGgoAAAANSUhE.."
}
```
```json theme={null}
{
"id": "a5a885caee6286a54ad7bbd4ab5400e9",
"name": "Annature",
"email": "ted@annature.com.au",
"number": "1300 000 000",
"address": "Level 38, 71 Eagle Street, Brisbane 4000",
"website": "www.annature.com.au",
"color": "#5469d4",
"logo": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}
```
# Partner Program
Source: https://docs.annature.com.au/api-reference/partner-program
The Annature API includes a set of advanced capabilities designed for software providers and platform integrators who need to provision and manage multiple organisations through a single integration. These features are only available through our **Partner Program**, and are protected due to their elevated access and potential for misuse.
Partners are typically software providers, platform integrators, or workflow enablers who need to provision, manage, or automate across multiple organisations using a single integration.
### How it works
When you’re approved as a partner, you’ll be issued a separate **Partner API key**, which must be supplied on a per-request basis via the `X-Annature-Partner` HTTP header.
Providing this header changes the behavior of certain endpoints — unlocking extended capabilities that are otherwise unavailable or restricted.
If the `X-Annature-Partner` header is **not** included, the endpoint behaves as it normally would for standard API users.
This lets partners operate in both contexts:
* With the header: You’re acting in a partner-managed mode
* Without the header: You’re using your API key as a normal organisation user
### What partners can do
Approved partners gain access to the following capabilities **when the `X-Annature-Partner` header is present**:
* **Register a new organisation and account in a single request**\
The [Register organisation](#) endpoint allows partners to create a brand new organisation and its first user in one API call. This endpoint is **completely disabled** unless the partner header is present.
* **Skip email verification during account creation**\
The [Create account](#) endpoint normally requires all new users to verify their email address before signing in. By including the `skip_verification` flag and the `X-Annature-Partner` header, partners can bypass this requirement when creating accounts programmatically.
If `skip_verification` is provided without the partner header, the request will be rejected.
* **List accounts across all registered organisations**\
The [List accounts](#) endpoint normally returns accounts within a single organisation. When called with the partner header, it returns accounts across all organisations that the partner originally registered. This is useful when you need a complete view of every account provisioned by your integration.
* **Impersonate an account by creating a session**\
Partners can use the [Create session](#) endpoint to generate an authenticated session for any account they’ve provisioned — without requiring the user’s email or password. This enables features like embedded support dashboards or seamless SSO experiences.
This should only be used for accounts you've created and actively manage. Sessions must be scoped securely.
### How to become a partner
To request access to the Partner Program, email us at [hello@annature.com.au](mailto:hello@annature.com.au).
We’ll ask you to complete a short due diligence process to confirm your business model and ensure the API will be used responsibly. Once approved, you’ll be issued a **Partner key** that you must include via the `X-Annature-Partner` header in any requests that require partner privileges.
# Delete a recipient
Source: https://docs.annature.com.au/api-reference/recipients/delete-recipient
DELETE /v1/recipients/:id
Deletes a recipient from an envelope. This endpoint can be used on both draft and sent envelopes. When used on a draft envelope, the recipient is simply removed prior to sending.
When used on a sent envelope, the recipient is removed from the signing workflow. Any outstanding access for that recipient will be revoked.
If the removed recipient is the final remaining incomplete recipient, and all other recipients have already completed their actions, the envelope will automatically complete.
An envelope must always have at least one recipient. Requests to delete the only remaining recipient will be rejected.
Use this endpoint to dynamically manage recipients — for example, removing incorrect recipients or adjusting workflows after an envelope has been sent.
**Note**: Deleting a recipient in a **recalled envelope** is not supported via the API. This must be done through the dashboard.
## Parameters
The unique identifier of the recipient to delete.
```bash Endpoint theme={null}
DELETE /v1/recipients/:id
```
```bash theme={null}
204
```
# The recipient object
Source: https://docs.annature.com.au/api-reference/recipients/recipient-object
A recipient represents an individual involved in the transaction of an envelope.
Recipients can only be created when [creating an envelope](/api-reference/envelopes/create-envelope). Each envelope must include at least one recipient to be valid.
## Recipient types
There are three recipient types: `signer`, `viewer`, and `carbon-copy`. Each type governs how the recipient interacts with the envelope and what actions are required for completion.
* `signer`: The default type. Recipients of this type must complete all assigned [fields](/api-reference/fields/field-object), such as signing or entering information. They may also decline the envelope unless it is already completed.
* `viewer`: These recipients must open the envelope and click a confirmation button to acknowledge they’ve reviewed the documents. They may decline prior to completion.
* `carbon-copy`: These recipients are passive observers and receive a completed copy of the envelope and certificate after the transaction is complete.
## Recipient statuses
The `status` property indicates a recipient’s progress toward completing their part in the envelope. Possible values:
* `created` — Recipient has just been created and is being prepared for dispatch.
* `pending` — Recipient is not yet eligible to sign, usually due to signing order constraints.
* `sent` — Recipient has been sent the envelope and is eligible to sign.
* `failed` — An error occurred while attempting to deliver the envelope (e.g. email bounced).
* `completed` — Recipient has completed their required actions.
* `declined` — Recipient has declined to sign the envelope.
> Carbon copy recipients do not have a `status` because they only receive the envelope after completion.
## Signing order
Use the `order` property to enforce a signing sequence. Recipients with a lower `order` value must complete their actions before recipients with a higher value are notified. You can mix sequential and parallel flows by reusing the same order number for multiple recipients.
## Muted recipients
Setting `muted` to `true` disables all automatic correspondence from Annature to the recipient.
This is commonly used when you want to control recipient communications manually, such as in a custom signing flow. Muted recipients must still have an email address, which is used to verify their identity during the signing process.
Signing tokens for muted recipients can be generated and managed via the [retrieve a signing token](/api-reference/recipients/retrieve-signing-token) endpoint.
If you choose to send your own email or SMS correspondence to recipients, you are responsible for maintaining accurate delivery logs and records. These records should demonstrate when the message was sent, to whom it was sent, and by what method.
This is critical for ensuring enforceability under digital signature laws. If the validity of a signature is ever challenged, you may be asked to prove that the envelope was accessed and signed by the intended recipient. Without verifiable delivery and access records, the legal standing of the signature may be weakened.
## Attributes
The unique identifier for the recipient.
The recipient's full name.
The recipient's email address, used for identification and correspondence.
The recipient's mobile number, in E.164 format. Used for SMS delivery.
The recipient type: `signer`, `viewer`, or `carbon-copy`. Defaults to `signer`.
Read-only string representing the recipient's current status.
Possible values: `created`, `pending`, `sent`, `failed`, `completed`, `declined`.
A custom message displayed to this recipient when they view the envelope. Overrides the envelope’s general message.
A passphrase the recipient must enter before viewing or signing the envelope.
Once created, this will return `true` or `false` depending on whether a password is set.
If `true`, Annature will not send any emails or SMS to this recipient.
The recipient's position in the signing order. Lower numbers act first.
If the recipient declined the envelope, this field may contain their reason.
Timestamp when the recipient was created (ISO 8601).
Timestamp when the recipient was first sent the envelope. `null` if muted.
Timestamp when the recipient declined the envelope.
Timestamp when the recipient completed their actions.
Custom URLs for post-session navigation.
Where to redirect after recipient completes the envelope.
Where to redirect after recipient declines the envelope.
```bash Endpoints theme={null}
GET /v1/recipients/:id
GET /v1/recipients/:id/token
POST /v1/recipients/:id/resend-email
POST /v1/recipients/:id/resend-sms
PUT /v1/recipients/:id
DELETE /v1/recipients/:id
```
```json theme={null}
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": "Lorem ipsum dolor sit amet.",
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": "2019-12-17T05:30:00Z",
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}
```
# Resend a signing email
Source: https://docs.annature.com.au/api-reference/recipients/resend-email
POST /v1/recipients/:id/resend-email
Sends a new signing email to the specified recipient.
If the envelope has already been completed, this endpoint will instead send the envelope completion email to the recipient. For recipients of type `carbon-copy`, this is the only available behaviour — carbon copy recipients only receive emails once the envelope is completed.
If the recipient's current status is `failed` or `declined`, their status will automatically be updated back to `sent` when this endpoint is used.
Recipients with a `completed` status cannot receive signing emails unless the entire envelope has also been completed, in which case they will receive the finalised documents.
This endpoint is not available for recipients whose type is `carbon-copy` unless the envelope status is `completed`.
```bash Endpoint theme={null}
POST /v1/recipients/:id/resend-email
```
```json theme={null}
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": "Lorem ipsum dolor sit amet.",
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": "2019-12-17T05:30:00Z",
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}
```
# Resend a signing sms
Source: https://docs.annature.com.au/api-reference/recipients/resend-sms
POST /v1/recipients/:id/resend-sms
Sends a new signing SMS message to the specified recipient.
This endpoint is available only when the recipient:
* Is part of an envelope that is still in progress
* Has a mobile number assigned
* Is not a `carbon-copy` recipient
If the recipient’s status is `failed` or `declined`, it will automatically be updated to `sent` when this endpoint is used.
This endpoint cannot be used for recipients who have already completed their actions, unless the envelope has been completed and you're looking to resend a completion email instead — which is only applicable via the [Resend a signing email](/api-reference/recipients/resend-email) endpoint.
```bash Endpoint theme={null}
POST /v1/recipients/:id/resend-sms
```
```json theme={null}
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": "Lorem ipsum dolor sit amet.",
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": "2019-12-17T05:30:00Z",
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}
```
# Retrieve a recipient
Source: https://docs.annature.com.au/api-reference/recipients/retrieve-recipient
GET /v1/recipients/:id
Retrieves the details of a specific recipient using their unique `id`. This `id` is returned in the response body when you [create an envelope](/api-reference/envelopes/create-envelope).
Use this endpoint to inspect the recipient’s current status, delivery settings, security options, and metadata — such as signing order or redirects.
```bash Endpoint theme={null}
GET /v1/recipients/:id
```
```json theme={null}
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": true,
"muted": false,
"order": 1,
"declined_reason": "Lorem ipsum dolor sit amet.",
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": "2019-12-17T05:30:00Z",
"completed": "2019-12-17T05:30:00Z",
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}
```
# Retrieve a signing token
Source: https://docs.annature.com.au/api-reference/recipients/retrieve-signing-token
GET /v1/recipients/:id/token
Generates a new signing token that can be used to access the envelope in the context of a specific recipient. If the recipient has already completed their required actions, the token will provide read-only access to view and download the finalised documents.
This endpoint is typically used in workflows where the application needs to manage the delivery of signing links manually — especially for muted recipients.
If a recipient attempts to access an envelope using an expired signing token, they may choose to request a new one from Annature. When the recipient is **not muted**, a new email or SMS will be sent based on their selected method. If the recipient **is muted**, no communication will be sent and a `recipient_token_request` webhook event will be triggered instead. You must listen to this event and handle link distribution yourself.
## Parameters
The number of days the generated token should remain valid. Must be between 1 and 90 days. Default is 7 days.
```bash Endpoint theme={null}
GET /v1/recipients/:id/token
```
```json theme={null}
{
"endpoint": "https://annature..",
"expiration": "2019-12-17T05:30:00Z"
}
```
# Update a recipient
Source: https://docs.annature.com.au/api-reference/recipients/update-recipient
PUT /v1/recipients/:id
Updates the details of an existing recipient in an envelope. This endpoint supports updates for both in-progress envelopes and draft envelopes, with different rules and behaviors depending on the envelope status.
When updating a recipient in a **draft** envelope, all recipient attributes can be modified freely. This is useful for preparing envelopes prior to sending without triggering any recipient correspondence.
When updating a recipient in an **in-progress** envelope (i.e. already sent), additional rules apply:
* All active recipient sessions are immediately expired. If the recipient is currently viewing or signing the envelope, their session will be forcibly closed.
* If the recipient's email address is changed, all previously sent signing emails become invalid, and a new email is sent automatically.
* If the recipient's mobile number is changed, all previously sent SMS links are invalidated, and a new SMS is sent automatically.
* Updates to name, message, password, authentication, and redirects will take effect immediately.
**Note:** Updating a recipient in a **recalled envelope** is not supported via the API. This must be done through the dashboard.
This endpoint uses the HTTP `PUT` method, which fully replaces the recipient's state with the values provided in the request body. All updatable fields must be explicitly included — any fields omitted will be reset to `null` or their default values.
## Parameters
The full name of the recipient.
The email address of the recipient.
The recipient's mobile number, supplied in E.164 format. This number is used to send an SMS with a link to open the envelope.
While it is technically possible to use both `mobile` and `sms_auth`, we strongly recommend using only one. Sending both the envelope link and the OTP to the same device does not meet the requirements for two-factor authentication.
Recipient type. Required when updating a recipient in a draft envelope.
Allowed values: `signer`, `viewer`, `carbon-copy`.
A custom message shown to the recipient. Overrides the envelope message.
A password the recipient must enter to access the envelope.
Enables SMS-based two-factor authentication by specifying the recipient’s mobile number, formatted in E.164.
When supplied, Annature will send a one-time code (OTP) to the recipient. This code must be entered before they can access the envelope.
While it is technically possible to use both `sms_auth` and `mobile`, we strongly recommend using only one. Sending both the envelope link and the OTP to the same device does not meet the requirements for two-factor authentication.
If true, Annature will not send any emails, SMS messages, or automatic reminders to this recipient.
The recipient's position in the signing order. Only applicable in draft envelopes; cannot be changed for in-progress envelopes.
Redirect URLs for post-session navigation.
Redirect after the recipient completes the envelope.
Redirect after the recipient declines the envelope.
```bash Endpoint theme={null}
PUT /v1/recipients/255e591c2c9fe1bc99be1ec03075b402
```
```bash Body theme={null}
{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"message": "Updated message",
"password": "new-password",
"sms_auth": true,
"muted": false,
"order": 1,
"redirects": {
"session_completed": "https://example.com/completed",
"session_declined": "https://example.com/declined"
}
}
```
```json theme={null}
{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Updated message",
"password": true,
"sms_auth": true,
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": null,
"redirects": {
"session_completed": "https://example.com/completed",
"session_declined": "https://example.com/declined"
}
}
```
# List all templates
Source: https://docs.annature.com.au/api-reference/templates/list-all-templates
GET /v1/templates
Returns a list of usable templates available to the requesting account. Templates are returned in descending order of creation, with the most recently created appearing first.
Only templates that include **at least one document and one role** are considered usable and will be returned by this endpoint. Draft or incomplete templates (e.g. no documents, no roles) are excluded.
Use this endpoint to retrieve a filtered or paginated view of templates for display in your application or to allow users to select from prebuilt workflows.
Date filters must be supplied in ISO 8601 format. Invalid dates are silently ignored.
The response is limited to a maximum of 250 results.
## Parameters
Exact-match filter for the template’s `name` property.
Return templates created **before** the specified ISO 8601 timestamp.
Return templates created **after** the specified ISO 8601 timestamp.
```bash Endpoint theme={null}
GET /v1/templates
```
```json theme={null}
[{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement template",
"shared": false,
"envelope_name": "Non disclosure agreement",
"envelope_message": "Lorem ipsum dolor sit amet.",
"envelope_shared": false,
"created": "2019-12-17T05:30:00Z",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"documents": [{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Non disclosure agreement.pdf",
"pages": 10,
"original": "https://annature..",
"master": "https://annature..",
"created": "2019-12-17T05:30:00Z"
}],
"roles": [{
"id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Client",
"recipient_name": "Ted Annature",
"recipient_email": "ted@annature.com.au",
"recipient_mobile": "+61422000000",
"recipient_type": "signer",
"recipient_password": "password",
"recipient_order": 1,
"recipient_redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}]
}]
```
# The Template object
Source: https://docs.annature.com.au/api-reference/templates/template-object
A template is a reusable resource in Annature that allows you to generate [envelopes](/api-reference/envelopes/create-envelope) without redefining [documents](/api-reference/documents/document-object), [recipients](/api-reference/recipients/recipient-object), and [fields](/api-reference/fields/field-object) each time.
Templates streamline envelope creation for common workflows — such as NDAs, onboarding documents, or client agreements — by allowing you to predefine structure, roles, and field placement once, then reuse those settings as needed.
Like envelopes, templates must include at least one document and one role. Roles act as placeholder recipients and are resolved at the time the template is used.
## Template documents
Each template contains one or more base documents. When creating an envelope from a template, you can choose to:
* Use the template’s original documents exactly as they are; or
* Replace one or more documents with updated versions — such as prefilled contracts or customised forms.
Replacement documents must meet two criteria:
1. **They must have the same number of pages** as the originals. This ensures that all fields can be correctly reapplied to the new document structure.
2. **Their dimensions must be nearly identical** to the original pages. This is required to maintain accurate field positioning — especially for coordinate-placed or anchored fields.
If these requirements are not met, field transfer will be incomplete or fail silently. For example, fields assigned to page 6 of the original document cannot be carried over if the replacement document only has 5 pages.
This workflow is designed for use cases where the layout stays the same, but content is prefilled externally — such as merging client data into a standard contract before sending.
There is no restriction on adding new documents beyond those defined in the template.
## Template roles
Roles define placeholder recipients for the template. Each role specifies a set of [fields](/api-reference/fields/field-object) and default recipient properties (such as signing order or message content).
When using the template, you’ll provide recipient details (name, email, etc.) and map them to the appropriate role by referencing the role’s `id`. This allows Annature to copy the role’s properties and apply its fields to the matching recipient.
## Attributes
The unique identifier for the template.
The name of the template as shown in the Annature dashboard.
Indicates whether the template is shared with other accounts in the same group as the creator.
Default name applied to envelopes created from this template.
Default message body applied to envelopes created from this template.
Default value for the `shared` property when an envelope is created from this template.
The ISO 8601 timestamp indicating when the template was created.
The unique identifier of the account that created the template.
The unique identifier of the [group]() the template is assigned to.
If `shared` is `true`, other accounts in this group will have access to use the template.
An array of document objects defined within the template.
An array of role objects representing placeholder recipients and their associated fields.
```bash Endpoints theme={null}
GET /v1/templates
GET /v1/templates/:id
POST /v1/templates/:id/use
```
```json theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement template",
"shared": false,
"envelope_name": "Non disclosure agreement",
"envelope_message": "Lorem ipsum dolor sit amet.",
"envelope_shared": false,
"created": "2019-12-17T05:30:00Z",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"documents": [],
"roles": []
}
```
# Use a template
Source: https://docs.annature.com.au/api-reference/templates/use-template
POST /v1/templates/:id/use
Creates a new envelope using a predefined template.
This endpoint allows you to generate an envelope by inheriting roles, fields, and documents from a template — eliminating the need to define recipients and layout manually.
Each role in the template must be matched with a corresponding recipient in the request, and the number of recipients must match the number of roles exactly. Fields assigned to each role will automatically carry over to the matched recipient.
Template documents are automatically used unless you explicitly replace them. When replacing a document, the new document must contain the **same number of pages** as the one it's replacing, and **page dimensions must be similar** to preserve field positioning.
You may also choose to create the envelope in a draft state for manual preparation via the Annature dashboard.
## Parameters
The unique identifier of the template being used to create the envelope.
The name of the envelope, shown in the subject line of emails and in the Annature dashboard.
Required only if the template does not define a default `envelope_name`.
Custom message displayed in recipient emails and the Annature UI.
If not provided, the template's `envelope_message` value will be used if available.
Whether the envelope should be shared with the sender's group.
Defaults to the template's `envelope_shared` setting if not explicitly provided.
Set to `true` to create the envelope as a draft.
Drafts can be opened and edited in the Annature dashboard via:\
`https://dashboard.annature.com.au/create-envelope?envelopeId={{envelope_id}}`
The unique identifier of the sender creating the envelope.
Overrides the default group inheritance from the sender.
If not supplied, the envelope inherits the sender’s group automatically.
A list of documents to replace those defined in the template.
Each replacement must reference the `id` of the template document being replaced, and have the same number of pages with similar dimensions.
The `id` of the template document being replaced.
A user-defined identifier for the new document.
Display name of the document.
Base64-encoded string of the PDF file.
A list of recipients to be assigned to roles from the template.
The number of recipients must match the number of template roles.
The ID of the role the recipient is inheriting fields and settings from.
The recipient's name.
Required only if the role does not define a default `recipient_name`.
The recipient's email address.
Required only if the role does not define a default `recipient_email`.
The recipient’s mobile number in E.164 format.
A message specific to this recipient, overriding the envelope message.
A code or passphrase the recipient must enter to access the envelope.
Whether Annature should suppress all emails to this recipient.
Destination URLs to redirect the recipient after specific actions.
Redirect URL after the recipient completes the envelope.
Redirect URL after the recipient declines the envelope.
```bash Endpoint theme={null}
POST /v1/templates/:id/use
```
```json Body theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"shared": false,
"draft": false,
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"documents": [{
"replacing": "fcad499b03c6fc222bc66208317a18c9",
"id": "0a0cd6ec2daae5e1750dabc87953f933",
"name": "Non disclosure agreement.pdf",
"base": "iVBORw0KGgoAAAANSUhE.."
}],
"recipients": [{
"role_id": "fcad499b03c6fc222bc66208317a18c9",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"password": "password1",
"muted": false,
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}]
}
```
```json theme={null}
{
"id": "7e8f68e4c6df9395cd7ff48d69d7e2c1",
"name": "Non disclosure agreement",
"message": "Lorem ipsum dolor sit amet.",
"status": "sent",
"shared": false,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"voided": null,
"declined": null,
"completed": null,
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"recipients": [{
"id": "255e591c2c9fe1bc99be1ec03075b402",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "signer",
"status": "sent",
"message": "Lorem ipsum dolor sit amet.",
"password": false,
"muted": false,
"order": 1,
"declined_reason": null,
"created": "2019-12-17T05:30:00Z",
"sent": "2019-12-17T05:30:00Z",
"declined": null,
"completed": null,
"redirects": {
"session_completed": "https://..",
"session_declined": "https://.."
}
}]
}
```
# Cancel a verification
Source: https://docs.annature.com.au/api-reference/verifications/cancel-verification
POST /v2/verifications/:id/cancel
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Cancels an in-progress verification, preventing the individual from completing the request.
This action is only permitted when the verification’s status is `sent`. Once cancelled, the individual will no longer be able to access the verification.
Completed verifications cannot be cancelled.
## Parameters
The unique identifier of the verification to cancel.
```bash Endpoint theme={null}
POST /v2/verifications/:id/cancel
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "cancelled",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"warning": null,
"muted": false,
"screening": false,
"biometrics": false,
"created": "2026-08-24T00:00:00Z",
"cancelled": "2026-08-24T00:00:00Z",
"completed": null,
"purging": null,
"purged": null,
"metadata": {}
}
```
# Create a verification
Source: https://docs.annature.com.au/api-reference/verifications/create-verification
POST /v2/verifications
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Creates a new identity verification request and, by default, sends a verification email to the individual. If a `mobile` number is supplied, an SMS is also sent.
Your organisation must have identity verification enabled. If it is not, this endpoint will return an error.
All verifications must include an `account_id` to identify the sender. If the account is assigned to a group, the verification will automatically inherit that group. This can be overridden by supplying a `group_id` directly.
To create a muted verification, set `muted` to `true`. Annature will not send any emails or SMS, and you can generate access links using the [Retrieve a verification token](/api-reference/verifications/retrieve-verification-token) endpoint.
### Screening and biometrics
Set `screening` to `true` to include [AML & CTF screening checks](/documentation/identity-verification/aml-ctf-screening-checks). Set `biometrics` to `true` to require a live selfie that matches the individual’s identity document. Both default to `false`.
### Sharing
If `shared` is not supplied, it defaults to `false`. This default is overridden when the sending account has **share by default** or **force sharing** enabled in the Annature dashboard:
A verification cannot be shared unless it belongs to a group. If no group is assigned, `shared` will be `false` regardless of these settings.
## Parameters
The full name of the individual being verified.
The individual’s email address, used for identification and correspondence.
Email addresses must be a valid format. Maximum 250 characters.
The individual’s mobile number, supplied in E.164 format. This number is used to send an SMS with a link to open the verification.
While it is technically possible to use both `mobile` and `mobile_otp`, we strongly recommend using only one. Sending both the verification link and the OTP to the same device does not meet the requirements for two-factor authentication.
Enables SMS-based two-factor authentication by specifying the individual’s mobile number, formatted in E.164.
When supplied, Annature will send a one-time code (OTP) to the individual. This code must be entered before they can access the verification.
While it is technically possible to use both `mobile_otp` and `mobile`, we strongly recommend using only one. Sending both the verification link and the OTP to the same device does not meet the requirements for two-factor authentication.
The message body shown in the verification email. Maximum 1,000 characters.
If omitted, a default email is sent.
See the full list of [verification message bindings](https://annature.productlane.com/docs/identity-verification-2-0/verification-message-bindings).
The message body sent via SMS. Maximum 1,000 characters.
Include `{{token}}` to insert a start link in the SMS. If it is omitted, the individual will not be able to start the verification from their phone and will need to use the email instead.
If omitted and a `mobile` number is supplied, a default SMS is sent.
See the full list of [verification message bindings](https://annature.productlane.com/docs/identity-verification-2-0/verification-message-bindings).
The unique identifier of the account creating the verification.
The group to assign this verification to. If not supplied, the sender’s group will be used automatically.
If true, the verification is shared with other accounts in the same group as the sender.
If omitted, defaults to `false`, unless the sending account has share by default enabled.
If the sending account has force sharing enabled, this value is always `true` — even when `false` is supplied.
Set to `true` to include AML & CTF screening checks. Defaults to `false`.
Set to `true` to require a live selfie that matches the individual’s identity document. Defaults to `false`.
If true, Annature will not send any correspondence to this individual — including emails or SMS messages.
A set of key–value pairs used to associate this verification with a connected third-party integration.
A set of key–value pairs attached to the verification. Maximum size is 10kb.
```bash Endpoint theme={null}
POST /v2/verifications
```
```json Body theme={null}
{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"screening": false,
"biometrics": false,
"muted": false,
"metadata": {}
}
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "sent",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"warning": null,
"muted": false,
"screening": false,
"biometrics": false,
"created": "2026-08-24T00:00:00Z",
"cancelled": null,
"completed": null,
"purging": null,
"purged": null,
"metadata": {}
}
```
# List all verifications
Source: https://docs.annature.com.au/api-reference/verifications/list-all-verifications
GET /v2/verifications
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Returns a list of verifications associated with your organisation. Results are returned in descending order of creation date, with the most recently created verifications appearing first.
Use this endpoint to retrieve verification requests for display in your application, or to filter by individual, status, account, or group. Results can be narrowed using exact-match filters.
Date parameters must be supplied in ISO 8601 format. Dates submitted in an invalid format will be silently ignored.
The response is limited to a maximum of 1,000 results.
## Parameters
Filter results by exact match on the verification's `name` property.
Filter results by exact match on the verification's `email` property.
Filter results by exact match on the verification's `status`.
Valid values include `sent`, `completed`, and `cancelled`.
Filter results by exact match on the `account_id` to list verifications created by a specific account.
Filter results by exact match on the `group_id` to list verifications assigned to a specific group.
Return verifications created before the specified ISO 8601 timestamp.
Return verifications created after the specified ISO 8601 timestamp.
Return verifications completed before the specified ISO 8601 timestamp.
Return verifications completed after the specified ISO 8601 timestamp.
```bash Endpoint theme={null}
GET /v2/verifications
```
```json theme={null}
[{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "completed",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": true,
"warning": "document_expired",
"muted": false,
"screening": true,
"biometrics": true,
"created": "2026-08-24T00:00:00Z",
"cancelled": "2026-08-24T00:00:00Z",
"completed": "2026-08-24T00:00:00Z",
"purging": "2026-08-24T00:00:00Z",
"purged": "2026-08-24T00:00:00Z",
"metadata": {
"customer_id": "12345"
}
}]
```
# Purge a verification
Source: https://docs.annature.com.au/api-reference/verifications/purge-verification
POST /v2/verifications/:id/purge
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Purges identity documents and personally identifiable information stored with third-party verification providers for a completed verification.
This action is only permitted when the verification’s status is `completed`. Verifications that have already been purged cannot be purged again.
After a successful purge, the verification’s `purged` timestamp will be set. The verification record itself is retained.
## Parameters
The unique identifier of the verification to purge.
```bash Endpoint theme={null}
POST /v2/verifications/:id/purge
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "completed",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"warning": null,
"muted": false,
"screening": false,
"biometrics": false,
"created": "2026-08-24T00:00:00Z",
"cancelled": null,
"completed": "2026-08-24T00:00:00Z",
"purging": null,
"purged": "2026-08-24T00:00:00Z",
"metadata": {}
}
```
# Resend a verification
Source: https://docs.annature.com.au/api-reference/verifications/resend-verification
POST /v2/verifications/:id/resend
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Sends a new verification email to the specified individual. If the verification has a mobile number assigned, a new SMS is also sent.
This endpoint is only available when the verification’s status is `sent`. Completed or cancelled verifications cannot be resent.
Muted verifications cannot be resent. Use the [Retrieve a verification token](/api-reference/verifications/retrieve-verification-token) endpoint to generate an access link instead.
## Parameters
The unique identifier of the verification to resend.
```bash Endpoint theme={null}
POST /v2/verifications/:id/resend
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "sent",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"warning": null,
"muted": false,
"screening": false,
"biometrics": false,
"created": "2026-08-24T00:00:00Z",
"cancelled": null,
"completed": null,
"purging": null,
"purged": null,
"metadata": {}
}
```
# Retrieve reports
Source: https://docs.annature.com.au/api-reference/verifications/retrieve-reports
GET /v2/verifications/:id/reports
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Retrieves temporary download URLs for the reports associated with a verification.
Each verification can expose up to three reports:
* **certificate** – A certificate of verification PDF, generated once the individual has completed the request.
* **multibureau** – The multi-bureau identity check report. Available once the check has completed.
* **screening** – The AML & CTF screening report. Only present when `screening` was enabled and the screening check has completed.
Any report that is not yet available will be returned as `null`.
Download links are valid for 60 minutes by default. After expiry, they return a `403 Forbidden` response.
### Report availability
Reports are not available immediately when a verification is completed. Multi-bureau and screening checks run after the individual submits their documents, so download URLs will be `null` until those checks finish.
Do not poll this endpoint after receiving a [verification completed](/api-reference/events/verification-completed) event. Listen for the [Verification reports](/api-reference/events/verification-reports) webhook instead, which is sent when reports are ready. Use this endpoint afterwards to regenerate download links as needed.
## Parameters
The unique identifier of the verification whose reports you want to retrieve.
Specifies how long the `certificate`, `multibureau`, and `screening` download links remain valid.
Acceptable range: 1 to 10,080 minutes (7 days).
Default is 60 minutes.
```bash Endpoint theme={null}
GET /v2/verifications/:id/reports
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"certificate": "https://annature..",
"multibureau": "https://annature..",
"screening": "https://annature.."
}
```
# Retrieve a verification
Source: https://docs.annature.com.au/api-reference/verifications/retrieve-verification
GET /v2/verifications/:id
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Retrieves the details of an existing verification in your organisation.
This endpoint is typically used to look up a specific verification request — for example, to determine its current status, delivery settings, or whether screening and biometrics were enabled. You’ll need the verification’s unique ID to make this request.
## Parameters
The unique identifier for the verification.
```bash Endpoint theme={null}
GET /v2/verifications/:id
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "completed",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": true,
"warning": "document_expired",
"muted": false,
"screening": true,
"biometrics": true,
"created": "2026-08-24T00:00:00Z",
"cancelled": "2026-08-24T00:00:00Z",
"completed": "2026-08-24T00:00:00Z",
"purging": "2026-08-24T00:00:00Z",
"purged": "2026-08-24T00:00:00Z",
"metadata": {
"customer_id": "12345"
}
}
```
# Retrieve a verification token
Source: https://docs.annature.com.au/api-reference/verifications/retrieve-verification-token
GET /v2/verifications/:id/token
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Generates a new verification token that can be used to access the verification in the context of a specific individual.
This endpoint is typically used in workflows where the application needs to manage delivery of the verification link manually — especially for muted verifications.
A token can only be created while the verification’s status is `sent`. Once the verification has been completed or cancelled, this endpoint will return an error.
## Parameters
The unique identifier of the verification.
The number of days the generated token should remain valid. Must be between 1 and 90 days. Default is 7 days.
```bash Endpoint theme={null}
GET /v2/verifications/:id/token
```
```json theme={null}
{
"endpoint": "https://annature..",
"expiration": "2026-08-24T00:00:00Z"
}
```
# Update a verification
Source: https://docs.annature.com.au/api-reference/verifications/update-verification
PUT /v2/verifications/:id
Verification endpoints use the `/v2/` namespace. `/v1/` endpoints are deprecated and will be removed without notice to new integrators.
Updates the details of an existing verification. This endpoint can only be used while the verification’s status is `sent`.
Only properties included in the request body will be updated. Any properties not supplied will retain their existing values.
`name` and `email` cannot be cleared. `mobile` and `mobile_otp` can be removed by sending `null`.
When a verification is updated:
* All active verification sessions are immediately expired. If the individual is currently completing the verification, their session will be forcibly closed.
* If the email address is changed, previously issued email tokens are invalidated, and a new verification email is sent automatically (unless the verification is muted).
* If the mobile number is changed to a new value, a new SMS is sent automatically (unless the verification is muted).
## Parameters
The unique identifier of the verification to update.
The full name of the individual being verified.
The individual’s email address, used for identification and correspondence.
The individual’s mobile number, supplied in E.164 format. This number is used to send an SMS with a link to open the verification.
Send `null` to remove the mobile number.
While it is technically possible to use both `mobile` and `mobile_otp`, we strongly recommend using only one. Sending both the verification link and the OTP to the same device does not meet the requirements for two-factor authentication.
Enables SMS-based two-factor authentication by specifying the individual’s mobile number, formatted in E.164.
Send `null` to remove two-factor authentication.
While it is technically possible to use both `mobile_otp` and `mobile`, we strongly recommend using only one. Sending both the verification link and the OTP to the same device does not meet the requirements for two-factor authentication.
```bash Endpoint theme={null}
PUT /v2/verifications/:id
```
```json Body theme={null}
{
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000"
}
```
```json theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "sent",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": false,
"warning": null,
"muted": false,
"screening": false,
"biometrics": false,
"created": "2026-08-24T00:00:00Z",
"cancelled": null,
"completed": null,
"purging": null,
"purged": null,
"metadata": {}
}
```
# The Verification object
Source: https://docs.annature.com.au/api-reference/verifications/verification-object
A verification represents an identity verification request sent to an individual. It captures the individual’s details, delivery settings, and the current status of the request — from the moment it is created through to completion, cancellation, or purge.
Verifications are always created from a specific account, using the `account_id` property. If the account is assigned to a [group](/api-reference/groups/group-object), the verification will automatically inherit that group. This can be overridden by supplying a `group_id` directly.
Identity verification must be enabled on your organisation before you can create verification requests.
### Verification statuses
The `status` property indicates the current state of the verification. Valid values include:
* `sent` – The verification has been created and the individual is eligible to complete it.
* `completed` – The individual has submitted their identity documents and the request is finished.
* `cancelled` – The verification was cancelled before completion. The individual can no longer access it.
### AML & CTF screening
Set `screening` to `true` to include [AML & CTF screening checks](/documentation/identity-verification/aml-ctf-screening-checks) when the individual completes the verification. Screening compares the individual’s identity against sanctions and watchlists, politically exposed persons, adverse media, and other risk lists.
`screening` defaults to `false`. When enabled, a screening report is available from the [Retrieve reports](/api-reference/verifications/retrieve-reports) endpoint once the check has completed.
`biometrics` can be enabled independently of screening. When `true`, the individual must capture a live selfie that matches their identity document.
### Muted verifications
Setting `muted` to `true` disables all automatic correspondence from Annature to the individual.
This is commonly used when you want to control delivery of the verification link yourself. Muted verifications must still have an email address.
Verification tokens for muted individuals can be generated via the [Retrieve a verification token](/api-reference/verifications/retrieve-verification-token) endpoint.
### Sharing and group visibility
Verification visibility is controlled by the sender’s group membership and the `shared` property.
When a verification is assigned to a [group](/api-reference/groups/group-object) and marked as `shared`, other accounts in that group can view and manage it. A verification cannot be shared unless it belongs to a group.
Default sharing behaviour or forced sharing rules can be configured at the account level via the Annature dashboard.
## Attributes
The unique identifier for the verification.
The full name of the individual being verified.
The individual’s email address, used for identification and correspondence.
The individual’s mobile number, in E.164 format. Used to send an SMS with a link to open the verification.
The mobile number used for SMS-based two-factor authentication, in E.164 format.
When supplied, Annature will send a one-time code (OTP) that must be entered before the individual can access the verification.
The message body shown in the verification email. Supports placeholders such as `{{name}}` and `{{sender_business}}`.
See the full list of [verification message bindings](https://annature.productlane.com/docs/identity-verification-2-0/verification-message-bindings).
The message body sent via SMS. Supports the same placeholders as `message`, plus `{{token}}`, which is replaced with the verification link at send time.
`{{token}}` is optional. If it is omitted, the SMS will not include a start link and the individual will need to open the verification from their email instead.
See the full list of [verification message bindings](https://annature.productlane.com/docs/identity-verification-2-0/verification-message-bindings).
Read-only string representing the verification’s current status.
Possible values: `sent`, `completed`, `cancelled`.
The unique identifier of the account that created the verification.
The unique identifier of the [group](/api-reference/groups/group-object) this verification is assigned to.
If `shared` is `true`, other accounts in this group can view and manage the verification.
Indicates whether the verification is shared with other accounts in the same group as the sender.
Present when the individual’s identity documents could not be automatically verified and require manual review. This is a passthrough of [Stripe’s Identity error codes](https://docs.stripe.com/identity/verification-checks?type=selfie#document-failure).
If `true`, Annature will not send any emails or SMS to the individual.
Indicates whether AML & CTF screening checks are included on this verification.
Indicates whether the individual must capture a live selfie that matches their identity document.
The ISO 8601 timestamp for when the verification was created.
The ISO 8601 timestamp for when the verification was cancelled. `null` if the verification has not been cancelled.
The ISO 8601 timestamp for when the verification was completed. `null` if the verification has not been completed.
The ISO 8601 timestamp for when identity documents and PII stored with third parties are scheduled to be purged, based on your organisation’s data retention settings. `null` if no purge is scheduled.
The ISO 8601 timestamp for when identity documents and PII stored with third parties were purged. `null` if the verification has not been purged.
A set of key–value pairs that can be attached to the verification.
Use this to store custom metadata in a structured format.
```bash Endpoints theme={null}
GET /v2/verifications
GET /v2/verifications/:id
GET /v2/verifications/:id/reports
GET /v2/verifications/:id/token
POST /v2/verifications
POST /v2/verifications/:id/resend
POST /v2/verifications/:id/cancel
POST /v2/verifications/:id/purge
PUT /v2/verifications/:id
```
```json Verification Object theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "completed",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": true,
"warning": "document_expired",
"muted": false,
"screening": true,
"biometrics": true,
"created": "2026-08-24T00:00:00Z",
"cancelled": "2026-08-24T00:00:00Z",
"completed": "2026-08-24T00:00:00Z",
"purging": "2026-08-24T00:00:00Z",
"purged": "2026-08-24T00:00:00Z",
"metadata": {
"customer_id": "12345"
}
}
```
# Versioning
Source: https://docs.annature.com.au/api-reference/versioning
The Annature API uses **path-based versioning** to ensure backwards compatibility as new features and improvements are introduced.
All endpoints begin with the `v1` prefix. When future versions of the API are released, you’ll be able to target them explicitly by changing the version in the request URL. If a specific resource supports multiple versions, this will be documented in its reference section.
Versioning allows you to confidently build against a stable contract while still benefiting from improvements that don’t break your existing integration.
## Backwards-compatible changes
We may introduce backwards-compatible changes to the `v1` API without prior notice. Your integration should be designed to handle these changes safely.
Examples of backwards-compatible changes include:
* Adding new optional parameters to a request
* Adding new properties to a response payload
* Adding new [Webhook](/api-reference/webhooks) event types
These changes will not break existing functionality and are intended to be additive.
## Breaking changes
Changes that alter the expected structure or behavior of the API are considered **breaking**. When such changes are necessary, they will result in a new versioned endpoint (e.g. `v2`).
Examples of breaking changes include:
* Removing or changing the behavior of a request parameter
* Removing or changing the type of a response property
* Introducing new validation rules that block previously accepted input
* Changing the HTTP status code returned by an endpoint
# Webhooks
Source: https://docs.annature.com.au/api-reference/webhooks
All webhook requests from Annature originate from the IP address `52.62.153.44`.
Annature uses webhooks to notify your application in real time when specific events occur — such as an envelope being completed, a recipient viewing or declining to sign, or a token-based session being requested. These events are sent as HTTP POST requests to one or more webhook endpoints that you register with your organisation.
Webhooks allow your system to respond programmatically to key actions without polling for changes. For example, you might update the status of a deal in your CRM when a contract is signed, or trigger an internal alert if a recipient declines to sign
All webhook requests are sent in JSON format and include a signature in the request header that allows you to verify the event was sent by Annature.
## Delivery behaviour
Webhook events are delivered to your endpoint using an HTTP `POST` request. Each event is attempted once initially. If your endpoint does not return a `2xx` response, Annature will retry the request once per hour for up to **72 hours**.
After three days of failed delivery attempts, the endpoint will be automatically disabled and the account owner will be notified via email.
You can monitor and troubleshoot webhook failures from the **Developers** section of the Annature dashboard.
> **Important:** Your endpoint must return a `2xx` status code **as quickly as possible** to confirm successful receipt. Do not wait to complete internal processing before responding.
## Multiple endpoints
You can register up to **100 unique webhook endpoints** for your organisation. This allows you to support multiple environments — such as staging and production — using the same Annature account.
Each registered endpoint will receive **all** webhook events triggered by your organisation. Your application should gracefully ignore any events that are not relevant — for example, an envelope ID that only exists in another environment.
## Signature verification
To ensure that incoming requests are genuinely from Annature, each webhook request includes an `X-Annature-Signature` HTTP header. This signature can be used to validate the payload using your endpoint’s secret key.
Your signing secret is available in the **Developers** section of the dashboard. If the signature does not match, you should reject the request with an appropriate error code.
```bash Headers theme={null}
{
"X-Annature-Signature": "da6d893b3e5b4b0592cf45432e256e85"
}
```
> Signature verification is optional but highly recommended for production deployments.
## Responding to events
To acknowledge successful receipt of a webhook, your endpoint must return any `2xx` HTTP status code. All other codes are treated as failures and will trigger retries.
Annature enforces a 10 second timeout for webhook requests. If your server does not respond within this window, the attempt is considered a failure — even if it eventually returns a `2xx` status code.
Avoid any lengthy processing or logic before responding. The ideal implementation:
* Validate the signature (if enabled)
* Store the payload or enqueue for later processing
* Return a 200 OK immediately
# AML & CTF screening checks
Source: https://docs.annature.com.au/documentation/identity-verification/aml-ctf-screening-checks
AML & CTF screening checks are an **opt-in** addition to [base identity verification](/documentation/identity-verification/base-identity-verification). They help you meet Anti-Money Laundering (AML) and Counter-Terrorism Financing (CTF) obligations by assessing an individual against global criminal and financial intelligence sources.
Screening is essential for businesses operating in regulated sectors — such as accounting, financial services, and real estate — where identity verification must include a risk assessment.
To include screening when creating a verification via the API, set `screening` to `true` on the [Create a verification](/api-reference/verifications/create-verification) endpoint.
## How it works
When an individual completes a verification with screening enabled, Annature securely collects their identity information — typically full name, date of birth, address, and nationality — and submits it to ComplyCube, our global identity screening partner.
ComplyCube then performs a real-time AML & CTF screening across a wide range of global databases. The individual’s identity is assessed for potential matches in various risk categories, and the outcome is returned as a pass or fail result for each one.
## What is AML & CTF screening?
AML & CTF screening refers to the process of comparing an individual’s identity information against international databases and intelligence sources to identify potential involvement in criminal, financial, or politically sensitive activity.
This helps businesses identify individuals who may pose a financial crime risk, be subject to international sanctions, or be involved in corruption, terrorism financing, or other illicit activities.
## Screening categories
Screening results are reported independently across several categories. For a full breakdown of each category and its subcomponents, see:
* [Sanctions & watchlists](/documentation/screening-categories/sanctions-and-watchlists)
* [Politically exposed persons](/documentation/screening-categories/politically-exposed-persons)
* [Adverse media](/documentation/screening-categories/adverse-media)
* [Other lists](/documentation/screening-categories/other-lists)
## Screening sources
ComplyCube’s screening platform aggregates data from:
* Government departments and law enforcement bodies
* International regulators and intergovernmental organisations
* Global financial crime databases
* Reputable media and risk intelligence feeds
All screenings are continuously updated to reflect the most current global data and regulatory changes.
## Benefits
* **AML & CTF compliance**: Helps meet obligations under Australian law and FATF guidelines
* **Targeted risk assessment**: Screens across sanctions, PEPs, media, and criminal intelligence
* **Fast and reliable**: Screening results are usually returned in under 5 seconds
* **Clear results**: Each screening category is returned with a simple pass or fail outcome
* **Seamless workflow**: Verification and screening occur in the background with no extra steps for the individual
## Use cases
AML & CTF screening is recommended for any use case where AML & CTF due diligence is required or expected, including:
* **Accountants and registered tax agents**: Verifying client identities under AML & CTF and TPB requirements
* **Real estate agencies**: Conducting due diligence for high-value property transactions
* **Finance professionals**: Screening clients or investors during onboarding
* **Legal professionals**: Meeting obligations under trust account and AML legislation
# Base identity verification
Source: https://docs.annature.com.au/documentation/identity-verification/base-identity-verification
Every identity verification in Annature includes a **base identity verification**. This captures the individual’s identification documents and corroborates their details against trusted independent data sources.
Base identity verification is designed to satisfy regulatory and business requirements for confirming identity — such as those set by the Australian Taxation Office (ATO) and the Tax Practitioners Board (TPB) — without requiring Anti-Money Laundering (AML) or Counter-Terrorism Financing (CTF) screening.
AML & CTF screening can be added as an optional check. See [AML & CTF screening checks](/documentation/identity-verification/aml-ctf-screening-checks).
If you are built against `/v1/`, see [Migrating to v2](/documentation/identity-verification/migrating-to-v2).
## How it works
When an individual completes a verification, Annature securely captures their personal details and identification documents. This information is then verified using ComplyCube’s **Multi-bureau check**, which confirms the identity against a wide range of trusted and independent data sources.
## What is a Multi-bureau check?
ComplyCube’s Multi-bureau check is a real-time identity verification service that corroborates an individual’s details — such as name, date of birth, address, and identification number — against a wide range of authoritative sources. These sources include:
* **Credit agencies**: Data from credit reference agencies
* **Government authorities**: Information from motor vehicle registrations, electoral rolls, land registries, and court records
* **Utility providers**: Records from water, gas, and electricity companies
* **Telecommunications providers**: Data from mobile and landline service providers
* **Postal authorities**: Address information from national postal services
* **Commercial and consumer databases**: Opt-in data from marketing and consumer platforms
* **Trusted third-party aggregators**: Additional verified data sources
This approach ensures a comprehensive and resilient identity verification process, even if one data source is temporarily unavailable.
## Use cases
Base identity verification is suited to scenarios where reliable identity confirmation is essential. Common examples include:
* **Human Resources**: Verifying ID during new employee onboarding
* **Equipment or vehicle hire**: Confirming identity before renting out high-value assets
* **Tax and accounting services**: Satisfying TPB and ATO obligations for identity verification
* **Education and training**: Verifying student or enrollee identities in regulated programs
## Benefits
* **Regulatory compliance**: Satisfies requirements set by the ATO and TPB for identity verification
* **Fast and accurate**: Real-time results typically returned within seconds
* **Secure document collection**: Captures and stores ID documentation securely for compliance records
* **Resilient verification infrastructure**: Multi-bureau approach reduces dependency on any single data provider
* **Streamlined experience**: Minimises friction for individuals while maintaining strong verification outcomes
To create a verification via the API, see [Create a verification](/api-reference/verifications/create-verification).
# Migrating to version 2
Source: https://docs.annature.com.au/documentation/identity-verification/migrating-to-v2
Identity verification now uses the `/v2/` namespace. This guide covers what changed from version 1 and how to move an existing integration across.
## Version 1 was never publicly documented
Version 1 verification endpoints were never published in our public API documentation. Definitions were sent to individual integrators on request, which means Annature has a record of who is currently built against version 1.
For that reason, version 1 endpoints will be **removed without notice** once we have confirmed that those existing integrators have upgraded.
Do not start a new integration against version 1. We are not tracking new consumers of these deprecated, undocumented endpoints, and they will be deleted without notice.
## Object model
Identity verification 2.0 rebuilt the underlying resources. Those changes made it difficult to keep the existing endpoints intact, so we started fresh with version 2 rather than stretching the original object further.
Several terms were retired in that rebuild — specifically **verified** and **unverified**. Annature no longer returns its own pass/fail result for a verification. Version 2 is a passthrough of the results provided by our vendors, [Stripe Identity](https://docs.stripe.com/identity/verification-checks?type=selfie#document-failure) and [ComplyCube](https://www.complycube.com/en/). Outcomes that require review are exposed on `warning`. Completion is recorded as `completed`.
```json Version 1 theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"type": "enhanced",
"status": "sent",
"warning": "document_expired",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": true,
"biometrics": true,
"tax": false,
"created": "2026-08-24T00:00:00Z",
"verified": "2026-08-24T00:00:00Z",
"unverified": null,
"cancelled": "2026-08-24T00:00:00Z",
"metadata": {
"customer_id": "12345"
}
}
```
```json Version 2 theme={null}
{
"id": "9d2e4b8c1a7f53e06c4b9d2a8e1f0c57",
"name": "Ted Annature",
"email": "ted@annature.com.au",
"mobile": "+61422000000",
"mobile_otp": "+61422000000",
"message": "Lorem ipsum dolor sit amet.",
"message_sms": "Lorem ipsum dolor sit amet: {{token}}",
"status": "completed",
"account_id": "c64ce66b70b21c03bfd5dfa0ab14b730",
"group_id": "a5a885caee6286a54ad7bbd4ab5400e9",
"shared": true,
"warning": "document_expired",
"muted": false,
"screening": true,
"biometrics": true,
"created": "2026-08-24T00:00:00Z",
"cancelled": "2026-08-24T00:00:00Z",
"completed": "2026-08-24T00:00:00Z",
"purging": "2026-08-24T00:00:00Z",
"purged": "2026-08-24T00:00:00Z",
"metadata": {
"customer_id": "12345"
}
}
```
### Property changes
This table highlights every property that was removed, changed, or added between version 1 and version 2.
| Property | Status | Description |
| :------------ | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type` | **Removed** | Version 1 used `standard` and `enhanced` to decide whether AML & CTF screening ran with the verification. That product split is gone — screening is now its own `screening` boolean. |
| `tax` | **Removed** | No longer supported. |
| `verified` | **Removed** | Version 1 treated completion as a pass/fail result. Both `verified` and `unverified` have been replaced by a single `completed` timestamp. Check `warning` when a completed request needs review. |
| `unverified` | **Removed** | Retired with `verified`. Annature no longer returns its own unverified result. |
| `certificate` | **Removed** | Download URLs no longer come back on retrieve. Use the new [Retrieve reports](/api-reference/verifications/retrieve-reports) endpoint instead. |
| `mobile` | **Changed** | In version 1 this was used only for OTP. We split that out to better match the recipient object, and `mobile` now sends an SMS with a link to start the verification. |
| `status` | **Changed** | The `verified` and `unverified` statuses are gone. A finished request is now `completed`. |
| `warning` | **Changed** | Still the place to look when something needs review, but the value is now a passthrough of [Stripe Identity error codes](https://docs.stripe.com/identity/verification-checks?type=selfie#document-failure) rather than Annature interpreting the result. |
| `mobile_otp` | **Added** | Dedicated property for SMS two-factor authentication — this is the role `mobile` used to play. |
| `message` | **Added** | Lets you customise the verification email. Version 1 always sent a fixed default. |
| `message_sms` | **Added** | Lets you customise the SMS body when a `mobile` number is supplied. |
| `muted` | **Added** | Silences Annature’s emails and SMS for the verification, so you can generate access links yourself. |
| `screening` | **Added** | Set to `true` to run AML & CTF screening checks. This is the replacement for `"type": "enhanced"`. |
| `completed` | **Added** | Timestamp for when the individual finished the verification. Replaces `verified`. |
| `purging` | **Added** | When third-party identity documents and PII are scheduled to be purged, based on your organisation’s retention settings. |
| `purged` | **Added** | When that third-party data was actually purged. |
## Standard vs enhanced
Version 1 used a `type` property on create:
* `standard` — base identity verification
* `enhanced` — the same verification, plus AML & CTF screening
Version 2 removes `type`. Every verification is a [base identity verification](/documentation/identity-verification/base-identity-verification). To run [AML & CTF screening checks](/documentation/identity-verification/aml-ctf-screening-checks), pass `"screening": "true"` when [creating a verification](/api-reference/verifications/create-verification).
## Other breaking changes
These will break an existing version 1 integration if you only change the path to `/v2/`.
### Mobile numbers
On version 1, `mobile` was stored and used as the OTP number. Version 1 create did not send an SMS with a verification link.
On version 2, `mobile` sends the verification link via SMS, and `mobile_otp` is the OTP number. If your version 1 integration passed `mobile` for two-factor authentication, map that value to `mobile_otp` on version 2.
### Reports and certificates
`GET /v1/verifications/:id` returned a `certificate` download URL (and accepted `endpoint_duration`).
`GET /v2/verifications/:id` no longer returns reports. Use [Retrieve reports](/api-reference/verifications/retrieve-reports) for `certificate`, `multibureau`, and `screening` URLs. Reports are not available immediately on completion — listen for the [Verification reports](/api-reference/events/verification-reports) webhook instead of polling.
### List filters
`GET /v1/verifications` accepted `verified_before` and `verified_after`.
`GET /v2/verifications` uses `completed_before` and `completed_after`.
### Group assignment
`POST /v1/verifications` create left `group_id` empty unless it was supplied in the request.
`POST /v2/verifications` inherits the sending account’s group when `group_id` is omitted. Supply a `group_id` to override, or the verification will sit in the account’s group.
### Sharing defaults
`POST /v1/verifications` always set `shared` to `true` when the sending account had **share by default** enabled, even if you passed `shared: false`.
`POST /v2/verifications` respects an explicit `shared: false` when the account only has share by default. **Force sharing** still overrides to `true`. A verification cannot be shared unless it belongs to a group.
### Resending
`POST /v1/verifications/:id/resend` sent email only.
`POST /v2/verifications/:id/resend` also resends the SMS when a `mobile` number is set.
### New endpoints
| Endpoint | Purpose |
| :---------------------------------- | :----------------------------------------------------------------- |
| `GET /v2/verifications/:id/reports` | Download URLs for certificate, multibureau, and screening reports |
| `POST /v2/verifications/:id/purge` | Purge identity documents and PII stored with third-party providers |
### Webhooks
The `verification_completed` payload now includes `completed`. `verified` is still sent for backwards compatibility and is deprecated.
A new `verification_reports` event is sent when downloadable reports are ready.
# Adverse media
Source: https://docs.annature.com.au/documentation/screening-categories/adverse-media
Adverse media screening detects negative coverage from reliable news sources and publications that may indicate a heightened risk of involvement in unethical or illegal activity. This type of screening helps uncover reputational risk that may not appear in formal databases.
The adverse media screening category includes:
* **Environment**: Negative reports related to environmental violations or harmful ecological practices.
* **Social & labour**: Media articles highlighting poor labor practices, discrimination, or violations of social standards.
* **Competitive & financial**: Coverage of anti-competitive behavior, fraud, insolvency, or financial misconduct.
* **Regulatory**: Reports on investigations, fines, or enforcement actions by regulators and supervisory authorities.
These sources are continuously monitored to identify emerging risks associated with individuals or entities.
# Other lists
Source: https://docs.annature.com.au/documentation/screening-categories/other-lists
The "Other lists" screening category identifies risks based on a broader range of criminal and ethical concerns. These may not be formally sanctioned but still pose reputational or legal risks.
This screening category includes:
* **Associated entity**: Links to entities known to be involved in high-risk activities, including corporate affiliations or beneficial ownership.
* **Organised crime**: Indicators of involvement in criminal organisations or structured illicit enterprises.
* **Financial crime**: Activities such as embezzlement, fraud, or unauthorised financial transactions.
* **Tax crime**: Involvement in tax evasion schemes or violations of tax law.
* **Corruption**: Evidence of bribery, misuse of power, or other forms of corrupt conduct.
* **Trafficking**: Connections to human, drug, or arms trafficking, often identified through law enforcement sources and international reports.
These checks help to identify individuals or entities that may pose a material risk to your compliance program or business operations.
# Politically exposed persons
Source: https://docs.annature.com.au/documentation/screening-categories/politically-exposed-persons
Politically exposed persons (PEPs) are individuals who hold or have held public roles that may make them more susceptible to bribery, corruption, or abuse of power. Screening for PEPs is a key component of any AML compliance program.
ComplyCube categorises PEPs by level of influence and exposure:
* **PEP level 1**: International-level figures such as heads of state, ambassadors, and senior officials of international organisations.
* **PEP level 2**: National-level public officials, including ministers, members of parliament, and senior executives in state-owned enterprises.
* **PEP level 3**: Regional officials such as state governors, provincial leaders, or senior regional bureaucrats.
* **PEP level 4**: Local government officials, including mayors, council members, or lower-level public servants.
A positive result in this screening category doesn’t imply wrongdoing but requires enhanced due diligence.
# Sanctions & watchlists
Source: https://docs.annature.com.au/documentation/screening-categories/sanctions-and-watchlists
This screening category identifies individuals or entities flagged on various government and international watchlists that indicate involvement in unlawful or high-risk activities. Screening this category is essential for meeting regulatory obligations and avoiding prohibited transactions.
The following items are included:
* **Sanctions lists**: Official lists from authorities like the UN, EU, OFAC, and others that designate individuals or entities involved in activities such as terrorism, trafficking, or human rights violations.
* **Other official lists**: Additional enforcement or regulatory lists that, while not formal sanctions, indicate high-risk status.
* **War crime**: Records relating to individuals or entities implicated in war crimes or violations of international humanitarian law.
* **Terror**: Associations with terrorist organisations or individuals known to be involved in terrorism.
* **Other exclusion lists**: Broader exclusion databases that include persons disqualified from professional, financial, or commercial activity.
* **Sanctions control**: Applies when an entity is owned or controlled (often defined as ≥50%) by a sanctioned party, in line with rules like the OFAC 50% rule.