Contracts and E-Signature
Build loan contracts in the Contract Builder, fill them with application data, and collect legally auditable signatures from applicants and co-signers.
The Contract Builder is where you create the documents applicants sign, such as loan agreements, disclosures and promissory notes. You either write a contract in the editor or upload an existing PDF, then map its blanks to LendAPI variables so each application's values are filled in automatically.
When an application reaches the right point, LendAPI generates that application's copy of the contract. The applicant signs it in the application flow, by email link, or on a shared device. Every signed PDF ends with a Signature Certificate that records who signed, when, and from where.
Key concepts
- Contract: a reusable contract template in the Contract Builder.
- Format: Rich text or HTML (written in the editor), or PDF (an uploaded fillable PDF). Chosen when you create the contract.
- Contract Type: for Rich text and HTML contracts, Offer (signed in LendAPI) or DocuSign (signed in DocuSign using a DocuSign template). PDF contracts are always signed in LendAPI.
- Field mapping: for PDF contracts, each form field in the PDF is mapped to either a variable (a value to print) or a signer action (signature, initials, date signed, confirm read).
- Version / live version: publishing creates a numbered version. Only the version set as live is used for new applications.
- Signing role: who signs: the Primary signer (the applicant) and up to five co-signers (Co-Signer 1 to Co-Signer 5).
- Application contract: one application's generated copy, with its own status: Draft, Generated, Not Signed, Signed or Uploaded.
- Signature Certificate: an audit page added to the end of a signed PDF contract.
- Consent certificate: a short stamp (name, date, IP address by default) added to consent documents from your Document Library when an applicant accepts them.
How it works
flowchart LR
A[Build contract<br/>Contract Builder] --> B[Publish & set live]
B --> C[Application reaches trigger<br/>or agent clicks Generate]
C --> D[Contract generated<br/>with application values]
D --> E{How is it signed?}
E -- In the application --> F[Applicant signs in flow]
E -- Email link --> G[Each signer gets a link]
E -- Shared device --> H[Signers take turns]
F --> I[Signed PDF + Signature Certificate]
G --> I
H --> I
Build a contract
1. Create the contract
- Go to Workflows → Contract Builder.
- Create a new contract. Enter a unique Name (up to 60 characters) and choose the Contract type format: Rich text, HTML or PDF.
- In the contract's properties, assign the products it applies to. Under Trigger, pick the decision Outcomes that make it available to applicants.
2. Add content and signers
- Write the contract in the editor and insert variables wherever application data should appear, for example the borrower's name, loan amount or APR.
- Set Contract Type to Offer to sign in LendAPI, or DocuSign to sign in DocuSign (see DocuSign below).
- In the Signatures section, turn on Primary Signature if the applicant must sign while completing the application. Add co-signers and pick the email template used to send each co-signer their signing link.
- Upload a fillable PDF (up to 20 MB). LendAPI reads its form fields.
- Map each field. Choose a type and then a variable or a signer:
| Field type | What it does | Needs |
|---|---|---|
| Variable | Prints the application's value for a variable | A variable |
| Signature | The signer's adopted signature | A signer |
| Initial | The signer's initials | A signer |
| Date signed | The date that signer signed | A signer |
| Confirm read | A tick showing the signer confirmed the page. Only offered on the PDF's checkbox fields | A signer |
- Open Signature → Configure to set up each signing role in the Configuration panel:
- Role Name: the label shown to signers, for example "Borrower" or "Guarantor".
- User Email: the variable that holds this signer's email address.
- Email Template: the Contract is not signed email template that sends this signer their link. The template must include
{{co_signer_url}}. The builder warns you if it doesn't. - Signature Preference:
0 - email(send a signing link) or1 - same device(sign in the current session). You can also pick a list variable that holds 0 or 1 per application. - Message After Signing: text shown above the contract after this signer has signed.
- In-Person Signing: when on, everyone signs on one shared device, one signer at a time, and Send resume link to chooses who receives the "continue application" email once the contract is fully signed.
- Expire contract after: optionally make an unsigned contract expire at End of day, End of tomorrow or End of day after tomorrow. What happens next is set on the contract widget in Product Studio (Next step when expired).
If you upload a replacement PDF, existing mappings carry over for fields with the same ID or name. The builder lists any mapped fields that no longer exist.
3. Publish the contract
- Click Publish. In Publish Contract, describe the change and tick Set as live version to use it right away.
- Publishing is blocked while the contract has warnings, for example unmapped fields, a missing signer block, or a signer with no email template.
- Use the version list to Set Live on another version, Copy to Draft, or preview. Clone copies a contract as a starting point for a new one. Use the Active switch to stop offering a contract without deleting it.
4. Show it to applicants
Add the Contract widget to the right page of your product in Product Studio. When the application reaches that page with a matching outcome, LendAPI generates the contract with that application's values and shows it for signing.
DocuSign
To sign through DocuSign instead of LendAPI:
- In DocuSign, create a template with one signer role and the tabs you need.
- In Workflows → Integrations, configure DocuSign with your DocuSign credentials: environment (Developer or Production), account base URL, integration key, user ID, API account ID and RSA private key.
- In the Contract Builder, create a Rich text or HTML contract, set Contract Type to DocuSign, select your DocuSign template, and map variables to the template's tab labels.
Single signer onlyDocuSign contracts support a single signer (the first signer role on the template). The applicant is redirected to DocuSign to sign and then returns to LendAPI.
Generate a contract from the dashboard
Agents can also generate and send contracts manually:
- Open the application and go to the Docs tab.
- In CONTRACTS, click Generate and choose the contract.
- Review the filled-in document. Toggle Show Variables / Show Values to check the mapping, and fix any data first.
- Generate it, then click Send for signature and choose the email template to send.
Each save, generation and signature creates a new version of the application's contract, which you can review with Show version history. A contract shows Generated once created, Not Signed while waiting for signatures, and Signed when complete. You can also download the signed copy from the Docs tab.
Sign multiple contracts by email
When signers sign PDF contracts by email and an application needs several contracts, list them in order in the contract_offer_ids list variable. Each signer has one personal signing link for the application and uses it to sign, in that order, every contract they have a field on. The application counts as signed only when every contract in the chain is complete.
Chaining applies to signers whose Signature Preference is email and whose User Email variable has a value on the application.
Audit trail
Signature Certificate (PDF contracts)
Every signed PDF contract gets a Signature Certificate page with one table per signer:
| Row | Example |
|---|---|
| [email protected] | |
| Signature | The signature mark as drawn or typed |
| Adoption | Drawn on device, or Typed with the chosen font |
| Delivery | Secure email link, or In person on shared device |
| Signature ID | A unique ID for this signer's signature |
| IP address / Device | Where the signature was made |
| Sent at / Signed at | Times are shown in your account's time zone |
Signers who only ticked boxes or stamped a date (no signature) are recorded as "Confirmed without a signature". Values printed on the PDF are flattened into the page, so they can't be edited afterwards.
Consent certificate (Document Library)
Consent documents in your Document Library, such as e-sign or credit-pull consents, are stamped with a short certificate when the applicant accepts them. To customise it, open the document, find Certificate, and use Configure Certificate. The default is:
Name: {{first_name}} {{last_name}}
Date: {{date_signing}}
IP Address: {{ip_address}}You can use any active variable plus the system values date_signing and ip_address. The certificate can be up to 1,000 characters.
Reference
Use it via the API
Contracts are built, generated and sent from the dashboard. There is no public API for the Contract Builder or for sending contracts.
Permissions
- Building and publishing contracts needs the Contract Builder module (View / Edit).
- Generating and sending contracts on an application needs access to the application's Docs tab in the Agent Dashboard.
Best practices
- Test the full signing flow in Sandbox, including every co-signer, before you set a contract live in Production.
- Use Show Values before sending. A missing variable prints as blank on a legal document.
- Make fields big enough. Typed values are never printed smaller than 8 pt. A value too long for its box runs past it, so widen narrow fields in the source PDF.
- Give every signer an email template that contains
{{co_signer_url}}, even if you normally sign in person. You may need to switch to email signing for one application. - Version, don't overwrite. Publish a new version for wording changes so the version history shows which text each application signed.
Related guides
Updated 15 minutes ago

