Changelog
What changed
The contracts on this site only grow. A field or an event is added with a note here; nothing is renamed or removed without a new version and a long overlap.
2 October 2026
- One-time codes stay out of the inbox. An authentication template sent with
POST /v1/messages/templateno longer adds a contact or opens a thread. Its answer carriescontactId,conversationIdandmessageasnull;idis still set, andmessage.delivered,message.readandmessage.failedstill arrive, naming it, withconversationIdandcustomerasnull. Notices are unchanged. - Send-only numbers. A workspace can make a WhatsApp number send-only in its channel settings. Anything sent from it through
POST /v1/messages/templateis answered the way a one-time code is — no contact, no thread, receipts still delivered — and what customers write to it opens no conversation.
1 October 2026
- Templates belong to a WhatsApp account. Only that account's numbers can send one.
GET /v1/templatesnow carries each template'saccountand thenumbersthat can send it, and a workspace with two accounts may list a name twice, once per account. fromonPOST /v1/messages/templatesays which number sends it; the answer says which did. Two new refusals:unknown_senderandtemplate_not_on_number.- Teams inside a workspace. A workspace can be divided into teams — sales, support — and a thread can be sent to one. The conversation object, in
/v1and in everyconversation.*webhook, now carriesgroup: the team's id and name, ornull. conversation.sent_to_group. A new event, said when a thread moves into a team.groupIdonGET /v1/conversationslists one team's threads.- Workspace. The dashboard now calls the account a workspace. The API keeps its name for it,
team; no field was renamed.
28 September 2026
- One-time codes. Authentication templates can be made in the dashboard and sent with
codeonPOST /v1/messages/template. Seler delivers your code; it never makes or checks one. - Template sends.
variablesmay be an object keyed by the template's own variable names;headerandbuttonVariablesfill text and media headers and URL buttons;referenceis echoed in every webhook about the message. Refusals carry a fixedcodeanddetails. The answer now includesid,status,to,contactIdandreferencebeside the message. - Idempotency.
Idempotency-Keyon a template send: the same key within 24 hours sends once. GET /v1/templates. Every template with its status, variables by name, and what its header and buttons need.- Delivery events.
message.delivered,message.readandmessage.failed, each with the message id and yourreference.
14 September 2026
- REST API v1. Keys with scopes,
/v1/me, contacts, conversations, messages, and WhatsApp templates to any number. 600 requests per minute per key. - Webhooks. Ten events, a signed envelope, retries over about an hour, a delivery log with redelivery, and a test ping.
- Custom API contract version 2. Adds
capabilitiesto/verify, and thecustomersandappointmentshalves. Version 1 servers keep working unchanged; the header now readsX-Seler-Contract: 2. - MCP servers. Streamable HTTP, tool discovery, per-tool enable and confirmation, read-only annotations honoured.
- Call log. Every call the assistant makes to a connected system is visible to the team for a month.
Earlier
Custom store contract version 1 — six routes for a catalogue and orders. Documented in the dashboard; now folded into version 2 above.