Create a key
Open Channels → Developer API and create a named server-side credential.
Send messages, synchronize conversations, and receive channel events using the same messaging engine as ConvoClerk.
https://app.convoclerk.com/apiOpen Channels → Developer API and create a named server-side credential.
Call GET /v1/channels and choose the channel ID your integration should use.
Send with an idempotency key, poll message cursors, or configure signed channel webhooks.
Choose a channel to see only its supported actions. The explorer is generated from the backend contract, so every request, media example, and limitation stays aligned with the API.
Official WhatsApp Business messaging through Meta's Cloud API.
/v1/channel-typesReturns the capability matrix used to validate channel-specific actions.
channels:readThe key stays only in this page's memory. The explorer sends credentials exclusively to the published origin above.
curl --request GET \ --url 'https://app.convoclerk.com/api/v1/channel-types' \ --header 'Authorization: Bearer cc_your_api_key'
Run the request to inspect its status, duration, and response body.
Send Authorization: Bearer cc_… on every request. Choose only the scopes your integration needs, keep keys on your server, and reveal or revoke active keys as a company administrator.
Set client_message_id when sending. Retrying the same conversation and UUID returns the original message instead of sending a duplicate.
Use after with poll_cursor for pull-based synchronization, or configure message.received and message.sent webhooks on each channel for push delivery.
Each channel can deliver independently. Requests time out quickly, retry with exponential backoff, and never block provider message processing.
Compute HMAC-SHA256 over <timestamp>.<raw body> with the channel signing secret and compare it to x-convoclerk-signature.
const expected = hmacSha256(secret, timestamp + "." + rawBody);
timingSafeEqual("v1=" + expected, signatureHeader);Use the event ID for deduplication. Event types are message.received, message.sent, and webhook.test.
{
"id": "evt_uuid",
"type": "message.received",
"api_version": "2026-08-14",
"created_at": "2026-08-14T12:00:00Z",
"data": { "channel": {}, "conversation": {}, "message": {} }
}