---
title: "Update a draft signing packet"
method: PATCH
path: "/api/v1/signing-packets/{id}"
tags: ["Signing Packets"]
---

# Update a draft signing packet

`PATCH /api/v1/signing-packets/{id}`

## Request

- Base URL: `https://api.korala.ai`
- URL: `https://api.korala.ai/api/v1/signing-packets/{id}`
- Auth: one of:
  - API key in header `X-API-Key`
  - `bearer` (a scheme the document does not define)

## Path parameters

- `id` string, required

## Request body

- UpdateSigningPacketDto
  - `name` string
  - `redirectUrl` string
  - `expiresAt` string, date-time

## Response `200`

- SigningPacketDto
  - `sourceCollectionId` string, uuid, nullable
  - `id` string, uuid, required
  - `publicId` string, uuid, required
  - `name` string, required
  - `externalId` string, nullable
  - `sandbox` boolean, required
  - `expiresAt` string, date-time, nullable
  - `senderName` string, required
  - `senderOrganizationName` string, nullable
  - `brand` HostedSigningBrandDto
    - `name` string, required: Partner identity shown in hosted signing
    - `logoUrl` string, uri, nullable, required
    - `primaryColor` string, nullable, required: Accent color used for signing actions
  - `electronicDisclosure` ElectronicDisclosureDto, required
    - `provider` 'korala' | 'partner', required
    - `profileId` string, required
    - `version` string, required
    - `title` string, required
    - `contentHtml` string, required: Restricted, server-sanitized HTML
    - `contentSha256` string, required: SHA-256 of the immutable disclosure snapshot
    - `affirmationText` string, required
  - `status` 'draft' | 'sent' | 'viewed' | 'processing' | 'partially_completed' | 'recipient_completed' | 'voided' | 'expired', required
  - `accessMode` 'email_verification' | 'link', required
  - `recipient` SigningPacketRecipientDto, required
    - `id` string, uuid, required
    - `name` string, required
    - `email` string, required
    - `status` 'pending' | 'viewed' | 'completed', required
    - `consentedAt` string, nullable
  - `items` SigningPacketItemDto[], required
    - `id` string, uuid, required
    - `documentId` string, uuid, required
    - `documentSignerId` string, uuid, required
    - `status` 'pending' | 'signed' | 'invalidated', required
    - `order` number, required
    - `documentName` string, required
    - `documentStatus` 'draft' | 'pending' | 'completing' | 'completed' | 'failed' | 'voided' | 'expired', required
    - `signerStatus` 'pending' | 'viewed' | 'signed' | 'declined', required
    - `documentUrl` string
    - `signedDocumentUrl` string, nullable
    - `certificateUrl` string, nullable
    - `representedEntity` string, nullable
    - `signingCapacity` string, nullable
    - `fieldValues` SigningPacketFieldValueDto[]: Values the sender locked for the item signer; applied to the fields when the packet is sent.
      - `fieldId` string, uuid, required
      - `value` string, required
    - `fields` SigningPacketFieldDto[]
      - `valueKey` string, nullable: Repeated text value key, scoped to the owning signer.
      - `id` string, required
      - `documentId` string, required
      - `signerId` string, required
      - `fieldType` 'signature' | 'initials' | 'date' | 'text' | 'checkbox' | 'dropdown' | 'radio', required
      - `pageNumber` number, required
      - `xPosition` number, required
      - `yPosition` number, required
      - `width` number, required
      - `height` number, required
      - `label` string, nullable: Human-readable label shown to the signer for this field
      - `required` string, required
      - `value` string, nullable
      - `editable` boolean, required: When true, a prefilled value is a suggestion the signer can change before signing.
      - `sharedFill` boolean, required: One signer owns the field, but until they sign any signer able to act may fill or correct it — the employer preparing a part the employee confirms. Never true on signature or initials fields.
      - `signingDate` boolean, nullable: Date fields only. True fills the field with the date the signer signs: the signing page shows today and the signer does not type it. False makes it an ordinary date the signer enters. Refused on any other type. Null on a date made before the flag existed: a date on the signer’s own signature line is then the date of signing.
      - `signatureImageUrl` string, nullable
      - `filledAt` string, date-time, nullable
      - `filledBy` 'sender' | 'signer': Who wrote the current value: the sender (a non-editable template prefill or a signing-packet lock) or the signer (any fill, including bulk signing on their behalf). Null while unfilled.
      - `signingDateChangedAt` string, date-time, nullable: When the signer changed the date beside their signature from the automatic date of signing to one of their own. Null otherwise.
      - `acroFieldName` string, nullable: Embedded AcroForm field this field is linked to; values fill the PDF form field at completion instead of being overlay-stamped.
      - `acroOptionValue` string, nullable: For radio-group AcroForm fields: the option this field selects.
      - `options` string[], nullable: Allowed values for dropdown fields
      - `maxLength` number, nullable: Maximum characters accepted at fill time
      - `inputMask` string, nullable: Input mask where # represents one digit
      - `validationPattern` string, nullable: Regex the filled value must match
      - `validationMessage` string, nullable: Signer-facing error when validationPattern does not match
      - `dateFormat` string, nullable: Date fields only: format the auto-filled date is rendered in, e.g. 'MM-DD-YYYY'
      - `groupKey` string, nullable
      - `groupRequired` boolean, required: Whether at least one member of this group must be selected
      - `requiredWhenFieldId` string, uuid, nullable: Id of the field whose checked/filled state makes this field required (conditional requirement); null when unconditional
      - `requiredWhenValue` string, nullable: Exact controller value the condition triggers on; null means any checked/filled state
      - `fontSize` number, nullable: Point size the value is drawn at, imported from the PDF form field. Null means the size is fitted to the box.
      - `textColor` string, nullable: Color the value is drawn in, as #rrggbb
      - `textAlign` 'left' | 'center' | 'right': Horizontal alignment of the value inside the field box
      - `fontFamily` string, nullable: Base font the value is drawn in, imported from the PDF form field
      - `multiline` boolean, required: Whether the value may contain line breaks (a multiline form field)
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
  - `signingUrl` string
  - `certificateUrl` string, nullable
  - `auditReportUrl` string, nullable: Deprecated alias for certificateUrl
  - `redirectUrl` string, nullable
  - `savedSignature` SigningPacketSavedSignatureDto
    - `id` string, uuid, required
    - `name` string, required
    - `signatureImageUrl` string, required
    - `kind` 'signature' | 'initials', required
  - `savedInitials` SigningPacketSavedSignatureDto
    - `id` string, uuid, required
    - `name` string, required
    - `signatureImageUrl` string, required
    - `kind` 'signature' | 'initials', required
  - `deliveryStatus` 'not_requested' | 'sent' | 'failed'

## Other responses

- `400`: Malformed UUID in path parameter (`id`).

---

[API](https://skmtc.dev/korala/apis/korala-public-api.md) · [All operations](https://skmtc.dev/korala/apis/korala-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/korala/apis/korala-public-api/revisions/5c4d7810c507?raw)
