How Invoice Share Links Actually Work
In this article
A share link doesn't point to your live invoice — it points to a frozen snapshot taken the moment you created the link. If you edit the invoice afterward, anyone holding the old link keeps seeing the version that existed when they got it, not your latest changes. That single fact explains most of the behavior people find surprising about share links, so it's worth understanding exactly what a share link actually is under the hood.
What Gets Stored When You Create a Share Link
When you generate a share link, the system creates a random token — effectively an unguessable string of characters — and stores it alongside a full copy of the invoice's data at that exact moment, not a live reference back to the invoice record. It also stores an optional password hash if you protected the link, an optional expiration timestamp, and the workspace and invoice group it belongs to. The link itself is just that token appended to a URL; anyone with the link can open it, but nobody can guess it by trying random values, since it's generated from cryptographically random bytes rather than a predictable sequence.
Why Editing the Invoice Doesn't Update Old Links
Because the share link stored a copy of the invoice data at creation time, not a pointer to the live invoice, any edits you make afterward — correcting a line item, changing the total, updating the due date — do not propagate to links that were already generated. If you need a client to see the corrected version, the reliable approach is to generate a new share link after making your changes, rather than assuming the old link will pick up the update automatically. This is a deliberate tradeoff: a frozen snapshot means the client always sees a consistent, unambiguous version of the document, and you have a permanent record of exactly what a specific link showed at the exact moment someone might have viewed and acted on it.
Password Protection
If you set a password when creating the link, it's never stored in plain text — only a bcrypt hash of it is saved. When someone tries to view a password-protected invoice, they submit the password, and the system compares it against the stored hash rather than looking up a stored plaintext value anywhere. This means even direct database access wouldn't reveal what the actual password was, only whether a guess matches.
Expiration
If you set an expiration window in days when creating the link, that gets converted into an absolute expiration timestamp at creation time — not a rolling window that resets on each view. Every time someone tries to open the link, the system checks whether the current time has passed that stored expiration timestamp. Once it has, the link stops working for everyone, including you, regardless of how many times it was viewed before that point or how recently it was last opened.
Revocation
Beyond expiration, you can revoke a share link manually at any time. Revocation sets a timestamp on the record rather than deleting it outright, and every lookup for that link explicitly checks that this revocation timestamp is empty before allowing access. A revoked link fails immediately and permanently — there's no way to un-revoke it and restore access to that specific link; you'd generate a fresh one instead.
What You Can See About Your Own Share Links
For any share link you've created, you can see whether it's password protected, its expiration date, when it was created, how many times it's been viewed, and when it was last viewed — all without exposing the password itself or requiring you to re-enter it. This gives you a way to audit who might have accessed a document and when, without needing to open the link yourself to check.
Frequently Asked Questions
If I delete the original invoice, does the share link still work? The share link's data was copied at creation time and stored independently, so it isn't directly dependent on the original invoice record continuing to exist in the same form. The link's own expiration and revocation rules are what determine whether it still resolves.
Can I change the password on an existing link? Passwords are set at creation time as part of that link's record. To use a different password, the practical approach is to revoke the old link and create a new one with the password you want, rather than trying to update the existing link in place.
Does viewing the link count toward anything, like a read receipt? The view count and last-viewed timestamp are tracked and visible to you, which functions as a lightweight read receipt — you can tell whether a link has been opened at all and roughly when, even without any separate notification system.
Related Articles
Client Statement vs. Accountant Report: What's the Difference
Two reports pull from the same data but serve opposite purposes — one is safe to hand to a client, the other very much isn't.
How the Reusable Service Catalog Speeds Up Invoicing
Why editing a rate in your service catalog never rewrites invoices you've already sent, and how the save-or-update logic actually works.
What's Actually Inside Your Account Data Export
A full breakdown of what the account data export includes, what it deliberately leaves out, and how it's generated on demand.
How the Accounts Receivable Aging Report Buckets Your Invoices
The exact day thresholds, currency grouping, and client-matching logic behind the aging report — and what it deliberately excludes.
How Discounts Are Applied Before Tax on Your Invoices
Tax is calculated on the discounted amount, not the original subtotal — a discount reduces your tax bill too, not just the price the client pays.