URL
Initialization parameters
Events
All events are dispatched using the message pattern described in the frames protocol. The Buy Button frame uses the same event payloads as the Buy frame; only the experience differs.Outbound events
frame->parent These events are sent from this frame to the parent window.handshake
The frame requests that you open a message channel.
ready
The frame finished loading and the payment button is rendered. Use this to
coordinate UI transitions if needed.
buttonPressed
The customer tapped the Apple Pay or Google Pay button in the buy button. The
frame emits this the instant the button is tapped, before the OS presents the
payment sheet (PassKit on iOS, the Google Pay sheet on Android). Treat it as an
intent-to-buy signal: use it to react to the tap, for example to show a loading
state or fire analytics.
This event carries no payload. Route it by channelId.
buttonPressed is not a purchase outcome. It still fires if the customer opens
the payment sheet and then cancels, and it fires before any authorization
happens. For the transaction result, listen for complete, which
reports the outcome once the payment resolves.
complete
The transaction is complete. Use the transaction ID to track final status via
polling.
challenge
Verification is required before the transaction can proceed. Render the
challenge frame at the provided URL. Do not
construct the URL yourself — use it as-is.
error
A terminal error occurred. Remove the frame and surface the message to the
developer.
Inbound events
parent->frame These events are sent from the parent window to this frame.ack
Acknowledge the handshake.
setQuote
Provide a new quote to the frame. Send this when the current quote expires
before the customer completes the purchase. Pass signature as returned by the
quote endpoint.