# Payment

You can collect Stripe payments with the **Payment** block in the form editor for free on every plan. Makeform charges no payment fee; Stripe’s own fees apply.

Makeform is a free AI form builder: describe what you want to collect and it builds the form for you, with unlimited forms and submissions on the free plan.

![Payment Form Example](https://fs.pagegun.com/p/BtaPkTIL/media/ad14ba2d.webp)

:::callout{type="success"}
Payment collection is completely **free** for all Makeform users. Makeform does not charge any fees — only standard Stripe processing fees apply.
:::

---

- [What do I need to collect payments?](#what-do-i-need-to-collect-payments)
- [Payment fees](#payment-fees)
- [Add payment to your form](#add-payment-to-your-form)
- [Payment settings](#payment-settings)
  - [Amount type](#amount-type)
  - [Currency](#currency)
  - [Payment methods](#payment-methods)
  - [Email receipts](#email-receipts)
- [View payments](#view-payments)
- [Dynamic pricing](#dynamic-pricing)
- [Frequently asked questions](#frequently-asked-questions)

---

## What do I need to collect payments?

To collect payments through your Makeform forms, you need:

1. **A Makeform account** (Free, Pro, or Business)
2. **A Stripe account** (free to create at [stripe.com](https://stripe.com))

Makeform uses Stripe to process payments securely. Stripe is a trusted payment platform used by millions of businesses worldwide. When you connect your Stripe account to Makeform, payments go directly to your Stripe account, and Makeform never stores sensitive payment information.

### Connect your Stripe account

Before your form can take payments, you'll need to connect your Stripe account:

1. Add a **Payment** block to your form, or open the **Integrations** page in your dashboard
2. Click **Connect with Stripe** on the Payment block (on the **Integrations** page, find **Payment / Stripe**)
3. You'll be redirected to Stripe to authorize the connection
4. Once connected, you can start adding payment fields to your forms

:::callout{type="info"}
If you don't have a Stripe account yet, you can create one for free during the connection process.
:::

---

## Payment fees

Makeform does not charge any additional fees for payment collection. Only standard Stripe processing fees apply:

- 2.9% + $0.30 per successful card charge (US)
- Fees vary by country and payment method

:::callout{type="info"}
For complete Stripe pricing details, visit [stripe.com/pricing](https://stripe.com/pricing).
:::

---

## Add payment to your form

Adding a payment field to your form is simple:

### Using AI

You can ask the AI to add a payment field to your form:

```
"Add a payment field for $50"
"Add a payment field with dynamic pricing based on quantity"
```

The AI will add the payment field and configure it based on your instructions.

### Manual setup

1. Open your form in the editor
2. Click the **Add field** button or the **+** button between fields
3. Select **Payment** from the field type menu
4. Configure your payment settings (amount, currency, etc.)

:::callout{type="info"}
Payment fields are optional by default. Turn on **Required** in the field settings when respondents must complete the payment before submitting.
:::

---

## Payment settings

### Amount type

You can set up payments in two ways:

#### Fixed amount

Set a specific price that never changes. Perfect for:

- Registration fees
- Product purchases with set prices
- Membership dues
- Ticket sales

**Example:** Event registration fee of $25.00

#### Dynamic amount

Calculate the price based on other fields in your form. Perfect for:

- Quantity-based pricing (e.g., number of tickets × price per ticket)
- Donation forms where users choose their amount
- Custom calculations based on selections

**Example:** Number of attendees × $25.00 per person

See [Dynamic pricing](#dynamic-pricing) for more details.

---

### Currency

The Makeform Builder currently offers 26 currencies:

- USD, EUR, GBP, JPY, CAD, AUD, CHF, CNY, INR
- BRL, MXN, SGD, HKD, NZD, SEK, NOK, DKK, PLN
- THB, ZAR, AED, BGN, CZK, HUF, RON, MYR

The currency symbol will automatically display based on your selection.

---

### Payment methods

Your payment field automatically supports multiple payment methods:

- **Credit and debit cards** (Visa, Mastercard, American Express, etc.)
- **Apple Pay** (when available on the user's device)
- **Google Pay** (when available on the user's browser)

Payment methods are automatically shown based on what's available to the respondent. For example, Apple Pay only appears for users on Apple devices with Apple Pay set up.

All payment methods are processed securely through Stripe with full PCI compliance.

---

### Email receipts

The payment step asks the respondent for a receipt email address. After a successful payment, Stripe can send the receipt to that address.

There is currently no Builder setting for selecting another Email field as the receipt address.

---

## View payments

After respondents submit payments, you can view them in two places:

### In Makeform

1. Open your form
2. Go to the **Submissions** tab
3. Each submission shows the payment status and amount
4. Click on a submission to view full details

### In Stripe

All payment details are available in your Stripe dashboard:

1. Log in to your [Stripe dashboard](https://dashboard.stripe.com)
2. Go to **Payments** to see all transactions
3. Each payment includes the Makeform form and submission IDs as metadata, so you can match it to the response in Makeform

Your Stripe dashboard provides complete payment information including:

- Transaction details and fees
- Customer information
- Refund options
- Dispute management
- Financial reports

---

## Dynamic pricing

:::callout{type="info"}
Dynamic pricing allows you to calculate payment amounts based on other fields in your form, such as quantity inputs, number selectors, or custom calculations.
:::

### How it works

1. Add fields that will be used for calculation (e.g., a number input for quantity)
2. Add a payment field to your form
3. Set **Amount Type** to **Dynamic (Calculated)**
4. In **Calculate From Field**, enter the **Field ID** of the field to calculate from, then choose a **Dynamic Mode**
5. Optionally set minimum and maximum amounts

### Use cases

**Quantity-based pricing:**

- Event tickets: Number of tickets × $50.00
- Product orders: Quantity × unit price
- Per-person fees: Number of attendees × registration fee

**Tiered pricing:**

- Calculate different rates based on number input
- Combine with conditional logic for complex pricing

**Donation forms:**

- Let users choose their donation amount
- Set minimum donation amounts

### Example setup

For a workshop charging $75 per attendee:

1. Add a **Number input** field asking "How many attendees?"
2. Add a **Payment** field
3. Configure the payment field:
   - **Amount Type**: **Dynamic (Calculated)**
   - **Calculate From Field**: the **Field ID** of the "How many attendees?" field
   - **Dynamic Mode**: **Base Amount × Field Value**
   - **Amount (in cents)**: 7500 (this is $75.00)
   - Currency: USD
   - **Minimum Amount (in cents)**: 7500 (at least 1 attendee)

The payment amount will automatically update as respondents change their quantity selection.

---

## FAQs about the payment field

### Can I test payments before going live?

No. Makeform has no test mode for form payments. A published form always takes real payments, whatever mode your Stripe dashboard is set to.

To try your payment flow, publish the form and make a small real payment with your own card (the minimum charge is $0.50). Then refund it from your Stripe dashboard.

### Are receipts automatically sent to customers?

The payment step asks respondents for a receipt email address. Stripe can send the receipt to that address after a successful payment. The Builder does not currently let you select a separate Email field for receipts.

### Can I accept recurring payments or subscriptions?

Currently, Makeform supports one-time payments only. Recurring payments and subscriptions are not yet available but are on the roadmap for future releases.

### Can I modify the payment amount after the form is published?

Yes, you can update payment amounts at any time:

- **Fixed amounts**: Edit the payment field settings and change the amount
- **Dynamic amounts**: Modify the calculation logic or linked fields

Your edits update the draft. Publish the form again before new respondents see the updated amount. Existing payments are not affected.

### What happens if a payment fails?

If a payment fails:

- The respondent sees an error message from Stripe (e.g., "Your card was declined")
- They can try again with a different payment method or card
- The form submission is not completed until payment succeeds
- Progress is saved, so they won't lose their form responses

### Can I issue refunds?

Yes, you can issue full or partial refunds through your Stripe dashboard:

1. Go to the payment in your Stripe dashboard
2. Click **Refund**
3. Enter the refund amount
4. Stripe processes the refund back to the original payment method

Refunds typically appear within 5-10 business days.

### Is payment data secure?

Yes, payment security is handled by Stripe:

- All payment information is encrypted and PCI-compliant
- Makeform never stores or processes raw card data
- Stripe is certified to the highest security standards (PCI Level 1)
- Payment forms use Stripe Elements for secure data collection

---

## Need help?

If you have questions about setting up payments or run into any issues, check the [Stripe documentation](https://stripe.com/docs).
