Stripe Billing

Let your agent help verified customers with their subscription, invoices, and billing.

Connect your Stripe account to let April help signed-in customers with their own billing. Once a customer's identity is verified, the agent can show their current plan, list recent invoices, share a secure link to manage billing, and start a cancellation — all inside the chat, without sending them to a support queue.

Because this involves real billing data, April only ever acts on behalf of a customer whose identity has been verified. The agent never accepts a typed-in email to look someone up, so one person can never see another person's invoices or subscription.

Before You Start

Turn on Identity Verification for this chatbot first. Billing actions only run for a verified, signed-in customer — the secure link your site passes to the widget is what tells April who the customer is. Without it, the Stripe integration stays inactive even after you connect it.

Setup

Step 1: Create a Restricted Stripe Key

A restricted key limits exactly what April can do with your Stripe account. Use one instead of your full secret key.

  1. In your Stripe Dashboard, go to DevelopersAPI keys
  2. Under Restricted keys, click Create restricted key
  3. Give it a name like April billing agent
  4. Set these permissions:
    • Customers — Read
    • Subscriptions — Read
    • Invoices — Read
    • Billing Portal — Write
  5. Leave everything else as None
  6. Click Create key and copy the key (it starts with rk_live_…)

The read permissions let the agent look up plans and invoices. The Billing Portal — Write permission is what lets it generate the secure "manage billing" link.

Step 2: Decide on a Return URL (Optional)

The billing portal link sends customers back to a page on your site when they're done — usually their account or dashboard page, for example https://your-site.com/account. Have this URL ready if you want the Manage billing link to be available. Without a return URL, the agent can still show plans and invoices, but it can't open the billing portal.

Step 3: Connect in April

  1. Open your chatbot in the April dashboard
  2. Go to Integrations in the sidebar
  3. Find Stripe and click Connect
  4. Paste your restricted key into the API key field
  5. Optionally, enter your Return URL
  6. Click Connect Stripe

April verifies the key against your Stripe account before saving it. If the key is wrong or doesn't have the right permissions, you'll see an error and nothing is stored.

Step 4: Test It

Open the Playground as a verified customer (or test it live in the widget on your site, signed in). Try asking:

  • "What plan am I on?"
  • "Can I see my recent invoices?"
  • "I want to manage my billing"
  • "How do I cancel my subscription?"

How It Works

Every billing action is tied to the verified customer in the conversation — never to an email someone types in chat. When a verified customer asks about their billing, the agent can:

  1. Show their subscription — the current plan name, price, billing interval, status, and renewal date
  2. List recent invoices — recent invoices with amounts, dates, and a link to view each one
  3. Open a secure billing portal link — a Stripe-hosted link where the customer can update their payment method, change their plan, or download invoices, then return to your site
  4. Start a cancellation — the agent shows a confirmation card with the details first; the subscription is only cancelled after the customer explicitly confirms

Cancellations take effect at the end of the current billing period, so the customer keeps access through the time they've already paid for. The agent never changes a payment method or card details directly — anything PCI-sensitive happens inside Stripe's own billing portal.

If April can't confidently match the verified customer to a single Stripe customer record, it will not guess. It hands the conversation off rather than risk showing the wrong account's data.

Example Conversation

Visitor: What plan am I on, and when does it renew?

Agent: You're on the Pro plan at $29.00/month. Your status is active and it renews on July 5, 2026. Would you like to see your recent invoices or manage your billing?

Visitor: Actually I'd like to cancel.

Agent: No problem. Here's what cancelling looks like:

  • Plan: Pro — $29.00/month
  • You'll keep full access until July 5, 2026
  • After that date, your subscription ends and won't renew

Do you want me to go ahead and cancel?

Visitor: Yes, please cancel it.

Agent: Done — your Pro subscription is set to cancel on July 5, 2026. You'll keep access until then, and you won't be charged again. If you change your mind before that date, just let me know.

FAQ

Why does the agent ask people to sign in instead of just taking their email? Billing data is sensitive. April only acts for a customer whose identity is verified through your site, so it's impossible for someone to look up another person's plan or invoices by typing in an email.

Do I need a paid Stripe plan? No. The integration works on any standard Stripe account. You only need a restricted key with the permissions listed above.

Can the agent change a customer's card or take a payment? No. The agent can show plans and invoices and start a cancellation, but card and payment-method changes only happen inside Stripe's secure billing portal — April never touches card data.

Why isn't the "manage billing" link showing up? The billing portal link needs a Return URL. Add one in the Stripe integration settings and the agent will be able to share the link.

What happens if a customer's email matches more than one Stripe customer? April won't guess between them. Rather than risk showing the wrong account, it stops and hands the conversation off so a person can help safely.

Is cancellation immediate? No — it's scheduled for the end of the current billing period, so the customer keeps access for what they've already paid. They can resubscribe any time before then.

Can I revoke April's access later? Yes. Open the Stripe integration in April and click Disconnect, or delete the restricted key in your Stripe Dashboard. Either one cuts off access immediately.