Webhook tool

Stripe AI voice agents that send payment links

The agent looks up what the caller owes, and your service sends a Stripe payment link so the caller pays on their own device.

Payments agent

Looks up invoices and sends payment links.

Instructions

Look up the open invoice for the caller's number, state the amount, and send the payment link. Never ask for or accept a card number. Transfer disputes to billing.

Handoff
Billing team

Connected tools

  • Look up invoiceWebhook
  • Send payment linkWebhook
  • Transfer to billingTransfer

What a Stripe AI voice agent can do

Open one to watch a call. The grey lines are the tools the agent calls mid-sentence.

The agent asks your service for open invoices by the caller's phone number, and tells the caller the amount due.

Tool definitions

Webhook tools go to POST /v1/agents/tools. Transfers are a system tool on the agent. Replace the placeholder values in capitals with your own.

Webhook

Look up invoice

Returns the open invoice for a customer.

Show the JSON definition
look_up_invoice
{
  "type": "webhook",
  "name": "look_up_invoice",
  "description": "Finds the caller's open invoice.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/stripe/invoices",
    "method": "GET",
    "query_params_schema": {
      "properties": {
        "phone": {
          "type": "string",
          "dynamic_variable": "system__caller_id"
        }
      }
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Webhook

Send payment link

Creates a Stripe payment link and sends it.

Show the JSON definition
send_payment_link
{
  "type": "webhook",
  "name": "send_payment_link",
  "description": "Creates a payment link for the invoice and sends it to the caller.",
  "pre_tool_speech": "auto",
  "execution_mode": "immediate",
  "response_timeout_secs": 20,
  "api_schema": {
    "url": "https://api.your-company.com/stripe/payment-links",
    "method": "POST",
    "request_body_schema": {
      "type": "object",
      "properties": {
        "invoice_id": {
          "type": "string",
          "description": "The invoice ID from look_up_invoice."
        },
        "channel": {
          "type": "string",
          "constant_value": "sms"
        }
      },
      "required": [
        "invoice_id"
      ]
    },
    "authentication": {
      "mode": "bearer",
      "token": {
        "type": "secret",
        "secret_value": "YOUR_SERVICE_TOKEN"
      }
    }
  }
}

Transfer

Transfer to billing

Cold transfer to billing.

Show the JSON definition
transfer_to_billing
{
  "config": {
    "system_tools": {
      "transfer_to_number": {
        "description": null,
        "pre_tool_speech": "auto",
        "transfers": [
          {
            "destination": {
              "type": "phone",
              "phone_number": "+14155550113"
            },
            "condition": "The caller disputes the amount or asks for a person."
          }
        ]
      }
    }
  }
}

Set it up

No native connector. Stripe's API takes form-encoded requests with a secret key, so the tools call a small service of yours that talks to Stripe. Vendor details read in October 2026.

  1. Use a restricted key

    Create a restricted Stripe key with only the permissions your service needs. Keep it in your service, not in Cartesia.

  2. Build the service

    It looks up invoices and creates payment links with Stripe's API, then sends the link by your own SMS or email provider.

  3. Add the tools

    Use bearer secrets for your service only.

  4. Test in Stripe's test mode

    Run the whole flow with test keys first.

Before you build

Cartesia does not send texts

The agent has no built-in SMS action. Your service sends the link through your own SMS or email provider.

Test in Stripe's test mode

Run the whole flow, from invoice lookup to payment link, with Stripe test keys before your service uses a live restricted key.

Enterprise-grade security

  • HIPAA compliant badge

    HIPAA compliant

  • SOC 2 Type 2 badge

    SOC 2 Type 2

  • GDPR badge

    GDPR

Stripe AI voice agent FAQs

Can an AI voice agent take payments with Stripe?

Not directly. The agent never takes the payment itself. It reads the open invoice, your service creates a payment link for it, and your own SMS or email provider sends it. The caller pays on Stripe's page from their own device.

Can the agent take a card number by voice?

No. The instructions on this page tell the agent never to ask for or accept a card number, and to send the payment link instead. The caller enters the card on Stripe's own page.

Can the Cartesia agent text the payment link itself?

No. The agent has no built-in SMS action. Your service sends the link through your own SMS or email provider, and the agent tells the caller it's on the way.

Which Stripe API key should the service use?

A restricted key with only the permissions your service needs to read invoices and create payment links. Keep it in your service, not in Cartesia. Run the whole flow in Stripe's test mode with test keys first.

What does a Stripe payment agent cost to run?

Agents run at $0.03/min, plus LLM usage and telephony. Stripe charges its own fees on each payment, separately from Cartesia. Transfers only work on Twilio and SIP trunk calls, so put the number on Twilio or a SIP trunk if the agent hands callers to staff.

Get started today

Talk to an expert.

Connect with a member of our team and learn how Cartesia can help you build world-class voice experiences.

Contact Sales

Start building.

Access our models via API and bring a voice agent into production in minutes.

Try Cartesia