lollipayDocs

Test mode

Build and test your integration with test keys and test cards. Nothing is charged and no money moves.

Test mode mirrors live mode with fake money. A test key (lp_test_sk_…) creates test checkout sessions, the hosted page shows a Test mode banner, and paid sessions show up in the dashboard's test view. Test and live data never mix: a test key can't read live sessions, and the other way round.

Test cards

Use any future expiry date, any 3 or 4 digit CVC, and any name and email.

Card numberResult
4242 4242 4242 4242The payment succeeds and the session becomes complete.
4000 0025 0000 3155The bank asks for 3-D Secure. Complete the check to pay, or fail it to see the session stay open.
4000 0000 0000 0002The card is declined. The session stays open, so the customer can try again.
4000 0000 0000 9995Declined for insufficient funds. The session stays open.

Real card numbers never work in test mode: they're refused with a reminder to use a test card. Apple Pay and Google Pay work on test checkouts too, with a card from your wallet, and nothing is charged.

Test crypto payments

Test checkouts take Bitcoin on testnet4, Litecoin on testnet, Ethereum on Sepolia and Solana on devnet: coins with no value, from a public faucet. Choose Crypto on the hosted page, pick a coin, and send the exact amount shown to the address shown. The page follows the payment as it happens: seen, then confirming (2 confirmations for Bitcoin and Ethereum, 3 for Litecoin, finalized for Solana), then complete, and the customer lands on your return_url. That takes about 20 minutes for Bitcoin, 8 for Litecoin and under a minute for Ethereum and Solana.

The customer can close the page once they've sent the coins; Lollipay keeps watching and completes the session on its own. Bitcoin and Litecoin test addresses start with tb1 or tltc1, which wallets on the real networks refuse. For Ethereum and Solana, keep the wallet on Sepolia or devnet: those addresses look the same on every network.

Test skins payments

If the store has Skins switched on, test checkouts take skins without a real Steam trade. Choose Skins, pick a game and paste any Trade URL of the right shape (https://steamcommunity.com/tradeoffer/new/?partner=123456789&token=AbCdEf12). The page shows a sample inventory. Choose items that cover the order and send the trade offer, then play both sides with the test buttons: Accept the trade puts it on hold as Steam would, End the hold now completes the session, and Decline it leaves the session open so you can try again.

What to test

  • The happy path. Pay with 4242…, land on your return_url, retrieve the session and check status is complete before fulfilling.
  • Declines. Pay with …0002 and …9995 first, then 4242…, to see that a customer can recover on the same session.
  • 3-D Secure. Pay with …3155 and complete the bank's check; the customer lands on your return_url as usual.
  • Abandoned checkouts. Sessions expire 1 hour after creation (expires_at). An expired session can't be paid; create a new one.
  • Your error handling. Send a bad request on purpose, like an amount that doesn't match the items, and check your code reads error.code. See Errors.

Going live

Live keys unlock once your business is approved. Then create a live key with the same permissions and swap it in; the API, the requests and the responses are the same, with livemode: true.

On this page