Deliverables held until payment
Deliverables held until payment
You can attach the actual files (or a snapshot of a code repository) you're delivering to a milestone or invoice, and have Handl automatically hold them back from your client until they've paid.
Steps
- Attach one or more files — or a linked GitHub repository snapshot — as deliverables on a milestone or invoice.
- While you're still assembling them, they're completely invisible to your client.
- As soon as you send the linked invoice, each deliverable becomes visible to the client, marked Locked — they can see its name and size, but can't open or download it yet.
- Once that invoice is paid in full, every locked deliverable automatically flips to Released, and the client gets a Download or Open button.
- Need to release something early — for a trusted client, or a payment you're tracking outside Handl? Open the deliverable and choose Release now to release it manually.
Where clients see this
Deliverables show up consistently wherever they're relevant — on the project's Milestones tab, on the invoice itself, and even on a one-click payment link — with a note reminding the client they'll be "released as soon as this invoice is paid."
Good to know
- Releasing is one-way — if a payment is later refunded or disputed, a released deliverable stays released.
- If you void the invoice before it's paid, any locked deliverables tied to it automatically return to draft, so nothing leaks out unpaid.
- A whole group of files can be bundled as a package and locked or released together, rather than one by one.
- If a project or invoice has no deliverables attached, this section simply doesn't appear — no empty placeholders.
FAQs
Can I swap a file after it's locked? Replace it before sending the invoice where possible — once locked, treat the attached file as final for that invoice.
Does this work for source code, not just documents? Yes — you can attach a snapshot of a GitHub repository at a specific commit as a deliverable, held under the same lock-until-paid rules (see "GitHub repository snapshots" in Integrations).
Can I release everything manually instead of waiting for payment? Yes, at any time, using Release now.