Work Approval & Lien Waivers
A Smith Douglas vendor is not paid until two things happen: the builder approves the work, and the vendor uploads a lien waiver. Both are tracked through the portals.
At a glance
- Two preconditions for any vendor payment: (1) Builder approves work in Builder Portal, (2) vendor uploads lien waiver in Trade Portal (or via DocuSign).
- Approval audit lives in
BuilderPortalWorkOrderApprovalLog; lien waivers inVendorActivityLienWaverReq/VendorActivityLienWaverTrans. - Approval queues to BC via
TransmissionPOApprove. BC payment status syncs back viaTransmissionPaymentStatus.
The pay flow
Section titled “The pay flow”1PO is generated (see Purchase Orders).
2Trade does the work on the lot.
3Builder approves in the Builder Portal (
WorkApproval.aspx) — AJAX calls workApproval.asmx → spProcessPaymentReview (@BuilderPortal = 1).4BuilderPortalWorkOrderApprovalLog stores the audit; the stored proc queues
TransmissionPOApprove for the BC worker.5Lien waiver requested via
VendorActivityLienWaverReq.6Trade uploads in
lien-wavers.aspx or signs via DocuSign.7BC pays the vendor; status syncs back via
TransmissionPaymentStatus.Tables
Section titled “Tables”The approval audit log + the two lien-waiver tables + three transmission lookups.
Full table reference
| Table | What |
|---|---|
BuilderPortalWorkOrderApprovalLog | Every approval logged. |
VendorActivityLienWaverReq | Open lien-waiver requests. |
VendorActivityLienWaverTrans | Completed lien-waiver transactions. |
TransmissionPOApprove | Outbound queue to BC. |
TransmissionPaymentStatus (lookup) | The status BC reports back. |
TransmissionStatus (lookup) | The transmission’s own state. |
Common gotchas
Section titled “Common gotchas”The three problems that hold up a vendor payment most often:
Wrong-activity approvals, late estimates, missing lien waivers
- Approving the wrong activity. Use the Builder Portal’s “unapprove” flow; manual fix in the CSR folder is
Unapprove Work.sql/Unapprove Workapproval.sql. - Approve before estimate runs. A late Estimate that hasn’t run will block transmission. See
vwTransmissionPurchaseOrderError. - Missing lien waiver. Bills hold in BC until the matching Lien Waiver row is closed.
Where in the apps
Section titled “Where in the apps”- Builder Portal → WorkApproval.aspx.
- Trade Portal → lien-wavers.aspx, DocuSign flow.
- SMART 2.0 → accounting/ to research a held bill.