Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.trymaven.com/llms.txt

Use this file to discover all available pages before exploring further.

The Maven chat payment widget lets your chatbot or web app collect card payments without redirecting the customer, sending them to Stripe Checkout, or handling card data yourself. Drop in a <script> tag and a Maven.createPayment() call, and the customer enters their card into a secure iframe we host.

Inline in chat

Renders as a message in your chatbot UI. No redirects.

Secure by default

Card data never touches your servers — we handle tokenization and charging.

Any gateway

Stripe, Authorize.net, Braintree, Shift4, or Fiserv — same code.

When to use the widget vs voice

WidgetVoice
Customer experienceTypes card into a formReads card aloud on a phone call
Best forChatbots, in-app checkout, support flowsIVR, phone support, outbound calls
Round-trip time30-60s typical60-90s typical
Customer effortLowMedium
You can use both on the same project — they share gateway connections, API keys, and webhook endpoints.

How it works

1

Your server creates a session

One POST /v1/widget-sessions call with your API key, the amount, and the gateway. You get back a session_id.
2

Your frontend mounts the widget

Include widget.js once, then Maven.createPayment({ sessionId }).mount("#slot") — the iframe appears inline in your chat UI.
3

Customer enters card details

The iframe is served from Maven’s domain. Card data goes directly from browser to Maven to VGS to the gateway.
4

Your callbacks fire

onSuccess({ transaction_id, card_brand, card_last4, ... }) or onFailure({ error_code, error_message }).
5

Webhook confirms (optional)

Same webhook format as voice — your server gets an authoritative notification even if the customer closes the tab.

Architecture

┌────────────────────────────────────────────────────┐
│  Your page (chatbot)                                │
│  ┌──────────────────────────────────────────────┐  │
│  │  <iframe src="api.trymaven.com/widget/..."> │  │  ← Maven hosts this
│  │    Secure Payment                            │  │
│  │    Card Number: ____________                 │  │
│  │    Expiry: __/__   CVV: ___                  │  │
│  │    [Confirm and Pay]                         │  │
│  │  </iframe>                                   │  │
│  └──────────────────────────────────────────────┘  │
│  ↑ Your page only gets onSuccess/onFailure         │
│    callbacks. Never sees card data.                │
└────────────────────────────────────────────────────┘

        Maven → payment gateway
The card data path: browser → Maven iframe → Maven backend → gateway. Your page and server never touch raw card data.

Ready to integrate?

Quickstart

10-minute integration guide.

SDK Reference

Complete Maven.createPayment() API.

Customization

Theme, labels, fields, sizing.

Webhooks

Handle payment results server-side.