Retainer Payments

Written By Timothy Murenzi

Last updated 6 days ago

If your contract includes a retainer, your client can pay it right on the signing page. The payment flows through your connected Stripe account and lands as a credit on the client's Workroom record — automatically applied to their next invoice.

Setup (one-time)

  1. Settings → Integrations → connect Stripe Connect

  2. Approve Workroom in the Stripe OAuth flow

  3. Wait for the "Connected" badge

You only need to do this once per studio. After that, every contract you send can collect a retainer.

On a contract

In the editor's details rail:

  1. Set Retainer amount (e.g. 1500)

  2. Pick Currency (USD default; CAD also supported)

  3. Save

The signer sees a "Pay Retainer" panel next to the signature. They can pay before or after signing.

What the client experiences

  1. Clicks Pay Retainer on the signing page

  2. Stripe's embedded checkout renders inline — card form, billing address, ZIP

  3. They submit; the page polls for confirmation

  4. On success, the panel flips to Paid ✓; an invoice receipt is emailed automatically

What lands in Workroom

  • A new Invoice named "Retainer for [Contract Name]" with RET- prefix on the invoice number

  • A Payment recorded against that invoice

  • A Credit of the same amount on the client's record, ready to apply to a future invoice

  • The invoice surfaces in Finances → Invoices with status Paid

When the retainer applies to an invoice

When you draft a regular invoice for that client, you'll see a Credits available card showing the retainer balance. Click Apply credit to deduct it from the new invoice.

Troubleshooting

  • "Pay link not ready yet — refresh in a moment." The Stripe invoice + share token didn't mint at send time (usually a Stripe Connect hiccup). Refreshing the signing page now triggers a backfill — the link should work on the next try.

  • The client paid but Workroom shows "Pending." Stripe's webhook may have been delayed. Open the contract's audit log; you should see retainer_paid within a minute. If not, go to Finances → Invoices → find the retainer invoice → click Refresh from Stripe.

  • "This contract is missing a client." Retainers require a linked client (so the credit has somewhere to land). Open the contract, link a client via the details rail, and try sending again.

  • The retainer invoice shows Discount, Markup, Freight rows. It shouldn't — those are hidden automatically on RET- invoices. If you see them, hard-refresh the page; some older browser caches need clearing.