All guides

Voice platforms

How to take payments with Vapi voice agents

Vapi agents can answer calls, book appointments, and close sales. Then the customer says yes, and the agent hits a wall: it cannot take a card. Reading a card number to an LLM puts your transcripts, logs, and prompts inside PCI DSS scope, and no serious business wants its voice stack audited as a payment system.

Maven is the payment layer that fixes this. Your Vapi agent hands the call to Maven at payment time, Maven collects the card and charges your gateway, and the caller lands back with your agent to finish the conversation. Your agent, and your infrastructure, never touch card data.

Why Vapi agents cannot take cards natively

Any system that stores, processes, or transmits cardholder data falls under PCI DSS. For a voice agent, that means the speech-to-text pipeline, the LLM context, the recordings, and every log line in between. One card number spoken into an unprotected agent contaminates all of it.

The traditional workaround is sending the caller a payment link by SMS and hoping they complete it later. Completion rates fall off a cliff the moment the caller leaves the call. The sale your agent just closed leaks away in the gap.

How Maven works with Vapi

Maven connects to Vapi in one click from the Maven dashboard. When your agent reaches the payment moment, it triggers a transfer to Maven. A natural-sounding payment agent takes over, walks the caller through their card number, expiry, and CVV, and validates everything in real time. Callers can speak the digits or type them on the keypad.

Maven charges the payment through your own gateway: Stripe, Authorize.net, Braintree, J.P. Morgan, Fiserv, Shift4, NMI, Qualpay, or Clover. You get a signed webhook the moment the charge succeeds, and the caller is transferred back to your Vapi agent to continue.

What the caller experiences

The handoff is invisible. You choose the voice, the greeting, and the confirmation message, so the payment step sounds like the same brand the caller has been talking to. If a card is declined or a digit is missed, Maven re-prompts gracefully instead of dropping the call.

Setting it up

  1. 01

    Connect Vapi in the Maven dashboard

    One click links your Vapi account. No webhook plumbing, no custom code.

  2. 02

    Connect your payment gateway

    Paste your gateway credentials once. Maven processes every payment through your own account, so payouts, statements, and disputes stay where they already live.

  3. 03

    Add the payment handoff to your agent

    Tell your Vapi agent when to transfer to Maven, typically right after the customer confirms the amount. Maven gives you the transfer target.

  4. 04

    Maven collects and charges on the live call

    Card number, expiry, CVV, and optional ZIP, by voice or keypad, validated as the caller speaks. The charge runs through your gateway in real time.

  5. 05

    The caller returns to your agent

    Maven fires a signed webhook with the result and transfers the caller back. Your agent picks up the conversation knowing the payment cleared.

Common questions

Do I need to be PCI compliant to take payments with Vapi?

Not if you use Maven. Card data never reaches your Vapi agent, your prompts, or your servers. Maven is PCI DSS compliant and handles the entire card collection and processing flow.

Which payment gateways work with Vapi through Maven?

Stripe, Authorize.net, Braintree, J.P. Morgan, Fiserv, Shift4, NMI, Qualpay, and Clover. If you use a processor Maven does not list, Maven can forward the collected card to your own PCI-compliant endpoint.

Can callers type their card instead of speaking it?

Yes. Callers can speak the digits or enter them on the keypad, and you can restrict collection to keypad only per app.

Can I save a card without charging it?

Yes. Set the session mode to tokenize and Maven stores the card on your gateway for future billing without charging it.

Add payments to your agent in minutes, not months

Connect your gateway, wire the handoff, and start collecting. Card data never touches your stack.

Related guides