1
LISTING AGENT
Initiates Send for Signature
Listing agent accesses OfferDetails page for an accepted offer. Agent clicks "Send for Signature" action. SignatureModal component opens, allowing agent to select signers (buyer, seller, buyer agent, listing agent) and upload or confirm the binding contract PDF (binding_contract_url).
2
SYSTEM
Invokes sendForSignature Backend Function
Modal submits signer list and document URL to sendForSignature backend function. Function receives: offer_id, document_url (binding_contract_url), and signers array [{name, email, role}]. Function authenticates user and verifies offer status = "accepted" before proceeding.
3
SYSTEM
Creates Signature Request via Provider API
sendForSignature calls the e-signature provider API with the document and signer details. Provider creates a signature envelope/request. Returns: envelope_id (provider-assigned), signing_url per signer (for direct access), and status = "sent". All returned identifiers stored on the Offer entity.
4
SYSTEM
Persists Signature Metadata to Offer Entity
Offer entity updated with signature request metadata: envelope_id, signing_status = "sent", signing_initiated_at timestamp, signers array with per-signer status and signing_url. Each signer record: {name, email, role, status: "pending", signing_url}.
5
E-SIGN PROVIDER
Dispatches Signing Emails to All Signers
E-signature provider sends email to each signer with unique signing link. Emails contain document preview, signer name, and "Review & Sign" CTA. Provider manages email delivery, reminders, and expiration independently from the portal.
6
SIGNER (Any Party)
Reviews & Signs Document
Each signer opens their unique signing link (from email or portal). Reviews document in e-signature provider's hosted interface. Applies legally binding electronic signature. Provider records signature timestamp, IP address, and identity verification metadata per signer.
7
SYSTEM
Portal Checks Signature Status
SignatureStatus component on OfferDetails page calls checkSignatureStatus backend function on load. Function queries the e-signature provider API with the stored envelope_id. Provider returns current per-signer status array: pending | signed | declined | expired.
8
SYSTEM
Updates Per-Signer Status on Offer Entity
checkSignatureStatus updates the signers array on the Offer entity with current status per signer. SignatureStatus UI component renders status badges: green (signed), yellow (pending), red (declined/expired) per party. Agent sees real-time signing progress without polling.
9
E-SIGN PROVIDER
All Parties Sign → Document Completed
When all required signers have signed, provider marks envelope status = "completed". Completed signed document PDF available at provider's download endpoint. Provider may also send completion notifications to all signers.
10
SYSTEM
Final Signed Document Retrieved & Stored
On next checkSignatureStatus call: provider returns status = "completed" and signed document URL. System downloads completed PDF, uploads to platform file storage via UploadFile integration. signed_document_url stored on Offer entity. signing_completed_at timestamp recorded.