# Form Checkout Redirect

Upon enabling this checkout method, the workflow proceeds as follows:&#x20;

1. When the user submits the form, we initially validate the fields required by the contact form.&#x20;
2. Next, we redirect to the Stripe-hosted checkout page to complete the transaction.&#x20;
3. Once the payment succeeds, the form data will be saved and a success message will be sent out.
4. (optional) If you expect to send additional emails with payment details, please refer to [Email Notification (Pro)](/basics/email-notification-pro.md)

{% hint style="danger" %}
To trigger CF7 email notification after payment, the **webhook** setup is required. [Webhook Configuration](/getting-started/webhook-configuration.md)
{% endhint %}

<figure><img src="/files/tIKHkBw6d526nLrlEVrW" alt=""><figcaption></figcaption></figure>

### Features

* More custom fields, such as user email, price, frequency, quantity, currency, product, etc.
* More payment methods, like EPS, Giropay, Sofort, iDeal, Alipay, Apple/Google Pay, WeChat.
* Using a secure Stripe-Hosting checkout page that can be customized with your Brand.
* One-Time & Recurring Pay.
* Coupon, Stripe-Tax.

### Let's create a checkout redirect form

#### Installation and Configuration Steps

1. **Install the Plugin:** Ensure our plugin is installed.
2. \*\*Verify Stripe Settings:

<figure><img src="/files/6ZxvKF6cJWk8mDaaWHdw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VZKXES0qAYI1DydUfqC5" alt=""><figcaption></figcaption></figure>

### Create your Form

We are going to create a contact form with an amount field and quantity field to checkout.

<figure><img src="/files/qpgsieQJyEU7HTpEfBdF" alt=""><figcaption></figcaption></figure>

```
<label> Your name
    [text* your-name autocomplete:name] </label>

<label> Your email
    [email* your-email autocomplete:email] </label>

<label> Subject
    [text* your-subject] </label>

<label> Price
    [number* price-amount "19"]</label>

<label> quantity
    [number* price-quantity "2"]</label>

[submit "Purchase"]
```

### Checkout configuration

In the form settings page, an additional tab titled "**Stripe Checkout Redirection**" should be visible. Once enabled, it will redirect the end user to the Stripe after submitting form.

* **Enable**: The form redirection only works if we enable this item.
* **Payment Methods**: Specify the supported payment methods (choose <mark style="color:red;">Automatic collect</mark> if you want to keep the same as Stripe Dashboard activations)
* **Payment Type:** the **Payment Type** field that consists of three options: **one-time**, **subscription**, and **flex**.
  * One-time - For only standalone purchases
  * Subscription - For only recurring subscriptions (Pro only)
  * Flex - Collects either one-time or subscription based on conditional logic (Pro only)
* **Amount Field:** This option is a dynamic value, we can set a fixed value or a field name such as \[your-amount]

<figure><img src="/files/8ebWd4suxCQM9sTAg6dp" alt=""><figcaption></figcaption></figure>

### Subscription **Payment Settings** (Pro)

To enable a subscription, make sure the premium version is installed first. When the Payment Type is chosen as Subscription or the subscription field condition is met under Flex mode, the payment will be considered a subscription. Configure the following settings:

```
<label> Your name*
    [text* your-name autocomplete:name] </label>

<label> Your email*
    [email* your-email autocomplete:email] </label>

<label> Amount*
    [number* your-amount min:1 max:999999 "99"] </label>

<label> Quantity*
    [number* your-quantity min:1 max:99 "1"] </label>

<label> Frequency*
    [radio interval use_label_element "day|day" "month|month" "year|year"] </label>

<label> Frequency count *
    [number* interval-count min:1 max:99 "3"] </label>

[submit "Subscribe"]
```

<div align="left"><figure><img src="/files/eQO4FNVCklMVUNcQHxwC" alt="" width="375"><figcaption></figcaption></figure></div>

### Test

After completing the configuration, preview, and test

<div align="left"><figure><img src="/files/3wkDGslY5mUrW5EtOXrx" alt="" width="375"><figcaption></figcaption></figure></div>

<figure><img src="/files/jtxubDIrr2HeKt6x8Il0" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cf7-docs.payaddons.com/basics/contact-form-7-checkout-redirect.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
