How to create a payment form

Creating a new payment form

To create a new payment form:

  1. Login to your Cognito Forms account.
  2. Select the dropdown arrow next to the New Form button on the forms home page. From here, you can create a new form from scratch, or choose a pre-built template.
  3. Some templates already have payment fields: Basic Food Order Form, Basic Sales Form, Catering Deposit, Donation, Membership Dues and Parking Ticket Payment.

Adding payment to an existing form

After logging into Cognito Forms, click the name of the existing form you want to collect payment from. You can choose from one of four field types to collect payment:

  1. Choice
  2. Yes/No
  3. Currency
  4. Price

The currency of your form’s Payment fields will be determined by the location settings of your form and/or organization. If you have more than one field on your form that is collecting payment, the amounts from each field will be added together and used for the subtotal.

Payment fields

Hidden payment fields (set to Internal or Never view) still contribute to the order total on a payment form.

Choice fields

Quick Tip

If you have a rather large inventory, save time by copying your list from Word, Excel, etc. and then pasting it into the first choice option line. The list will instantly populate down with all of your items.

Choice fields

Assign prices and values, calculate charges, and limit quantities from the Choice Options section in your Choice field settings.

Collect Payment: This option allows you to connect your form to one of our fully integrated payment processors. Once your form is connected to your payment account, a list of charges and additional fields for collecting credit card information will automatically appear at the bottom of your form.

Assign Prices: This option allows you to specify a price for each item. These prices will appear in whichever currency is selected in your form settings.

Limit Quantities: This option allows you to limit the number of times a specific choice option may be selected based on available quantity. Learn more about creating a product inventory.

Yes/No fields

Yes/No fields

Assign prices and calculate charges using yes/no options from radio buttons, a checkbox or toggle.

A charge will only occur when a user selects the value that makes the statement true. For example, if you use the field to ask if a user would like to upgrade to a higher quality item, they will only be charged if they select “yes”.

In this example, “yes” is our true value and “no” is our false value. Now, if it is true that the user would like to upgrade to premium, they are charged the $50 you set as the upgrade price.

You can set the field to default to the true or the false value, but charges will still only occur when the true value is selected.

Currency field

Currency field

Allow users to specify the amount they would like to be charged, such as for donations.

If you’d like to collect custom payments from each user, add a Currency field and check “Collect Payment for This Field.” The amount entered by the user when they fill out the form is the amount they will be charged. You can set a default or suggested value for this field, but users will still be able to modify the amount.

Price field

Use the Price field to set a fixed price item, or create calculations that result in a charge, like additional quantities.

The Price field always collects payment, so it will automatically prompt you to connect with your payment account, if you haven’t already done so. Then you’ll need to set the amount to be charged, whether it’s a fixed price or determined by calculating the results of other fields.

Fixed Amount Calculated Amount
Fixed Amount Calculated Amount
Quick Tip

For help setting up calculations, you can always click the orange lightning bolt.

In addition to setting the amount, you also have the option of setting the item name and description as it will appear on the user’s receipt. These can be fixed labels, or you can use calculations to pull data from other fields.

Fixed Label Result
Fixed Label Fixed Label Result
Calculated Label Result
Calculated Label Calculated Label Result

Calculating quantities

Let’s say you want to sell boxes of cookies online. You could set up a Choice field with all your cookie varieties, then a Number field where users can enter the number of boxes they’d like to purchase (let’s call that field ‘How many boxes?’).

First, you’ll need to assign prices to each cookie variety:

Assigning prices to products.

Next, find the Specify Quantity option in your Choice field settings, and select the ‘How many boxes?’ field. Now, the product price will automatically be multiplied by the specified quantity. You can also put these fields into a repeating section to allow users to order multiple boxes of different varieties of cookies — like 3 chocolate chip, 4 peanut butter and 2 oatmeal raisin.

Setting a minimum purchase amount

To require a minimum purchase amount on your order form:

  1. Add a Calculation field toward the bottom of your form labelled ‘Final Total’. Set the field type to Currency.

  2. Create a calculation to generate the subtotal. You will need to add up all the payments fields on your form (ex: =PaymentField1 + PaymentField2 + PaymentField3). If your payments fields are inside a repeating section, you can use the Sum function to generate the total (ex: =MyOrder.Sum(Quantity*Product_Price)).

  3. Select the Custom Error option, and set an error to appear when the total price is less than the minimum purchase amount (ex: $10):
    Show a custom error when the final total is less than $10.

  4. Make sure to include a custom error message (ex: “Order total must be at least $10.”).

  5. Save your form.

Check out our pre-built template to see this calculation in action!

Payment settings

Under your Payment Settings (accessible by clicking Payment Settings in the footer or by clicking on the payment area at the bottom of the form), there are multiple options to help customize your payment setup.


Connect your payment forms to one of our secure payments processors (PayPal, Stripe, and Square). When selecting a payment processor, you’ll be taken to a new window where you can register for a new account or connect your existing account. Learn more about connecting your payment account.

Process Payment

Similar to conditional logic for requiring other fields, you can opt to set conditions on when payment is required.

  • Always – Always collect payment from every customer that submits your form. This option is selected by default.
  • When – Only process payment when specific conditions are met. After selecting this option, the Conditional Logic Builder dialog will display allowing you to select when to process payment. You can set multiple conditions within the builder, or you can select the “Advanced Editor” tab to create more complex calculations. Please refer to our blog post for more information about conditionally requiring payment.
  • Never – The form does not collect payment and only issues invoices.

If you’re collecting payment later, you can review the entry after it’s been submitted to collect payment and resolve your transactions. Check out our help topic on managing payment entries for more information.

Keep Card on File

This feature is available to organizations on the Team and Enterprise plans.

Take advantage of the ability to securely store customer credit and debit cards in Stripe or Square for future use – while staying PCI compliant. Learn more about card on file payments.

  • Always – Collect credit card information from every customer that submits your form.
  • When – Only collect credit card information when specific conditions are met. After selecting this option, the Conditional Logic Builder dialog will display and allow you to determine when to keep credit cards on file.
  • Never – Credit cards are never kept on file. This option is selected by default.

Map Billing Fields (Stripe/Square only)

Mapping your form’s billing fields helps verify a customer’s information and creates a new customer in Stripe or Square when you collect payment. This information will be included on the form confirmation page and email receipt (if email notifications are enabled). Learn more about mapping billing fields.

Include Processing Fees

If the currency of your payment form does not match the currency of your Stripe account, you may be subject to additional conversion fees from Stripe and you will not be able to include processing fees.

Include Processing Fees

Stripe only: Stripe users on our Individual and Pro plans are charged 1% of each successful transaction, plus Stripe’s processing fees. Check this box if you’d like to pass these fees onto your customers, instead of having them subtracted from the original total. You can set a custom label for these fees, or leave the default label of Processing Fees.

Show Subtotal

Check this box if you’d like to show the subtotal and any applicable fees at the bottom of your form. This option is selected by default.

Show Line Items

Line items represent the individual fields on your form you are charging for. Line item labels are pulled from information on your form. For Choice fields, the line item name will match the field label, and the line item description will match the option chosen. For Yes/No and Currency fields, the line item name will match the field label, and there will not be a line item description. For Price fields, you can specify the line item’s name and description in the Field Settings.

Check this box if you’d like to show the individual line items and amounts at the bottom of your form and on your customer’s receipt. This option is selected by default.

Additional Fees

You can also include additional fees for each transaction. These fees will appear after the subtotal, at the bottom of the form, and on your customer’s payment receipt. You can either set a fixed amount in the box marked with a dollar sign ($) or a percentage of the subtotal in the box marked with a percent symbol (%). Click the plus sign (+) to add multiple fees, or the trash can to remove them. Any fields left blank will not appear on your form.