No Storage | Developer Documentation
No Storage
Updated: Dec 1, 2025
“No Storage” is a custom configuration of Cloud API local storage, where the data in-transit is kept for up to an hour in Meta data centers and the data is not persisted at rest (that is to say, not in Meta data centers nor in AWS In-Country stores).

Limitations
When the No Storage feature is enabled, message content is not stored at rest for 30 days as is typical with Cloud API. This introduces the following limitations, which can put a small fraction of your total messaging volume at risk of non-delivery.
Enable
No Storage
Request syntax (v21.0 or newer)
curl 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/settings' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer<ACCESS_TOKEN>' \-d '{"storage_configuration": {"status": "NO_STORAGE_ENABLED","retention_minutes": 60}}'
60retention_minutesRequest syntax (v20.0 or older)
curl 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/settings' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer<ACCESS_TOKEN>' \-d '{"messaging_product": "whatsapp","pin": "123456","tier": "test","meta_store_retention_minutes": 60}'
meta_store_retention_minutesdata_localization_regionDisable No Storage
To disable No Storage, you must de-register the bsuiness phone number using the POST /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>/deregister endpoint, then register the number again without the
meta_store_retention_minutes parameter.Example deregister syntax
curl -X POST 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/deregister' \-H 'Authorization: Bearer<ACCESS_TOKEN>'
Override outgoing media TTL
ttl_minutesExample syntax
curl 'https://graph.facebook.com/<API_VERSION>/<BUSINESS_PHONE_NUMBER_ID>/media' \-H 'Content-Type: application/json' \-H 'Authorization: Bearer<ACCESS_TOKEN>' \-d '{"messaging_product": "whatsapp","file": "file=<FILE_NAME>;type=<FILE_MIME_TYPE>","ttl_minutes": "120"}'
ttl_minutes6043200Error webhooks
Retry receipt failures
In the case of WhatsApp client decryption failures, we will stop attempting to deliver an undelivared message from a No Storage-enabled number once the TTL is reached. In these cases, a status messages webhook is triggered with error code
131036:Example payload
{"object":
Notes:
Failure to deliver webhooks
By default, Cloud API retries for up to 7 days to deliver incoming messages webhooks. For No Storage-enabled business phone numbers, if we fail to deliver an incoming message webhook, we will drop it and instead send an errors messages webhook with error code
131035:{"object":"whatsapp_business_account","entry": [{"id":"102290129340398","changes": [{"field":"messages","value": {"messaging_product":"whatsapp","metadata": {"display_phone_number":"15550783881","phone_number_id":"106540352242922"},"errors": [{"code":131035,"title":"Webhook could not be delivered within data retention limit","message":"Webhook could not be delivered within data retention limit","error_data": {"details":"Webhook could not be delivered within data retention limit"}}]}}]}]}