Online Notarization Platform

Online Notarization Platform

A step-by-step simulation of a Remote Online Notarization (RON) session.

Prepare Your Document

This is a simulation. A sample document will be used.

Verify Your Identity

ID Document Scan

Placeholder ID card

Identity document successfully analyzed.

Knowledge-Based Question

Which of the following streets have you previously been associated with?

Live Notary Session

This agreement is entered into on [Date], between [Party A] and [Party B] for the purpose of outlining the terms and conditions of their mutual endeavor. The parties agree to the full terms as specified herein, acknowledging that they have read and understood all clauses. This document constitutes the entire agreement between the parties and supersedes all prior discussions, agreements, or understandings of any kind. [...]

Signer:

Your signature will appear here

Notary Public

Signer

Notarization Complete

County of ${notaryCounty}

On this ${formatDate(today)}, before me, a Notary Public in and for said state, personally appeared ${signerName}, who proved to me on the basis of satisfactory evidence to be the person whose name is subscribed to the within instrument and acknowledged to me that they executed the same in their authorized capacity, and that by their signature on the instrument the person, or the entity upon behalf of which the person acted, executed the instrument.

This acknowledgment was completed via remote online notarization.

WITNESS my hand and official seal.

Amanda Notary

Notary Public, State of ${notaryState}

My Commission Expires: [Expiration Date]

`; finalDocumentPreview.innerHTML = docContent + notaryCertificate; }; // --- UI & TAB LOGIC --- const updateTabUI = () => { tabs.forEach(tab => tab.classList.toggle('active', tab.dataset.tab === currentTab)); tabContents.forEach(content => content.classList.toggle('active', content.id === `tab-${currentTab}`)); const currentIndex = tabOrder.indexOf(currentTab); prevBtn.disabled = currentIndex === 0; nextBtn.disabled = currentIndex === tabOrder.length - 1; if (currentTab === 'session') updateSessionView(); if (currentTab === 'final') generateFinalDocument(); }; const changeTab = (direction) => { const currentIndex = tabOrder.indexOf(currentTab); const newIndex = currentIndex + direction; if (newIndex >= 0 && newIndex < tabOrder.length) { currentTab = tabOrder[newIndex]; updateTabUI(); } }; // --- EVENT LISTENERS --- tabs.forEach(tab => tab.addEventListener('click', () => { currentTab = tab.dataset.tab; updateTabUI(); })); prevBtn.addEventListener('click', () => changeTab(-1)); nextBtn.addEventListener('click', () => changeTab(1)); kbaOptions.forEach(btn => { btn.addEventListener('click', () => { kbaFeedback.textContent = "Thank you. Your identity is confirmed."; kbaFeedback.classList.add('text-green-600'); }); }); signDocumentBtn.addEventListener('click', () => { signatureApplied = true; updateSessionView(); signDocumentBtn.textContent = 'Signature Applied'; signDocumentBtn.disabled = true; signDocumentBtn.classList.remove('bg-green-600', 'hover:bg-green-700'); signDocumentBtn.classList.add('bg-slate-400', 'cursor-not-allowed'); }); downloadPdfBtn.addEventListener('click', () => { if (typeof window.jspdf === 'undefined') { console.error('jsPDF is not available.'); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF({ unit: 'pt', format: 'a4' }); const signerName = getInputValue('signer-name') || '[Signer Name]'; const docTitle = getInputValue('document-title') || '[Document Title]'; const notaryState = 'Florida'; const notaryCounty = 'Miami-Dade'; const today = new Date(); const margin = 50; const maxWidth = doc.internal.pageSize.getWidth() - margin * 2; let y = margin; doc.setFont('times', 'bold'); doc.setFontSize(16); doc.text(docTitle, doc.internal.pageSize.getWidth() / 2, y, { align: 'center' }); y += 40; doc.setFont('times', 'normal'); doc.setFontSize(12); const bodyText = `This agreement is entered into on [Date], between [Party A] and [Party B] for the purpose of outlining the terms and conditions of their mutual endeavor. The parties agree to the full terms as specified herein, acknowledging that they have read and understood all clauses. This document constitutes the entire agreement between the parties and supersedes all prior discussions, agreements, or understandings of any kind. [...]`; const bodyLines = doc.splitTextToSize(bodyText, maxWidth); doc.text(bodyLines, margin, y); y += bodyLines.length * 12 * 1.15 + 80; doc.text('Signer:', margin, y); y += 20; doc.setFont('Zapfino', 'normal'); // A common cursive-like font in PDFs doc.setFontSize(22); doc.text(signatureApplied ? signerName : '', margin, y); y += 20; doc.setFont('times', 'normal'); doc.setFontSize(12); doc.text(signerName, margin, y); y += 50; doc.setLineWidth(1.5); doc.line(margin, y, doc.internal.pageSize.getWidth() - margin, y); y += 25; doc.setFont('times', 'bold'); doc.text('NOTARY ACKNOWLEDGMENT', doc.internal.pageSize.getWidth() / 2, y, { align: 'center' }); y += 25; doc.setFont('times', 'normal'); const certText = `State of ${notaryState}\nCounty of ${notaryCounty}\n\nOn this ${formatDate(today)}, before me, a Notary Public in and for said state, personally appeared ${signerName}, who proved to me on the basis of satisfactory evidence to be the person whose name is subscribed to the within instrument and acknowledged to me that they executed the same in their authorized capacity.\n\nThis acknowledgment was completed via remote online notarization.\n\nWITNESS my hand and official seal.`; const certLines = doc.splitTextToSize(certText, maxWidth); doc.text(certLines, margin, y); y += certLines.length * 12 * 1.15 + 50; doc.setFont('Zapfino', 'normal'); doc.setFontSize(18); doc.text('Amanda Notary', margin, y); y += 20; doc.setFont('times', 'bold'); doc.setFontSize(12); doc.text(`Notary Public, State of ${notaryState}`, margin, y); y += 15; doc.setFont('times', 'normal'); doc.text('My Commission Expires: [Expiration Date]', margin, y); doc.save('Notarized-Document.pdf'); }); // --- INITIALIZATION --- const populateSampleData = () => { document.getElementById('signer-name').value = 'Alex Johnson'; document.getElementById('document-title').value = 'Affidavit of Single Status'; }; populateSampleData(); updateTabUI(); });
Scroll to Top