Checkout Flow
When you call tiun.checkout({ productId }) for a subscription product, tiun opens a full-screen overlay that runs the entire purchase and sign-in experience. You do not build forms, validate inputs, or host payment fields yourself.

Subscription products
For subscriptions, the overlay typically includes:
Plan or product details and pricing
Email entry — the user is identified by email as part of checkout
Payment method selection, including cards and wallets where enabled (for example PayPal, Apple Pay, Google Pay, Twint)
Terms acceptance and a clear pay action
Verification: If the email is recognized (returning user), tiun sends an OTP code to the phone number already linked to the account. If the email is not recognized, an additional overlay appears where the user enters their phone number and validates it via OTP before proceeding with payment.
If the visitor already has a tiun account, they can use Login at the bottom of the overlay instead of entering email as a new customer.
See Subscriptions for the full lifecycle — from checkout to session restore and logout.
Time-based products
For time-based billing, use tiun.start(). This opens a connect overlay that shows pricing in context (for example a starting amount and a per-minute or per-period rate) and walks the user through connecting a payment method so usage can be billed. See Time-based billing for the full flow.
Managed by tiun
The overlay is owned and updated by tiun: layout, validation, compliance-oriented copy, and payment UI stay consistent without changes in your codebase. The flow also surfaces help for users — including an explainer video link and "More info" options where tiun shows them — so common questions are handled inside checkout.
Summary
Subscription
tiun.checkout({ productId })
Review plan, enter email, verify via phone OTP, pay, accept terms
Time-based
tiun.start()
See usage-based pricing, connect payment for metering
Authentication is part of the subscription checkout path by design; time-based flows use the connect overlay and focus on payment connection and paywall behavior defined elsewhere in your integration.
Last updated
Was this helpful?