Skip to main content
Render your own pay button outside the widget iframe while keeping card fields, validation, and payment processing inside the widget.

Overview

Set hidePaymentButton: true to hide the in-iframe Pay and Upsell buttons. Call submitPayment() or submitUpsell() from the host page when the user clicks your custom button. Apple Pay and Google Pay still render in host containers via applePayContainerId / googlePayContainerId.

Configuration

Host API

Vanilla JavaScript

Wait for READY before enabling your button.

Layout

Events

Structured ERROR codes: see Error codes.

Subscription opt-out (singlePurchase)

When your product includes an optional subscription, use a host checkbox and update the widget before pay:

Two-page checkout + upsell

Page 1: hidePaymentButton: true + submitPayment() + savePaymentMethod: true. Page 2: hidePaymentButton: true + submitUpsell() + upsell.initialPaymentSession. See Saved payment & upsell and the external button example.

Live demo

Hosted demo: https://payment.paysight.io/demo?preset=external-button