---
title: "Send one WhatsApp message now"
method: POST
path: "/api/v1/tools/send_message"
---

# Send one WhatsApp message now

`POST /api/v1/tools/send_message`

## Request

- Base URL: `https://whatsync.app`
- URL: `https://whatsync.app/api/v1/tools/send_message`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

SENDS a real WhatsApp message to exactly one recipient from the agent. Use only after the user explicitly asks to send to this recipient. For a new official Business conversation, use an approved template and confirm recipient opt-in. Templates with media headers or buttons that need a value are not supported; fixed buttons are. The recipient cannot be the connected Business number itself. For a free-form Business reply, the recipient must have messaged within 24 hours. QR sends use the connected QR account. Never use this tool for bulk sends, guesses, or automatic retries; provider acceptance is not delivery.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `idempotencyKey` string, required: Unique key for this intended action. Reuse exactly on retries; use a new key only for a new action.
  - `channel` 'qr' | 'business': Required when both accounts are connected; templates always use Business
  - `conversationId` string: The exact conversation_id value from another WhatSync tool, if sending into an existing chat
  - `phoneNumber` string: One recipient's phone number with country code
  - `text` string: Exact free-form message to send; omit for a template
  - `templateName` string: Approved Business template name; omit for free-form text
  - `templateLanguage` string
  - `templateParameters` string[]
  - `expectedPreview` string: Optional exact rendered template text to verify against Meta's current template: header, filled-in body, footer and 'Button: ...' lines, separated by blank lines. Omit it unless you copied it from a previous WhatSync result
  - `recipientOptInConfirmed` boolean: Required true for Business templates only when the recipient agreed to receive messages

## Response `200`

JSON result. Every response includes X-Request-Id.

- object

## Other responses

- `400`: API error
- `401`: API error
- `403`: API error
- `404`: API error
- `409`: API error
- `413`: API error
- `415`: API error
- `422`: API error
- `429`: API error
- `503`: API error

---

[API](https://skmtc.dev/whatsync/apis/whatsync-api.md) · [All operations](https://skmtc.dev/whatsync/apis/whatsync-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whatsync/apis/whatsync-api/revisions/6fa5498b63b7?raw)
