API template library

Simulate the WhatsApp Business messaging API

A WireMock simulation of WhatsApp's REST API — covering Cloud API messaging, phone number registration, WhatsApp Business Accounts, message templates, Flows, groups, QR codes, and Multi-Partner Solutions.

Vendor
WhatsApp
Functionality
Messages, phone numbers, templates, Flows
Spec version
v23.0
Endpoints
89
Stubs
180
Protocol
REST
Validation
AI-validated Before publication, an AI agent exercised these endpoints against the real WhatsApp API through WireMock's recording proxy, and the recorded traffic was used to verify each stub's request and response shapes.

Live sandbox · no signup, no API key

WhatsApp Business Messaging API

A running WireMock Cloud instance of this template, callable right now from a terminal, a script, or an AI agent.

Base URL
https://mql65v.wiremockapi.cloud

POST Receive incoming WhatsApp messages [receiveWebhook]

curl -s -X POST 'https://mql65v.wiremockapi.cloud/whatsapp/webhooks' \
  -H 'Content-Type: application/json' \
  -d '{}'
Method Path Summary
GET /{Version}/{Application-ID}/connected_client_businesses Get Connected Client Businesses
POST /{Version}/{Application-ID}/whatsapp_business_solution Create Multi-Partner Solution
GET /{Version}/{Application-ID}/whatsapp_business_solutions Get Multi-Partner Solutions for Application
POST /{Version}/{Business-ID}/add_phone_numbers Add Phone Number to Business Account
GET /{Version}/{Business-ID}/client_whatsapp_business_accounts Get Client WhatsApp Business Accounts
GET /{Version}/{Business-ID}/extendedcredits Get credit lines
POST /{Version}/{Business-ID}/onboard_partners_to_mm_lite Onboard Partners to MM Lite
GET /{Version}/{Business-ID}/owned_whatsapp_business_accounts Get Owned WhatsApp Business Accounts
GET /{Version}/{Business-ID}/preverified_numbers Get Pre-Verified Phone Numbers
POST /{Version}/{Business-ID}/share_preverified_numbers Share Pre-Verified Phone Number with Another Business
GET /{Version}/{Flow-ID}/assets List Assets (Get Flow JSON URL)
POST /{Version}/{Flow-ID}/assets Update Flow JSON
POST /{Version}/{Flow-ID}/deprecate Deprecate Flow
POST /{Version}/{Flow-ID}/publish Publish Flow
DELETE /{Version}/{group_id}/invite_link Delete Group Invite Link
POST /{Version}/{group_id}/invite_link Create Group Invite Link
DELETE /{Version}/{group_id}/join_requests Reject Join Requests
GET /{Version}/{group_id}/join_requests Get Join Requests
POST /{Version}/{group_id}/join_requests Approve Join Requests
DELETE /{Version}/{group_id}/participants Remove Group Participants
POST /{Version}/{group_id}/participants Add Group Participants
GET /{Version}/{Message-History-ID}/events Get WhatsApp Message History Events
DELETE /{Version}/{Node-ID} Delete a node (group, media, pre-verified phone number, flow)
GET /{Version}/{Node-ID} Get a node (business, phone number, group, media, flow, template, WABA, ...)
POST /{Version}/{Node-ID} Update a node (phone number, group, flow, template, WABA, business profile)
POST /{Version}/{Node-ID}/request_code Request a verification code (phone number or pre-verified phone number)
POST /{Version}/{Node-ID}/verify_code Verify a verification code (phone number or pre-verified phone number)
DELETE /{Version}/{Phone-Number-ID}/block_users Unblock user(s)
GET /{Version}/{Phone-Number-ID}/block_users Get blocked users
POST /{Version}/{Phone-Number-ID}/block_users Block user(s)
GET /{Version}/{Phone-Number-ID}/business_compliance_info Get Business Compliance Information
POST /{Version}/{Phone-Number-ID}/business_compliance_info Update Business Compliance Information
GET /{Version}/{Phone-Number-ID}/call_permissions Check Call Permissions
POST /{Version}/{Phone-Number-ID}/calls Manage Calls
POST /{Version}/{Phone-Number-ID}/conversational_automation Configure Conversational Automation
POST /{Version}/{Phone-Number-ID}/deregister Deregister WhatsApp Business Phone Number
GET /{Version}/{Phone-Number-ID}/groups Get Active Groups
POST /{Version}/{Phone-Number-ID}/groups Create Group
POST /{Version}/{Phone-Number-ID}/marketing_messages Send Marketing Template Message
POST /{Version}/{Phone-Number-ID}/media Upload Image
GET /{Version}/{Phone-Number-ID}/message_history Get WhatsApp Business Account Message History
GET /{Version}/{Phone-Number-ID}/message_qrdls List All Message QR Codes
POST /{Version}/{Phone-Number-ID}/message_qrdls Create or Update Message QR Code
DELETE /{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID} Delete Individual Message QR Code
GET /{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID} Get Individual Message QR Code
POST /{Version}/{Phone-Number-ID}/messages Send Message.
POST /{Version}/{Phone-Number-ID}/messages_encrypted Send Encrypted Message
GET /{Version}/{Phone-Number-ID}/official_business_account Get Official Business Account Status
POST /{Version}/{Phone-Number-ID}/official_business_account Update Official Business Account Status
POST /{Version}/{Phone-Number-ID}/register Register WhatsApp Business Phone Number
GET /{Version}/{Phone-Number-ID}/settings Get phone number settings
POST /{Version}/{Phone-Number-ID}/settings Update phone number settings
GET /{Version}/{Phone-Number-ID}/whatsapp_business_encryption Get Business Encryption Public Key
POST /{Version}/{Phone-Number-ID}/whatsapp_business_encryption Set Business Encryption Public Key
GET /{Version}/{Phone-Number-ID}/whatsapp_business_profile Get WhatsApp Business Profile
POST /{Version}/{Phone-Number-ID}/whatsapp_business_profile Update WhatsApp Business Profile
GET /{Version}/{Phone-Number-ID}/whatsapp_commerce_settings Get commerce settings
POST /{Version}/{Phone-Number-ID}/whatsapp_commerce_settings Set or update commerce settings
GET /{Version}/{Pre-Verified-Phone-Number-ID}/partners Get Pre-Verified Phone Number Partners
POST /{Version}/{Solution-ID}/accept Accept Multi-Partner Solution Invitation

+29 more endpoints in the full spec.

Unauthenticated WireMock Cloud demo sandbox for WhatsApp — not an official WhatsApp sandbox, and it returns simulated example data only.

What's inside the WhatsApp template

The template covers Meta's Graph API v23.0 paths for the WhatsApp Business Platform, with every object addressed by id the way Graph addresses it. A text message sent from the seed phone number comes back with the recipient's wa_id stripped to digits and a wamid message id marked accepted, and the send is recorded in the number's message history. Code that keys off wamid values and contacts[].wa_id handles these as it would live traffic.

  • Messages — text, media, location, interactive, reaction, contact and template messages, with a readable message history per number
  • Phone numbers — add, request and verify codes, register and deregister, plus per-number profile, settings and blocked users
  • Business accounts — WABA details, webhook subscriptions, assigned users, schedules and migration intents
  • Templates and Flows — message templates approved on creation and filterable by name; Flows with publish, deprecate and asset upload
  • Groups and QR codes — group creation, join requests, participants and invite links; 14-character QR codes with prefilled messages
  • Multi-Partner Solutions — the initiate, accept, reject and deactivation lifecycle between partners

WhatsApp Business messaging mock API FAQ

A set of seed objects exists from the start, among them the business account "Lucky Shrub Support" (102290129340398) and a registered phone number (106540352242922). Send messages from that number and read the account by its id; anything you create afterwards gets its own id.

You get Graph's own answer rather than a 404: HTTP 400 with a GraphMethodException, code 100 and error_subcode 33. Error handling built for Meta's responses is exercised by simply calling an unknown id.

Send an Authorization header that starts with "Bearer "; the token after it is never checked. Don't use a live system-user token here, since the sandbox is public and shared.

No, the shared sandbox never calls out. It does accept posts to its own webhook receiver route, so you can replay status payloads at it. In your own WireMock Cloud copy you can attach a webhook to the send stub and have delivery notifications posted to your server.

Vendor names identify APIs represented by WireMock template sources. This page does not imply vendor endorsement, certification, partnership, or official integration status.