Boni
Bow Chat
Browse documentation
Bow Chat API·api-guide·Version 1

Send a message

Create or reuse a Bow Chat conversation, send a free-form or approved template message, and store the returned message identity.

OpenAPI contract

Before sending

You need an account_id, inbox_id, contact_id, and the contact's source_id for that inbox. Choose content permitted by the channel:

  • WhatsApp Business Platform: use an approved template when the customer-service window or message type requires it.
  • WhatsApp Web: keep sends low-volume, expected, and consented; this connection is not a bulk API.
  • Customer Rooms and other provisioned channels: follow the channel contract agreed for the workspace.

Create the conversation

curl --request POST \
  --url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/conversations \
  --header 'api_access_token: BOW_CHAT_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"source_id":"40722123456","inbox_id":14001,"contact_id":84291,"status":"open"}'

Store the returned id as the conversation display ID. Reuse the same contact/inbox conversation instead of creating a new thread for every notification.

Send free-form content

curl --request POST \
  --url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/conversations/CONVERSATION_ID/messages \
  --header 'api_access_token: BOW_CHAT_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"content":"Your appointment is confirmed for 14:30.","message_type":"outgoing","private":false}'

Free-form content works only where the selected channel permits it.

Send an approved WhatsApp template

curl --request POST \
  --url https://app.bow.chat/api/v1/accounts/ACCOUNT_ID/conversations/CONVERSATION_ID/messages \
  --header 'api_access_token: BOW_CHAT_TOKEN' \
  --header 'content-type: application/json' \
  --data '{"content":"Your appointment is confirmed for 14:30.","message_type":"outgoing","private":false,"template_params":{"name":"appointment_confirmation","category":"UTILITY","language":"ro","processed_params":{"body":{"1":"14:30"}}}}'

The template name, language, category, and parameters must match the approved template in the WhatsApp Business account. Meta can reject or reclassify templates.

Store these fields

  • Your business-event ID, such as appointment:84291:2026-09-10T14:30.
  • Bow Chat message.id.
  • Conversation display ID.
  • Sender inbox ID and channel.
  • Initial acceptance time and latest delivery state.
  • Any terminal error and the one fallback decision, if one was made.

A 200 response means Bow Chat accepted the request. It is not proof of delivery. Continue with Webhooks and Delivery and fallback.