Checkout & Submission
These components handle the final submission step of a questionnaire — either with payment (GenericCheckout) or without (GenericSubmission).
GenericCheckout (GENERIC_CHECKOUT_V2)
Section titled “GenericCheckout (GENERIC_CHECKOUT_V2)”The Stripe payment integration page. This is the last step before a policy is created, where the user reviews their selections and enters payment details.
Layout: Standalone
What it renders
Section titled “What it renders”The checkout page displays:
- Policy summary — Key-value pairs showing the user’s selections (e.g., “Coverage: Premium”, “Start date: 01.01.2025”)
- Product card — Product icon, name, and monthly/yearly price
- Price breakdown — Itemized list of costs (base price, add-ons, discounts)
- Billing options — Toggle between monthly and yearly payment cycles
- Stripe payment form — SEPA direct debit or credit card entry (rendered by Stripe Elements)
- Legal footnotes — Billing-related disclaimers
Strapi props
Section titled “Strapi props”| Prop | Type | Description |
|---|---|---|
policyDetails |
array | Key-value pairs for the summary. Each entry has key (a question ID whose answer is displayed) and label (the display label). |
productCardDetails |
object | Product card content: icon, product name, and pricing display configuration |
additionalPolicyDetails |
array | Grouped sections of extra information below the main summary. Each group has a title and its own list of key-value pairs. |
priceBreakdown |
array | Itemized price rows. Each entry maps a pricing component to a display label. |
contractCycleYearly |
object | Configuration for the yearly billing option (label, discount text) |
contractCycleMonthly |
object | Configuration for the monthly billing option |
billingFootnote |
string | Legal text displayed below the payment form |
icon |
string | Product icon displayed in the checkout header |
How it works
Section titled “How it works”- The component reads the user’s questionnaire answers and maps them to the display using
policyDetails - It fetches the current price from the pricing engine
- The user selects a billing cycle (if both monthly and yearly are configured)
- The user enters payment details via the embedded Stripe form
- On submission, the app sends the payment method and questionnaire data to the backend
- The backend creates the policy and charges the customer
- On success, the questionnaire navigates to the next question (typically a Processing or Success screen)
GenericSubmission (GENERIC_SUBMISSION)
Section titled “GenericSubmission (GENERIC_SUBMISSION)”Non-payment form submission. Used for flows that collect information without requiring payment — lead generation, claims filing, or free product signups.
Layout: Standalone
What it renders
Section titled “What it renders”A simplified version of the checkout page:
- Submission summary — Key-value pairs from the user’s answers
- Product card — Product information (without pricing)
No payment form is shown.
Strapi props
Section titled “Strapi props”| Prop | Type | Description |
|---|---|---|
policyDetails |
array | Key-value pairs for the summary. Same format as GenericCheckout. |
productCardDetails |
object | Product card content |
additionalPolicyDetails |
array | Grouped sections of extra details |
How it works
Section titled “How it works”- The component renders a summary of the user’s answers
- On submission, the app posts the collected data to the backend API
- The backend processes the submission (creates a lead, files a claim, etc.)
- On success, the questionnaire navigates to the next question
See also
Section titled “See also”- Configure Checkout – how to set up checkout and submission in Strapi
- Question Types Reference – GENERIC_CHECKOUT_V2 and GENERIC_SUBMISSION specs
- Architecture Overview – how checkout connects to Stripe and the backend