This guide is for a WordPress site that will host the RON customer signing experience. Your signer opens a normal NotaryCentral invitation, lands on a page on your WordPress domain, and completes the NotaryCentral flow inside that page.
For the platform-independent explanation, see Embed the NotaryCentral Customer Experience. This WordPress guide covers the page editor, the code block, and the checks to make before enabling live invitations.
Check that your WordPress site can run the embed
You need a public HTTPS WordPress page and permission to publish an iframe and JavaScript. The script is essential: each invitation carries a different nc_path, so a fixed iframe URL cannot send every signer to the right step.
- Self-hosted WordPress: Use an account that can publish the required code. WordPress may remove
<script>and<iframe>when the editor account lacks theunfiltered_htmlcapability. Verify the published page, not just the editor preview. WordPress Custom HTML documentation - WordPress.com: Iframes and JavaScript require a plugin-enabled plan with hosting features activated. A site that strips either tag cannot use the code block below as-is. WordPress.com custom code requirements
If your theme, host, or security policy prevents scripts in page content, ask your WordPress developer to put the same HTML and JavaScript in a small site plugin or page template. Do not paste PHP into a page block.
1. Create a dedicated signing page
In WordPress → Pages → Add New, create a page such as Join your signing session. Set its permalink to a stable path, for example:
https://yourdomain.com/notary-signing/
Publish the page so visitors can open it without a WordPress login. If your theme offers a full-width page template, select it to give the signing room more space. Keep popups, sticky bars, and chat widgets off this page so they do not cover the camera controls or signing document.
If you use redirect, caching, or analytics plugins, make sure they preserve the invitation's query string and do not record full invitation URLs containing signer tokens.
2. Add a Custom HTML block
Insert a Custom HTML block on that page. Paste the following code, replacing https://app.notarycentral.org only if your NotaryCentral customer app uses a different official origin. The page should contain one copy of the snippet.
<div id="nc-signing-embed">
<p>Secure signing session powered by NotaryCentral</p>
<p id="nc-signing-message">
Open your NotaryCentral invitation link to join your signing session.
</p>
<iframe
id="nc-signing-frame"
title="NotaryCentral signing session"
allow="camera; microphone; display-capture; geolocation; clipboard-read; clipboard-write; fullscreen"
style="display:none;width:100%;height:90vh;min-height:700px;border:0"
></iframe>
</div>
<script>
(() => {
const appOrigin = 'https://app.notarycentral.org';
const frame = document.getElementById('nc-signing-frame');
const message = document.getElementById('nc-signing-message');
function loadInvitationRoute() {
const path = new URLSearchParams(window.location.search).get('nc_path');
frame.removeAttribute('src');
frame.style.display = 'none';
message.style.display = 'block';
if (!path) return;
try {
const destination = new URL(path, appOrigin);
if (
destination.origin !== appOrigin ||
!destination.pathname.startsWith('/customer/')
) return;
frame.src = destination.href;
frame.style.display = 'block';
message.style.display = 'none';
} catch (error) {
console.error('Invalid NotaryCentral invitation route', error);
}
}
loadInvitationRoute();
window.addEventListener('popstate', loadInvitationRoute);
})();
</script>
The code reads the nc_path added to your WordPress page URL by NotaryCentral, checks that it is a customer route on the configured NotaryCentral origin, and uses it as the iframe source. It preserves the invitation's route and query parameters, including the signer token, without hard-coding a session URL in WordPress. The allow attribute lets the embedded signing flow request camera and microphone access.
After updating the page, open the published page and inspect its HTML. Confirm the iframe and script are still present. If WordPress removed them, use a code-capable account, supported hosting plan, or a developer-managed plugin/template. The ordinary WordPress Embed block is not a substitute for this dynamic nc_path page.
3. Enter the WordPress URL in NotaryCentral
Open Embedded customer experience settings and use the RON customer signing experience section:
- Leave Enable embed off while you set up the page.
- Set Signing page URL (your website) to the published WordPress page, such as
https://yourdomain.com/notary-signing/. Enter the page URL without a query string or fragment. - Set RON allowed origin to
https://yourdomain.comif you use this optional field. Include only the scheme and host, not/notary-signing/. - Select Save.
Use the exact host visitors will see. For example, https://www.yourdomain.com and https://yourdomain.com are different origins. If WordPress redirects between them, use the final public page URL and matching origin.
4. Test before enabling live invitations
On the same NotaryCentral settings page, select Check my page. Review the HTTPS, public access, redirect, and iframe results. Then select Send myself a test invitation and open the email link in a private browser window. The test invitation checks routing and embedding without creating a signing session.
Check these three addresses during the test:
| Place | Expected result |
|---|---|
| Browser address bar | Your WordPress signing page, with nc_embed=1 and an encoded nc_path |
Iframe src | A https://app.notarycentral.org/customer/... URL |
| NotaryCentral settings | The same WordPress page URL and its matching allowed origin |
When the checks pass, turn on Enable embed, save again, and run one complete RON signer test: send a fresh signer invitation, complete the system check and any identity steps, and confirm the signing room appears while the browser address bar stays on your WordPress domain. Test camera and microphone permissions on the browsers your signers use.
WordPress troubleshooting
| Symptom | Check |
|---|---|
| The page only says “Open your NotaryCentral invitation link” | Open the original emailed invitation. If its WordPress URL lacks nc_path, check redirects and caching rules that may remove query parameters. |
| The iframe or script disappeared after publishing | Your editor permissions, WordPress.com plan, or a security plugin may strip custom code. Check the published HTML and WordPress's code requirements. |
| The iframe is blank or blocked | Check the final WordPress origin in NotaryCentral, HTTPS, any site's Content Security Policy frame-src and script-src rules, and browser console errors. |
| Camera or microphone is unavailable | Check the iframe's allow attribute, browser permissions, and whether the signer opened the invitation inside an email app's embedded browser. |
| The signer sees the wrong step | Use the original invitation link. Never paste a particular signer's /customer/... URL into the page's static iframe markup. |
The WordPress page is the parent website; NotaryCentral is the embedded iframe. The browser address bar showing your domain alone does not prove the iframe loaded. Use the iframe check and a full signer test to verify both parts of the experience.