## Overview

A contract usually has two sides: the **contracted party** (your issuing company) and the **external
signers** (the customer and other parties). In ConversaLabs:

- **Internal signing** is the contracted party's **auto-signature** — performed server-side, using
  the issuing company's details (and, for qualified signing, its **A1 certificate**).
- **External signing** is done by the signers through a secure **public page**, with no need to sign
  up or log in.

You choose the signature's **legal level** based on the document's risk: **simple** (consent with IP
and device record), **advanced** (with **OTP** by email/WhatsApp and a visual signature) or
**qualified** (an **ICP-Brasil A1** digital certificate, PAdES standard).

## Prerequisites

- Contracts module **enabled** and a contract generated from a template.
- A registered **issuing company** (for the auto-signature). For the qualified level, it needs a valid
  **A1 certificate**.
- To send the link to external signers, a native channel (**WhatsApp** or **email**) and the signers'
  **contact details**.

## Step by step

1. On the contract, define the **signers** (the contracted party and the external signers).
2. Choose the **signature level** (simple, advanced or qualified).
3. **Send for signature**: each external signer receives, **in their own conversation**, a card with
   the contract summary, the **signing link inside the message text** and the **PDF attached**. On the
   channels that support it, the link also shows up as a button. When a signer only has an e-mail
   address, the invitation goes out by e-mail with the same link and the same PDF.
4. The **contracted party** signs automatically (server-side auto-signature).
5. Each **external signer** opens the **public page**, reviews the document and signs.
6. At the **advanced** level, the signer validates an **OTP code** and records a **visual signature**
   (drawn, typed or uploaded as an image).
7. Once all signatures are complete, the **final signed PDF** is generated and the status becomes
   completed.

## Settings & options

- **Signature levels**:
  - **Simple** — consent with capture of IP, date/time and device.
  - **Advanced** — OTP by email/WhatsApp + visual signature (drawn, typed or uploaded).
  - **Qualified** — A1 digital certificate (ICP-Brasil), PAdES standard.
- **OTP delivery channel**: set per signer. A signer configured for **e-mail OTP** gets the code at
  their registered address; one configured for **WhatsApp OTP** gets it in their own conversation. If
  the configured channel is unavailable the system tries the other one before giving up — and when
  neither exists it says so instead of treating the delivery as done.
- **Individual link**: every signer has their own link, valid only for them. A signer never receives
  another party's link.
- **Auto-signature**: the contracted party signs automatically with the issuing company.
- **Order and multiple signers**: define who needs to sign.
- **Time-stamp (TSA)**: when configured, it strengthens the signature's legal validity.
- **Audit trail**: each signature records IP, device, consent and timestamp (SHA-256).

### When the AI agent sends the contract

When a person sends a contract, the contracted company signs in the same step. When the AI agent
sends, the behavior depends on the options in **Contracts > Settings > AI agent**:

- The bot only sends if the account allows it, and only to the contact of the conversation it is
  handling. It never sends by e-mail, into another conversation or by opening a new conversation: in
  those cases a person must send.
- By default, the bot **does not sign for the company**. The contract reaches the customer and shows
  as **waiting for the company signature**. To complete it, open the contract, click **Sign for the
  company** and confirm. This can happen before or after the customer signs.
- If the account turns on automatic company signing, the bot's send also signs for the company. The
  audit trail records that the AI agent made the send and that the signature was authorized by the
  account setting.

## Use cases

- A customer signs over **WhatsApp** with **OTP** in a few taps, installing nothing.
- A higher-value contract requires a **qualified signature** with an A1 certificate.
- The contracted party **signs automatically** and just waits for the counterparty.

## Tips, limits & best practices

- Use the **advanced (OTP)** or **qualified** level for higher-value or higher-risk documents.
- Make sure the signers' **contact details** are correct so the link is delivered.
- For the qualified level, keep the **A1 certificate valid** and, if applicable, an accredited **TSA**
  configured.
- Track the contract's **status** — it shows who has signed and what's still pending.

## Troubleshooting

- **The send was refused**: when a signer has neither a phone number nor an e-mail address, the
  contract is **not sent** and the error names who has no destination. Complete the details and send
  again — the contract stays a draft until the send actually happens.
- **The signer didn't get the link**: confirm the channel and contact details; resend if needed.
- **The OTP code doesn't arrive**: check **that signer's** email/WhatsApp (the code goes to the
  channel configured on them, not to the contract's conversation) and resend.
- **The qualified auto-signature failed**: make sure the issuing company has a valid, in-date **A1
  certificate**.
- **The contract won't complete**: check that **all** signers have signed.

## See also

- [Contracts & E-signature overview](/hc/ajuda/articles/contracts-esignature-overview-en)
- [Issuing companies and the A1 digital certificate](/hc/ajuda/articles/contracts-esignature-empresas-emissoras-certificado-a1-en)
- [Templates, variables and auto-fill](/hc/ajuda/articles/contracts-esignature-templates-variaveis-auto-fill-en)
- [Public contract page and validator](/hc/ajuda/articles/contracts-esignature-pagina-publica-e-validador-en)