> ## Documentation Index
> Fetch the complete documentation index at: https://vytral-dependabot-npm-and-yarn-development-95cc887cce.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# E-signatures and offer signing

> Configure Harly Sign or DocuSeal, send signature requests, and verify signed offer state safely.

Harly supports native signing through Harly Sign and remote signing through
DocuSeal. Native signing is built in and requires no external account. A
document becomes signed from a verified signing state transition, not from a
browser redirect alone.

## Harly Sign

Use Harly Sign when candidates should sign inside Harly's candidate portal.

<Steps>
  <Step title="Choose the offer delivery channel">
    Open **Settings → Integrations → Harly Sign**. Under **Offer signature
    delivery**, select **Native (built-in)**. Harly Sign is connected by
    default; this setting chooses the channel used when an offer is sent.
  </Step>

  <Step title="Configure signing controls">
    Select **Signature settings** or open **Settings → Signature**. You can
    enable self-signing, remote signing links, saved signatures, the signing
    timeline, and email OTP for remote recipients. Remote links expire after
    30 days by default and accept a value from 1 to 365 days.
  </Step>

  <Step title="Create the offer">
    Open an active candidate application, choose **New offer**, enter the offer
    terms, and attach a PDF offer letter or generate one from a template. Save
    the offer as a draft.
  </Step>

  <Step title="Place required fields and send">
    Choose **Send offer**. With Native selected, Harly opens **Place signature
    fields**. Review the automatically seeded signature field, add more
    **Signature field** or **Text field** controls, position them on the PDF,
    and select **Send offer**.
  </Step>

  <Step title="Verify completion">
    The candidate opens the secure link, completes every required field, and
    verifies the email OTP if you enabled it. Confirm the offer/document state
    on the Harly record before marking the application hired.
  </Step>
</Steps>

<Warning>
  Native signing requires at least one required signature field. If no field is
  saved, Harly keeps the offer in draft and refuses to send it.
</Warning>

## DocuSeal

Use DocuSeal when you want a separate hosted or self-hosted signing service.
Configure the Harly workspace connection in **Settings → Integrations →
DocuSeal**.

<Steps>
  <Step title="Connect the instance">
    Enter the DocuSeal base URL and API token in the integration card. The URL
    must use HTTPS and must not include `/api`, credentials, a query string, or
    a fragment. Harly encrypts the API token at rest.
  </Step>

  <Step title="Enable the provider">
    Enable DocuSeal and save. Harly generates a per-workspace webhook secret.
    To use DocuSeal for offers, return to **Settings → Integrations → Harly
    Sign** and select **DocuSeal** under **Offer signature delivery**.
  </Step>

  <Step title="Register the webhook">
    Copy the webhook URL shown in the DocuSeal integration card and configure
    DocuSeal to POST to:

    ```text theme={null}
    https://harly.example.com/api/integrations/docuseal/webhook?ws=<workspace-id>
    ```

    Send the per-workspace secret in `X-DocuSeal-Secret` or the supported HMAC
    signature header.
  </Step>

  <Step title="Test a signing request">
    Send a test offer and confirm the submission appears in DocuSeal. Harly
    verifies terminal status with a provider read before it updates the local
    offer and document records.
  </Step>
</Steps>

## Recovery rules

* A candidate redirect can show `pending` while webhook verification is still
  running.
* A voided or expired submission must not be treated as signed.
* If the provider is unavailable, keep the offer record and retry the provider
  operation after checking the integration status.
* Never mark a document signed by editing the database or trusting an email
  without a verified provider event.
