This page describes how a T-Suite session is established and checked, and which extra verification steps protect sensitive actions. It explains behaviour; it is not a contract for an integration. Integrations are agreed with Libertum first — see Developers.
Every sign-in has at least two steps, and a third when two-factor authentication is on:
Only after the last step does the platform return an access token.
Authorization header as Bearer followed by the token.Typical responses when a session is not usable:
| Status | Meaning |
|---|---|
401 | No token, an invalid or expired token, or a token that has been replaced by a newer sign-in |
403 | The account has 2FA enabled but the authenticator step has not been completed, or the account is blocked |
503 | The session store is temporarily unavailable — retry later rather than signing the user out |
Users can turn on two-factor authentication from their account settings:
Some actions need a fresh proof of identity even inside a valid session:
| Action | Verification |
|---|---|
| Custodian Wallet withdrawal | An email code (6 digits, valid for 10 minutes), or an authenticator code, or one of the backup codes |
| Signing an investment agreement | A one-time code is requested and confirmed before the signature is recorded |
| Signing Structuring documents | A one-time code confirms the signature |
Requests for withdrawal verification codes are rate-limited.
Withdrawals carry further controls beyond the code — a saved address that is at least 24 hours old, per-transaction and daily limits, and Libertum approval above a threshold. See the Custodian Wallet page.
A valid session is not, by itself, enough for financial operations. Most product routes (orders, offerings, transfers, the Custodian Wallet, Distribution Hub, Structuring and others) also check that the user has finished onboarding:
If a step is missing, the API answers 403 with requiresOnboarding: true and a missingStep value (subscription, kyc, kyb or approval), so a client can send the user to the right screen without parsing the message text.
Profile, KYC and settings routes stay reachable during onboarding, so the user can complete it.
Libertum’s own administrative tooling does not call the marketplace API with a user session. Its requests travel server-to-server through an admin proxy, and every request is signed with an HMAC that the marketplace API verifies before acting. These administrative routes are not available to customers or integrators.
Inbound callbacks from providers such as SumSub and Stripe are likewise verified by signature before they are processed.
The same API serves Libertum’s own app and every whitelabel tenant’s custom domain. The API works out which tenant a request belongs to from the domain the app is served on, and uses that to apply the tenant’s branding, its marketplace scope and its settings.
Browser requests are accepted only from Libertum’s own origins and from verified tenant domains. A custom domain that has not completed domain verification cannot call the API from a browser.
The one place where a machine credential is used today is the Stablecoin Studio developer API: an issuer creates and revokes API keys from the Developer page in Stablecoin Studio, and each key can read only that issuer’s own data. All other API access uses a user session as described above. See API overview.