Skip to main content
A template defines a portal page. It contains branding, a header, an ordered layout, and checkout behavior.

Status and versioning

Templates can be draft, active, or paused. Use the archive and restore methods to manage archived templates. New templates start as draft unless you set another valid status. Template updates use expected_version, an integer, instead of a timestamp.
Template changes reach the template’s active portal sessions within a few minutes of the last save. Each session keeps its check-in steps, its listing hero image, and offers added to that session or bought there. Offer edits, published guides, listing field edits and verification rule changes reach existing portals on their own.

Layout blocks

layout is an ordered array. Every block needs a unique id. trustStrip items are secure_checkout, free_cancellation, verified_business, and powered_by_stripe. Before a template can be active, every offer it references must exist in this workspace and be active, the layout can’t be empty, and Stripe must be ready if any offer or enabled verification rule is priced. Create offers before you create the template.

Creating a template

Call Create Portal Template with the portal configuration:
Colors are six-character hexadecimal values, with or without a leading #.

Other configuration

listing_data controls property data on the page. Each field has a Boolean value, and enabled controls all fields. after_payment controls the post-purchase state. confirmation_message controls the follow-up message. Smart-lock controls appear automatically when a listing has a linked device.

Lifecycle methods

Duplicate Portal Template creates a new draft. Archive Portal Template and Restore Portal Template are reversible. Delete Portal Template is permanent. It requires an exact confirm_name and a template with no orders, waiver payments, fee payments or deposit holds. It also deletes every portal sent from the template, so those links stop working. Archive the template to keep them.