Test and live mode
Every Plirin account has two modes. Test mode transacts on test networks with worthless tokens, so you can build and rehearse your integration without risking real money. Live mode transacts on mainnet, where payments are real and final.
New accounts start in test mode.
Switching modes
Section titled “Switching modes”The switch sits at the bottom of the sidebar, just above your account, on every page. Both modes are named on either side of it, so the mode you are in and the one you can move to are always both visible.
While you are in test mode, a thin amber line also runs along the top of the screen, so you can tell at a glance which mode you are in without going to look for it.
The mode is saved to your account, not to your browser. It survives a reload, and it is the same on every device you sign in from.
What each mode allows
Section titled “What each mode allows”| Test mode | Live mode | |
|---|---|---|
| Test networks (Solana devnet, Ethereum Sepolia, Base Sepolia, Polygon Amoy) | Yes | Yes |
| Mainnet (Solana, Ethereum, Base, Polygon) | No | Yes |
Live mode does not mean mainnet only. You can still take a testnet payment while in live mode, so your integration tests keep working after you go live. The exception is a live invoice’s hosted page, where your customer chooses the network: it offers mainnet only (see below).
If you try to take a mainnet payment while in test mode, the request is refused with an explanation rather than quietly falling back to a test network.
Unlocking live mode
Section titled “Unlocking live mode”Switching to live mode requires an approved business verification. Until then the switch is visible but disabled, and the dashboard shows what unlocks it.
Switching back to test mode never requires anything. If something looks wrong and you want to stop real payments while you investigate, you can always return to test mode.
Mode and API keys
Section titled “Mode and API keys”Your dashboard mode and your API keys are separate controls, and both apply.
sk_test_keys cannot put a payment on a mainnet chain, whichever mode your dashboard is in. Creating an invoice over REST, andcreatePayment,createPaymentLink,createInvoice,sendInvoiceandbatchSendInvoicesover GraphQL, refuse a mainnet chain for them. What a test key creates stays in test: its invoices, their recurring copies and its subscriptions are test records, so they collect on test networks only. See Authentication for the error codes.sk_live_keys require an approved business verification, the same condition as the switch.- While your dashboard is in test mode, mainnet payments are refused on every path, including requests made with an
sk_live_key. - A key works in its own environment, whichever mode your dashboard is in. An
sk_test_key sees and changes only test invoices (with their credit notes, refunds and attachments), test refunds and test subscriptions (with their mandates), and sees only test payments and payment links and the reports, exports and analytics built from them, subscription figures such as MRR included. Ansk_live_key does the same for live records. An invoice a key creates or duplicates, and a subscription a key creates, belongs to the key’s environment. - One of those records in the other environment answers “not found”, over both REST (HTTP 404) and GraphQL, for reads and writes alike. Lists and reports of those records leave it out instead of failing.
- A payment that has not reached a wallet yet has no network to classify it by, so keys of both environments see it until it does.
- Customers, products, prices, coupons, webhook endpoints and deliveries, and
walletBalances(your wallet configuration) are shared by both environments, so keys of either kind see them.
Subscriptions
Section titled “Subscriptions”A subscription belongs to the environment it was created in: an API key’s own, or your dashboard’s mode at the time for one created in the dashboard. It keeps that environment if you switch modes later, and it collects on that environment’s networks only. Its checkout page offers automatic collection on those networks, its mandate is authorized on them, and the invoice it bills each period is filed in the same environment.
The dashboard’s subscription list and subscription metrics still show subscriptions of both environments. An API key sees only its own.
Test invoices are never paid on mainnet
Section titled “Test invoices are never paid on mainnet”A test invoice is never collected on mainnet, whichever mode your dashboard is in. This holds for an invoice created in test mode and for one created with an sk_test_ key. Its hosted page offers test networks only, and a mainnet payment on the page is refused. Sending it for payment on a mainnet network, singly or in a batch, or creating it with a mainnet network, is refused with TEST_INVOICE_MAINNET_FORBIDDEN before anything is saved; a batch that includes a test invoice is refused whole.
The hosted page applies the same rule the other way round. A live invoice’s page offers mainnet networks only, and a test-network payment on it is refused with LIVE_INVOICE_TESTNET_FORBIDDEN, so a customer cannot settle a live invoice with test tokens. If all your wallets are on test networks, a live invoice’s page and PDF show no stablecoin option. You can still choose a test network yourself when you send a live invoice for payment, for example to try your own integration.
An approved merchant working in test mode can still create live keys. The dashboard toggle is a working mode, not a change to what your account is permitted to do.
What is shared between modes
Section titled “What is shared between modes”Test and live payments are separated by the network they settle on, not by separate datasets — your products, prices, customers, and account settings are the same in both modes. But your views are now mode-aware: the Transactions and Invoices lists, dashboard KPIs, revenue analytics, and CSV exports only show the current mode’s records, so switching the toggle changes what you see everywhere in the dashboard, not just what you’re allowed to do. See Test Mode for the full detail, including the guided “try a payment” first-run flow and what simulating a payment does.
Public payment links and checkout pages are the one exception: a page you send a customer stays payable regardless of which mode your dashboard currently shows.
Changes are recorded
Section titled “Changes are recorded”Every switch between test and live mode is written to your audit log, with who made the change and when. You can review it in Settings > Audit Trail, where the entries read “Switched to Live Mode” and “Switched to Test Mode”.