> ## Documentation Index
> Fetch the complete documentation index at: https://docs.supercycle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# E-signatures

> Require customers to sign rental contracts online or in store before fulfilling a rental.

<Info>
  E-signatures are currently in beta. Enable them under [Settings > Beta features](https://admin.shopify.com/apps/supercycle/settings/beta_features) before getting started.
</Info>

E-signatures let you attach signed contracts to rentals. Author contracts as templates with Liquid, send them automatically when an order is placed, and collect signatures online or in person on Shopify POS.

<Note>
  Supercycle charges **\$0.75 per completed e-signature**. A signature is counted when a customer signs a contract.
</Note>

Key functionalities include:

* **Contract templates**: Author HTML + CSS + Liquid templates for any rental contract you need.
* **Multiple contracts per rental**: Require more than one template per rental option (for example, a rental agreement plus a damage waiver).
* **Multiple ways to sign**: Customers can sign at checkout success, from their customer account, from an emailed link, or in store on POS.
* **Automation triggers**: A `contract_signed` usage event fires once all contracts are signed, ready to use in [Automations](/documentation/manage/automation/automation).
* **Legally compliant**: Signatures are ESIGN, UETA, and eIDAS compliant, with full audit trails and certificates of completion attached to every signed contract.

## Setup E-signatures

<Steps>
  <Step title="Enable the beta feature">
    Go to [Settings > Beta features](https://admin.shopify.com/apps/supercycle/settings/beta_features) and enable **Contracts**.
  </Step>

  <Step title="Create a contract template">
    Navigate to [Settings > Risk](https://admin.shopify.com/apps/supercycle/settings/risk) and find the **Contract templates** section. Add a template with a name, body (HTML with Liquid), and styles (CSS). Use **Preview** to render the template against sample data before saving.
  </Step>

  <Step title="Attach the template to a rental option">
    Open the rental method option for the product (calendar, subscription, membership, or resale) and select one or more contract templates to require at checkout. To attach contract templates to many options at once, use the **Apply contracts** [bulk action](/documentation/manage/products/managing-method-options#bulk-actions) on the options table.
  </Step>
</Steps>

## Template variables

Contract templates are written in HTML, styled with CSS, and rendered with [Liquid](https://shopify.github.io/liquid/). The following variables are available:

* `rentals` — array of [rentals](#rental) included in the contract.
* `customer` — the signing [customer](#customer).
* `customer_signature` — replaced with the customer's signature when the document is signed. Required if you want the signature to render in the PDF.

#### Liquid references for contract templates

<AccordionGroup>
  <Accordion title="Rental">
    <ResponseField name="product_title" type="string">
      The title of the rented product
    </ResponseField>

    <ResponseField name="variant_title" type="string">
      The title of the rented variant
    </ResponseField>

    <ResponseField name="sku" type="string">
      The SKU of the rented item
    </ResponseField>

    <ResponseField name="serial" type="string">
      The serial number of the rented item
    </ResponseField>

    <ResponseField name="condition" type="string">
      The condition of the rented item
    </ResponseField>

    <ResponseField name="start_date" type="date">
      The rental start date
    </ResponseField>

    <ResponseField name="end_date" type="date">
      The rental end date
    </ResponseField>

    <ResponseField name="minimum_term" type="string">
      The minimum rental term
    </ResponseField>

    <ResponseField name="minimum_term_end" type="date">
      The date the minimum rental term ends
    </ResponseField>

    <ResponseField name="price" type="integer">
      The rental price in cents
    </ResponseField>

    <ResponseField name="subscription" type="subscription">
      The subscription associated with the rental, if any

      <Expandable title="subscription properties">
        <ResponseField name="start_date" type="date">
          The subscription start date
        </ResponseField>

        <ResponseField name="end_date" type="date">
          The subscription end date
        </ResponseField>

        <ResponseField name="price" type="string">
          The formatted subscription price
        </ResponseField>

        <ResponseField name="amount" type="integer">
          The subscription amount in cents
        </ResponseField>

        <ResponseField name="frequency" type="string">
          The billing frequency of the subscription
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Customer">
    <ResponseField name="full_name" type="string">
      The customer's full name
    </ResponseField>

    <ResponseField name="display_name" type="string">
      The customer's display name
    </ResponseField>

    <ResponseField name="first_name" type="string">
      The customer's first name
    </ResponseField>

    <ResponseField name="last_name" type="string">
      The customer's last name
    </ResponseField>

    <ResponseField name="email" type="string">
      The customer's email address
    </ResponseField>
  </Accordion>
</AccordionGroup>

More information on using Liquid can be found [on Shopify's developer documentation](https://shopify.dev/docs/api/liquid).

## How customers sign

Once an order is placed, Supercycle generates one contract per template and notifies the customer. Customers can sign from any of the following:

* **Online store checkout success page**: Sign immediately after placing the order, before leaving the thank-you page.
* **Customer account**: Pending contracts are listed in the storefront customer account for the customer to revisit and sign.
* **Email link**: Supercycle emails the customer a signing link when the order is placed, and you can resend the link from the order at any time.
* **Shopify POS**: Staff open the order in POS and either hand the device to the customer to sign on screen, or display a QR code for the customer to scan and sign on their own phone.

## Contract status

Each contract has one of two statuses:

| Status     | Meaning                                                                         |
| ---------- | ------------------------------------------------------------------------------- |
| `unsigned` | The contract has been generated but the customer has not yet signed.            |
| `signed`   | The contract has been signed and the rendered PDF is stored against the rental. |

When every contract on a rental is `signed`, Supercycle emits a `contract_signed` usage event you can use as a trigger in [workflows](/documentation/manage/automation/create-workflow).

## Compliance and audit trails

Supercycle e-signatures are legally binding and compliant with the major electronic signature regulations:

* **ESIGN Act** (US Electronic Signatures in Global and National Commerce Act)
* **UETA** (US Uniform Electronic Transactions Act)
* **eIDAS** (EU Electronic Identification, Authentication and Trust Services)

Every signed contract includes:

* **Audit trail**: A tamper-evident record of every action taken on the contract, including when it was generated, viewed, and signed, along with the signer's IP address and timestamps.
* **Certificate of completion**: A signed certificate attached to the contract PDF documenting the signing parties, signature events, and audit history — admissible as evidence of intent and consent.

***

## E-signatures FAQs

<AccordionGroup>
  <Accordion title="How much do e-signatures cost?">
    Supercycle charges \$0.75 per completed e-signature. Generating or sending a contract is free — you only pay when a customer signs.
  </Accordion>

  <Accordion title="Which rental methods support e-signatures?">
    Calendar, subscription, membership, and resale options can all require contract templates.
  </Accordion>

  <Accordion title="Can I require more than one contract per rental?">
    Yes. Assign multiple templates to a rental option and Supercycle generates one contract per template. The rental is only fully signed once every contract is signed.
  </Accordion>

  <Accordion title="Where is the signed PDF stored?">
    Once a contract is signed, Supercycle stores the rendered PDF against the contract record. You can download it from the order in Supercycle.
  </Accordion>

  <Accordion title="Can the customer sign on their own device in store?">
    Yes. On POS, present the QR code on the till device and the customer scans it to sign on their phone. The POS screen updates automatically once they finish.
  </Accordion>
</AccordionGroup>
