---
title: AWS End User Messaging WhatsApp: Templates, the 24-Hour Window, and a Reply Path (2026)
description: Since 1 July 2025 WhatsApp on AWS is billed per message. The AWS fee is $0.005 outbound and $0.001 inbound. India Authentication and Utility are $0.002. Meta's fee is extra.
url: https://www.factualminds.com/blog/aws-end-user-messaging-whatsapp-guide-2026/
datePublished: 2026-09-29T00:00:00.000Z
dateModified: 2026-09-29T00:00:00.000Z
author: palaniappan-p
category: AI Agents
tags: ai-agents, aws-end-user-messaging, whatsapp, amazon-bedrock
---

# AWS End User Messaging WhatsApp: Templates, the 24-Hour Window, and a Reply Path (2026)

> Since 1 July 2025 WhatsApp on AWS is billed per message. The AWS fee is $0.005 outbound and $0.001 inbound. India Authentication and Utility are $0.002. Meta's fee is extra.

On **1 July 2025** AWS End User Messaging Social switched WhatsApp from a per-conversation fee to a per-message fee, matching Meta. On **1 July 2026** AWS started converting Meta's INR rate card to USD at that day's exchange rate, with a possible refresh on the first day of each quarter. On **25 September 2026** the [skills announcement](https://aws.amazon.com/about-aws/whats-new/2026/09/aws-messaging-ses-ai-skills-mcp-server/) added a WhatsApp agent setup guide beside SMS, RCS, and SES. This is part 4 of [AWS Communication Developer Services](/blog/aws-communication-developer-services-2026/).

FactualMinds has no published WhatsApp engagement. The AWS cents below are the [pricing page](https://aws.amazon.com/end-user-messaging/pricing/) as read **29 September 2026**. Meta's cents are not reprinted here.

## Two fees, every time

| Meter | AWS fee | What it is not |
| --- | --- | --- |
| Outbound | **$0.005** per message | Not the Meta fee |
| India Authentication or Utility outbound | **$0.002** | Not a global discount |
| Inbound | **$0.001** per message | Not free because the customer spoke first |

Meta's fee depends on country and on message type: Marketing, Utility, Authentication, and Service. AWS publishes that table as a CSV, including volume tiers Meta sets. Budget the AWS fee as a floor. A 10,000-message US support month is **$50** of AWS outbound fees at **$0.005**, and then whatever Meta's row says for that type. If you only forecast the **$50**, the invoice will not match.

> **List-price arithmetic, not a client bill** — 10,000 outbound WhatsApp messages cost **$50** in AWS fees, or **$20** if every one of them is India Authentication or Utility. Inbound at 10,000 is another **$10**. Add Meta from the current CSV before you compare this with US Rich RCS at **$119.40** for 10,000 delivered one-segment texts. The RCS figure includes the carrier fee. The WhatsApp figure does not include Meta. They are not the same kind of total.

**We recommend WhatsApp when the customer already has a thread with you, and RCS-plus-SMS when they do not.** The trade-off on WhatsApp is template review and a second price list. The trade-off on RCS is carrier launch measured in months, documented in the [RCS guide](/blog/aws-end-user-messaging-rcs-guide-2026/). Standing up both on day one splits the conversation. Pick the one the [channel planner](https://www.factualminds.com/examples/architecture-blog-2026/aws-cds-channel-planner/channel-planner.csv) says yes to.

## The window and the template

Meta still distinguishes a customer-initiated conversation from a business that speaks first. Inside the customer care window, which runs **24 hours** from the customer's last message, you can answer in session. Outside it, `SendWhatsAppMessage` needs an approved template. The **1 July 2025** change replaced the conversation *fee*. It did not delete the template rule. AWS's older [per-conversation billing page](https://docs.aws.amazon.com/social-messaging/latest/userguide/charged-per-conversation.html) is marked deprecated and still describes that window. Use the current Social user guide and Meta's pricing docs before you hard-code the branch. The point that will not move: a where-is-my-order reply to someone who just asked is a different send from a Monday promo to someone who has been quiet for a week.

The coding-agent skill for this channel is `aws-social-messaging` in [agent-toolkit-for-aws](https://github.com/aws/agent-toolkit-for-aws). It covers template management, sending, media, event destinations, and delivery troubleshooting. Install it after the AWS MCP Server is connected, which is the 25 September 2026 instruction. The skill will not create your WhatsApp Business account. That account, and an active origination number, still come from Meta through the End User Messaging Social console. The public samples refuse to proceed without an **ACTIVE** number.

> **What broke** — A promo template sent as if it were a support reply. Marketing is its own Meta meter and its own opt-in. The support agent's system prompt does not change the template category. If the only approved template is Marketing, the agent cannot answer a shipping question until you get a Utility template approved. Detect it by the template name on the send, not by the tone of the sentence.

## The reply path that already exists

Two public samples, neither of them a FactualMinds deployment:

- [end-user-messaging-bedrock](https://github.com/aws-samples/generative-ai-ml-latam-samples/tree/main/samples/end-user-messaging-bedrock) — WhatsApp to End User Messaging Social, to SNS, to Lambda, optional Bedrock agent, back out with `SendWhatsAppMessage`. The sample uses the phone number as the Bedrock session id so a follow-up stays on the same conversation until the session times out.
- [two-way multi-channel chat](https://github.com/aws-samples/two-way-multi-channel-chat-with-a-generative-ai-chatbot) — SMS and WhatsApp, with a note that email can be added. The WhatsApp trigger is supposed to drop events that are not user messages.

That filter is the production detail. Social sends delivery and read events down the same topic. If Lambda calls the model for each of them, you pay for receipts.

The Lambda may look up the order and answer in the thread. It may not refund, change a ship-to, or change a price. Those proposals go to a person, as in [human-in-the-loop approvals](/blog/human-in-the-loop-ai-agents-ecommerce-2026/). The channel being WhatsApp does not make the tool safe.

Media is a separate step in the skill: upload, then reference. A product photo on WhatsApp is not the US Rich Media meter from the RCS page. It is an AWS message fee plus Meta's fee for that message type. Do not reuse the RCS **$0.02949** card price here.

## What to do this week

1. If `has_whatsapp_thread` is no for the where-is-my-order job, do not start here. Use the [hub](/blog/aws-communication-developer-services-2026/) and the RCS or SMS guide.
2. If it is yes, confirm the origination number is ACTIVE, then approve one Utility template for order status before you connect a model.
3. Subscribe Lambda to the SNS topic and drop non-message events first. Send a status callback and prove it never hits Bedrock.
4. Put the phone number in the session id only after you have decided how long a session may live. A session that never expires will answer next month's question with last month's order.
5. Log AWS fees and Meta fees on separate lines. The **$0.005** is the line you control.

> **Reproduce this** — Clone the Bedrock sample above and deploy it only into an account where the WhatsApp number is already ACTIVE. The fee milestones are the `whatsapp_outbound` and `whatsapp_inbound` rows in the [channel planner](https://www.factualminds.com/examples/architecture-blog-2026/aws-cds-channel-planner/channel-planner.csv). Fill Meta from AWS's CSV into `notes`. Do not type it into `unit_passthrough_fee_usd` unless you have looked up that country and type.

## What this post doesn't cover

Meta business verification, display-name review, and the opt-in language your counsel has to approve. The full Meta rate card. RCS country launch. SMS 10DLC. We are not publishing a read-rate or a conversion rate for WhatsApp.

## FAQ

### What does AWS charge for a WhatsApp message?

As of the pricing page read on 29 September 2026, AWS charges $0.005 per outbound message, except India Authentication and Utility at $0.002, and $0.001 per inbound message. Meta charges a separate fee by country and message type. AWS converts Meta's INR card to USD using the 1 July 2026 rate and may update that USD figure each quarter.

### When should I not open a WhatsApp thread from the agent?

When the customer has not written to you, and you do not have an approved template for that purpose. A session reply belongs inside the customer care window. A marketing blast is a template, a different Meta meter, and a different opt-in. Do not reuse the support agent as the promo sender.

### Did the 24-hour conversation fee go away?

The AWS fee model changed on 1 July 2025 from per conversation to per message. The customer care window did not become permission to send free-form marketing. Outside the window, business-initiated messages still need an approved template.

### What goes wrong if every WhatsApp event hits the model?

The Social topic receives more than user texts. The public multi-channel sample filters non-message events before the orchestrator. If you skip that filter, status callbacks become model calls and you pay Bedrock for delivery receipts.

### Can the WhatsApp agent issue a refund?

No. It may look up the order and reply in the thread. A refund, an address change, or a price change stays a proposal a person approves, same as on RCS and SMS.

### Which skill installs the WhatsApp setup help?

The published skill is aws-social-messaging in the Agent Toolkit for AWS. The 25 September 2026 announcement says to connect the AWS MCP Server, then add the channel skill. The skill covers templates, sending, media, event destinations, and delivery troubleshooting. It does not register your WhatsApp Business account with Meta for you.

## FAQ

### What does AWS charge for a WhatsApp message?
As of the pricing page read on 29 September 2026, AWS charges $0.005 per outbound message, except India Authentication and Utility at $0.002, and $0.001 per inbound message. Meta charges a separate fee by country and message type. AWS converts Meta's INR card to USD using the 1 July 2026 rate and may update that USD figure each quarter.

### When should I not open a WhatsApp thread from the agent?
When the customer has not written to you, and you do not have an approved template for that purpose. A session reply belongs inside the customer care window. A marketing blast is a template, a different Meta meter, and a different opt-in. Do not reuse the support agent as the promo sender.

### Did the 24-hour conversation fee go away?
The AWS fee model changed on 1 July 2025 from per conversation to per message. The customer care window did not become permission to send free-form marketing. Outside the window, business-initiated messages still need an approved template.

### What goes wrong if every WhatsApp event hits the model?
The Social topic receives more than user texts. The public multi-channel sample filters non-message events before the orchestrator. If you skip that filter, status callbacks become model calls and you pay Bedrock for delivery receipts.

### Can the WhatsApp agent issue a refund?
No. It may look up the order and reply in the thread. A refund, an address change, or a price change stays a proposal a person approves, same as on RCS and SMS.

### Which skill installs the WhatsApp setup help?
The published skill is aws-social-messaging in the Agent Toolkit for AWS. The 25 September 2026 announcement says to connect the AWS MCP Server, then add the channel skill. The skill covers templates, sending, media, event destinations, and delivery troubleshooting. It does not register your WhatsApp Business account with Meta for you.

---

*Source: https://www.factualminds.com/blog/aws-end-user-messaging-whatsapp-guide-2026/*
