Stage three of the funnel at /client/[id]/contract. The agreement renders through a scoped markdown renderer with the tenant's accent so it reads like a real legal document. Once signed the page switches permanently to a read-only view so the customer can re-read or print their copy at any time.
Also called: e-sign the contract · sign the construction agreement · digital contract
The agreement is read, acknowledged and signed on a phone
The customer reads the full agreement on your letterhead, ticks a binding-signature acknowledgement, types their full legal name and draws their signature; the button unlocks only when all of it is done. IP address, user agent and timestamp are recorded with the signature. A print, sign and scan cycle produces none of that and costs days at the exact point you want to order material.
Clause-by-clause initials, drawn once
For waivers and agreements that need it, the customer draws their initials once at the top and taps each required clause to stamp it, each with its own timestamp and a live counter of how many remain. The list of clauses that require initials is frozen onto the contract when it is generated, and the server re-checks every one before it accepts the signature. That is evidence each section was read, rather than one mark at the bottom of thirteen pages.
What they are signing for is restated above the legal text
A short recap names the project, a one-line building summary, the delivery address and the total in your accent colour. A customer reaching the agreement has usually not looked at their estimate for days, so signing is never a leap of memory. The recap prints with the document; the clauses themselves are not toggleable, because a checkbox has no business editing legal text.
Both signatures land in the printed copy
The customer's and the builder's drawn signatures render inside the printable article with their dates, so the saved PDF is the executed document rather than an unsigned copy of the terms. Before you counter-sign, the customer sees Pending builder counter-signature rather than a half-filled grid, so neither side has to guess whether the contract is actually in force.
Either side gets a clean PDF in two clicks
A pinned Print / Save PDF button follows the customer deep into a long agreement, and the print stylesheet strips everything except the document itself. From your side, the Print as PDF action lands straight on the save dialog. There is no server render step and nothing emailed back and forth for the lender who asked for a copy.
You check their details before the agreement is released
Submitting the details form does not hand the customer a contract. They land on a branded preparing-your-agreement screen that thanks them by first name, says you are reviewing their details, and asks them to bookmark the page. It polls every six seconds, so the moment you send the agreement the signing view appears in place — no second email, no second link to lose.
- 1The link's contract id is resolved, then the contract row is read from a public by-id endpoint
- 2A customer who has not completed the form is sent back to /info
- 3Signing requires the acknowledgement, a name of at least three characters, ink on the pad and every required section initialed
- 4POST /api/client-portal/sign-contract records the signature, IP and user agent and flips status to customer_signed
- 5A persistent admin alert reminds the builder to counter-sign until they do
Customers who wanted to re-read their agreement tapped through from their dashboard and were bounced straight back out, because the page redirected away as soon as a contract was signed — the one document they most wanted to review later was the one they could not open. It switches to a read-only copy instead of redirecting. The states that count as signable are a fixed set, so refreshing seconds after signing never drops the customer back into a waiting screen.
- Print-sign-scan contract cycles
- Customers unable to retrieve their own agreement later
- No audit trail around who signed and from where
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →