PackagesApi
All URIs are relative to https://api.esignlaunchpad.com
| Method | HTTP request | Description |
|---|---|---|
| apiV1PackagesIdAnnotationsAnnotationIdAttachmentGet | GET /api/v1/packages//annotations//attachment | Get attachment download URL |
| archivePackage | POST /api/v1/packages//archive | Archive a package |
| bulkArchivePackages | POST /api/v1/packages/bulk-archive | Bulk archive packages |
| bulkDeletePackages | POST /api/v1/packages/bulk-delete | Bulk delete packages |
| cancelSchedule | POST /api/v1/packages//cancel-schedule | Cancel a scheduled send |
| clonePackage | POST /api/v1/packages//clone | Clone a package |
| confirmOverageAndSendPackage | POST /api/v1/packages//overage/confirm-and-send | Confirm Overage And Send Package |
| createAndSendPackageJson | POST /api/v1/packages/create-and-send/json | Create and send package (JSON) |
| createAndSendPackageMultipart | POST /api/v1/packages/create-and-send | Create and send package (multipart) |
| createPackage | POST /api/v1/packages | Create a new signing package |
| deletePackage | DELETE /api/v1/packages/ | Delete a draft package |
| exportAuditTrail | GET /api/v1/packages//audit-trail/export | Export audit trail |
| getAuditTrail | GET /api/v1/packages//audit-trail | Get the audit trail for a package |
| getCertificateDownloadUrl | GET /api/v1/packages//certificate | Get certificate download URL |
| getPackage | GET /api/v1/packages/ | Get a package by ID |
| getPackageDownloadUrl | GET /api/v1/packages//download | Get package download URL |
| getPackageSendImpact | GET /api/v1/packages//send-impact | Get Package Send Impact |
| listPackages | GET /api/v1/packages | List packages |
| resendPackage | POST /api/v1/packages//resend | Resend notifications |
| sendPackage | POST /api/v1/packages//send | Send a package for signing |
| unarchivePackage | POST /api/v1/packages//unarchive | Unarchive a package |
| updatePackage | PUT /api/v1/packages/ | Update a draft package |
| updatePackageReminders | PATCH /api/v1/packages//reminders | Update reminder settings |
| validatePackage | POST /api/v1/packages//validate | Validate a package before sending |
| verifyAuditIntegrity | GET /api/v1/packages//audit-trail/verify | Verify audit trail integrity |
| voidPackage | POST /api/v1/packages//void | Void a package |
apiV1PackagesIdAnnotationsAnnotationIdAttachmentGet
DownloadUrlApiResponse apiV1PackagesIdAnnotationsAnnotationIdAttachmentGet(id, annotationId)
Get attachment download URL
Returns a time-limited SAS URL to download a file attachment that was uploaded as part of an annotation (e.g., a supporting document attached by a signer during the ceremony). **Error conditions:** - 404 if the annotation GUID or package GUID does not exist, or the annotation has no attachment.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | [default to null] | |
| annotationId | UUID | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
archivePackage
PackageResponse archivePackage(id)
Archive a package
Archives a package that is in a terminal state (Completed, Declined, Voided, or Expired). Archived packages are hidden from the default package list but remain accessible via `ListPackages` with `archivedOnly=true` or by direct GUID lookup. Archiving is a soft operation that does not delete any data. Use `UnarchivePackage` to restore an archived package to the active list. **Error conditions:** - 400 if the package is not in a terminal status. - 400 if the package is already archived.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
bulkArchivePackages
BulkDeleteApiResponse bulkArchivePackages(BulkDeleteApiRequest)
Bulk archive packages
Archives multiple terminal packages in a single operation. Each package is processed independently; if one package fails (e.g., not in a terminal status), the others are still archived. The response indicates success or failure per package. Maximum 50 packages per request. Only packages in terminal status (Completed, Declined, Voided, Expired) can be archived. **Error conditions:** - 400 if the request contains no IDs or more than 50 IDs. - Individual package errors are returned in the response body per item.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| BulkDeleteApiRequest | BulkDeleteApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
bulkDeletePackages
BulkDeleteApiResponse bulkDeletePackages(BulkDeleteApiRequest)
Bulk delete packages
Deletes multiple draft packages in a single operation. Each package is processed independently; if one package fails (e.g., not in Draft status), the others are still deleted. The response indicates success or failure per package. Maximum 50 packages per request. Only packages in Draft status can be deleted. **Error conditions:** - 400 if the request contains no IDs or more than 50 IDs. - Individual package errors are returned in the response body per item.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| BulkDeleteApiRequest | BulkDeleteApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
cancelSchedule
PackageResponse cancelSchedule(id)
Cancel a scheduled send
Cancels a previously scheduled send and reverts the package back to Draft status. This allows further edits to the package (adding/removing signers, documents, etc.) before resending. Only packages in Scheduled status can be cancelled. If the scheduled send time has already passed and the package transitioned to Sent, use `VoidPackage` instead. **Error conditions:** - 400 if the package is not in Scheduled status.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
clonePackage
PackageResponse clonePackage(id, ClonePackageApiRequest)
Clone a package
Creates a new draft copy of a terminal package (Declined, Voided, or Expired). The cloned package includes copies of all documents and signers from the original, but resets all signing status and authentication state. The new package starts in Draft status. Use this to restart a signing process that was interrupted. Optionally provide a new name; otherwise the original name is reused with a \"Copy of\" prefix. **Side effects:** - Counts against the tenant's monthly package quota (same as CreatePackage). - Does NOT send any notifications; the cloned package is in Draft and must be sent separately. **Error conditions:** - 400 if the source package is not in a terminal status (Declined, Voided, Expired).
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID to clone. | [default to null] |
| ClonePackageApiRequest | ClonePackageApiRequest | Cancellation token. | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
confirmOverageAndSendPackage
PackageResponse confirmOverageAndSendPackage(id, SendPackageApiRequest)
Confirm Overage And Send Package
Free-tier overage charge against a saved payment method, gated on the user having clicked Confirm in the portal's overage dialog. Mirrors the Stripe-Elements-based prepay flow at `/prepay/confirm-and-send` but for the saved-PM branch - no client-side card collection required.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | [default to null] | |
| SendPackageApiRequest | SendPackageApiRequest | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
createAndSendPackageJson
PackageResponse createAndSendPackageJson(CreateAndSendPackageApiRequest)
Create and send package (JSON)
Atomically creates a package with signers and inline base64-encoded documents, then sends it for signing in a single API call. This is the most efficient way to initiate a signing ceremony when you have all data available upfront. **Document processing:** Documents are provided as base64-encoded content in the request body. If all documents are already cached (content-hash dedup hit), the package is sent immediately and transitions to Sent status. If documents require processing (PDF rendering, DOCX conversion), the package transitions to Queued status and is automatically sent when processing completes. A `package.sent` webhook event fires in either case. **Scheduled send:** If `ScheduledSendTime` is provided, the package transitions to Scheduled status instead of Sent, and notifications are deferred. **Request size limit:** 100 MB (accommodates 3x 25 MB files plus base64 encoding overhead). For larger payloads, use the multipart form-data variant of this endpoint. **Side effects:** - Creates the package, all signers, and all documents. - Counts against the monthly package quota. - Sends email notifications to eligible signers (unless embedded or scheduled). - Fires `package.sent` webhook event (after processing if queued). **Error conditions:** - 400 if required fields are missing (name, at least one signer, at least one document). - 400 if any document contains invalid base64 content. - 403 if API access is not available on the subscription (external API callers only). - 429 if the monthly package quota has been exceeded.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| CreateAndSendPackageApiRequest | CreateAndSendPackageApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, application/*+json
- Accept: application/json
createAndSendPackageMultipart
PackageResponse createAndSendPackageMultipart(metadata, documents)
Create and send package (multipart)
Atomically creates a package with signers and uploaded document files, then sends it for signing. This is the multipart/form-data variant of `CreateAndSendPackage`, intended for scenarios where documents are uploaded as files rather than base64-encoded JSON. **Request format:** The request uses `multipart/form-data` with two parts: - `metadata`: A JSON string containing package properties and signer definitions (same shape as CreateAndSendPackageMetadata). - `documents`: One or more file parts containing the document files. **Allowed file types:** .pdf, .doc, .docx. Maximum 25 MB per file. Total request limit: 100 MB. **Document processing and queuing:** Same behavior as the JSON variant. Documents that need processing (DOCX conversion, PDF rendering) cause the package to enter Queued status. **Side effects:** Same as the JSON variant (package creation, quota tracking, notifications, webhooks). **Error conditions:** - 400 if metadata JSON is missing or malformed. - 400 if no document files are provided. - 400 if any file has a disallowed extension or exceeds 25 MB. - 403 if API access is not available on the subscription. - 429 if the monthly package quota has been exceeded.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| metadata | String | [optional] [default to null] | |
| documents | List | [optional] [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: multipart/form-data
- Accept: application/json
createPackage
PackageResponse createPackage(CreatePackageApiRequest)
Create a new signing package
Creates a new signing package in Draft status. A package is the top-level container for a signing transaction and holds documents, signers, and configuration. **Package lifecycle:** Draft -> Sent -> Viewed -> InProgress -> Completed | Declined | Voided | Expired. After creation, add documents and signers to the draft, then call `SendPackage` to initiate the signing ceremony. Alternatively, use the `CreateAndSendPackage` endpoint to perform all steps atomically. Dates (`ExpirationDate`) are interpreted as local dates in the tenant's configured timezone and converted to UTC for storage. **Side effects:** - Counts against the tenant's monthly package quota (API quota for external API callers, total quota for portal users). The counter is incremented only after successful creation. **Error conditions:** - 400 if the package name is missing. - 403 if the API access feature is not available on the subscription (external API callers only). - 429 if the monthly package quota has been exceeded.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| CreatePackageApiRequest | CreatePackageApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
deletePackage
deletePackage(id)
Delete a draft package
Permanently deletes a package that is in Draft status. All associated documents, signers, and annotations are also deleted. This operation cannot be undone. To remove a package that has already been sent, use `VoidPackage` instead (which terminates the signing ceremony but preserves the audit trail). For bulk deletion, use `BulkDeletePackages`. **Error conditions:** - 400 if the package is not in Draft status. - 404 if the package GUID does not exist or does not belong to the tenant.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
null (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
exportAuditTrail
exportAuditTrail(id, format, redactIp)
Export audit trail
Exports the complete audit trail for a package in the specified format. Available formats: - **json**: Machine-readable JSON array of audit events (default). - **csv**: Comma-separated values suitable for spreadsheet import. - **pdf**: Formatted PDF document suitable for legal records and compliance archives. When `redactIp=true`, all IP addresses are replaced with \"[REDACTED]\" in the export. This is useful for sharing audit trails with parties who should not see signer IP addresses. The response is returned as a file download with the appropriate Content-Type header. **Rate limited:** This endpoint is rate-limited to prevent abuse of export generation. **Error conditions:** - 404 if the package GUID does not exist.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
| format | String | Export format: json, csv, or pdf. | [optional] [default to json] |
| redactIp | Boolean | When true, IP addresses are redacted from the export. | [optional] [default to false] |
Return type
null (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getAuditTrail
List getAuditTrail(id)
Get the audit trail for a package
Returns the complete audit trail for a package as a list of chronologically-ordered events. Each event includes the action performed, the actor (email, name, IP address, user agent), the timestamp, and optional references to specific signers, documents, or annotations. The audit trail is immutable and tamper-evident, using a hash chain for integrity verification. Use the `VerifyAuditIntegrity` endpoint to validate the chain. For exporting the audit trail in different formats, use `ExportAuditTrail` instead. **Error conditions:** - 404 if the package GUID does not exist.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getCertificateDownloadUrl
DownloadUrlApiResponse getCertificateDownloadUrl(id)
Get certificate download URL
Returns a time-limited SAS URL to download the Certificate of Completion for a completed package. The certificate is a PDF document summarizing the signing transaction, including signer identities, timestamps, IP addresses, authentication methods used, and a tamper-evident audit trail. The certificate is generated on-demand and may take a moment for the first request. Subsequent requests return a cached version. **Rate limited:** This endpoint is rate-limited to prevent abuse of certificate generation. **Error conditions:** - 400 if the package is not in Completed status. - 404 if the certificate has not been generated yet.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getPackage
PackageResponse getPackage(id)
Get a package by ID
Returns the full details of a signing package including its current status, signer/document counts, payment configuration, reminder settings, and the current signing step (if in progress). Use this endpoint to check package status after sending, or to retrieve details for display. For monitoring multiple packages, use `ListPackages` with a status filter instead. **Error conditions:** - 404 if the package GUID does not exist or does not belong to the tenant.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getPackageDownloadUrl
DownloadUrlApiResponse getPackageDownloadUrl(id)
Get package download URL
Returns a time-limited SAS URL to download the finalized signed document(s) as a combined PDF. The URL is valid for a limited time (indicated by `ExpiresOn` in the response). The download contains all documents in the package with signatures, initials, and other annotations burned into the PDF pages. For the Certificate of Completion (audit summary), use the `GetCertificateDownloadUrl` endpoint instead. This endpoint is available for packages in any status that has finalized documents (Completed, and in some cases Voided packages with partially signed documents). **Error conditions:** - 400 if the package has no finalized documents available for download.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
getPackageSendImpact
PackageSendImpactApiResponse getPackageSendImpact(id)
Get Package Send Impact
Preview the credit consumption and auto-refill that will trigger when this package is sent Returns a read-only projection of per-credit-type consumption (SMS / KBA / IDV), free quota and prepaid balances available, shortfalls, and the projected auto-refill packs + cost that will fire on send. No reservations are written, no Stripe charges are made. Use this to show a \"Sending this package will use X KBA credits, Y free + Z prepaid will cover it\" summary above the Send button - and to warn when the projected auto-refill is significantly larger than the tenant's configured refill packs (e.g. a 50-credit package triggering 5 refill packs instead of the configured 1). **Portal-only.** Not exposed to API keys.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
listPackages
PackageListResponse listPackages(page, pageSize, status, createdAfter, createdBefore, search, archivedOnly, createdByUserId, sortBy, descending, externalReferenceId, updatedSince)
List packages
Returns a paginated list of signing packages belonging to the tenant. Results can be filtered by status, date range, search term, and archive state. By default, returns non-archived packages. Set `archivedOnly=true` to retrieve archived packages instead (completed, voided, expired, or declined packages that have been archived). The `status` filter accepts: `Draft`, `Sent`, `Viewed`, `InProgress`, `Completed`, `Declined`, `Voided`, `Expired`, `Scheduled`, `Queued`. Results are ordered by creation date (most recent first). Page size is clamped to 1-100.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| page | Integer | Page number (1-based). | [optional] [default to null] |
| pageSize | Integer | Number of items per page (max 100). | [optional] [default to null] |
| status | String | Filter by package status. | [optional] [default to null] |
| createdAfter | Date | Filter to packages created after this date. | [optional] [default to null] |
| createdBefore | Date | Filter to packages created before this date. | [optional] [default to null] |
| search | String | Search term to filter packages by name. | [optional] [default to null] |
| archivedOnly | Boolean | When true, returns only archived packages. | [optional] [default to null] |
| createdByUserId | Long | [optional] [default to null] | |
| sortBy | String | [optional] [default to null] | |
| descending | Boolean | [optional] [default to null] | |
| externalReferenceId | String | [optional] [default to null] | |
| updatedSince | Date | [optional] [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
resendPackage
resendPackage(id)
Resend notifications
Resends signing notification emails to all signers in the package who have not yet completed signing. This is a convenience method equivalent to calling `ResendToSigner` for each pending signer. For targeted resends to specific signers, use the signer-level `ResendToSigner` or `ResendToSignersBulk` endpoints instead. **Side effects:** Sends email notifications to all pending signers. Each signer's `RemindersSentCount` and `LastReminderSentOn` are updated. **Error conditions:** - 400 if the package is not in Sent or InProgress status.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
null (empty response body)
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
sendPackage
PackageResponse sendPackage(id, SendPackageApiRequest)
Send a package for signing
Transitions a Draft package to Sent status and notifies signers. The package must have at least one document and one signer before sending. If `EnforceSigningOrder` is enabled, only signers with routing order 1 are notified initially; subsequent signers are notified as earlier ones complete. If `ScheduledSendTime` is provided, the package transitions to Scheduled status instead and notifications are deferred until the specified time. Use `CancelSchedule` to revert a scheduled package back to Draft. The scheduled send time is interpreted in the tenant's configured timezone and converted to UTC. **Side effects:** - Sends email notifications to eligible signers (unless they are embedded signers). - Fires `package.sent` webhook event. - Starts the expiration countdown if ExpirationDate was set. - Starts automatic reminders if ReminderEnabled is true. **Error conditions:** - 400 if the package is not in Draft status. - 400 if the package has no documents or no signers. - 400 if package validation fails (e.g., missing required annotations).
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
| SendPackageApiRequest | SendPackageApiRequest | Cancellation token. | [optional] |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
unarchivePackage
PackageResponse unarchivePackage(id)
Unarchive a package
Restores a previously archived package to the active package list. The package retains its terminal status (Completed, Declined, Voided, or Expired) but is no longer hidden from the default package listing. **Error conditions:** - 400 if the package is not currently archived.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
updatePackage
PackageResponse updatePackage(id, UpdatePackageApiRequest)
Update a draft package
Updates the configuration of a draft package. Only non-null fields in the request are applied; omitted fields retain their current values. This endpoint can only modify packages in Draft status. To update reminder settings on an in-flight package (Sent or InProgress), use the `UpdatePackageReminders` endpoint instead. Dates (`ExpirationDate`) are interpreted as local dates in the tenant's configured timezone. **Error conditions:** - 400 if the package is not in Draft status. - 404 if the package GUID does not exist or does not belong to the tenant.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
| UpdatePackageApiRequest | UpdatePackageApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
updatePackageReminders
PackageResponse updatePackageReminders(id, UpdateRemindersApiRequest)
Update reminder settings
Updates the automatic reminder configuration on an in-flight package (Sent or InProgress status). This is the only package property that can be changed after sending without voiding. When reminders are enabled, the system automatically sends reminder emails to pending signers at the configured interval (in days). Disabling reminders stops future automatic emails but does not prevent manual resends via the `ResendPackage` or `ResendToSigner` endpoints. **Side effects:** Changes take effect immediately. The next automatic reminder is scheduled based on the new interval from the current time. **Error conditions:** - 400 if the package is not in Sent or InProgress status. - 400 if ReminderIntervalDays is less than 1 when reminders are enabled.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
| UpdateRemindersApiRequest | UpdateRemindersApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json
validatePackage
PackageValidationApiResponse validatePackage(id)
Validate a package before sending
Performs a dry-run validation of a package to check whether it is ready to be sent. This runs the same validation logic as `SendPackage` but without actually sending. Use this to present validation errors to the user before they click \"Send.\" The response includes an `IsValid` flag and a list of specific validation errors (if any), each with an error code, the affected field, and a human-readable message. Common validation errors include: missing documents, missing signers, signers without required annotations, missing phone number for SMS auth, and missing access code for AccessCode auth.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
verifyAuditIntegrity
AuditIntegrityApiResponse verifyAuditIntegrity(id)
Verify audit trail integrity
Performs a cryptographic integrity check on the package's audit trail. The audit trail uses a dual hash chain (SQL database + Azure Blob Storage) to detect tampering. This endpoint verifies three conditions: - **SqlChainValid**: The hash chain in the SQL database is unbroken. - **BlobChainValid**: The hash chain in Blob Storage is unbroken. - **SqlBlobMatch**: Both chains produce the same final hash, confirming consistency. All three must be true for `IsValid` to be true. If any check fails, `ErrorMessage` describes the issue. Use this endpoint for compliance verification or when a dispute arises about document authenticity. **Rate limited:** This endpoint is rate-limited due to the computational cost of chain verification. **Error conditions:** - 404 if the package GUID does not exist.
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
Return type
Authorization
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
voidPackage
PackageResponse voidPackage(id, VoidPackageApiRequest)
Void a package
Voids an in-flight package (Sent, Viewed, or InProgress), permanently terminating the signing ceremony. Signers who have not yet signed are notified that the package has been voided. Signers who have already completed their signatures retain their signed copies in the audit trail. Voiding is irreversible. To restart the signing process after voiding, use `ClonePackage` to create a new draft copy. **Side effects:** - Sends void notification emails to all signers. - Fires `package.voided` webhook event. - Records the void reason in the audit trail. - Stops automatic reminders and expiration processing. **Rate limited:** This endpoint is rate-limited (5 per minute) to prevent rapid void attempts. **Error conditions:** - 400 if the package is already in a terminal state (Completed, Voided, Expired, Declined). - 400 if the package is in Draft status (use DeletePackage instead).
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| id | UUID | The package GUID. | [default to null] |
| VoidPackageApiRequest | VoidPackageApiRequest | Cancellation token. |
Return type
Authorization
HTTP request headers
- Content-Type: application/json, text/json, application/*+json
- Accept: application/json