Skip to content

Payment Setup

Payments go through Omnipay. Gateways are configured with environment variables in your .env file or docker-compose.yaml, not in the Lychee settings panel.

A gateway is offered to customers only once its credentials are filled in, so an install with no credentials at all falls back to offline payment.

ProviderStatusRequired variables
PayPalAvailablePAYPAL_CLIENT_ID, PAYPAL_SECRET
MollieAvailableMOLLIE_API_KEY, MOLLIE_PROFILE_ID
OfflineAlways availablenone
DummyNon-production environments onlynone
StripePresent but not active yetSTRIPE_API_KEY, STRIPE_PUBLISHABLE_KEY

OMNIPAY_TEST_MODE switches every gateway to its test environment, where no real money moves. Lychee shows the checkout as being in test mode, and offers a fake card number for the test forms.

OMNIPAY_TEST_MODE=true

Always run the full checkout flow in sandbox mode first: verify that orders are created, that the payment status comes back, and that fulfilment produces a working download link.

  1. Create a PayPal Developer account.
  2. Create a REST API app to obtain your credentials.
  3. Add them to your .env:
PAYPAL_CLIENT_ID=your-client-id
PAYPAL_SECRET=your-secret
  1. Restart Lychee (or your Docker container).
  1. Create a Mollie account.
  2. Retrieve your API key and profile ID from the Mollie dashboard.
  3. Add them to your .env:
MOLLIE_API_KEY=your-api-key
MOLLIE_PROFILE_ID=your-profile-id
  1. Restart Lychee.

Depending on what the gateway asks for, the customer is either redirected to the provider’s own payment page and sent back to Lychee afterwards, or completes the payment in place. Either way Lychee finalises the order through its return route and updates the status. A customer who abandons the payment comes back through the cancel route, and the order stays in a state that can be paid again later.

Offline payment needs no configuration and is always available. It is also the only path when webshop_offline is on, which skips payment processing entirely.

When a visitor checks out offline, the order is created with the offline status and the confirmation page tells them you will be in touch with payment instructions. You then:

  1. Collect the payment through your own means (bank transfer, cash, invoice).
  2. Open the order in the admin panel.
  3. Click Mark as Paid to move it to completed, which triggers auto-fulfilment when it applies.