When you send a contract or invoice to a client — connected or managed — Cradled generates a unique URL: a signing link for contracts, a payment link for invoices. These links are how your client interacts with the document without needing to log into Cradled.
Why they exist
- Managed clients don't have Cradled accounts. They need a way to sign and pay without signing up.
- Connected clients can sign contracts in-app, but the email link is a reliable fallback that also works on desktop.
How they're structured
Every link contains a long random token tied to a single contract or invoice. The token is the thing that authorizes access, so anyone with the link can open the document. Treat them like semi-sensitive links — fine to email, not ideal to post publicly.
- Contract signing links look like:
cradledapp.com/sign/<token> - Invoice payment links look like:
cradledapp.com/pay/<id>
What happens when a client opens one
Contracts: the client sees the contract body, signs (draw or type), and confirms. On submit, the contract becomes "signed" and you get a notification. If the contract requires both partners, the second partner gets their own signing link.
Invoices: the client sees the invoice, the amount, and (if you've set up Stripe) a Pay button that opens Stripe Checkout. If you use manual payment methods, they see your payment instructions instead.
Expiration and resends
Signing links don't auto-expire today — but you can cancel a contract to invalidate the link. If a client can't find their original email, you can resend the invitation from the contract or invoice detail page, which re-emails the same link.
Payment links stay valid until the invoice is paid, cancelled, or refunded.
If a link doesn't work
- "This contract has already been signed": the client signed it already, likely from a different device. Check the contract status on your end.
- "Invoice not found": the invoice was deleted or cancelled. Create a new one.
- Client claims the link is broken: copy the link from the contract/invoice detail page and send it to them directly — often the issue is the email client truncating a long URL.