Skip to main content

Stripe Checkout Attribute Configuration

Guide on how to configure supported attributes directly from the web paywall editor.

A
Written by Alexander Karpovich
Updated this week

Supported Stripe Checkout Attributes

We support configuring the following attributes for Stripe Checkout:

  • allow_promotion_codes

  • billing_address_collection

  • payment_method_collection

  • consent_collection

  • custom_fields

  • custom_text

  • phone_number_collection

  • shipping_address_collection

  • shipping_options

Refer to the official Stripe documentation for complete details on each attribute.

⚠️ We simply pass these attributes to Stripe as-is. Some options may not be compatible with subscriptions or have limitations in certain countries.


How to Add Checkout Attributes in the Web Paywall Editor

  1. Open the Paywall screen editor for the web platform.

  2. If "Paywall Settings" is not visible, click “Customize” to add it.

  3. Select the method: StripeCheckout

  4. Scroll down and click "Customize Stripe Checkout Attributes".

  5. In the editor that appears, input your attributes in valid JSON format.

    • Click “Example” to load a sample configuration.

    • Note: this will overwrite your current setup — don’t save if you want to keep your changes.

  6. Click Save Attributes

  7. Save your screen

  8. Publish the funnel


Example Configurations

Shipping Address Collection

{
"shipping_address_collection": {
"allowed_countries": [ "AT", "DE", "SE"]
}
}

Stripe's supported countries:
View full list


Detailed shipping info (only works for products):

{
"custom_text": {
"shipping_address": {
"message": "Shipping address custom message"
}
},
"shipping_address_collection": {
"allowed_countries": ["US"]
},
"shipping_options": [
{
"shipping_rate_data": {
"display_name": "Standard Shipping",
"type": "fixed_amount",
"fixed_amount": {
"amount": 500,
"currency": "usd"
},
"delivery_estimate": {
"minimum": {
"unit": "business_day",
"value": 3
},
"maximum": {
"unit": "business_day",
"value": 5
}
}
}
}
]
}

You can also use a shipping_rate previously created in Stripe instead of shipping_rate_data.


Custom Fields

{
"custom_fields": [
{
"key": "key1",
"optional": true,
"type": "text",
"label": {
"custom": "Some Key 1",
"type": "custom"
},
"text": {
"default_value": "Some default value",
"maximum_length": 100,
"minimum_length": 1
}
},
{
"key": "key2",
"optional": true,
"type": "numeric",
"label": {
"custom": "Some Key 2",
"type": "custom"
},
"numeric": {
"default_value": "1",
"maximum_length": 100,
"minimum_length": 1
}
},
{
"key": "key3",
"optional": true,
"type": "dropdown",
"label": {
"custom": "Some Key 3",
"type": "custom"
},
"dropdown": {
"default_value": "One",
"options": [
{"label": "One", "value": "One"},
{"label": "Two", "value": "Two"},
{"label": "Three", "value": "Three"}
]
}
}
]
}

Custom Text Messages

{
"custom_text": {
"after_submit": {
"message": "Custom message after submit"
},
"shipping_address": {
"message": "Shipping address custom message"
},
"submit": {
"message": "Submit custom message"
},
"terms_of_service_acceptance": {
"message": "Terms of service acceptance custom message"
}
}
}

Phone number collection:

{
"phone_number_collection": {
"enabled": true
}
}

User consent collection:
{
"consent_collection": {
"payment_method_reuse_agreement": {
"position": "auto"
},
"terms_of_service": "required"
}
}

Promo codes (not compatible with discounts):

{
"allow_promotion_codes": true
}

Billing address collection:

{
"billing_address_collection": "required"
}
Did this answer your question?