Skip to content

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.

See InfiQ pricing

Interactive stop

Follow a message into in-country storage

5 / 5

PayloadLoan-status text message

Enters at the top, travels down through 5 layers

One customer message travels from your app through Meta's processing to storage at rest in India. Step through each layer to see where the content may be, and for how long.

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?

  1. Pick the region and check the scope

    Choose the data_localization_region code, such as IN, and check with your compliance team that storage at rest in that country, plus up to 60 minutes of processing elsewhere, meets your requirement.

  2. 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.

  3. Enable it with the Settings API

    On Graph API v21.0 or later, POST to /{PHONE_NUMBER_ID}/settings with storage_configuration.status set to IN_COUNTRY_STORAGE_ENABLED and data_localization_region set to the country code.

  4. Register the number

    Call POST /{PHONE_NUMBER_ID}/register with messaging_product and the 6-digit two-step verification pin. No re-verification of the number is needed.

  5. Disable it the same way

    To turn it off, deregister the number, set status to IN_COUNTRY_STORAGE_DISABLED with 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.

— A lender in Mumbai keeps chats in India

Cloud API Local Storage FAQs

Can WhatsApp Cloud API store data in India?+
Yes. Set local storage on the phone number with data_localization_region IN, and message content is kept at rest only in Meta's data centres in India after up to 60 minutes of processing.
Does Cloud API local storage satisfy the DPDP Act?+
It can support compliance but is not a guarantee. The DPDP Act sets duties around consent, security and cross-border transfer; whether in-country storage at Meta, plus your own systems, meets your obligations is a question for your legal team.
Can I enable local storage on a number that is already live?+
Yes, but only after deregistering it. Change the setting with the Settings API, then register the number again. Downtime is typically under five minutes and the number does not need re-verification.
Does local storage cost extra?+
Meta does not list a separate charge for it. Messages on a locally stored number are billed the same way as any other: per delivered message by category.

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.