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:

  1. data_api_version – tells the system which version of the data exchange protocol you're using.

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