string
required
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Welcome to the Connexease Gateway API Documentation!
Send text, media, or template messages. Full parameter reference and code examples for every message type.
wamid that you can use to track delivery status via webhooks. This page covers every supported message type with full parameter references and runnable examples.
POST https://api.gateway.connexease.com/v1/wa/message
Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx format.application/json.true, routes the request through the Meta Marketing Messages Lite endpoint. Use for high-volume broadcast campaigns.true, auth, rate limiting, and billing checks run normally; the Meta API call is skipped and a fake wamid is returned. Ideal for development and load testing."whatsapp".+, spaces, or dashes. E.g. 905321234567, 14155552671.text, image, audio, document, template, interactive.Text Message
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "text",
"text": {
"body": "Hello! Your order has been confirmed.",
"preview_url": false
}
}'
import requests
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "text",
"text": {"body": "Hello! Your order has been confirmed.", "preview_url": False}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'text',
text: { body: 'Hello! Your order has been confirmed.', preview_url: false }
}),
});
payload := map[string]any{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "text",
"text": map[string]any{"body": "Hello! Your order has been confirmed.", "preview_url": false},
}
body, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.gateway.connexease.com/v1/wa/message", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
req.Header.Set("Content-Type", "application/json")
http.DefaultClient.Do(req)
Image Message
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "image",
"image": {
"link": "https://example.com/images/order-summary.jpg",
"caption": "Your order summary"
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "image",
"image": {"link": "https://example.com/images/order-summary.jpg", "caption": "Your order summary"}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'image',
image: { link: 'https://example.com/images/order-summary.jpg', caption: 'Your order summary' }
}),
});
Audio Message
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "audio",
"audio": {
"link": "https://example.com/audio/welcome.mp3"
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "audio",
"audio": {"link": "https://example.com/audio/welcome.mp3"}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'audio',
audio: { link: 'https://example.com/audio/welcome.mp3' }
}),
});
Document Message
invoice_march_2025.pdf).curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "document",
"document": {
"link": "https://example.com/docs/invoice.pdf",
"caption": "Your March 2025 Invoice",
"filename": "invoice_march_2025.pdf"
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "document",
"document": {
"link": "https://example.com/docs/invoice.pdf",
"caption": "Your March 2025 Invoice",
"filename": "invoice_march_2025.pdf"
}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'document',
document: {
link: 'https://example.com/docs/invoice.pdf',
caption: 'Your March 2025 Invoice',
filename: 'invoice_march_2025.pdf'
}
}),
});
Template Message (Marketing / Utility / Authentication)
en_US, tr, de. Must exactly match the value in Meta.{{1}}, {{2}}).| Field | Type | Required | Values | Description |
|---|---|---|---|---|
type | string | Yes | header, body, button | Component type |
sub_type | string | Conditional | url, quick_reply | Only for type: "button" |
index | string | Conditional | "0", "1", "2" | Only for type: "button", button order |
parameters | array | Yes | Variable values |
| Field | Type | Required | Values | Description |
|---|---|---|---|---|
type | string | Yes | text, image, document, video, currency, date_time | Variable type |
text | string | Conditional | Value for type: "text" | |
image.link | string | Conditional | URL for type: "image" |
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "order_confirmation",
"language": { "code": "en_US" }
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {"name": "order_confirmation", "language": {"code": "en_US"}}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'template',
template: { name: 'order_confirmation', language: { code: 'en_US' } }
}),
});
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "shipping_update",
"language": { "code": "en_US" },
"components": [
{
"type": "body",
"parameters": [
{ "type": "text", "text": "ORD-20251203" },
{ "type": "text", "text": "In Transit" },
{ "type": "text", "text": "December 3, 2025" }
]
}
]
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "shipping_update",
"language": {"code": "en_US"},
"components": [
{
"type": "body",
"parameters": [
{"type": "text", "text": "ORD-20251203"},
{"type": "text", "text": "In Transit"},
{"type": "text", "text": "December 3, 2025"}
]
}
]
}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'template',
template: {
name: 'shipping_update',
language: { code: 'en_US' },
components: [
{
type: 'body',
parameters: [
{ type: 'text', text: 'ORD-20251203' },
{ type: 'text', text: 'In Transit' },
{ type: 'text', text: 'December 3, 2025' }
]
}
]
}
}),
});
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "promo_announcement",
"language": { "code": "en_US" },
"components": [
{
"type": "header",
"parameters": [
{ "type": "image", "image": { "link": "https://example.com/promo-banner.jpg" } }
]
},
{
"type": "body",
"parameters": [
{ "type": "text", "text": "John" },
{ "type": "text", "text": "30%" }
]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [
{ "type": "text", "text": "spring-sale-2025" }
]
}
]
}
}'
curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "otp_verification",
"language": { "code": "en_US" },
"components": [
{
"type": "body",
"parameters": [{ "type": "text", "text": "847291" }]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [{ "type": "text", "text": "847291" }]
}
]
}
}'
Interactive Button — Quick Reply Buttons
interactive.button_reply webhook event is sent to your endpoint."button"type: "reply", reply.id (unique ID, max 256 chars), reply.title (max 20 chars).curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "interactive",
"interactive": {
"type": "button",
"body": {
"text": "Your order is out for delivery. Choose your delivery preference:"
},
"action": {
"buttons": [
{ "type": "reply", "reply": { "id": "home_delivery", "title": "Home Delivery" } },
{ "type": "reply", "reply": { "id": "cash_on_delivery", "title": "Cash on Delivery" } },
{ "type": "reply", "reply": { "id": "pickup", "title": "Pick Up In Store" } }
]
}
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "interactive",
"interactive": {
"type": "button",
"body": {"text": "Your order is out for delivery. Choose your delivery preference:"},
"action": {
"buttons": [
{"type": "reply", "reply": {"id": "home_delivery", "title": "Home Delivery"}},
{"type": "reply", "reply": {"id": "cash_on_delivery", "title": "Cash on Delivery"}},
{"type": "reply", "reply": {"id": "pickup", "title": "Pick Up In Store"}}
]
}
}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'interactive',
interactive: {
type: 'button',
body: { text: 'Your order is out for delivery. Choose your delivery preference:' },
action: {
buttons: [
{ type: 'reply', reply: { id: 'home_delivery', title: 'Home Delivery' } },
{ type: 'reply', reply: { id: 'cash_on_delivery', title: 'Cash on Delivery' } },
{ type: 'reply', reply: { id: 'pickup', title: 'Pick Up In Store' } }
]
}
}
}),
});
Interactive List — Selection List
interactive.list_reply webhook event is sent."list"title and rows (options). Row id max 200 chars, title max 24 chars.curl -X POST https://api.gateway.connexease.com/v1/wa/message \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "interactive",
"interactive": {
"type": "list",
"body": { "text": "How can we help you today?" },
"action": {
"button": "View Options",
"sections": [
{
"title": "Order Management",
"rows": [
{ "id": "track_order", "title": "Track Order", "description": "Find out where your order is" },
{ "id": "cancel_order", "title": "Cancel Order", "description": "Cancel my order" }
]
},
{
"title": "Support",
"rows": [
{ "id": "live_support", "title": "Live Support", "description": "Connect with an agent" }
]
}
]
}
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "interactive",
"interactive": {
"type": "list",
"body": {"text": "How can we help you today?"},
"action": {
"button": "View Options",
"sections": [
{
"title": "Order Management",
"rows": [
{"id": "track_order", "title": "Track Order", "description": "Find out where your order is"},
{"id": "cancel_order", "title": "Cancel Order", "description": "Cancel my order"}
]
},
{
"title": "Support",
"rows": [{"id": "live_support", "title": "Live Support", "description": "Connect with an agent"}]
}
]
}
}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'interactive',
interactive: {
type: 'list',
body: { text: 'How can we help you today?' },
action: {
button: 'View Options',
sections: [
{
title: 'Order Management',
rows: [
{ id: 'track_order', title: 'Track Order', description: 'Find out where your order is' },
{ id: 'cancel_order', title: 'Cancel Order', description: 'Cancel my order' }
]
},
{
title: 'Support',
rows: [{ id: 'live_support', title: 'Live Support', description: 'Connect with an agent' }]
}
]
}
}
}),
});
Marketing Messages Lite (mmlite=true)
?mmlite=true. The request body structure is identical to regular template messages.curl -X POST "https://api.gateway.connexease.com/v1/wa/message?mmlite=true" \
-H "Authorization: Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "weekly_newsletter",
"language": { "code": "en_US" },
"components": [
{
"type": "body",
"parameters": [{ "type": "text", "text": "John" }]
}
]
}
}'
requests.post(
"https://api.gateway.connexease.com/v1/wa/message",
params={"mmlite": "true"},
headers={"Authorization": "Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json"},
json={
"messaging_product": "whatsapp",
"to": "905321234567",
"type": "template",
"template": {
"name": "weekly_newsletter",
"language": {"code": "en_US"},
"components": [{"type": "body", "parameters": [{"type": "text", "text": "John"}]}]
}
}
)
await fetch('https://api.gateway.connexease.com/v1/wa/message?mmlite=true', {
method: 'POST',
headers: { 'Authorization': 'Bearer pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'Content-Type': 'application/json' },
body: JSON.stringify({
messaging_product: 'whatsapp',
to: '905321234567',
type: 'template',
template: {
name: 'weekly_newsletter',
language: { code: 'en_US' },
components: [{ type: 'body', parameters: [{ type: 'text', text: 'John' }] }]
}
}),
});
{
"isSuccess": true,
"data": {
"messaging_product": "whatsapp",
"contacts": [
{
"input": "905321234567",
"wa_id": "905321234567"
}
],
"messages": [
{
"id": "wamid.HBgNOTA1Mzk5ODc2NTQzFQIAERgSM0Y3RDg5NjREOUNBMkFFNEE3AA=="
}
]
}
}
true = message accepted. Does not mean the message was delivered."whatsapp".input.wamid for this message. Store this to correlate with incoming delivery status webhooks.{
"isSuccess": false,
"errors": {
"code": "BILL_001",
"group": "PAYMENT_REQUIRED",
"description": "Insufficient balance. Please top up your account to continue sending messages."
}
}
message_status webhook events for actual delivery confirmation.data.messages[0].id in your database. You’ll need this wamid to match it against incoming message_status and read webhooks.type: "template".components[].parameters must exactly match the approved template in Meta Business Manager. Extra or missing parameters will result in a GW_001 error.