The PDF-as-invoice convention came from a world where email attachments were the easiest universal format. That world is gone. Invoices today bounce off spam filters that flag unexpected attachments, sit unopened in mobile previews, and get re-named so often that the third revision of a single invoice ends up as "invoice (final v2 actually-final).pdf" in someone's downloads folder.
A share link — a private URL that opens to the invoice as a stateful page — fixes most of these problems and adds a few useful ones on top.
What's wrong with PDF attachments
Three things, in order of how often they actually cost you money:
Deliverability. Many corporate mail filters treat unexpected attachments as suspicious by default. An invoice from a vendor the buyer hasn't whitelisted is exactly the profile filters are trained to quarantine. You won't know — the email just doesn't arrive. Six weeks later you're chasing payment for an invoice the AP team never saw.
Mobile friction. PDFs in mobile mail clients open in a preview pane that's the wrong shape, requires a tap to enlarge, and offers no easy action beyond "save." A recipient who'd happily pay an online invoice with one click instead defers to "when I'm back at my computer," then forgets.
No state. Once a PDF leaves your outbox, you have no idea what happens to it. Was it opened? Forwarded? Saved? Did the AP team get it? You're chasing in the dark.
A share link addresses all three. It's a normal URL — no filter flags it. It opens to a page sized for whatever device the recipient is on. And you can see when it was viewed.
Why "private link" beats "public URL"
There's a spectrum between "anyone with the URL can see this" and "you need to log in to see this." A share link sits at the right point on that spectrum: unguessable, revocable, scoped to one resource.
Practically: the URL contains a random token long enough that nobody guesses it. 192 bits of entropy gives you 32 characters that no brute-forcer will ever stumble onto. Each token is scoped to a single invoice or quote — even if one leaks, nothing else in your account is exposed.
The recipient doesn't need an account. They click the link, the page loads, they see the invoice. Same as a PDF, except now it's a real page with real interactions.
What the page should let the recipient do
Three things, no more:
- See the document. Cleanly. Branded so the recipient knows it's from you. Computed totals shown — many invoicing systems store inputs (line items, tax rate) rather than computed totals, and the page should be the canonical view that does the arithmetic visibly.
- Take the next action. For an invoice with a payment link, that's "Pay now." For a quote, that's "Accept" or "Decline." For both, the action lives on the page, not in a separate flow.
- Send a question. A small form that routes a short message to the issuer's email. No reply-to chain that gets lost, no exposed contact address that auto-extractors can scrape.
Anything beyond that is friction. The recipient is not a customer of your invoicing platform; they're someone who got linked to a document. The job is to remove every step between "they have the link" and "the action is taken."
What the page should not expose
It's tempting to surface everything you have on the invoice, but most of it doesn't belong on a public page:
- Your internal account ID for the client
- The reminder schedule and history
- FX snapshot data, ledger references, payment provider IDs
- Any other invoices for the same client
- Your business profile internals beyond what's already on the document
The safe view should be a whitelist — pass through exactly the fields the recipient needs and nothing else. If it ever leaks, it's just a single invoice.
What you get back: opens, but not surveillance
Logging the access is the quiet value. You can see when the link was opened, from how many distinct IPs, and on roughly what device class. This is useful for two narrow purposes:
- Confirming the invoice was actually received. If 14 days have passed and the access log is empty, you have a much better chase than "did this arrive?" — you know it didn't.
- Distinguishing "they haven't seen it" from "they've seen it and haven't paid." Two different conversations.
Resist the urge to instrument more than this. You don't need geolocation, you don't need device fingerprinting, and the recipient doesn't expect to be tracked beyond "did the page load." Keep the access log at the last 50 entries — enough for context, not enough for surveillance.
Revocation: the unsung feature
A share link should be cheap to revoke. If a deal goes cold, if you discover an error after sending, if the wrong document went to the wrong recipient — one click should kill the URL.
Revocation should be a hard 404, not a "this document has been revoked" page. The latter leaks the existence of the resource. The former says nothing.
You'd be surprised how often this comes up. Quotes that you wish you hadn't sent at that price. Invoices to clients who turn out to have an unpaid balance that should have flagged earlier. Documents to addresses that turn out to be typos. Revoke-and-resend is faster and cleaner than "please ignore that last email."
What stays in email
This isn't about replacing your invoice-delivery email. The share link should still arrive by email — just as a URL in the body rather than a PDF in the attachment slot. The email is the carrier; the link is the payload.
The email should be short. Three sentences is usually enough: here's the invoice, here's the amount, here's the link. The amount in the email body, even if approximate, helps the AP team triage when the bill lands.
What Plain Statement does
Every invoice and quote can be shared with a single click. The link is a 192-bit random token, scoped to that one document, opening on a clean branded page. The recipient sees the document, pays through the integrated payment link (if you've set one), accepts or declines a quote, or sends a short message back to your issuing email. The access log is bounded at the last 50 opens. Revoking is one click and instant.
Share links are part of the Basic plan. The recipient view at /portal/{token} requires no account, anywhere. Try the underlying free invoice generator — share links unlock once you save the invoice to an account.