S Subster

Prices and payment

Twelve blocks of the paywall: how to show the amount, how to take the money, and which of them only draw.

They all sit on the "Blocks" tab, in the "Payment" group, and go only onto a paywall; they cannot be added to a quiz.

Where to get a price. In the block's own "Stripe price" field. The "+ New price" button creates a price in your Stripe, including one with a trial period ("Trial, days"), and fills it in at once. Prices created in Stripe itself are pulled in by "Import from Stripe" or "↻ Refresh from Stripe". If the buttons are missing, Stripe is not connected or you have no right to manage prices: Pricing and payments.

Which price is charged. Payment looks for it in order: the plan chosen in "Plan selector" → the button's own price → the first block with a price on this screen.

How to build the screen. Use one of two layouts:

PlansWhat to put on one screenPrice field of the button
one"Price block" and "Buy button"the same price as the price block
several"Plan selector" and "Buy button"empty and locked

Three publishing traps the cabinet does not warn about:

Price block

The amount and period of one price from your Stripe. Use it when there is one plan and the buyer has nothing to choose from. Settings: only "Stripe price". Does not: start payment or pass the price to the button; choose the same one in the "Buy button".

Buy button

Sends the buyer to the Stripe payment page, where the payment begins. Use it on every screen where you take money. Settings: "Button text", "Stripe price", "Sticky button at the top of the screen" (its copy at the top edge while scrolling) and the look of the message when payment did not start. Does not: choose a target screen; only the "Next button" can. Without the required tick of the "Terms checkbox" it does not let the buyer pay.

The "Price is not set" hint on an empty field promises that the button will take the price from the price block, but publishing will not let such a button through; choose the price in the button itself.

If the button already has a price and a "Plan selector" is added to its screen, publishing fails. The price field is then locked and there is no way to clear the price in it: delete the button and add a new one.

Return to app button

Returns the buyer to your app: inside the app it closes the screen and passes the payment status; in a browser it opens the app or, if the app is missing, the store. Use it on the screen after payment. Settings: "Button text", "Custom link (optional)" (for example, to the App Store for those who do not have the app) and "The “Opening the app...” hint". Does not: lead anywhere but its own link on other screens in a browser.

A screen with this button will not publish until "App connection" is set up and every price of the paywall has an access level: Handoff to a developer.

Express wallets

Buttons labelled Apple Pay and Google Pay. Use it when you want to invite payment with a separate wallet button. Settings: "Stripe price" (by the same rules as the buy button) and the set of buttons. Does not: add a payment method of its own. The button leads to the same Stripe page as the buy button and is shown even where the buyer has no wallet.

Terms checkbox

A tick of consent to your terms of use and privacy policy. Use it on every screen where you take money. Settings: the names of both links, the connector between them, "Terms URL", "Privacy policy URL" and "Required" (on from the start). Does not: store documents; the addresses lead to your pages. Until the required tick is set, payment does not start.

A placeholder address such as example.com does not pass publishing; you need the addresses of your real documents.

Payment system banners

A row of Visa, Mastercard, Apple Pay, Google Pay and PayPal icons next to the button, for trust. Use it when the paywall looks bare. Settings: the set of icons and "View" ("Plates" or "Icons"). Does not: turn on any payment method. The PayPal icon does not add PayPal to the payment page: we ask Stripe for card payment.

Price breakdown (per day)

The price of the chosen plan and the same price per day. Use it when the yearly amount scares and the daily one does not. Settings: four pieces of text around the two amounts. Does not: hold a price of its own; it shows the one the button will charge, and while there is nowhere to take it from, it shows nothing. With a one-off price there is no "per day" line.

Restore purchases

A link that, inside your app, starts restoring earlier purchases. Use it when the paywall opens in the app: App Store rules expect such a link. Settings: "Link text". Does not: show at all in a plain browser; the block gives a web funnel nothing.

Close window button

Closes the embedded pricing window inside your app. Use it when the screen opens over the app and the buyer needs a way out. Settings: "Button text" and "Link outside the app (optional)". Does not: show in a plain browser without such a link; there is nothing to close there.

Plan selector

Plan cards from which the buyer picks one. Use it when there are several plans. Settings: "Layout" ("Cards" or "List"), up to twelve plans (each with "Name / badge", "Stripe price" and "Highlight (Most Popular)") and "Default plan". Does not: charge by itself; the buy button on the same screen pays.

"Default plan" decides which plan is selected when the buyer opens the screen. If it is not set, the first one is selected, and the button charges it even if the buyer touched nothing. "Highlight" only lights up the card: for the screen to open on the highlighted plan, set it in "Default plan" too.

Payment terms

A line about the charge and renewal under the button. Use it when the amount and the trial period need to be named next to payment. Settings: "Terms text" with placeholders for the amount and trial days, and a fallback "Stripe price", needed only when there is nowhere else to take the price from. Does not: charge money. It takes the same amount the button will charge; if the screen has no price, the line does not show at all.

The product has no separate renewal price: the {{renewal_price}} placeholder from the list under the "Terms text" field gives the same amount as {{price}}.

Downsell popup

A window with a cheaper price and its own payment button. Use it to keep someone who came back from the payment page without paying, or is leaving the screen. Settings: heading, text, "Button text", "Discounted Stripe price" and "Show on": "Payment declined" (set from the start) and "Attempt to leave the page". Does not: pop up without a show condition; it then stands on the screen, and everyone sees the discount.

Next