Stripe logo

Bill extra work on the client's next invoice

A costed change request attaches an invoice item to the client's existing Stripe customer, so extra work lands on their next invoice.

When this happens

New submission on your "Order add-ons" form

Do this

Find the customer and create an invoice item in Stripe for each requested add-on

One-directional. A submission triggers the action — nothing is written back into your form.

Extra work is the easiest money to lose. A client asks for something mid-project, the team does it, and by invoice day nobody can agree what was added or what it was worth.

Agencies and freelancers put a change request form in front of that conversation. Each submission carrying a cost attaches an invoice item to the client's existing Stripe customer, where it waits as a pending line until the next invoice is raised — written down while the detail is still fresh.

Setting it up

  1. 1

    Publish the add-ons form and tell clients to use the email address on their account. Find Customer matches on that email and nothing else, so a personal address sends the search looking for someone who does not exist.

  2. 2

    Use conditional logic so Additional Cost Estimate (if applicable) only appears when the budget-impact question is answered Yes. A blank cost field on a form that always shows it invites zero-value invoice items.

  3. 3

    In Zapier, set the formformform trigger to New Submission, select the add-ons form, and pull a sample that has a real cost figure in it.

  4. 4

    Add a Zapier filter that continues only when "Does this change impact the project budget?" is Yes, so timeline-only changes are recorded in the responses list and never reach billing.

  5. 5

    Add Stripe's Find Customer action searching on Email Address, and leave the create-if-missing option off. A failed search is a signal that the client is not set up yet, not an invitation to open a second account for them.

  6. 6

    Add a Formatter step to turn Additional Cost Estimate (if applicable) into a whole number of the smallest currency unit, stripping any symbol and multiplying by 100.

  7. 7

    Add Create Invoice Item against the found customer ID, combining Type of Change and Requested Change Description into the description so the line explains itself on the invoice, and set the currency to match their existing invoices.

  8. 8

    Run a test change request, check it appears under the customer's upcoming invoice in Stripe, then switch the Zap on.

What maps where

Using the Project Scope Change Request as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldStripe
Email AddressSearch key for Find Customer in Stripe
Requested Change DescriptionDescription on the invoice item
Additional Cost Estimate (if applicable)Amount on the invoice item, in the smallest currency unit
Type of ChangePrefix on the invoice item description
Project NameInvoice item metadata, so the line reads against the right project

Variations worth knowing

Cap what can be billed without a human

Split the Zap with a Zapier path on the cost figure. Anything under your threshold goes straight to Create Invoice Item; anything above stops for review, so a mistyped estimate cannot quietly become a four-figure line on a client's invoice. The form stays the same in both cases.

Invoice the change on its own

Clients who are not on a subscription have no next invoice for the item to attach to. Add a Create Invoice step after the item, left as a draft, so the change can be billed on its own once the work is signed off rather than waiting for a cycle that never comes.

If something isn't arriving

Find Customer returns nothing and the Zap halts.

The search matches the email on the Stripe customer exactly, and clients often fill the form in from whichever inbox they have open. Pre-fill the email in the form URL you send them, or keep a short list of account emails and check the failed runs in Zapier weekly.

Invoice items pile up but never appear on an invoice.

A pending invoice item waits until an invoice exists for that customer. Subscription clients pick items up at the next billing cycle automatically; everyone else needs an invoice raised, either by adding a Create Invoice step or by drafting one in Stripe.

Frequently asked questions

Can the client approve the extra cost on the form?

They can agree to it in writing — a checkbox capturing acceptance of your change terms is an ordinary form field. It is a record of agreement, not a signature product and not a payment, so the actual charge still happens on the Stripe invoice.

Does the client see a running total of add-ons?

Not on the form. Nothing flows back from Stripe into a submission, so the place to show a running total is Stripe's upcoming invoice or the hosted invoice page, either of which you can send the client a link to at any point.

What currency does the invoice item use?

Whatever you set on the Create Invoice Item step, and it has to match the currency of the invoice it joins. Stripe will not mix currencies on one invoice, so a client billed in euros needs a euro item even if the form collected the figure without a symbol.

Related automations

Build the form first

The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.

Start free