Skip to main content

Checkout Overview

Waffo Pancake uses a two-step checkout flow optimized for conversion. This design collects customer details first, then payment information, reducing abandonment and supporting accurate tax calculation.

Checkout URLs

Every product gets a permanent purchase link that never expires:
Test mode:
Just click “Copy Link” in the Dashboard. The link stays the same even when you update the product. A checkout session is created automatically when the customer opens the link.

Checkout Sessions (API)

For advanced use cases (dynamic pricing, custom metadata, programmatic checkout), create a session via the API:
Checkout sessions are generated server-side and lock the product version, pricing, and currency at creation time.

Two-Step Flow

Consumer Details

Collect email, country, and billing info for tax calculation and order processing.

Payment

Enter card details or use Apple Pay / Google Pay to complete payment.
Checkout page — Consumer details

Step 1: Consumer Details

Collects information needed for tax calculation and order processing. Required Fields: Conditional Fields (Based on Country): Business Purchase Option: Customers can toggle “I’m purchasing as a business” to provide:
  • Business name
  • Tax ID (for VAT/tax exemption)

Step 2: Payment

Checkout — Payment

Card Payment

  • Card number
  • Expiry date (MM/YY)
  • CVC/CVV
  • Cardholder name

Digital Wallets

  • Apple Pay (iOS, Safari)
  • Google Pay (Android, Chrome)
  • One-click with biometric auth
Order Summary is displayed alongside the payment form with product name, image, subtotal, tax, and total.

Session Lifecycle

  • One session, one order. A checkout session can produce exactly one order. Once the buyer submits, the session is consumed; opening the same checkoutUrl again shows “This checkout link has expired”. That is expected — call create-session again for every purchase instead of reusing links.
  • Browser back button. Before handing off to the payment provider, the cashier swaps the current history entry for a replacement session that the server derives from the original one, and the provider’s cancel URL points to the same address. Both ways back therefore land on a live session that keeps your orderMerchantExternalId and metadata — in any browser, because the values live in the session itself. The replacement session’s TTL resets to the default 45 minutes even if you had set a longer expiresInSeconds.
  • When the fields are lost. If that swap fails, or the buyer lands on an already-consumed session, the page self-heals by jumping back to the product page and minting a brand-new session as an anonymous visitor. That path drops orderMerchantExternalId, metadata, and any currency, email or success_url you had put on the link.
  • If those fields are missing on an order. Should you receive an order.completed whose orderMerchantExternalId is empty, match it in your own system by buyerEmail + productId + amount against that buyer’s unpaid orders from the previous 30 minutes.

Subscription Checkout

For subscription products, additional billing information displays:

Customization

Make your checkout page match your brand through the Checkout Settings in your dashboard. Upload a custom logo displayed on the checkout page. Supported formats include PNG, JPG, and SVG.

Theme Mode

Light Mode

White background, dark text. Best for most brands.

Dark Mode

Dark background, light text. Modern aesthetic.
Switch between Light and Dark mode presets. Each mode maintains its own set of color values.

Color Settings

Border Radius

Control the roundness of UI elements with the checkoutBorderRadius setting. Default is 8px. Options range from 0px (sharp corners) to 16px (extra-large rounding).
Ensure sufficient contrast between text and background colors for accessibility. WCAG recommends a contrast ratio of at least 4.5:1.

Store Information


Multi-Language Support

The hosted checkout is multilingual and requires no merchant configuration:
  • Automatic detection — the checkout UI opens in the shopper’s browser language and falls back to English when the language isn’t supported yet.
  • Shopper choice — shoppers can switch languages at any time via the selector in the checkout footer.
  • Payment page follows — the payment page opens in the language the shopper was using when they clicked Pay (22 payment-page languages supported).
The checkout UI supports 19 languages:

Language priority

When checkout first opens, the UI language is resolved in this order — the first match wins:
Language is fully decoupled from currency — the shopper can switch to any of the 19 supported languages regardless of the order’s currency.

Processing & Results

After payment submission:
  1. Card validation — Luhn check, expiry, CVC verification
  2. 3D Secure — Bank verification (if required by the issuing bank)
  3. Authorization — Charge to card
  4. Order creation — Record in system
Success Page: Order confirmation number, receipt email notification, next steps, Customer Portal link. Failed Page: Clear error explanation, suggested action, retry button, support contact option.

Error Handling


Test Checkout

Use Test Mode to try the checkout flow without real charges.
Test mode is indicated by a banner: “Test Mode - No real charges will be made”

Merchant of Record Notice

At checkout footer, customers see:
“This order is processed by our online reseller & Merchant of Record, Waffo Pancake, who also handles order-related inquiries and returns.”
This disclosure is required for MoR compliance and helps customers understand the payment relationship.