Installation
Maven object is available.
Maven.createPayment(options)
Creates a widget controller. Does not mount until you call .mount(target).
Options
Returns
A controller object:controller.mount(target)
Inserts the iframe into the DOM.
maven:resize postMessage — your container controls the width, Maven handles the height.
onSuccess(result)
Fires when the gateway charge succeeds.
onFailure(error)
Fires when the charge is declined or errors.
onFailure callback is for doing things in your UI — sending a follow-up chat message, tracking the failure in analytics, etc.
Cleanup
When the chat bubble unmounts (user navigates away, chat closes, etc.), destroy the widget to remove listeners:Full example
Security model
- The iframe is served from Maven’s domain, not yours — your page’s JavaScript cannot read the card inputs or inspect the form (enforced by the browser’s same-origin policy).
- Communication between your page and the iframe is one-way via
postMessage— the iframe posts events up, the SDK listens. No DOM access. - The
sessionIdis a single-use credential. It expires after a short TTL (default 5 minutes) and can only be used to charge the specific amount on the specific project it was created for.
Next
Customization
Theme, labels, fields, sizing.
Webhooks
Server-side confirmation events.
