Diddo supports frictionless wallet payments through a QR-based checkout flow.
Instead of redirecting users directly to a hosted checkout page, you display a Diddo QR Code that customers scan with their phone.
Scanning launches a Diddo-hosted checkout page on their device where they can complete payment with Apple Pay, Google Pay, or PayPal.
๐ก Wallets automatically preload customer information (shipping address, saved cards, etc.), creating an extremely fast checkout with minimal user actions โ driving higher conversion rates.

๐ย This demo shows a sample QR code checkout experience after the initial cart flow.
This section covers:
- How Diddoโs QR-based wallet checkout works
- Supported payment methods
- Customizing the QR checkout experience
- Error handling
๐ How QR Checkout Works
๐ Note: Full request/response schemas are available in the API reference.
-
Create a Cart
Build a cart with items and shipping details via the Diddo API.
-
Generate QR Code
Call the QR endpoint to receive the raw QR code image (SVG or PNG).
-
Customer Scan
The customer scans the code with their mobile device.
-
Wallet Payment
On the Diddo-hosted page, the customer sees wallet options available on their device (Apple Pay, Google Pay, PayPal).
-
Success Redirect
Once payment completes, Diddo redirects to your configured success URL (defaults to Diddoโs hosted success page).
๐ Endpoint
Endpoint:
bash
To get SVG:
- Set header:
Accept: image/svg+xml - Or force with extension:
/checkout/:cart_id/qr.svg
To get PNG:
- Set header:
Accept: image/png - Or force with extension:
/checkout/:cart_id/qr.png
Response:
- Body: raw image bytes
- Content-Type:
image/svg+xml(SVG) orimage/png(PNG) - Cache-Control:
no-store(sessions are short-lived)
cURL Examples:
bash
๐ผ๏ธ Frontend Rendering Examples
โ Simplest (recommended)
html
Optional: Inline SVG (for custom styling)
javascript
๐ก In most cases, simply pointing an <img> tag at the Diddo QR endpoint is all thatโs required.
๐ฑ Supported Payment Methods
- Apple Pay (iOS & Safari; preloaded shipping + cards)
- Google Pay (Android & Chrome; saved cards + addresses)
- PayPal (global coverage; linked addresses + balances)
๐ก Wallet flows often preload shipping addresses directly inside the wallet interface. Customers typically just confirm and pay.
๐ย Cart Status Polling
You can track checkout progress in real time by polling the cart status endpoint.
This is useful in QR or cross-device flows to detect when the customer has completed payment.
plain
Status Values
IN_PROGRESSโ checkout activeSUBMITTEDโ payment complete
Poll every 3โ5 seconds until the cart returns SUBMITTED, then display your confirmation screen.
๐ ๏ธ Customizing the Success Page
-
By default, customers are redirected to a Diddo-hosted success page.
-
Need a branded success page? Or a custom redirect page?
Reach out to Diddo โ our team will design and provision this for your account.
โ ๏ธ Common Wallet Checkout Errors
-
WALLET_NOT_SUPPORTEDDevice/browser does not support any configured wallets.
-
SESSION_EXPIREDQR session expired (sessions auto-expire after X minutes).
-
PAYMENT_FAILEDWallet declined or the user canceled.
-
UNSUPPORTED_MEDIA_TYPEThe requested image type isnโt supported (ensure
Accept: image/svg+xmlorimage/png).
Error responses follow the same structured format as the Checkout Errors guide.
๐ฑSample QR Checkout Flow (Apple Pay)

