Hosted Portal
The path that needs no integration. You generate a portal link for a customer in the dashboard and the customer clicks it. In production the address is portal.lunixi.com/c/{token}; the only difference below is that the demo takes the token from a box instead of the address bar.
This flow needs no merchant bearer token — the cp_ link itself is the customer-scoped credential. Generate one in the dashboard under Subscription → Portal Links → Create link.
What to look at
- Holding the link is not enough to open a session: the portal is hardened with email OTP.
- The portal adapts to the permission set the token carries — plan change, cancellation, card update and invoice access are each toggled independently.
- The demo mirrors production's token-reading precedence exactly:
/c/{token}→?token=→#token=.
What you need first
Just a portal token (cp_…). No publishable key, no bearer token. For the portal session model see Customer Portal.