How to Collect Deposits on Your Payment Forms

Require a deposit up front and collect the balance later. No manual invoicing, chasing customers, or switching tools.

Build Time & Skill

20-30 min

Intermediate

What you'll learn

How to set up a deposit payment flow on your form using one of two methods: Card on File (Stripe or Square) or a second payment form (works with PayPal too).

Collect Deposits on Your Payment Forms

Collect Deposits on Your Payment Forms

Collecting a deposit protects your business and confirms customer commitment before you invest time or resources. Whether you run a service business, take event bookings, or manage project-based work, deposits give you a reliable way to secure revenue upfront while giving customers a flexible payment option. Cognito Forms lets you build this directly into your payment form – no third-party tools required.

Taking deposits with Cognito Forms helps you:

  • Reduce no-shows and cancellations. A financial commitment upfront gives customers more reason to follow through.
  • Improve cash flow. Collect partial payment at booking and the balance at completion, without manual billing.
  • Give customers a choice. Let customers decide whether to pay in full or put down a deposit, all from the same form.
  • Automate the balance collection. The remainder owed is tracked automatically, so nothing slips through the cracks.

Before You Begin

Before setting up deposits, make sure you have the following in place:

  • A connected payment processor. You’ll need Stripe, Square, or PayPal connected to your Cognito Forms account. Visit Settings > Payment to connect your account.
  • Team or Enterprise plan. Both deposit methods require a Team or Enterprise plan. The Card on File method (Method 1) uses Stripe or Square only. The Second Payment Form method (Method 2) works with any processor, including PayPal.
  • An existing payment form (optional). You can build one from scratch or use the Collect Full Payments or Deposits template as your starting point.

Two Ways to Collect Deposits

Cognito Forms gives you two methods for collecting deposits, depending on your payment processor and how you want to handle the balance. Both methods let customers choose between paying in full or paying a deposit at checkout – the difference is how the remaining balance gets collected later.

If you use… Use this method
Stripe or Square Method 1: Card on File
PayPal – or prefer a separate form for the balance Method 2: Second Payment Form

Method 1: Collect a deposit with Card on File

With the Card on File method, customers pay their deposit at checkout and their card is saved securely in Stripe or Square. When it’s time to collect the balance, you can simply charge the card on file.

This method works best when you want a streamlined experience for both you and your customer. The entire process happens on one form.

Set up your form

  1. Connect your Stripe or Square account to your form.

  2. Set up your payment form:

    • Start from scratch or use the Collect Full Payments or Deposits template.
    • If building your own, add the fields customers will choose from (like services or add-ons) and toggle on Collect Payment under Choice Options for each payment field.
      Enable Collect Payment for add-ons.
  3. Add a Calculation field, set it to the Currency type, and label it Subtotal. Set the calculation to add up all payment fields on your form. For example: =ChooseYourOption_Price+ChooseAddons_Price

  4. Add a Choice field to ask the customer how they want to pay. For example: “Pay Total Now” or “Pay Deposit (50% of Total)”

Configure payment logic

  1. Add a Price field and label it Amount Due Today. Use a conditional calculation to charge the full amount or the deposit based on what the customer selected. For example: =If DoYouWantToPayInFullToday = "Pay Total Now" then (Subtotal) else if DoYouWantToPayInFullToday = "Pay Deposit (50% of Total)" then (Subtotal)/2 else 0
    Use a Price field to show the amount due.

  2. Set the Item Name to reflect the customer’s selections. For example: =ChooseYourOption + (if ChooseAddons.Count()>0 then " with " +ChooseAddons else null). Set the Item Description to reflect the payment option chosen. For example: =DoYouWantToPayInFullToday

  3. Add another Calculation field (Currency type) and label it Remainder to Be Paid. Set it to display the balance only when the customer chose a deposit. For example: =if DoYouWantToPayInFullToday = "Pay Deposit (50% of Total)" then (Subtotal)/2 else 0

  4. In Payment Settings, set Keep Card on File to When and add a condition so the card is only saved when the customer chooses to pay a deposit.

Save the card on file when a customer chooses to pay a deposit.

Quick Tip

Charge the balance when you’re ready. Once a card is on file, you can charge the remaining balance directly from the entry in Cognito Forms. Learn more about collecting Card on File payments.

When to use this method

  • Service bookings with a hold. Collect a deposit to reserve a date or slot, then charge the balance after the service is complete.
  • Project-based work. Take a 50% deposit at the start of a project and charge the rest upon delivery — all without manually tracking what’s owed.
  • Catering or event orders. Secure orders with a deposit well in advance, then charge the final amount closer to the event date.
  • Recurring clients. Keep a card on file for clients who order regularly, making future charges faster and easier.

Method 2: Collect a deposit with a second payment form

With the Second Payment Form method, customers pay their deposit on the first form. When it’s time to pay the balance, they visit a second form, enter their email address, and the form automatically pulls in their name, address, and remaining balance from the original submission.

This method works with any payment processor (including PayPal) and is a good option if you prefer to keep each payment as a separate transaction.

Set up your forms

  1. Build your first payment form by completing the steps in Method 1 above. This form handles the deposit and calculates the remaining balance.
  2. Create a new form for the balance payment. Add an Email field where customers will enter the same email they used on the first form.

Configure the Lookup field

  1. Add a Lookup field. Under Look Up Choices From, select your first payment form. For the Choice Label, use the Insert Field dropdown to select the Email field.

  2. For the Include option, set the Email field on your first form to equal the Email field on this form. Set the Default Choices option to the same condition. This ensures the lookup matches customers by their email address.
    Include choices where the customer Email fields match.

  3. Set the Lookup field to show Internally or Never so customers won’t see it.

  4. In your Email field settings, select Show Custom Error – When and add a condition to display an error if the email doesn’t match any record on the first form. For example: =(Lookup.Email != Email)

  5. Add a custom error message so customers know what to do if there’s a mismatch. For example: “We could not locate your email address. Please try a different address.”
    Show a custom error when the customer's email address doesn't match the Lookup value.

Add payment detail fields

  1. Add Textbox fields for Name and Address. Set both to Read-Only – Always and use the Default Value setting to pull the information from the first form. For example: =Lookup.Name.FirstAndLast and =Lookup.Address
  2. Add a Price field for the balance. Set the Amount to reference the Remainder to Be Paid field on your first form. For example: =LookupEmail.RemainderToBePaid
  3. Set the Item Name to match the selections from the first form. For example: =Lookup.ChooseYourOption + (if LookupEmail.ChooseAddons.Count()>0 then " with " +Lookup.ChooseAddons else null).
  4. Set the Item Description to something like “Second payment”.
    Complete the payment on a second payment form.
Quick Tip

Share the second form link proactively. Consider sending the balance payment form link in an automated email notification after the customer submits the first form. This gives customers everything they need to complete the second payment without having to ask you for a link.

When to use this method

  • PayPal users. Card on File isn’t available with PayPal, so this method gives you a clean way to collect balances with any processor.
  • When you want separate transaction records. Each payment appears as its own transaction in your payment processor, which can simplify accounting and reporting.
  • Businesses that invoice in stages. Send the second form link at a natural milestone (project completion, delivery, or service date) rather than charging automatically.
  • Teams that prefer manual control. You decide when to share the balance form, giving you flexibility over timing without setting up automatic card charges.

Enhance Your Deposit Workflow

Once your deposit setup is running, these Cognito Forms features can take it further:

  • Send automated email confirmations. Use email notifications on your Submit action to send customers a receipt with their deposit amount, balance owed, and the link to pay the remainder later.
  • Use Guest Access to give customers a self-service payment portal. Instead of manually sending balance form links, invite customers to log in and view their submissions, track payment status, and complete outstanding payments on their own schedule.
  • Add coupons or discounts. Use coupons and discounts to offer promotional pricing on the total before the deposit amount is calculated.
  • Generate a payment summary document. Use Document Templates to automatically generate a PDF receipt or invoice that includes the deposit paid, balance remaining, and service details – ready to send to the customer.

Start Collecting Deposits Today

Deposits don’t have to mean extra admin work or awkward follow-up emails. With Cognito Forms, the entire process (from collecting the deposit to tracking the balance) is built into your form. Pick the method that fits your payment processor and get started with the Collect Full Payments or Deposits template.

Template

Collect Full Payments or Deposits

  • Accept full payments or deposits with a free, ready-to-use template
  • Securely store card info with Stripe or Square via Card on File
  • Customize and embed on your website to start collecting payments
Use this Template

FAQ