Charge once on page 1, then charge again on page 2 without re-entering card details.
Flow
Page 1 — checkout
savePaymentMethod applies to card, Apple Pay, and Google Pay.
Page 2 — upsell
Upsell is active when both upsell.upsellId and upsell.initialPaymentSession are set.
initialPaymentSession must be the paysightSession from page 1 PAYMENT_SUCCESS — not your sessionId.
Combine with hidePaymentButton: true:
See External payment button.
3DS on upsell
Set top-level 3DS flags on page 2, or override per upsell:
Events
Upsell charges emit the standard payment events. Use payload.mode to tell checkout from upsell.
Shopify variant
The same handoff works with Shopify cart mode on page 1. See Shopify cart checkout.
Live demo
Saved payment example — live demo at https://payment.paysight.io/demo?preset=upsell (sandbox).