Share Purchase Agreement Generator

Share Purchase Agreement Generator

Create a simple share purchase agreement by filling in the details below.

Seller Information

Buyer Information

Company Information

The total purchase price for the Shares shall be ${data.totalPrice} (the "Total Purchase Price"), calculated at a price of $${data.pricePerShare} per Share. The Total Purchase Price shall be paid by the Buyer to the Seller in cash or by wire transfer of immediately available funds at Closing.

3. Closing

The closing of the transaction contemplated by this Agreement (the "Closing") shall take place on or before ${formattedClosingDate} (the "Closing Date"). At the Closing, the Seller shall deliver to the Buyer the certificate(s) representing the Shares, duly endorsed for transfer to the Buyer, and the Buyer shall pay the Total Purchase Price to the Seller.

4. Seller's Representations and Warranties

The Seller represents and warrants to the Buyer that:

    ${sellerWarranties.join('')}

5. Buyer's Representations and Warranties

The Buyer represents and warrants to the Seller that:

    ${buyerWarranties.join('')}

6. Governing Law

This Agreement shall be governed by and construed in accordance with the laws of the State of ${data.companyState}, without regard to its conflict of law principles.

7. Entire Agreement

This Agreement constitutes the entire agreement between the Parties with respect to the subject matter hereof and supersedes all prior agreements, understandings, and negotiations, both written and oral.

IN WITNESS WHEREOF, the Parties have executed this Agreement as of the Effective Date.

SELLER: ${data.sellerName}

BUYER: ${data.buyerName}

`; agreementOutput.innerHTML = agreementText; }; tabs.forEach((tab, index) => { if (tab.btn) tab.btn.addEventListener('click', () => { currentTab = index; updateUI(); }); }); nextBtn.addEventListener('click', () => { if (currentTab < tabs.length - 1) { currentTab++; updateUI(); } }); prevBtn.addEventListener('click', () => { if (currentTab > 0) { currentTab--; updateUI(); } }); [shareCountInput, pricePerShareInput].forEach(input => input.addEventListener('input', calculateTotal)); downloadPdfBtn.addEventListener('click', () => { const { jsPDF } = window.jspdf; const pdfExportContainer = document.getElementById('pdfExportContainer'); pdfExportContainer.innerHTML = agreementOutput.innerHTML; html2canvas(pdfExportContainer, { scale: 3, useCORS: true, windowWidth: pdfExportContainer.scrollWidth, windowHeight: pdfExportContainer.scrollHeight }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const pdfHeight = pdf.internal.pageSize.getHeight(); const canvasWidth = canvas.width; const canvasHeight = canvas.height; const ratio = canvasWidth / canvasHeight; const imgWidth = pdfWidth - 20; // with margin const imgHeight = imgWidth / ratio; let heightLeft = imgHeight; let position = 10; pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - 20); while (heightLeft > 0) { position = -imgHeight + heightLeft; pdf.addPage(); pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight); heightLeft -= (pdfHeight - 20); } pdf.save('Share_Purchase_Agreement.pdf'); pdfExportContainer.innerHTML = ''; }); }); // --- INITIALIZE APP --- const today = new Date().toISOString().split('T')[0]; const future = new Date(); future.setDate(future.getDate() + 14); const futureDate = future.toISOString().split('T')[0]; document.getElementById('agreementDate').value = today; document.getElementById('closingDate').value = futureDate; calculateTotal(); updateUI(); });
Scroll to Top