REFRACT eSign

Field Manifest

Configure additional signing fields alongside the primary signature, including initials, date fields, checkboxes, and freeform text, using the REFRACT eSign Field Manifest.

The Field Manifest defines additional fields that appear in the signing portal alongside the primary signature. It is derived automatically from the PDF template's signature block definitions and is embedded in the signing session at creation time.

Template-Driven

The field manifest is extracted from the rendered PDF template. Fields declared in the template's signature_block nodes are automatically surfaced in the portal for each signer slot. No additional configuration required.


Field Types

TypeDescriptionStorage FormatUse Cases
signThe primary drawn or typed signature. Always required per slot.Base64-encoded PNGContract execution, consent forms, approvals
initialsA secondary initials field. When present on a slot, it is always required, the same as the primary signature.Base64-encoded PNGAcknowledgment of specific clauses, page initialing
dateA date confirmation field. Pre-filled with today's date; signer can adjust. Follows the field's own required setting.ISO 8601 (YYYY-MM-DD)Execution date, effective date, review date
textA freeform text field. Supports optional length (max characters, default 100). Follows the field's own required setting.UTF-8 plaintextTitle, position, custom acknowledgments
checkA checkbox (boolean). Follows the field's own required setting.Boolean (true/false)Consent acceptance, terms agreement, attestation

sign and initials are always mandatory once present

Whether a sign or initials field is included for a signer is controlled by the template. Once either is included, it must be completed - there is no way to mark a sign or initials field as optional for a signer it was requested for. date, text and check fields follow their own required setting instead.

These are not AcroForm fields

signature_block, input, and attachment nodes in a REFRACT PDF template are layout elements, not PDF AcroForm fields. A signature_block tells REFRACT PDF where to inject the seal image after signing - the seal is placed by the render engine. input and attachment blocks are visual placeholders rendered into the PDF layout. None of these elements are interactive in Acrobat or any PDF viewer.


Manifest Structure

{
  "version": "1.0",
  "signingMode": "sequential",
  "slots": [
    {
      "slotIndex": 0,
      "role": "vendor",
      "fields": [
        {
          "fieldId": "vendor-sig",
          "fieldType": "sign",
          "role": "vendor",
          "anchor": "sig-vendor-main",
          "label": "Vendor Signature",
          "required": true
        },
        {
          "fieldId": "vendor-initials",
          "fieldType": "initials",
          "role": "vendor",
          "anchor": "sig-vendor-initials",
          "label": "Initials",
          "required": true
        },
        {
          "fieldId": "vendor-date",
          "fieldType": "date",
          "role": "vendor",
          "anchor": "sig-vendor-date",
          "label": "Date Signed",
          "required": true
        },
        {
          "fieldId": "vendor-title",
          "fieldType": "text",
          "role": "vendor",
          "anchor": "sig-vendor-title",
          "label": "Title / Position",
          "required": false,
          "length": 100
        }
      ]
    }
  ]
}

Slot Properties

PropertyTypeDescriptionExample
slotIndexnumberZero-based slot index. Matches the slotIndex in the session request.0, 1, 2
rolestringMatches the signature block role in the PDF template. Determines field positioning and visibility.vendor, manager, witness

OTP identity verification is always required before a signer can access the document - it is not a per-slot setting. The OTP code is always delivered by email.


Field Properties

PropertyTypeRequiredDescription
fieldIdstringYesUnique identifier within the slot. Used in the stored fieldsJson record and for audit tracing. No spaces or special characters.
fieldTypesign | initials | check | date | textYesType of field to render in the portal. Determines storage format and validation.
rolestringYesMust match the parent slot role. Ensures field visibility and signing authority.
anchorstringYesTemplate node ID / selector used to position the field in the document. References a node in the PDF template.
labelstringNoDisplay label shown above the field in the portal. Improves UX. If omitted, field appears without label.
requiredbooleanYesWhether the signer must complete this field before submitting. sign and initials fields are always required once present, regardless of this value.
lengthnumberNoMaximum character length for text fields. Defaults to 100. Validation occurs in portal.

Stored Field Values

After signing, all field values are stored in ESignSlotEntity.fieldsJson as a key-value record in your Azure Table Storage:

{
  "vendor-sig":      "<base64-png>",
  "vendor-initials": "<base64-png>",
  "vendor-date":     "2026-05-29",
  "vendor-title":    "Director of Operations",
  "vendor-terms":    true
}

Storage Details:

  • Primary signature PNG: Also stored directly in ESignSlotEntity.signaturePngBase64 for evidence certificate generation
  • Initials PNG: Stored as base64-encoded PNG (same as signature)
  • Date fields: Stored in ISO 8601 format (YYYY-MM-DD)
  • Text fields: Stored as UTF-8 plaintext (up to length limit)
  • Checkbox fields: Stored as boolean (true/false)
  • Audit trail: All field values linked to the evidence certificate via correlationId and groupId
  • Encryption: fieldsJson and signaturePngBase64 are protected at rest by Azure Storage's platform-level encryption, the same as the rest of the table. They are not additionally encrypted at the application layer - unlike the signer's email address and the session's internal keys, which do go through application-layer AES-256-GCM encryption before storage.
  • Data residency: Field values are written to your Azure Table Storage, in your chosen region

How Field Values Reach Your Storage

The signer completes fields in the eSign portal's browser UI. On submission, the portal constructs an HMAC-signed callback body - which includes the field values and the signature PNG - and posts it to your Dispatcher (POST /api/esign/callback). The field values and signature bytes therefore pass through the REFRACT-hosted portal in memory during that callback, on their way to your storage; the portal does not write them to its own database. Your Dispatcher verifies the HMAC signature before writing the values to your Table Storage.

All traffic between the portal and your Dispatcher uses HTTPS with a TLS 1.2 minimum.


Field Value Examples

Signature Field (sign)

{
  "fieldId": "vendor-sig",
  "fieldType": "sign",
  "label": "Vendor Signature"
}

Stored as:

{
  "vendor-sig": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="
}

(Base64-encoded PNG, captured in portal, sealed in evidence certificate)

Initials Field (initials)

{
  "fieldId": "vendor-initials",
  "fieldType": "initials",
  "label": "Initials"
}

Stored as:

{
  "vendor-initials": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="
}

Date Field (date)

{
  "fieldId": "vendor-date",
  "fieldType": "date",
  "label": "Date Signed",
  "required": true
}

Stored as:

{
  "vendor-date": "2026-05-29"
}

(ISO 8601 format, captured from signer's selection in portal)

Text Field (text)

{
  "fieldId": "vendor-title",
  "fieldType": "text",
  "label": "Title / Position",
  "required": false,
  "length": 100
}

Stored as:

{
  "vendor-title": "Director of Operations"
}

(UTF-8 plaintext, up to 100 characters)

Checkbox Field (check)

{
  "fieldId": "vendor-terms",
  "fieldType": "check",
  "label": "I agree to the terms and conditions",
  "required": true
}

Stored as:

{
  "vendor-terms": true
}

(Boolean: true if checked, false if unchecked)


Audit & Evidence

Field values are incorporated into the evidence certificate:

  • All field IDs and values: Captured in fieldsJson within evidence
  • Timestamps: Field value submission time recorded per field
  • Signer identity: Linked via evidence certificate
  • Document hash: Proves the document was not modified post-signing
  • Consent text: Frozen at signing time, recorded alongside the signer's acceptance

Back to REFRACT eSign Overview

Review signing modes, session states, evidence certificates, and data residency.

On this page