AWS End User Messaging WhatsApp: Templates, the 24-Hour Window, and a Reply Path (2026)
Quick summary: 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.
Key Takeaways
- 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

Table of Contents
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 added a WhatsApp agent setup guide beside SMS, RCS, and SES. This is part 4 of AWS Communication Developer Services.
FactualMinds has no published WhatsApp engagement. The AWS cents below are the pricing page 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. Standing up both on day one splits the conversation. Pick the one the channel planner 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 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. 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 — 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 — 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. 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
- If
has_whatsapp_threadis no for the where-is-my-order job, do not start here. Use the hub and the RCS or SMS guide. - If it is yes, confirm the origination number is ACTIVE, then approve one Utility template for order status before you connect a model.
- Subscribe Lambda to the SNS topic and drop non-message events first. Send a status callback and prove it never hits Bedrock.
- 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.
- 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_outboundandwhatsapp_inboundrows in the channel planner. Fill Meta from AWS’s CSV intonotes. Do not type it intounit_passthrough_fee_usdunless 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.
AWS Cloud Architect & AI Expert
AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.




