I'm integrating WooCommerce with ManyChat using a custom WordPress REST API endpoint. The endpoint returns order data as JSON. When I open the URL directly in the browser it responds with 200 OK and the correct JSON. But when ManyChat makes the GET request, it always shows 406 Not Acceptable, even though the response body contains the correct JSON data and the field mapping never saves.
My original endpoint returns full order data:
GET https://examplestore.com/wp-json/wc-manychat/v1/order/1531
Response body: {"order_id":"1531","status":"processing","products":"..."}
ManyChat shows: 406 Not Acceptable
Browser shows: 200 OKTo rule out my code as the problem, I simplified it to the most minimal endpoint possible:
GET https://examplestore.com/wp-json/test/v1/ping
Response body: {"status":"ok"}
ManyChat shows: 406 Not Acceptable
Browser shows: 200 OKI've already tried:
- Adding
Accept: application/jsonheader in ManyChat - Disabling all security plugins (Wordfence, Cloudflare WAF rules)
- Using
WP_REST_Responsewith explicit 200 status - Moving code from plugins to functions.php
status_header(200)inside the callback
Nothing works. The body always arrives correctly but ManyChat reports 406 and the response mapping never saves.
Is this a known issue with WordPress + ManyChat? Has anyone found a fix?
