Checkout session
Checkout is payment embedded in your site: customer lands on a Zevio page with the payment form. You create a checkout session via API - in panel docs (Developers → REST API). Pass embedLink (required): the full HTTPS URL of your page that embeds or opens checkout. Zevio uses it for Content-Security-Policy frame-ancestors on that session. Response has sessionId, embedUrl (to embed, redirect, or open in a popup) and expiresAt. Session lifetime: default 30 minutes; optionally up to 24 hours. After expiry customer sees This checkout session has expired and cannot pay - need a new session and embedUrl.
What the customer sees
Same form as payment link (amount, BLIK or card, terms, email). Field and button details: How payment looks.
Processing payment page
After Pay customer sees Processing payment with "Please wait, confirming your payment…" and spinner. Page polls status. After confirmation - redirect to success or error (or successUrl / cancelUrl from session). Do not close the window.
Session problem messages
- Checkout session not found - invalid or non-existent id; back button.
- This checkout session has already been completed - cannot pay again with same session.
- Session expired - need new link.
- Session was canceled - create new session.
After confirmation customer goes to gateway or "Please wait…"; after settlement - success or error page. If you set successUrl and cancelUrl when creating the session, customer may be redirected there.
Session object and expiry
API response: sessionId, embedUrl, expiresAt. After creating payment in session paymentId appears. Session status: PENDING, COMPLETED, EXPIRED, CANCELLED. After successful payment status becomes COMPLETED; same session cannot be reused. Default lifetime 30 min; you can pass expiresInMinutes (optional, max 1440). Full field list in panel REST API docs.
Updating line items
Before payment you can update session line items (PATCH): names, amounts, quantities. The customer sees the updated total on the checkout form. Only for PENDING sessions before expiry.
Complete - payment payload
The complete request accepts: method (BLIK or CARD), optional data (blikCode, cardToken), customer (firstName, lastName, email, language), subscribeToNewsletter, recaptchaToken, checkoutDetails (collected form fields), promotionCode, selectedCountryIso2 (when purchase country is enabled on the offer), blikManualFallback, sourceVisitId. See REST API schema.
Purchase country and promotions in session
The session inherits offer settings: purchase country, promo codes, additional charges, data collection and fallbacks work like the hosted payment page. Difference: session time limit and optional successUrl / cancelUrl overriding offer result pages. Hosted links from POST /payments/{qrId} can also pass per-link successUrl / cancelUrl overrides.