Blog

Can an AI agent safely handle refunds, cancellations and plan changes?

Published October 20, 2026 · By Jose · 8 min read

  • Customer Support
  • N1 Support
  • CX Operations
Illustration of the ghost mascot at a laptop beside a flow of cards: billing check, customer confirms, refund sent, and a separate finance team card, under the title "Refunds on autopilot, with rules that say no".

Quick summary

  • An AI agent can safely process refunds, cancellations and plan changes when the rules for each action live outside the model: who qualifies, which account, how many times, and what gets confirmed.

  • Eligibility comes from live billing data. What the customer says about their own subscription never decides a refund.

  • Irreversible actions need two turns: the agent explains the consequence, then acts only on an explicit yes.

  • Bruno, the AI agent that keeps 86% of Metricool's support conversations from reaching a human, refunds new subscriptions under 15 days old on its own. Renewals, chargebacks and Custom plans go to the finance team.

  • The agent never offers a refund the customer didn't ask for, and never says it did something no tool executed.

Yes, an AI agent (software that reads a request and can act in other systems, not only reply) can safely handle refunds, cancellations and plan changes. It needs eligibility rules checked against live billing data, a confirmation step before any irreversible action, and a clear line where the case goes to a person.

The model writes the reply. The rules decide what it may do.

Most support teams already know which billing requests are routine. A refund on a plan bought last week. A downgrade at the end of the period. A card that failed. These cases fill the queue and follow the same steps every time.

The risk sits in the edges. A customer who says "refund or some compensation". A renewal that looks new. Two accounts under one email.

Answering a billing question wrong costs a reply. Executing a refund wrong costs money.

What makes a billing action safe for an AI agent?

A billing action is safe when the rules that allow it are written down, checked by software, and narrow enough to fail closed (when in doubt, the action doesn't run).

Security guidance agrees. OWASP calls the risk excessive agency: an AI system with more power to act than its job needs. Its advice is plain: authorization belongs in the systems that execute the action, not in the model's judgment.

Four rules for any AI action that touches money

  1. Eligibility comes from the system of record, the billing system that holds the official subscription data. Start date, renewal history and plan type are read there, not from the chat.
  2. One account, named by the customer. If a person has two accounts, the AI acts only on the one they named.
  3. One execution. An irreversible action runs once per conversation. No retries, no "let me try again".
  4. The reply matches the tool result. It confirms what the tool did, nothing more and nothing less.

Billing requests: who handles each one

Request

Who handles it

Why

Refund on a new subscription inside the refund window

AI agent

Rule is objective and checkable in billing data

Discount to stay

AI agent, from a live coupon list

Codes come from a tool, never invented

Downgrade or plan change

Customer, with guidance in chat

Upgrade applies now, downgrade at period end

Any refund or billing case outside the rules

Finance team

Needs judgment or a business decision

Why should eligibility never come from the conversation?

Eligibility comes from billing data because customers describe their own situation inaccurately, often without meaning to. "I just signed up" can mean a renewal from last month. "I was charged twice" can mean two different accounts.

A refund rule that trusts the chat can be talked into anything. A rule that reads the subscription record cannot.

The legal side points the same way. In Moffatt v. Air Canada, a Canadian tribunal held the airline responsible for a refund policy its chatbot described wrongly. The company argued the chatbot was a separate entity. The tribunal disagreed.

Whatever your AI agent promises, your company has promised.

How does an AI agent confirm before an irreversible action?

The agent confirms in two turns. First it explains what the action will do and asks. Then it acts only when the customer says yes in a later message, for that specific account.

The trigger matters as much as the confirmation. A refund request is a customer asking for the money back, in their own words. Several requests look similar and are something else:

  • "Can I switch from annual to monthly?" is a plan change.
  • "My card was declined" is a payment problem.
  • "Refund me or give me something for the trouble" is a complaint with two possible outcomes.

In the last case, the agent stops before acting. It explains that getting the money back cancels the plan and removes paid features. Then it asks which the customer prefers: repayment with cancellation, or keeping the plan.

How Bruno handles refunds at Metricool

Bruno is the AI agent Zentesimal runs for Metricool. It keeps 86% of Metricool's support conversations from reaching a human, across chat and email inside Crisp, the helpdesk Metricool's team works in.

Billing is one of Bruno's skills, meaning a written playbook for one type of request.

The automatic refund path

Bruno processes a refund on its own only when every condition holds:

  • The customer explicitly asks for the money back.
  • The current subscription started less than 15 days ago, checked in the live account.
  • The subscription is new, not a renewal.
  • The plan is not Custom and has no nonprofit benefit attached.
Flow diagram of how an AI agent decides a refund: a refund request is checked for whether the customer asked for money back, then a billing check (under 15 days, new not a renewal, not a Custom plan); if all pass the agent explains and confirms, the customer says yes, and the refund runs with a Slack alert. Requests that are not refunds get plan or payment help, and failed checks go to the finance team with a summary.

When all four are true and the customer confirms, Bruno runs one action that cancels the subscription and issues the refund.

Then it tells the customer exactly what happened. The plan is cancelled and the money returns to the original payment method: instantly with PayPal, in 5 to 10 days by card. A credit note cancels the invoice.

Even an automatic refund sends a short alert to the team in Slack. Nobody has to approve it. Everybody can see it.

The guards around it

A guard is a rule that checks every reply before it reaches the customer, and blocks the reply if it breaks the rule. Bruno's billing replies pass through several:

  • Never offer a refund the customer didn't ask for, even when the account qualifies.
  • Never offer to cancel before the current period ends.
  • Never say a refund, plan change or escalation happened unless a tool executed it.
  • Never show internal identifiers such as user or account IDs.

The last two rules work in both directions. When the refund tool succeeds, Bruno must confirm it. Saying "I can't process refunds" after a successful one is also blocked.

What goes to the finance team

Everything outside the automatic path goes to a person, with the case already summarized.

Billing cases Bruno sends to finance

Case

What Bruno does

Renewal, or more than 15 days

Sends to finance with the amount and the reason the automatic path rejected it

Custom or nonprofit plan

Hands over; never negotiates Custom pricing in chat

Chargeback (a payment reversed through the bank) or dispute

Passes on as a refund request

Duplicate charge or wrong invoice details

Sends for manual correction

Compensation after a product failure

Hands over; tells the customer only that finance will review it

Failed payment, account locked

Passes on; the team reactivates the account until the next payment attempt

The handoff always carries the same five fields: request type, customer, plan, a one or two line summary of what was asked and already done, and the conversation link.

The team reads one message and acts.

Bruno handles volume. We handle quality.

Bea, Support Team Lead at Metricool

What does the team still own?

The team owns every decision that involves judgment, money outside the rules, or a relationship. Exceptions, compensation, disputes, Custom contracts and reactivations stay with people.

The team also owns the rules themselves. The 15-day window, the excluded plans and the wording of the confirmation are business decisions. The agent applies them consistently, thousands of times a month, and the team changes them when the business changes.

The agent applies the policy. The team writes it.

Plan changes sit in between. Bruno explains how they work: an upgrade applies immediately and is prorated (the unused days of the old plan are discounted), and a downgrade waits until the end of the period.

The customer makes the change in the product. The agent guides, the customer clicks.

Where to start with billing actions

The usual first candidate is the refund on a recent first purchase: one date check, one plan check, one action.

Its rules fit in a list a new hire could follow. The confirmation step, the Slack alert and a handoff format for everything else come next. The support use case shows how billing actions sit next to the rest of the support queue.

Recap

An AI agent can execute refunds and cancellations when its permissions are narrow and its rules are checked against billing data. The customer's words start the request; the account record decides it. Every irreversible action waits for an explicit yes, runs once, and is reported exactly as it happened. Exceptions, disputes and compensation stay with the finance team, who receive each case already summarized.

Book a demo

FAQ

Can an AI agent issue refunds without human approval?

Yes, for cases that meet objective rules checked in billing data, such as a new subscription inside the refund window. At Metricool, its AI support agent Bruno refunds new subscriptions under 15 days old on its own and alerts the team in Slack. Everything else goes to the finance team.

How do you stop an AI agent from refunding the wrong account?

The agent identifies the account from the system of record, acts only on the account the customer names, and never suggests a different account because it happens to qualify. The refund runs once per conversation.

Should an AI support agent offer refunds to stop a cancellation?

No. Offering refunds proactively turns a support agent into a cost. A safer pattern is to answer the cancellation request, offer a retention coupon from a live coupon list when the case allows it, and refund only when the customer asks.

Which billing cases should always go to a human?

Chargebacks, payment disputes, renewals outside the refund policy, custom contracts, compensation after a product failure and account reactivations after a failed payment. These need judgment or a business decision.

Is a company liable for what its AI agent promises?

In at least one case, yes. In Moffatt v. Air Canada (2024), a Canadian tribunal held the airline responsible for refund information its chatbot gave a customer. Rules that check every reply before it is sent reduce that risk.

See how CX teams deploy AI workers they actually rely on.