Authentication
Send the session token in theX-Session-Token header:
A suspended tenant’s portal endpoints stop serving requests, the same as the rest of the API.
Customer
Subscriptions
Invoices
Pay an invoice
Wallets
Top up a wallet
idempotency_key is required. Omit checkout entirely to raise an invoice for the top-up instead of charging now. Credit reason, expiry and priority are pinned server-side and cannot be set from the portal.
Configure auto top-up
cooldown as { "value": 0, "unit": "hour" } to clear a stored cooldown. null leaves the existing one in place.
Checkout sessions
completed means the gateway finished, not that the wallet transaction exists yet. It is written by the provider’s webhook, which can land a moment later. Recheck the wallet rather than assuming the balance from the status.Payment methods
Delete and default both take
payment_provider and payment_method_id. Adding returns a SetupAction, not a payment method, because nothing is stored until the customer completes the provider’s form.
Integrations and configuration
/integrations is derived from the tenant’s published connections. Use it to decide which actions to render rather than hard-coding a provider. See the capability matrix.
Analytics
Errors
Portal errors carry a hint written for the customer. Common ones:Related resources
Customer Portal
Sessions, sections and the security model
Portal payments
The flow behind each payment endpoint
Portal configuration
The schema returned by /config
API Reference
The full Flexprice API

