- Platform & accounts
- Expert
- Developers
- Compliance
Cloud API Local Storage
Also called: Local storage (Cloud API) · In-country storage · data_localization_region · WhatsApp local storage
A per-number Cloud API setting that keeps WhatsApp message content at rest only in Meta data centres in one chosen country, such as India.
Reviewed
What is Cloud API local storage?
Cloud API local storage is a setting on a WhatsApp business phone number that tells Meta to keep that number's message content at rest only in data centres in one country. It covers text bodies, media and template components with text or media, for messages sent through the Cloud API and the Marketing Messages API for WhatsApp. A limited set of metadata is still stored, protected by tokenisation and encryption.
Local storage does not mean the data never leaves the country. While a message is being processed (data in use), Meta may handle and store it in data centres anywhere for up to 60 minutes on the Cloud API, or 90 minutes on the Marketing Messages API. After that window the content is removed from data centres outside the selected region and kept only inside it.
The setting is chosen with the data_localization_region value, a two-letter country code. The list Meta published at the time of writing had 14 regions: Australia (AU), Indonesia (ID), India (IN), Japan (JP), Singapore (SG), South Korea (KR), Germany (DE), Switzerland (CH), the United Kingdom (GB), Brazil (BR), Bahrain (BH), South Africa (ZA), the United Arab Emirates (AE) and Canada (CA). Local storage is the product mechanism; data residency is the legal or contractual requirement it can help you meet, and only your own lawyers can say whether it is enough.
Key takeaways
- Cloud API local storage keeps message content at rest only in Meta data centres in one chosen country; India (
IN) is supported. - It is set per phone number, and the number must be unregistered while you turn it on or off.
- Message content may still be processed outside the country for up to 60 minutes on the Cloud API (90 on the Marketing Messages API).
- On v21.0 and later, enable it with the Settings API (
storage_configuration) before calling the Register API. - Fourteen regions were listed at the time of writing, including India, Singapore, Indonesia, Germany, the UK, Brazil and the UAE.
Interactive stop
Follow a message into in-country storage
PayloadLoan-status text message
Enters at the top, travels down through 5 layers
Hop 5 of 5: the payload is in layer 5, Customer's phone. Delivery to the WhatsApp app is unaffected; what is stored on the customer's device is outside this setting.
How does Cloud API local storage work?
Pick the region and check the scope
Choose the
data_localization_regioncode, such asIN, and check with your compliance team that storage at rest in that country, plus up to 60 minutes of processing elsewhere, meets your requirement.Make sure the number is unregistered
Local storage can only be changed while a number is not registered. For a live number, deregister it first; expect a short outage, typically under five minutes.
Enable it with the Settings API
On Graph API v21.0 or later, POST to
/{PHONE_NUMBER_ID}/settingswithstorage_configuration.statusset toIN_COUNTRY_STORAGE_ENABLEDanddata_localization_regionset to the country code.Register the number
Call POST
/{PHONE_NUMBER_ID}/registerwithmessaging_productand the 6-digit two-step verificationpin. No re-verification of the number is needed.Disable it the same way
To turn it off, deregister the number, set
statustoIN_COUNTRY_STORAGE_DISABLEDwith the Settings API and register again.
Cloud API local storage in code
# 1. The number must be unregistered. Turn on in-country storage for India:curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/settings" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"storage_configuration": {"status": "IN_COUNTRY_STORAGE_ENABLED","data_localization_region": "IN"}}'# 2. Register the number:curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/register" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{ "messaging_product": "whatsapp", "pin": "{SIX_DIGIT_PIN}" }'
On older Graph versions the region was passed as data_localization_region in the register call itself.
Cloud API local storage: key facts and limits
- Scope
- Per phone number
- Data in scope
- Text bodies, media, template text and media
- Processing outside region
- Up to 60 min (Cloud API), 90 min (Marketing Messages API)
- India code
- IN
- Regions listed
- 14 at the time of writing
- Precondition
- Number must be unregistered to enable or disable
- Downtime when changing
- Typically under 5 minutes
- Uploaded media
- Only the uploading number can use it, for 30 days
Why does Cloud API local storage matter?
Banks, insurers, hospitals and government bodies often have to show where customer data is stored. Before local storage, the only way to keep WhatsApp data in-country was to self-host the On-Premises API, which has now been sunset. Local storage brings a version of that control to the Cloud API at no extra charge, but because it only applies to unregistered numbers and changes media access, it should be decided before a number goes live.
Common mistakes with Cloud API local storage
Promising that data never leaves India
Content can be processed anywhere for up to 60 minutes, and some metadata is stored separately. Describe the setting precisely in privacy notices and contracts: storage at rest in India after processing.
Turning it on for a live number at peak time
The number has to be deregistered and registered again. Schedule the change in a quiet window and tell support agents to expect a few minutes without messages.
Sharing uploaded media across numbers
With local storage, a media ID uploaded by one number cannot be used by another number on the same WABA. Upload media per number, and re-upload after 30 days.
Forgetting the contact book
If the contact book feature is on, a shared phone number is stored in Meta data centres regardless of this setting. Factor that into your data map.
Example: A lender in Mumbai keeps chats in India
A non-bank lender in Mumbai is about to launch loan-status updates on a new WhatsApp number. Its information-security policy requires customer communication to be stored in India. Before the first registration, its developer calls the Settings API with IN_COUNTRY_STORAGE_ENABLED and data_localization_region IN, then registers the number. The compliance file records the setting, Meta's 60-minute processing window and the fact that uploaded media is available only to that number for 30 days.
Cloud API Local Storage FAQs
Can WhatsApp Cloud API store data in India?+
Does Cloud API local storage satisfy the DPDP Act?+
Can I enable local storage on a number that is already live?+
Does local storage cost extra?+
Best practices for Cloud API local storage
- Decide on local storage before Embedded Signup or first registration, so you never have to take a live number down.
- Record the region per number in your own inventory and check it on a schedule.
- Remember that end-to-end encryption on the WhatsApp side is separate; local storage governs Meta's Cloud API storage, not the customer's phone.
- Ask your provider whether its own databases, which also hold message copies, are in India; the Meta setting does not cover them.
Talk to InfiQ
From definition to your first message
InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.