Changelog for Messenger API Updates for Europe and Japan
Updated: Mar 18, 2026
Copy for LLM
October 17, 2023
The following functionalities have been restored:
June 30 2022
Restored Feature
- Receive API (webhooks): messaging_referrals is restored for CTM ads.
Feature restoration TBD:
- Messenger Extension SDK
- PSID/ASID matching
- Persona API
- Account linking
- Custom labels
- Video on Media template
April 19 2022
Restored Feature
- Receive API (webhooks): message_deliveries, message_reactions, message_reads
Feature restoration TBD:
- Messenger Extension SDK
- PSID/ASID matching
- Persona API
- Account linking
- Custom labels
- Video on Media template
Sept 14 2021
Restored Feature
Feature restoration TBD:
- Receive API (webhooks): message_deliveries, messaging_account_linking, message_reactions, message_reads
- Messenger Extension SDK
- PSID/ASID matching
- Persona API
- Account linking
- Custom labels
- Video on Media template
Aug 10 2021
Restored Feature
Feature restoration TBD:
- Receive API (webhooks): message_deliveries, messaging_account_linking, message_reactions, message_reads
- Messenger Extension SDK
- PSID/ASID matching
- Persona API
- Account linking
- Custom labels
Jun 21 2021
sourceattribute in webhooks is not included for accounts affected by the regulations in Europe and Japan
Apr 20 2021
messaging_optinswebhook is restored for Chat Plugin, Send to Messenger Plugin, and Checkbox Plugin. One Time Notificationmessaging_optinswebhook will be restored in Q2 2021.messaging_referralswebhook is restored for m.me link and Chat Plugin. CTM adsmessaging_referralswebhook restoration is TBD.
Apr 15 2021
- Included CTM HOP details
Apr 13 2021
Messenger API features restored as of 4/13/2021:
- Send API: Media/attachment (audio, video, files)
- Receive API (webhooks): message with media/attachment, message_echoes
- Product template
- Persistent menu
- Chat Plugin guest mode upgrade
- Messenger feature review API
- Web Plugins prior_message block
- Web Plugins (Send to Messenger, Checkbox Plugin)
- Send API with user_ref
- User Profile API
profile_picfield
Targeting restoration in Q2 2021 (actual dates of restoration may vary):
- Receive API (webhooks): message_deliveries, messaging_account_linking, messaging_optins, message_reactions, message_reads, messaging_referrals
- Receipt Template
- One Time Notification
- Sender actions
- Persona API
- Account linking
Feature restoration TBD:
Mar 30 2021
- Updated context section below to address new privacy rules in Japan
- Timeline for all feature remediations we had targeted to restore by end of Q1 is now being moved to Q2. Actual dates of restoration may vary
Feb 3rd 2021
Messenger
- Generic Template, Button Template, Media Template (images only), URL Button, Postback Button, Call Button are supported on iOS, Android, and web.
- Updated restoration timeline for affected features.
Targeting restoration in Q1 2021 (actual dates of restoration may vary):
- Send API: Media/attachment (audio, video, files)
- Receive API (webhooks): message with media/attachment, message_echoes
- Product template
- Persistent menu
- PSID/ASID matching
- Chat Plugin guest mode upgrade
- Messenger feature review API
- Web Plugins prior_message block
- Web Plugins (Send to Messenger, Checkbox Plugin)
- Send API with user_ref
- User Profile API
profile_picfield
Targeting restoration in Q2 2021 (actual dates of restoration may vary):
- Receive API (webhooks): message_deliveries, messaging_account_linking, messaging_optins, message_reactions, message_reads, messaging_referrals
- Receipt Template
- One Time Notification
- Sender actions
- Persona API
- Account linking
Feature restoration TBD:
Older changelog
Older changelog details can be found here.
Context
As part of our efforts to comply with new privacy rules in Europe and Japan, we’re making updates that will impact some developers and businesses that use our Messenger API. Beginning December 16th, several Messenger APIs will be unavailable for developers and businesses in Europe and/or Japan, and for people in Europe and/or Japan who connect with businesses globally. These changes will impact some APIs and UI components (listed in the next sections) for the following audience:
- Pages in Europe and Japan
- Pages with admins in Europe and Japan
- People in Europe and Japan who message businesses globally
Impacted countries: All of the 30 European Economic Area (EEA) countries, which includes:
- All 27 European Union member states
- Norway
- Iceland
- Liechtenstein
- United Kingdom
- Japan
Given the impact listed previously, we recommend providing an alternate experience using quick replies, text and inline URLs for webviews for the impacted scenarios.
The two tables that follow provide:
We are currently working to restore these features and will continue to update this document and the changelog section with the details as they are available. You can also refer to the FAQ section for more details on frequently asked questions.
Features and APIs with no changes
Following is a list of features and APIs that are not affected by these changes. Any exceptions are listed in the Notes column.
| Area | Feature | Notes |
|---|---|---|
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | Only postback webhooks for get started button, icebreaker and supported templates will be operational. Other postback webhooks will be affected | |
Receive API (Webhooks) | message_echoes (text, image, generic template, button template, media template only), messaging_handovers, standby, messaging_policy_enforcement | None |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | None | |
Receive API (Webhooks) | messaging_referrals webhook for m.me link and Chat Plugin will be operational. CTM ads messaging_referrals webhook restoration is TBD. | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | Video media type is not supported on Media Template. Restoration is TBD. | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Send API | None | |
Entry Points | None | |
Entry Points | None | |
Entry Points | None | |
Entry Points | Source attribute in webhooks originating from the Chat Plugin is not included for accounts affected by the regulations in Europe and Japan | |
Entry Points | Source attribute in webhooks originating from the Chat Plugin is not included for accounts affected by the regulations in Europe and Japan | |
Messenger Profile API | None | |
Conversation API | Conversation API | sticker field will return null. |
Handover Protocol | None | |
Handover Protocol | None | |
User Profile API | None | |
Messenger Profile API | None | |
Entry Points | None | |
Entry Points | Web Plugins (Send to Messenger, Checkbox plugin) | None |
Entry Points | None | |
Messenger Feature Review API | None | |
Customer Feedback Template | None |
Affected features and APIs with mitigations
The following actions can help you determine scenarios that are impacted by these changes:
- Page Impact - To determine go to your app dashboard and navigate to the Messenger Settings menu. Enter page IDs in the section titled Will your page be affected by updates due to new privacy rules in Europe and Japan. Note that your app must have ‘pages_messaging’ permission for the Pages you’re querying. Developer can also leverage
subject_to_new_eu_privacy_rulesflag on Messenger Profile API to check for page impact. - User Thread Impact - To determine, invoke the User Level Menu API. If you get a valid response, there is no impact. If you get an error message with code 10, subcode 2018336, the thread is impacted. NOTE: This status can change over time. Use care if you are caching this data and update it regularly.
- Any API call which results in error code 10, subcode 2018336
The table that follows provides more details and recommendations for alternatives on heavily-used APIs.
| Area: Feature | User Impact | Developer Impact | Mitigation | Targeted Restoration |
|---|---|---|---|---|
Send API: Airline template | Templates won’t render in the message thread because API calls will fail. Templates in existing messages will still be visible, but users won’t be able to take any action on them | Returns an error message | TBD | |
Receive API (Webhooks) | No User Impact | source attribute in webhooks is not included for accounts affected by the regulations in Europe and Japan | N/A | TBD |
Receive API (Webhooks): message_deliveries, messaging_account_linking, message_reactions, message_reads | No User Impact | Webhook will not be delivered | N/A | Q2 2021 |
Persona API: Persona | Persona details (name & profile pic) won’t show in the thread. | Returns an error message | Introduce another persona. See Persona API fallback | Q2 2021 |
Account linking: Account linking | None | Returns an error message | N/A | Q2 2021 |
ID Matching: PSID/ASID matching | N/A | Returns an error message | N/A | TBD |
Custom Labels: Custom labels | N/A | Returns an error message | N/A | TBD |
Messenger Extensions SDK: Messenger Extensions SDK | N/A | Returns an error message | N/A | TBD |
Error Response
The following error is returned for API calls that are not operational due to the new privacy rules in Europe. You should leverage the unique error code and error subcode that follows to identify errors and handle the fallback gracefully.
{
"error":{
"message":"(#10) This action was not submitted due to new privacy rules in Europe and Japan.
See developer documentation for more info",
"type":"OAuthException",
"code":10,
"error_subcode":2018336,
"fbtrace_id":"AUmkjfWVra1NAa-qEH5NcI8"
}
}
Other Fallback Experiences For Developers
Send API - Templates (Receipt, Airline) fallback
Instead of sending the information as a template, you can use a combination of plain text and quick replies instead. This enables users to have enough context/information to continue the conversation.
- Images can be sent as a plain text url. Users will then have to click on it and it wil open up Messenger In-app browser.
- Buttons can be replaced with quick replies because you will still receive the message payload when users click on it.
- Title and description can be sent as a separate messages.
- More complex templates such as the airline and receipt templates can be simplified by ignoring some fields or you can recreate a similar template hosted at a external URL and serve the template by providing the URL link.
Before
{
"recipient":{
"id":"{{PSID}}"
},
"message":{
"attachment":{
"type":"template",
"payload":{
"template_type":"{{SOME_UNSUPPORTED_TEMPLATE}}",
"elements":[
{
"title":"Welcome!",
"image_url":"https://petersfancybrownhats.com/company_image.png",
"subtitle":"We have the right hat for everyone.",
"buttons":[
{
"type":"web_url",
"url":"https://petersfancybrownhats.com",
"title":"View Website"
},
{
"type":"postback",
"title":"Start Chatting",
"payload":"DEVELOPER_DEFINED_PAYLOAD"
}
]
}
]
}
}
}
}
After
{
"recipient":{
"id":"{{PSID}}"
},
"messaging_type":"response",
"message":{
"text":"Welcome! We have the right hat for everyone.",
"quick_replies":[
{
"content_type":"text",
"title":"View Website",
"payload":"{{DEVELOPER_DEFINED_PAYLOAD}}"
},
{
"content_type":"text",
"title":"Green",
"payload":"{{DEVELOPER_DEFINED_PAYLOAD}}"
}
]
}
}
Persona API fallback
You can use a message to introduce a different persona in the conversation flow. This will let users know that a different agent is handling the conversation despite the profile picture being unchanged.
Before
{
"recipient":{
"id":"{{PSID}}"
},
"message":{
"text":"How can I help you?"
},
"persona_id":"{{PERSONA_ID}}"
}
After
{
"recipient":{
"id":"{{PSID}}"
},
"messaging_type":"response",
"message":{
"text":"Hi, this is Joe from OCC, How can I help you?"
}
}
CTM HOP in Ads Manager
CTM Ad campaigns that run for impacted pages or for audiences impacted regions will not be able to use CTM HOP. Campaigns that have the CTM HOP App Id JSON setting will run as if CTM HOP is not active (i.e. will be handled by the primary app for the page).
| Area: Feature | User Impact | Developer Impact | Mitigation | Targeted Restoration |
|---|---|---|---|---|
CTM HOP in Ads Manager: CTM HOP | A user responding to a CTM Ad will have their thread routed always to the primary receiver on the page. | A user responding to a CTM Ad will have their thread routed always to the primary receiver on the page. | To re-create a similar behavior to CTM HOP, use the following fallback blueprint: Welcome Message setup in Ads Manager
| TBD |
Mitigation of Edge Cases
Cannot add such a condition to the primary app or don’t have access to changing the primary app
Example
- If a brand using Provider A for regular messages, and Provider B as the secondary receiver for CTM messages, where Provider A is unable to set the hand-off to Provider B. This would require the Brand to do the routing with their own solution (essentially acting as provider C).
Solution
- Create a custom app to be a “router app” and assign it as the new primary app for the page
- The router app will route all threads that receive the payload to the CTM ad flow app
- The router app will route al other threads to the default app fo the page (the previous Primary App)
Solution #1
- Determine or estimate percentage of users entering free text. If the volume is within your operational limits, consider transferring them to a live agent.
Solution #2
- Leverage NLU (Natural Language Understanding) to extract an intent from the free text and determine if the user needs to be handover to the CTM Ad Flow
- The NLU processing can happen either in your Primary App (if the app/vendor/platform supports this) or programmed in the “router app” discussed earlier.
Solution #3
- Disable by default free text for the page by disabling the composer at the page level as described here
- In the CTM Ad welcome message, add either a Quick Reply or Generic Template button to “Talk to an agent”
- In the page’s default welcome message, add a similar option to add either a Quick Reply or Generic Template button to “Talk to an agent”
- Enable free text entry only for users who click the relevant Quick Reply or Generic Template button by enabling the user level persistent menu as described here