Skip to content
Try Free →

Stripe integration use cases

Last updated: · 5 min read

Why identity verification is mandatory

Billing data is sensitive: dates, amounts, last-4 of cards. Anyone could claim to be a customer and ask about their account if the bot trusted self-reported identity.

The subscription_manager skill refuses to act unless the visitor is verified via HMAC (identity verification setup). For anonymous visitors asking billing questions, the bot escalates to a human agent rather than risking impersonation.

Setup requires the Stripe integration plus identity verification (about 15 minutes extra).

1. Subscription status lookup

The most common billing query. Verified customers ask:

"When does my subscription renew?" "How much will my next invoice be?" "What plan am I on?"

The subscription_manager skill:

  1. Confirms identity via HMAC.
  2. Queries Stripe for the customer's active subscription.
  3. Replies with current plan, renewal date, amount, and last invoice.

Example response:

You're on the Growth plan ($49/month). Next billing date: May 28, 2026. Last invoice (May 1): $49 paid. Want to see your invoice history or change plans?

Latency: about 2 seconds. Handles about 30 to 40% of all billing queries.

2. Refund processing within policy bounds

For refunds within your defined policy (e.g., within 14 days of charge, less than $500), the bot can process directly:

  1. Customer requests refund.
  2. Skill checks policy bounds: within window? amount within auto-approve cap?
  3. If yes, refund issues via Stripe Refunds API. Customer gets confirmation within 30 seconds.
  4. If outside bounds, escalates to a human with full context.

Auto-refund cap defaults to $500 per visitor; configure under Skills > subscription_manager > Refund Bounds. Higher caps require admin approval.

About 60 to 70% of refund requests fall within auto-approve bounds. Saves about 5 to 10 minutes of human-agent time per ticket.

3. Plan changes

Customers upgrade or downgrade via chat:

"I want to upgrade from Starter to Growth."

The flow:

  1. Identity verified.
  2. Bot pulls available plans from your Stripe Products catalog.
  3. Shows pricing difference and effective date.
  4. Customer confirms.
  5. Stripe Subscription updated with proration (default: prorate immediately, charge on next invoice).
  6. Confirmation sent.

Plan changes complete in about 60 seconds end-to-end. Useful for self-service upgrades that previously required sales contact.

Note on downgrades. Some plan changes (UPI/eMandate subscriptions in India) can't be plan-changed in place per provider rules. The bot detects this and asks the customer to cancel and re-subscribe instead.

4. Failed-payment recovery

When Stripe's invoice.payment_failed webhook fires:

  1. AskVault receives the event within 30 seconds.
  2. The bot initiates an outbound message via WhatsApp (if opted in) or email.
  3. Customer is informed and offered options: retry now, update card, or talk to support.
  4. If they update card, Stripe retries the payment automatically.
  5. If they retry now, AskVault triggers a manual retry via the Stripe API.

Recovery rate: about 40 to 60% of failed payments recover within 48 hours when actively pursued, vs 15 to 25% via Stripe's standard dunning emails alone.

5. Invoice retrieval

Customers ask for past invoices for accounting purposes:

"Can you send me invoices for the last 3 months?"

The bot:

  1. Verifies identity.
  2. Pulls the customer's invoice list from Stripe.
  3. Replies with PDF download links for each invoice.
  4. Optionally emails them in a single bundle for easy forwarding to finance.

Latency: about 3 seconds. Removes a common support touchpoint.

Webhook events the integration listens for

AskVault subscribes to these Stripe webhooks:

  • customer.subscription.created. New subscription. Tag customer in CRM.
  • customer.subscription.updated. Plan change. Update audience tags.
  • customer.subscription.deleted. Cancellation. Trigger off-boarding flow.
  • invoice.payment_succeeded. Successful charge.
  • invoice.payment_failed. Failed charge. Initiate recovery flow.
  • charge.refunded. Refund issued. Confirm to customer.

Configure under Integrations > Stripe > Webhooks. We provide the webhook signing secret automatically; paste it into Stripe Dashboard during setup.

Field mapping

What we sync between Stripe and AskVault:

Stripe fieldAskVault audience tag or property
Subscription statuscustomer_status (active, trialing, past_due, canceled)
Plan nameplan_tier (free, starter, growth, business, enterprise)
Trial end datetrial_ends
Customer emailmatched to AskVault customer record
Customer IDlinked to AskVault contact

Audience tags drive content gating. E.g., only plan_tier=enterprise customers see Enterprise-only docs.

Policy bounds

The subscription_manager skill has hard caps the LLM can't override:

  • Refund cap per visitor. Default $500. Higher requires admin approval.
  • Plan-change cap. Up to 3 plan changes per visitor per month (prevents accidental flapping).
  • Cancellation grace. Bot waits 30 seconds after cancel confirmation before processing (allows undo).
  • Identity required. Always. No exceptions.

Configure under Skills > subscription_manager > Bounds.

Sample customer journey

End-to-end:

  1. Customer logs into your product. Widget identifies them via HMAC.
  2. Customer asks "Why was I charged twice?"
  3. Bot pulls Stripe invoice history. Confirms one charge, refunds the duplicate.
  4. Stripe refund issues in 30 seconds.
  5. Customer asks to upgrade. Bot shows plan diff, customer confirms.
  6. Subscription updates in Stripe. Customer's audience tag updates.
  7. Bot suggests features unlocked in new tier. Cross-sell.

All within about 3 minutes, no human involvement.

Plan availability

Stripe use cases require:

  • AskVault Business or Enterprise plan. Free, Starter, Growth don't include the subscription_manager skill. Business+
  • Identity verification configured. See setup.
  • Stripe account in good standing. Stripe restrictions (high-risk merchant, missing KYC) limit some operations.

Privacy and PCI scope

Important:

  • AskVault never sees raw card numbers. All card operations happen in Stripe's PCI scope.
  • AskVault stores customer ID, subscription ID, plan name. Not card data.
  • Last-4 of card may be referenced in conversation (e.g., "your Visa ending 4242 was charged $49"). This is Stripe-provided metadata, not PCI.

AskVault is therefore outside PCI scope. Your Stripe relationship covers the PCI obligation.

Planned features (on the roadmap)

Documented for accuracy:

  • Razorpay parity. AskVault uses Razorpay for our own billing (INR-first market). Customer-facing Razorpay use cases for AskVault customers are on the roadmap.
  • Stripe Tax integration. Today, taxes pass through. Native Tax handling in conversations planned.
  • Multi-currency display. Today, invoices show in customer's native currency from Stripe. Inline conversion in conversation planned.
  • Subscription pausing. Today, customers can cancel or change plan. Self-service pause planned.

Common pitfalls

Bot escalates every billing query. Identity verification not configured, so the bot can't verify the visitor. Set up HMAC verification.

Refunds blocked at cap. Cap set too low. Bump under Skills > subscription_manager > Refund Bounds.

Plan change fails for UPI customers. UPI/eMandate subscriptions can't be plan-changed in place per Indian payment rules. Customer must cancel and re-subscribe.

Webhook events not arriving. Stripe webhook URL misconfigured. Confirm the URL in Stripe Dashboard points at https://api.askvault.co/api/stripe/webhooks with the correct signing secret.

FAQ

Can the bot process refunds for amounts above the policy cap?

No. The cap is enforced at the policy layer; the LLM can't override. Higher-amount refunds escalate to a human.

Does this work for Stripe customers in India (UPI, RuPay)?

Mostly. Subscription lookups and invoice retrieval work. Plan changes on UPI/eMandate subscriptions are blocked by provider rules; customer must cancel and re-subscribe.

Can I require a confirmation step before any billing action?

Yes. Under Skills > subscription_manager > Confirmation, require explicit "yes" before any refund or plan change.

What happens if Stripe API is down?

The bot detects and falls back to "I can't access billing right now; let me escalate". Stripe outages typically last under 15 minutes.

Can I see all bot-driven billing actions in an audit log?

Yes. Every action logs in Dashboard > Audit Log with timestamp, actor, customer, and outcome.

Was this page helpful?