If you’re working with Meta’s WhatsApp Flows and run into the error:
MISSING_REQUIRED_PROPERTY: The property 'routing_model' is required for property 'data_api_version',
you’re not alone. This error shows up when you try to use the data_exchange action without specifying a routing_model.
Quick Fix: Add routing_model
Just add this snippet at the root level of your flow JSON:
"routing_model": {}
Here’s how your corrected JSON should look:
{
"version": "2.1",
"data_api_version": "3.0",
"routing_model": {},
"screens": [
{
"id": "screenA",
"title": "screenTitle",
"layout": {
"type": "SingleColumnLayout",
"children": [
{
"type": "Footer",
"label": "Submit",
"on-click-action": {
"name": "data_exchange",
"payload": {}
}
}
]
}
}
]
}
Why This Happens
If you’re using data_exchange, it means your flow is trying to communicate with an external API or server. Meta requires two keys for that to work:
data_api_version – tells the system which version of the data exchange protocol you're using.
routing_model – defines how the backend routes the request.
Even if your routing_model is empty, its presence is required.
When to Use This
If your button (like "Submit") uses on-click-action with data_exchange, make sure:
data_api_version is set (typically "3.0" or higher).
routing_model is present at the top level.
This is mandatory for the flow to send or receive any server-side data.
TL;DR
Error: MISSING_REQUIRED_PROPERTY: routing_model
Fix: Add "routing_model": {} to your flow JSON root.
Context: Happens when using data_exchange actions in WhatsApp Flows.
For more troubleshooting insights related to WhatsApp Business API, check out heltar.com/blogs.