Skip to content
Embed · iframe

Put document filling
right inside your product.

Not every team wants to call an API, and not every customer should leave your app to sign a form. Embed a Mezdoc form with one iframe. When the user finishes, your app gets a message with the final PDF URL. Your flow, your page, our document engine.

Try it

Fill the embed. Watch your app get the result.

On the left is a form embedded in a pretend app. Submit it, and on the right you will see exactly what the parent window receives: a completion message carrying the finished PDF URL.

acme-portal.com/onboarding
Your app
Mezdoc embediframe
Your app receives
<-mezdoc:ready
// waiting for the user to submit...
Three steps

From template to embedded form.

1

Create an embed link

Pick a template, set mode to embed, and add your site to the origin allowlist. You get a tokenized link.

2

Drop in the iframe

Paste one iframe tag into your page. The form renders inside your app, in your layout.

3

Listen for completion

When the user finishes, the embed posts a message to your window with the submission id and the final PDF URL.

1. Embed the form
<iframe
  id="mezdoc-embed"
  src="https://app.mezdoc.com/embed/t/lnk_8fa2..."
  width="100%"
  height="640"
  style="border:0;border-radius:12px"
></iframe>
2. Listen for the result
window.addEventListener("message", (event) => {
  if (event.origin !== "https://app.mezdoc.com") return;
  const msg = event.data;
  if (msg.type === "mezdoc:completed") {
    // msg.submission_id, msg.status, msg.pdf_url
    showFinishedPdf(msg.pdf_url);
  }
});
Why teams embed

The form engine you do not have to build.

No form engine to build

Skip building fields, validation, file rendering, and signing. Embed the form and ship this week.

Your product, your flow

The form lives inside your page, in your onboarding or your portal. The user never leaves your app.

The PDF comes back to you

On completion you get the pdf_url and the audit trail (filler, time, SHA-256), ready to store or show.

FAQ

Embedding, answered.

How does my app know the user finished?

The embed posts a message to the parent window. Listen for window 'message' events; when you receive { type: 'mezdoc:completed' } you get the submission_id, the status, and a pdf_url for the finished document. Always check event.origin first.

Can I control which sites are allowed to embed?

Yes. Each embed link carries an allowedOrigins allowlist. The form only renders inside an origin you approve, so your link cannot be embedded on a site you do not control.

Does it match my branding?

The form lives inside your page and inherits your surrounding layout. You control the frame size and placement; the fields and flow are Mezdoc. Deeper white-label theming is on the roadmap.

Is it the same template as the API and the web form?

Yes. One template, one data model. Whether the data arrives by API, a hosted web-form link, or an embed, you get the same PDF and the same audit trail.

Embed a form in an afternoon.

One iframe, one message listener, and the finished PDF lands back in your app. See the other two ways to fill: the API and a hosted web form.