Sends
A send is one message written for an audience — a segment, one customer, or everyone subscribed to one subscription — the same send a person writes on the compose screen. It takes two calls: a draft is only written down, and nothing goes until you publish it. Through the API a send is plain text, by SMS and by email: WhatsApp only carries wording Meta has approved outside its 24-hour reply window, so plain text never goes that way. Recording an event is the other way messages are made, by your rules.
POSTCreate a draft send
Requires sends:write. Writes the send down and sends nothing: it comes back with status draft. Preview it, then publish it. One audience: a segment, one customer, or one subscription. Several people are a kept segment — make one and fill it with POST /groups/{group_id}/members. A retired segment, an inactive customer or a member of staff is refused now rather than reaching nobody later; a temporary list is a 409. Unknown keys are refused with 400, among them template_id, channel_policy and the connection ids: the API sends plain text by SMS, from the instance's default sender.
201 with the send, status draft. 400 for a missing audience, more than one, or an unknown key; not_plain_sms for characters outside the SMS alphabet; too_many_parts, with parts and limit, for a text longer than the instance sends; 404 for an audience not on file; 409 for a temporary list.
One send: the same fields in every pack. Press Response on the sample to see one whole.
On failure the body is { error, code } instead.