In November 2022 Jake Moffatt’s grandmother died. He went to Air Canada’s website to book a flight to the funeral, and asked the chatbot about bereavement fares. It told him he could book at full price and apply for a discount within ninety days.
That was not the policy. The real policy did not allow a retroactive claim, and it was set out correctly on a different page of the same website, a page the chatbot even linked to. Air Canada refused the refund. Moffatt took it to the British Columbia Civil Resolution Tribunal, and on 14 February 2024 he won.
The argument the airline made
This is the part worth reading twice, in the tribunal’s own words:
“Air Canada argues it cannot be held liable for information provided by one of its agents, servants, or representatives, including a chatbot. It does not explain why it believes that is the case. In effect, Air Canada suggests the chatbot is a separate legal entity that is responsible for its own actions. This is a remarkable submission.”
The tribunal went on: “While a chatbot has an interactive component, it is still just a part of Air Canada’s website. It should be obvious to Air Canada that it is responsible for all the information on its website.” And: “It makes no difference whether the information comes from a static page or a chatbot.”
The finding was negligent misrepresentation, a duty of care, a misleading representation, negligence in making it, reasonable reliance by the customer, and resulting damages. The award was CAD $812.02: $650.88 in damages, $36.14 in interest, $125 in fees.
What this decision is not
Most write-ups of this case overstate it, and the overstatement is easy to repeat, so here is the correction.
It was a tribunal, not a court, an online forum for small claims. It is not binding precedent in the way an appellate judgment would be. And Air Canada did not literally argue that its chatbot was a legal person; it made an unexplained submission that it was not responsible for the chatbot’s words, and the tribunal characterised that as amounting to a separate-entity claim.
None of which makes it less useful. It is the clearest published reasoning available on a question every business putting an AI in front of customers now has, and the reasoning does not depend on the size of the claim.
The older idea underneath it
None of this is really new law. Businesses have always been bound by what the person behind the counter says, even when that person is wrong, because a customer is entitled to rely on someone the business put there to answer questions. The chatbot is the person behind the counter. It just never gets tired, never goes home, and can say the same wrong thing to four thousand people before anybody notices.
That last part is the actual difference. A human employee who invents a discount does it once. A misconfigured agent does it at scale, silently, and the first you hear of it is when the claims arrive.
So what stops it?
Not a prompt. This is the part that companies buying AI tools get talked out of, so it is worth being blunt: telling a model “never quote a price that is not in the catalogue” is a request. It is complied with most of the time. Most of the time is not a control.
The reliable version has three parts, none of them clever:
- Prices live in structured data the business approved, a table, not a paragraph, and never the model’s memory of a paragraph.
- Every figure in an outgoing message is checked against that data before the message is sent. A number that is not there does not go out. This is a matcher in code: it either fires or it does not, and it can be tested.
- When the information is missing, the agent says so. “I do not have that in front of me, so I will not guess, a colleague will confirm today” costs a business nothing. An invented figure costs it the customer, and sometimes $812.02 plus the news coverage.
And when it cannot help, it must be able to hand over
The other half of not embarrassing yourself is knowing when to stop. Gartner found in August 2026 that 87% of customers say a company using generative AI for customer service must provide access to a human agent, 3,566 respondents, surveyed in February and March 2026. That is not a finding about AI being bad. It is a finding about what happens when people feel trapped.
An agent that hands over cleanly, with the full context attached, is one that never has to bluff. And bluffing is where the $812.02 comes from.
The decision is Moffatt v Air Canada, 2024 BCCRT 149, decided 14 February 2024 by Tribunal Member Christopher C. Rivers.
Questions people ask about this
Is a company legally responsible for what its chatbot says?
On the evidence so far, yes. In Moffatt v Air Canada the British Columbia Civil Resolution Tribunal held the airline responsible for a bereavement fare discount its chatbot described but its policy did not offer. The tribunal found it made no difference whether the information came from a static page or a chatbot, because both are part of the company website.
What did Air Canada actually argue?
That it could not be held liable for information provided by one of its agents, servants or representatives, including the chatbot, without explaining why. The tribunal characterised this as suggesting the chatbot was a separate legal entity responsible for its own actions, and called it a remarkable submission.
How much did the Air Canada chatbot case cost?
The total award was CAD $812.02: $650.88 in damages, $36.14 in pre-judgment interest and $125 in tribunal fees. The sum is small because it was a small claim. The reasoning is what matters, because it applies to claims of any size.
Was Moffatt v Air Canada a court decision?
Not exactly, and this is worth being precise about. It was decided by the British Columbia Civil Resolution Tribunal, an online tribunal handling small claims, on 14 February 2024. It is not binding precedent in the way an appellate court judgment would be. It is nonetheless the clearest published reasoning on the question so far.
How do you stop an AI stating a price that is not real?
Not with instructions. The reliable approach is to hold prices as structured data the business has approved, and to check every figure in an outgoing message against that data before the message is sent, blocking any number that is not there. That is a matcher in code, which either fires or does not, rather than a request to a model that may or may not be followed.
Should an AI agent be able to escalate to a human?
Customers overwhelmingly expect it. Gartner found in August 2026 that 87% of customers say a company using generative AI for customer service must provide access to a human agent, from a survey of 3,566 people fielded in February and March 2026.
The short version
The legal question of whether you are bound by what your AI says is settled enough to plan around. The engineering question, how to make sure it cannot say a number you have not approved, is the one still worth your attention.
This is why Ampa cannot state a price you have not approved.
Every figure in every outgoing message is checked against your own approved data before the message is sent. Not an instruction in a prompt: a matcher in code. Ask the agent on this page what Ampa costs and watch it refuse.
Start free trial → or ask the agent something hard first