KamoCRM

Borrower consents are recorded as evidence, submit needs them, and each signer opens only their own link

FeatureSecurityService
Shipped
November 11, 2026 at 9:49 AM UTC
Author
Kamo
Commit
7635169

A borrower now gives five consents in the portal, each its own versioned text per lender (default v1 seeded with its hash on first touch, a lender overrides with a higher version) and each grant or withdrawal a WORM consent record with the hash of the exact text shown, IP, device and a JSON proof: e-sign, credit authorization (FCRA), privacy notice (GLBA), calls and texts (TCPA; one SMS and one call record per action) and the URLA Section 6 acknowledgments, signed with a typed name. GET/POST /{uid}/consents are party-gated with no operator bypass; a grant on a text that changed answers 409 TEXT_CHANGED. POST /{uid}/submit refuses with 409 CONSENTS_MISSING until the required four are granted, is a no-op on an application already taken, and otherwise moves the file to Application Taken through the same pipeline path the borrower's loan-file submit uses. This also fixes the e-consent endpoints, which have never worked: the disclosure text was saved without its NOT NULL body hash. /econsent now delegates to the new service. The closing desk marks which signer is the signed-in borrower (isMe), and a borrower can no longer open a co-borrower's signing link (403 NOT_YOUR_SIGNATURE); staff are unchanged. A malformed ITIN or passport on a borrower save answers 400, and a credit pull sends the ITIN when there is no SSN.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing