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

DownloadUrlApiResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

BulkDeleteApiResponse

Authorization

ApiKey

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

BulkDeleteApiResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

ApiKey

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

ApiKey

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

List

Authorization

ApiKey

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

DownloadUrlApiResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

DownloadUrlApiResponse

Authorization

ApiKey

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

PackageSendImpactApiResponse

Authorization

ApiKey

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

PackageListResponse

Authorization

ApiKey

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

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

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

PackageValidationApiResponse

Authorization

ApiKey

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

AuditIntegrityApiResponse

Authorization

ApiKey

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

PackageResponse

Authorization

ApiKey

HTTP request headers

  • Content-Type: application/json, text/json, application/*+json
  • Accept: application/json