Subcontractor agreement, e-signed against the PO

Email a subcontractor a signing link scoped to a specific purchase order and project; they read it, type their name, draw a signature, and it is captured with an audit trail.

What it is

An agreement sent from the order detail, pre-titled with the PO and pre-filled with an editable template covering scope, schedule, payment, insurance and licensing, indemnification and independent-contractor status. The body is frozen into the row at send time. The subcontractor opens a hosted page, signs, and the signature image, signer identity, IP and user-agent are recorded with the timestamp.

Also called: subcontractor agreement · sub agreement e-sign · get the sub to sign · supplier contract

See it
Subcontractor agreement, e-signed against the PO
Prepared for
Marlin Hoover
1140 Ridge Line Rd · Fair Play
Shell package$28,371
Concrete & site$8,237
Doors & windows$5,491
Trim & finish$3,661
Total
$45,760
Signature
The Send Agreement modal — title, supplier email, amount, editable agreement text — then the returned signing link. OrderModals.tsx `SendAgreementModal`. Sample data — no customer information appears here.
How it works
  1. 1The recipient email is pre-filled from the supplier's contact record but stays editable
  2. 2The agreement id is generated from a CSPRNG and doubles as the public signing-page token
  3. 3Sending emails the link and returns it, so it can also be copied and sent manually
  4. 4Signing flips status pending → signed, stamps IP and user-agent, and raises an admin alert
  5. 5The sign endpoint is IP rate-limited
  6. 6Status can also be cancelled if the builder revokes before signature
Why we built it

Migration 052 records the request: 'Feature (2026-from Adam): send a subcontractor an agreement to e-sign, delivered as an email link, scoped to a specific project or purchase order. Mirrors the customer change-order signature flow but for the supplier side.' The frozen body has its own reason: 'so future template edits don't rewrite signed history'. The token: 'opaque + unguessable, same pattern as estimate_links.id.'

The problem
  • Subcontractors start work with nothing signed
  • Printing, signing and scanning kills the paperwork
  • A template edit rewriting agreements already signed
Sound familiar?
What you get
A signature without paper
Scoped to the exact PO and project
IP, device and timestamp captured for the audit trail

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 →