Sendzen API Documentation
HomeGetting StartedChangelog
HomeGetting StartedChangelog
Visit Website
Sign In
Create an account
  1. Session Messages
  • Start Guide
    • Getting Started
    • API Reference
  • Messages
    • Template Messages
      • Send Text Message
      • Send Interactive Message
      • Send Media Message
    • Session Messages
      • Send Text Message
        POST
      • Send Image Message
        POST
      • Send Video Message
        POST
      • Send Audio Message
        POST
      • Send Document Message
        POST
      • Send Interactive Reply Message
        POST
    • Incoming Messages
      • Received Text Message
      • Received Message with Reaction
      • Received Media Message with Image
      • Received Callback from a Quick Reply Button Click
    • Other
      • Message Status & Typing Indicator
  • Template
    • List Templates
      GET
    • Create Template
      POST
    • Delete Template
      DELETE
    • Upload Media
      POST
  • Partner
    • Integration Guide
  • Project
    • Create Project
      POST
    • List Projects
      GET
    • Update Project
      PUT
    • Retrieve Project
      GET
  • WABA
    • List WABA
      GET
    • Retrieve WABA Details from Meta
      GET
    • Retrieve WhatsApp Business Profile Detail
      GET
    • Update WhatsApp Business Profile
      POST
    • Upload WhatsApp Business Profile
      POST
  • Activity Logs
    • All Event Logs
    • Incoming Message Logs
    • Message Status Logs
    • Other Event Logs
    • Multiple Event Types
  • Knowledge Base
    • Programming Languages
      • Python
      • Node.js
      • PHP
      • Laravel
      • Java
      • C# .NET
    • Onboarding
      • WhatsApp Setup
    • Product
      • Changelog
  • Schemas
    • Schemas
      • Template Message
      • 401/403 Message Response
      • AccountLoginRequest
      • APIKeyDto
      • ReadTypingIndicatorRequest
      • AccountRegisterRequest
      • TypingIndicator
      • PartnerConfigDto
      • LoginResponse
      • PartnerInfoDto
      • WABASignUp
      • OrderCheckoutDto
      • OrderDto
      • OrderStatusEnum
      • PaymentGatewayDto
    • Knowledge Base
    • Address
    • Account
    • CommonResponse
    • AccountDetailDto
    • CreateOrUpdateProjectRequest
    • Contact
    • Error
    • ContactName
    • Button
    • ErrorResponse
    • CarouselCard
    • Email
    • ClientData
    • Component
    • ProjectDetailDto
    • ProjectWABADetail
    • Interactive
    • WABADetail
    • InteractiveAction
    • WABADto
    • InteractiveBody
    • CreateTemplateRequest
    • InteractiveButton
    • InteractiveFooter
    • CreateWebhookConfigRequest
    • InteractiveHeader
    • InteractiveMedia
    • Example
    • InteractiveProductItem
    • InteractiveProductSection
    • InteractiveReply
    • InteractiveRow
    • InteractiveSection
    • Location
    • Media
    • MessageRequest
    • MessageResponse
    • MessageTemplate
    • Organization
    • LimitedTimeOffer
    • Phone
    • Reaction
    • Response
    • TemplateAction
    • NamedParameter
    • TemplateButtons
    • TemplateCarousel
    • TemplateComponent
    • TemplateCurrency
    • PaginatedWebhookLogsResponse
    • TemplateDateTime
    • PartnerClientSession
    • TemplateLimitedTimeOffer
    • PartnerClientSessionDto
    • TemplateMedia
    • TemplateParameter
    • TemplateProductItem
    • TemplateSection
    • TemplateTapTargetConfiguration
    • SupportedApp
    • Text
    • Url
    • WhatsAppBusinessProfile
    • UploadMedia
    • Webhook
    • WebhookConfigDto
    • WebhookLogDto
  1. Session Messages

Send Interactive Reply Message

POST
https://api.sendzen.io/v1/messages

Request Body for Interactive Messages (Button Type)#

This request body is used to send interactive messages of the "button" type, allowing for a structured message with a header, body, optional footer, and up to three quick reply buttons.

Request Body Parameters:#

ParameterTypeDescriptionConstraints
fromstringThe sender's phone number (or ID) from which the message will be sent.Required.
Pattern: ^[1-9][0-9]{0,3}[1-9][0-9]{9}$
Max Length: 15 characters.
tostringThe recipient's phone number (or ID) to whom the message will be sent.Required.
Pattern: ^[1-9][0-9]{0,3}[1-9][0-9]{9}$
Max Length: 15 characters.
typestringSpecifies the type of message. For interactive messages, this should be "interactive".Required.
Default: "interactive"
interactiveobjectContains the details of the interactive message.Required.

interactive Object Properties:#

ParameterTypeDescriptionConstraints
typestringSpecifies the type of interactive message. For this structure, it must be "button".Required.
Default: "button"
headerobjectOptional. The header component of the interactive message. It can be of type text, image, video, or document. A header can only contain one of these types at a time.

- If type is text, include a text field with the header content.
- If type is image, video, or document, include an object with the respective media type key (image, video, or document), which must contain either an id (media ID from Meta) or a link (URL to the media file). You cannot provide both id and link simultaneously.
Max for text header: 60 characters.
Media headers: Either id or link is required within the media object, not both.
Supported media types: image, video, document. Audio is not supported for header media in this structure.
bodyobjectContains the main content of the message. This is a crucial part of your interactive message.Required.
footerobjectOptional. The footer component of the interactive message. It can contain a text field. Set to null if no footer is desired.Max for text footer: 60 characters.
Can be null.
actionobjectDefines the interactive elements for the message, specifically the buttons.Required.

body Object Properties:#

ParameterTypeDescriptionConstraints
textstringThe main message content to be displayed.Required.
Max Length: 1024 characters.

footer Object Properties:#

ParameterTypeDescriptionConstraints
textstringThe footer text for the message.Max Length: 60 characters.
Can be null.

action Object Properties:#

ParameterTypeDescriptionConstraints
buttonsarrayAn array of quick reply button objects.Required.
Maximum of 3 button objects allowed.

buttons Array Item Properties:#

Each object in the buttons array represents a single quick reply button.
ParameterTypeDescriptionConstraints
typestringSpecifies the type of button. For quick reply buttons, it's "reply".Required.
Default: "reply"
replyobjectContains the details of the quick reply button.Required.

reply Object Properties:#

ParameterTypeDescriptionConstraints
idstringA unique identifier for the button. This ID is sent back to your webhook when the user taps the button.Required.
Max Length: 256 characters.
Must be unique across buttons in the message.
titlestringThe text displayed on the button to the user.Required.
Max Length: 20 characters.
Must be unique across buttons in the message.

Header Formats (Copyable Code):#

Choose one of the following formats for your header object within the interactive message.
1. Text Header:
Use this if your header contains only text.
"header": {
  "type": "text",
  "text": "<YOUR_HEADER_TEXT_HERE>"
}
2. Image Header:
Use this if your header is an image. Provide either id or link.
"header": {
  "type": "image",
  "image": {
    "id": "YOUR_MEDIA_ID"
    // OR "link": "https://your-image-link.jpg"
  }
}
3. Video Header:
Use this if your header is a video. Provide either id or link.
"header": {
  "type": "video",
  "video": {
    "id": "YOUR_MEDIA_ID"
    // OR "link": "https://your-video-link.mp4"
  }
}
4. Document Header:
Use this if your header is a document. Provide either id or link.
"header": {
  "type": "document",
  "document": {
    "id": "YOUR_MEDIA_ID"
    // OR "link": "https://your-document-link.pdf"
  }
}

Example Request Body (with Image Header and Multiple Buttons):#

{
  "from": "12345678901",
  "to": "19876543210",
  "type": "interactive",
  "interactive": {
    "type": "button",
    "header": {
      "type": "image",
      "image": {
        "id": "2762702990552401"
        // OR "link": "https://example.com/promo_banner.png"
      }
    },
    "body": {
      "text": "Hello, our new collection has arrived! Explore exciting new items and special offers. Don't miss out on limited-time discounts for our valued customers. Check out our latest arrivals now!"
    },
    "footer": {
      "text": "Offers valid while stocks last."
    },
    "action": {
      "buttons": [
        {
          "type": "reply",
          "reply": {
            "id": "VIEW_COLLECTION_BTN",
            "title": "View Collection"
          }
        },
        {
          "type": "reply",
          "reply": {
            "id": "CONTACT_SUPPORT_BTN",
            "title": "Contact Support"
          }
        },
        {
          "type": "reply",
          "reply": {
            "id": "FAQS_BTN",
            "title": "FAQs"
          }
        }
      ]
    }
  }
}

Example Request Body (with Text Header and Single Button):#

{
  "from": "12345678901",
  "to": "19876543210",
  "type": "interactive",
  "interactive": {
    "type": "button",
    "header": {
      "type": "text",
      "text": "Upcoming Event Details"
    },
    "body": {
      "text": "Join us for an insightful webinar on 'Future of AI'. Learn from industry leaders and engage in live Q&A sessions. Mark your calendars!"
    },
    "footer": {
      "text": "Registration is free but spaces are limited."
    },
    "action": {
      "buttons": [
        {
          "type": "reply",
          "reply": {
            "id": "REGISTER_WEBINAR_BTN",
            "title": "Register Now"
          }
        }
      ]
    }
  }
}

Request

Authorization
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
Body Params application/json

Examples

Responses

🟢202Accepted
application/json
Body

🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🔴500Internal Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.sendzen.io/v1/messages' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "from": "string",
    "to": "string",
    "type": "interactive",
    "interactive": {
        "type": "button",
        "header": "string",
        "body": {
            "text": "string"
        },
        "footer": {
            "text": "string"
        },
        "action": {
            "buttons": [
                {
                    "type": "reply",
                    "reply": {
                        "id": "string",
                        "title": "string"
                    }
                }
            ]
        }
    }
}'
Response Response Example
202 - Example 1
{
    "message_id": "string",
    "status": "string",
    "to": "string",
    "timestamp": "string"
}
Modified at 2025-09-30 12:01:00
Previous
Send Document Message
Next
Incoming Messages
Built with