WhatsApp Guide

Migrate to messaging_account_id Before 31 December 2026

A deprecated parameter and a currency deadline land on the same day. The first is a code cleanup. The second, for eligible Indian customers, stops message delivery on 1 January 2027 if it is missed. Here is what each requires and who has to act.

Distk Editorial Oct 2026 11 min read

WhatsApp's new account model adds a messaging_account_id parameter to the Messages API. The older paid_messaging_account_id is supported only as a deprecated alias, and Meta says to migrate by 31 December 2026, after which it is planned for removal in a future Graph API version. Send messaging_account_id whenever your access token has messaging access to more than one Messaging account on the business phone number in the request, because that is when Meta cannot tell which account to bill and attribute the message to. It is optional at Phase 1, required on the newest Messages API version from H1 2027, and required on every version from H1 2028 in those setups. A message counts toward the analytics and charges of the Messaging account it is sent from. On the same date, eligible Indian customers must migrate every account to INR, because from 1 January 2027 Meta stops delivering messages of their non-INR accounts. The Currency Migration API has been available since 1 June 2026.

What Is the messaging_account_id Deadline in 2026?

The deadline is 31 December 2026. Under WhatsApp's new account model, the Messages API gains a messaging_account_id parameter. The older paid_messaging_account_id parameter is supported only as a deprecated, backward-compatible alias, and Meta says to migrate to messaging_account_id by 31 December 2026, after which the alias is planned for removal in a future Graph API version.

For Indian businesses, the same date carries a second and more serious deadline. Eligible customers must migrate every account in their business portfolio to INR billing by 31 December 2026, because from 1 January 2027 Meta will no longer deliver messages from their non-INR accounts. One date is a code cleanup. The other is a delivery cut-off.

DeadlineWho it affectsWhat happens if missed
31 December 2026: replace paid_messaging_account_idIntegrations sending the deprecated aliasThe alias is planned for removal in a future Graph API version
31 December 2026: migrate to INREligible customers whose Sold-To country is India in Billing HubFrom 1 January 2027 Meta stops delivering messages of their non-INR accounts
H1 2027: Phase 2Multi-Messaging account setups on the newest Messages API versionmessaging_account_id becomes required
H1 2028: Phase 3Multi-Messaging account setups on every Messages API versionmessaging_account_id required everywhere in those setups

Why Does messaging_account_id Exist in 2026?

Because one phone number can now be linked to more than one Messaging account. Under the new account model, each partner working with a client gets its own Messaging account for templates and billing, and each billing currency can have its own Messaging account too. When a single access token can reach several of those on the same number, Meta cannot tell which one to bill and attribute a message to. messaging_account_id is how you tell it.

Meta states the rule as a single condition: include the parameter whenever the access token you are sending with has messaging access to more than one Messaging account on the business phone number in your request. Everything else, the multi-partner cases, the multi-currency cases, a direct developer holding several Messaging accounts on its own number, is an example of that one rule rather than an exception to it.

When Do You Actually Need to Send It in 2026?

Only in multi-Messaging account situations. If your token reaches exactly one Messaging account on the number you are sending from, the question does not arise, because there is only one account to bill. The table below sorts the common setups.

SetupToken reaches more than one Messaging account on the number?Send messaging_account_id?
One brand, one provider, one currencyNoNot needed
Two partners on one number, each using its own tokenUsually no, each token sees its own accountNot needed unless a token reaches both
Direct developer with several Messaging accounts on its own numberYesYes
One number billing in two currencies via two Messaging accountsYes, if one token reaches bothYes
Agency token with access to several client Messaging accounts on one numberYesYes

The timing of the requirement is staged. At Phase 1, general availability in late 2026, the parameter is optional. From Phase 2 in H1 2027 the newest Messages API version requires it for multi-Messaging account setups, while older versions still accept calls without it and Meta attempts to resolve the account from your app's association. From Phase 3 in H1 2028, every Messages API version requires it in those setups.

What Does messaging_account_id Do to Billing and Analytics in 2026?

It decides where a message is counted. Meta explains that a message counts toward the analytics and the charges of the Messaging account it was sent from, and that messaging_account_id is what selects that Messaging account when more than one is reachable. Get it wrong and nothing fails loudly. The message is delivered, billed and reported against the wrong account.

Why this is a finance problem, not just a developer one

If a brand runs marketing through one partner and support through another on the same number, and a shared token sends without the right messaging_account_id, marketing spend can land on the support account or the reverse. Each Messaging account carries its own payment method, so the error shows up as an unexpected invoice on the wrong card, and as campaign metrics that do not add up.

What Is the INR Billing Deadline for Indian Businesses in 2026?

WhatsApp billing localisation launched on 1 January 2026 for partners and directly integrated businesses whose Sold-To country is India in Billing Hub. Meta calls these eligible customers. Eligible customers must ensure every account in their business portfolio is migrated to INR by 31 December 2026 to avoid disruption, because from 1 January 2027 Meta will no longer deliver the messages of non-INR accounts belonging to eligible customers.

Meta provides a Currency Migration API, available since 1 June 2026, to make the move faster. Brazil follows the same pattern a year later: eligible Brazilian customers must migrate to BRL by 30 June 2027, with non-BRL delivery stopping on 1 July 2027.

MarketLocalisation launchMigrate all accounts byNon-local delivery stops
India (INR)1 January 202631 December 20261 January 2027
Brazil (BRL)1 July 2026 for new accounts30 June 20271 July 2027

The link between the two deadlines is direct. The new account model lets one phone number carry several Messaging accounts in different currencies. An Indian business mid-migration may briefly have both a USD and an INR Messaging account on the same number, which is exactly the situation where messaging_account_id decides which one a message is billed to.

Prepaid billing with UPI in India

Meta also added a guide in September 2026 for accounts in India that fund messaging with UPI top-ups instead of invoiced billing. It covers how the funds check works and why a send can return accepted and still be rejected for insufficient funds on the status webhook, with error 131042. Teams on prepaid UPI billing should treat the status webhook, not the API's acceptance response, as the record of whether a message actually went out.

How Do You Migrate Before 31 December 2026?

Treat it as two parallel workstreams: one in the code, one in Billing Hub. Neither is large, and both have the same deadline.

Code workstream

  1. Search every integration for paid_messaging_account_id, including any provider SDK you depend on.
  2. Replace it with messaging_account_id. Meta documents precedence when both are supplied, but the clean state is to send only the new name.
  3. List every access token and, for each phone number, how many Messaging accounts that token can reach.
  4. Send messaging_account_id explicitly wherever a token reaches more than one, rather than relying on Meta's resolution.
  5. Plan the move to the Phase 2 Messages API version for 2027, since that is where the parameter becomes required.

Billing workstream for India

  1. Confirm your Sold-To country in Billing Hub, since that is what makes you an eligible customer.
  2. List every account in the business portfolio and its current billing currency.
  3. Migrate each non-INR account to INR using the Currency Migration API or Billing Hub, well before 31 December 2026.
  4. Verify sends after each migration by checking status webhooks rather than API acceptance.
  5. Brief finance that invoices and payment methods will change currency.

Who Has to Act: the Business, the Partner or the Developer in 2026?

PartyWhat they own
The businessBilling Hub settings, the INR migration decision for its own portfolio, and confirming partners are ready.
The partner or BSPIts own integration code, its own Messaging accounts, and any tokens that reach several client accounts.
The direct developerReplacing paid_messaging_account_id, sending messaging_account_id where needed, and the 2027 API version upgrade.

If you work through a provider, the right question to ask them this quarter is short: have you replaced paid_messaging_account_id, and have our accounts been moved to INR? For the cost changes already live from 1 October 2026, see the service message pricing hub.

What Are the Common Mistakes in 2026?

Key Takeaways for 2026

31 December 2026 is a double deadline for Indian WhatsApp users: one in the code, one in the currency.

Distk helps growth teams across India and internationally audit WhatsApp integrations for deprecated parameters, sort out which Messaging account each send belongs to, and get the INR migration done before it becomes a delivery outage. If 31 December 2026 is on your calendar, that audit is where we start.

Sources

messaging_account_id Migration: FAQs

What is the deadline to replace paid_messaging_account_id?

31 December 2026. Meta supports paid_messaging_account_id only as a deprecated, backward-compatible alias and says to migrate to messaging_account_id by that date, after which the alias is planned for removal in a future Graph API version.

When do I need to send messaging_account_id?

Whenever the access token you are sending with has messaging access to more than one Messaging account on the business phone number in your request. That is the case in which Meta cannot determine which Messaging account to bill and attribute the message to.

Is messaging_account_id required now?

It is optional at Phase 1, general availability, in late 2026. From Phase 2 in H1 2027 the newest Messages API version requires it for multi-Messaging account setups, and from Phase 3 in H1 2028 every Messages API version requires it in those setups.

What happens if I send a WhatsApp message with the wrong messaging_account_id?

The message counts toward the analytics and charges of the Messaging account it was sent from. A wrong or missing value can therefore bill and report the message against the wrong account and its payment method, without any error.

What is the WhatsApp INR billing deadline for Indian businesses?

Eligible customers, meaning partners and directly integrated businesses whose Sold-To country is India in Billing Hub, must migrate every account in their portfolio to INR by 31 December 2026. From 1 January 2027 Meta will no longer deliver messages of their non-INR accounts.

Is there a tool to migrate WhatsApp billing currency?

Yes. Meta provides a Currency Migration API, available since 1 June 2026, to make the INR migration easier and faster. Brazil follows the same pattern with a BRL deadline of 30 June 2027.

Clear both deadlines before the year ends

Distk helps growth teams audit WhatsApp integrations for deprecated parameters, sort out which Messaging account each send belongs to, and complete the INR migration before it becomes a delivery outage.

Start the conversation →