Property Sale Agreement Generator

Property Sale Agreement Generator

Property Sale Agreement Generator

Generate a legally formatted document structure for a real estate transaction.

Enter the details for the sale of the property. The required currency is the US Dollar ($).

1. Parties & Property

2. Financial Terms

3. Contingencies

Review the generated draft agreement below before downloading. The text is formatted for a professional document.

A. Earnest Money Deposit: The Buyer shall deposit ${earnestFormatted} ("Deposit") with the escrow agent upon execution of this Agreement.

B. Remaining Balance: The remaining balance of ${remainingBalance} shall be paid at closing.

4. CLOSING

The closing of this sale ("Closing") shall occur on or before ${prsa_state.closingDate || '[Closing Date Required]'}.

5. CONTINGENCIES

A. Inspection Contingency: This Agreement is contingent upon the Buyer completing all desired inspections within ${prsa_state.inspectionDays} calendar days from the Date of this Agreement.

B. Financing Contingency: This Agreement is contingent upon the Buyer obtaining satisfactory financing within ${prsa_state.financingDays} calendar days from the Date of this Agreement.

6. GOVERNING LAW

This Agreement shall be governed by the laws of the State where the property is located (USA).

7. SIGNATURES

_________________________
SELLER: ${prsa_state.sellerName}

_________________________
BUYER: ${prsa_state.buyerName}

`; prsa_previewWrapper.innerHTML = agreementText; } function prsa_tabSwitch(targetId) { prsa_tabButtons.forEach(btn => btn.classList.remove('prsa-active')); prsa_tabContents.forEach(content => content.classList.remove('active')); document.querySelector(`.prsa-tab-btn[data-tab="${targetId}"]`).classList.add('prsa-active'); document.getElementById(targetId).classList.add('active'); } function prsa_downloadPDF() { if (typeof jspdf === 'undefined') { alert('Error: jsPDF library not loaded for export.'); return; } // Check essential fields if (!prsa_state.sellerName || !prsa_state.buyerName || !prsa_state.address || !prsa_state.closingDate) { alert('Please fill out all required fields before generating the PDF.'); prsa_tabSwitch('input'); return; } const { jsPDF } = jspdf; // A4 size, points unit const doc = new jsPDF({ unit: 'pt', format: 'a4' }); // Set font to Times Roman (Standard legal document font) doc.setFont('Times'); // Get the content from the preview wrapper, including HTML formatting const content = document.getElementById('prsa-preview-wrapper'); doc.html(content, { callback: function (doc) { doc.save('Property_Sale_Agreement.pdf'); }, x: 40, y: 40, html2canvas: { scale: 0.6, // Scale down to fit A4 well }, width: 500, // Content width windowWidth: 700 // Render width (must be wider than content for context) }); } // --- Initialization and Event Attachments --- prsa_tabButtons.forEach(btn => { btn.addEventListener('click', (e) => { const targetId = e.target.dataset.tab; prsa_tabSwitch(targetId); }); }); // Attach input listeners for live updates prsa_inputForm.addEventListener('input', prsa_updateState); prsa_downloadPdfBtn.addEventListener('click', prsa_downloadPDF); // Initial setup document.addEventListener('DOMContentLoaded', () => { prsa_updateState(); // Populate form with initial state and generate first preview prsa_tabSwitch('input'); // Start on the input tab });
Scroll to Top