Skip to Content
Cloud One
  • Products

    Business Communication Suite & Phone System


      By Edition

      ​Cloud

      Software

      Appliance

    By Deployment

    ​On-premise

    Hosted by Cloud One

    Self-hosted

    By Management

    ​Managed By Cloud One

    Semi-Managed by Cloud One

    Self-Managed


    Simu Connect UC Clients


    Simu Connect Web Client Simu Connect Mobile Client Simu Connect Desktop ClientSimu Connect Chrome ExtensionSimu Connect TAPI Integration

    SIP Trunks


    Business SIPPay As You Go SIP Country Presence SIPVirtual Phone NumbersGolden Phone NumbersToll Free NumbersBring Your Own Carrier (BYOC)Calling RatesTalktime Top-up

    Get a Proof of Concept Now!


    Simu Connect POC Application Managed Business Communication Suite Self Managed Business Communication SuiteSIP Trunk POCOdoo Phone POC
  • Solutions

    Business Needs


    Work from Anywhere Hosted UCaaS Self hosted UCaaSVideo ConferencingAppliance PBXAI-powered Cloud PBXWhite-label Solution

    Industry


    Call Center Healthcare HospitalityFinanceEducationLogisticsRetail BusinessGovernment Agency

    Ecosystem


    IP Phones SIP Trunks IntegrationHeadsetsVirtual Phone Numbers

    By Integration


    Odoo Phone System Zoho Phone System Salesforce Phone SystemMicrosoft Dynamics Phone SystemZendesk Phone SystemFreshdesk Phone SystemBitrix24 Phone SystemHubSpot Phone System
  • Resources

    Downloads

    Download user guides and more documents

    Book a Meeting

    Schedule a meeting at your convenience

    Developer Guide

    Read API Documentation for Cloud One BCS API

    Business Communication Suite

    Experience our user-friendly business communication suite today. Explore robust telephony features that enhance your client connections efficiently.  

    See More Details
  • Devices

    Yealink IP Phones


    Yealink T3 Series IP Phones Yealink T4 Series IP Phones Yealink T5 Series IP PhonesYealink T7 Series IP PhonesYealink T8 Series IP Phones Yealink DECT IP Phones

    Voice Conferencing Solutions


    VC Room Systems BYOD Solutions Video Phone Video Conferencing Accessories

    Microsoft Solutions


    MS Teams Rooms Systems Microsoft Phones Conference Phones HeadsetsYealink MeetingBoardYealink MeetingBoard Pro

    Zoom Rooms


    Zoom Rooms Systems Zoom Phones Zoom Cameras BYOD Solutions
  • Help

    Ticketing System


    Submit a Helpdesk TicketReport an Issue

    Training


    User TrainingOperator TrainingCall Center Agent TrainingSupervisor Training

    Frequently Asked Questions


    General FAQBCS FAQSIP Trunks FAQLocal Phone Numbers FAQ

    Contact Us


    WhatsApp Icon


  • Support Helpdesk Contact
  • +254 20 790 0100
  • support@cloudone.co

  • Accounts Helpdesk Contact
  • +254 20 790 0000
  • finance@cloudone.co
  • Visit our Office


    Cloud One Ltd

    Saachi Plaza - Unit A3, Argwings Kodhek Road, Nairobi, Kenya
    P.O.Box 76484-00508 Yaya Centre

    +254 20 790 0000

    hello@cloudone.co


    Kindly do not email multiple contacts as it creates multiple tickets on our CRM


  • Contact Us
  • Blog
    ​​
  • Sign in
  • 0
  • 0
  • Deploy in hours Certified Experts Zero Setup / License Fees*
  • Follow us
    Click here to setup your social networks
    Click here to setup your social networks
Cloud One
  • 0
  • 0
    • Products
    • Solutions
    • Resources
    • Devices
    • Help
    • Contact Us
    • Blog
  • Deploy in hours Certified Experts Zero Setup / License Fees*
  • Follow us
    Click here to setup your social networks
    Click here to setup your social networks
  • Sign in
  • ​​

Send a Message in a Message Session

Send a message in a specific message session, or initiate a message session.

Request URL

POST {base_url}/{api_path}/message/send?access_token={access_token}

Request parameters

ParameterRequiredTypeDescription
sender_typeYesIntegerThe type of the sender.
Valid value:
  • 1: Extension user.
  • 9: Third-party message analytics platform (transmitted via API)
sender_noNoStringThe identifier of the sender.
Valid value:
  • If sender_type is set to 1, this parameter is REQUIRED, which can be used to specify the extension number.
  • If sender_type is set to 9, enter api or leave it blank.
session_idNoIntegerThe unique ID of the message session, specifying which session the message will be sent through.
Note:
  • You can query the message session ID using Search Specific Message Sessions.
  • When initiating a message session, omit this parameter. However, if there is an existing session where the values of channel, did_number, and to all match those specified in the request, the message will be sent within that session instead of creating a new one.
channelNoStringThe type of the message channel via which the message will be sent.
Note: This parameter is REQUIRED when initiating a message session (The parameter session_id is omitted).
Valid value:
  • general
  • alhambra
  • apidaze
  • aspsms
  • athena
  • bandwidth
  • flowroute
  • ixica
  • netplanet
  • siptrunk
  • skyetel
  • telnyx
  • twilio
  • vetta
  • voicemeup
  • voipms
  • voxtelesys
  • whatsapp
  • facebook
  • livechat
did_numberNoStringThe DID number associated with the message channel.
Note:
  • This parameter is REQUIRED when initiating a message session (The parameter session_id is omitted).
  • You can query the corresponding DID number using Search Specific Message Channels.
toNoStringThe external number to which the message will be sent.
Note:
  • This parameter is REQUIRED when initiating a message session (The parameter session_id is omitted).
  • The value may start with a +, and can include digits, the characters (, ), ., -, *, #, and spaces.
msg_kindNoIntegerThe category of the message to be sent.
Valid value:
  • 0: Normal message.
  • 1: WhatsApp template message.
msg_typeNoIntegerThe type of the message content.
Valid value:
  • 0: User message.
msg_bodyNoStringThe text content of the message.
Note: For normal message (msg_kind is set to 0), either msg_body or files must be provided.
filesNoArray<File_Info>The detailed information of the file to be sent.Note:
  • For normal message (msg_kind is set to 0), either msg_body or files must be provided.
  • You can upload the desired file using Upload Files for Messaging, the pass the returned file information in this parameter.
  • Only one file is supported per message.
whatsapp_msg_paramNoStringMessage parameters to be filled into a WhatsApp message template, provided in JSON-formatted string.
Note: This parameter is REQUIRED when msg_kind is set to 1.

To send a template message, you need to first get the desired WhatsApp message template, then construct the message object with the template information and the desired values for placeholders (variables) in the template. For more information, see WhatsApp Message Template Component Description.

tagNoStringFacebook message tag.Note:This parameter is REQUIRED when sending messages in a Facebook message session outside the 24-hour messaging window, otherwise the message sending will fail.
Valid value:
  • ACCOUNT_UPDATE: Tags the message you are sending as a non-recurring update to customer's application or account.
  • CONFIRMED_EVENT_UPDATE: Tags the message you are sending as a reminder of an upcoming event or an update for an event in progress for which the customer is registered.
  • HUMAN_AGENT: Provide human agent support in cases where a customer's issue cannot be resolved in the standard messaging window.
  • POST_PURCHASE_UPDATE: Tags the message you are sending as an update for a recent purchase made by the customer.
request_idNoStringThe ID of the request, which can be used to identify and track the sent message.
Note: The length must not exceed 127 characters.

File_Info

ParameterRequiredTypeDescription
idNoStringThe ID of the file.
nameNoStringThe name of the file.
uriYesStringThe URI for accessing the file.
typeNoStringFile type.
sizeNoIntegerFile size (Unit: Byte).

Response parameters

Tip:You can get notified about the specific message delivery status by monitoring the API event (30032) Message Sending Result.

ParameterTypeDescription
errcodeIntegerReturned error code.
  • 0: Succeed.
  • Non-zero value: Failed.
Note:You can check the error code and error message in Error Code and Error Message.
errmsgStringReturned message.
  • SUCCESS: Succeed.
  • FAILURE: Failed.
msg_idIntegerThe unique ID of the message.
session_idIntegerThe unique ID of the message session.

Examples

  • Send an image file via an existing message session of extension user 1003.

    1. Upload the desired file.

      Request example

      POST /openapi/v1.0/message/batchupload?access_token=cIRvlHGgdMSuY0eiWE9JkXLCcHZHRTXm HTTP/1.1
      Host: 192.168.5.150:8088
      Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
      
      ------WebKitFormBoundary7MA4YWxkTrZu0gW
      Content-Disposition: form-data; name="files"; filename="/D:/projects/files/demo.jpeg"
      Content-Type: image/jpeg
      
      (binary data) # actual file content here
      ------WebKitFormBoundary7MA4YWxkTrZu0gW

      Response example

      HTTP/1.1 200 OK
      {
          "errcode": 0,
          "errmsg": "SUCCESS",
          "list": [
              {
                  "id": "65a7872eedb341068369fe67664e0fa1",
                  "name": "demo.jpeg",
                  "uri": "20250725/65a7872eedb341068369fe67664e0fa1",
                  "type": "image/jpeg",
                  "size": 88555
              }
          ]
      }
    2. Send the file within a specific message session (ID: 3077).

      Request example

      POST /openapi/v1.0/message/send?access_token=QTkYRnZyCPVJb6rS8Ttw4mqRQUbslN67 HTTP/1.1
      Host: 192.168.5.150:8088
      Content-Type: application/json
      {
        "sender_type": 1,
        "sender_no": "1003", 
        "session_id": 3077,  
        "msg_kind": 0,  
        "msg_type": 0,  
        "files": [
              {
                  "id": "65a7872eedb341068369fe67664e0fa1",
                  "name": "demo.jpeg",
                  "uri": "20250725/65a7872eedb341068369fe67664e0fa1",
                  "type": "image/jpeg",
                  "size": 88555
              }
          ],
        "request_id": "imgmsg-1003-20240918170355"
      }

      Response example

      HTTP/1.1 200 OK
      {
          "errcode": 0,
          "errmsg": "SUCCESS",
          "msg_id": 10273,
          "session_id": 3077
      }
  • Send a message via an existing Facebook session (ID: 3069) outside the 24-hour messaging window.

    Request example

    POST /openapi/v1.0/message/send?access_token=f1G3MaqlX4pjCtiQwv9bGZyJd5OCt4JL HTTP/1.1
    Host: 192.168.33.98:8088
    Content-Length: 264
    
    {
      "sender_type": 1, 
      "sender_no": "1003", 
      "session_id": 3069,
      "msg_kind": 0,  
      "msg_type": 0,   
      "msg_body": "Your account details have been updated.",  
      "tag": "ACCOUNT_UPDATE"
    }

    Response example

    HTTP/1.1 200 OK
    {
        "errcode": 0,
        "errmsg": "SUCCESS",
        "msg_id": 10252,
        "session_id": 3069
    }
  • Initiate a WhatsApp session and send a WhatsApp template message.

    1. Get the information of the desired WhatsApp template.

      Request example

      GET /openapi/v1.0/message_channel/whatsapp_template?omnichannel_id=1&access_token=FOgrNFKY6xVQcUxw3pfMTFqCAG6lBulV&search_value=discount HTTP/1.1
      Host: 192.168.5.150:8088

      Response example

      HTTP/1.1 200 OK
      {
          "errcode": 0,
          "errmsg": "SUCCESS",
          "total_number": 1,
          "data": [
              {
                  "id": 1773,
                  "template_id": "1293546285747227",
                  "name": "discount_campaign",
                  "parameter_format": "NAMED",
                  "language": "en",
                  "category": "MARKETING",
                  "sub_category": "CUSTOM",
                  "components_data": "[{\"type\":\"HEADER\",\"format\":\"IMAGE\"},{\"type\":\"BODY\",\"text\":\"Hello! 👋\\n\\nAs a valued  {{customertier}} member, we’re excited to share a special {{offertype}} with you! 🎁\\nEnjoy {{offerdetails}}—available until {{expirydate}}.\\n\\nIf you have any questions or want to redeem your offer, simply reply to this message or contact our team.\\n\\nThank you for choosing {{companyname}}! 💙\"},{\"type\":\"BUTTONS\",\"buttons\":[{\"type\":\"FLOW\",\"text\":\"Redeem Offer\",\"flow_id\":657693363952373,\"flow_action\":\"NAVIGATE\",\"navigate_screen\":\"SIGN_UP\"},{\"type\":\"URL\",\"text\":\"Visit website\",\"url\":\"https://test.com/\"},{\"type\":\"VOICE_CALL\",\"text\":\"Contact us\"}]}]",
                  "omnichannel_id": 1
              }
          ]
      }
    2. Construct the template message content according to WhatsApp Message Template Component Description, and convert it into a JSON-formatted string.

       {\"id\":1773,\"template_id\":\"1293546285747227\",\"name\":\"discount_campaign\",\"language\":{\"code\":\"en\"},\"parameter_format\":\"NAMED\",\"components\":[{\"type\":\"HEADER\",\"parameters\":[{\"type\":\"IMAGE\",\"file_list\":[{\"id\":\"d8b23d56d9974cdb90d6c2d6927861b9\",\"name\":\"demo.jpeg\",\"uri\":\"20250725/d8b23d56d9974cdb90d6c2d6927861b9\",\"type\":\"image/jpeg\",\"size\":88555}]}]},{\"type\":\"BODY\",\"parameters\":[{\"type\":\"TEXT\",\"text\":\"VIP\",\"parameter_name\":\"customertier\"},{\"type\":\"TEXT\",\"text\":\"discount\",\"parameter_name\":\"offertype\"},{\"type\":\"TEXT\",\"text\":\"20% off for all products\",\"parameter_name\":\"offerdetails\"},{\"type\":\"TEXT\",\"text\":\"July 31, 2025\",\"parameter_name\":\"expirydate\"},{\"type\":\"TEXT\",\"text\":\"SmartMal\",\"parameter_name\":\"companyname\"}]},{\"type\":\"BUTTONS\",\"parameters\":[{\"type\":\"FLOW\",\"text\":\"\"},{\"type\":\"URL\",\"text\":\"\"},{\"type\":\"VOICE_CALL\",\"text\":\"\"}]}]}
    3. Create a message session via a WhatsApp channel.

      Request example

      POST /openapi/v1.0/message_campaign/create?access_token=YAuOvAdHfaqJ8Ni46FDdM9zgK7jYa6mE HTTP/1.1
      Host: 192.168.5.150:8088
      Content-Type: application/json
      {
        "sender_type": 1, 
        "sender_no": "1003", 
        "channel":"whatsapp",
        "did_number": "+15550193510", 
        "to": "+14155552671",
        "msg_kind": 1,  
        "msg_type": 0,  
        "whatsapp_msg_param":"{\"id\":1773,\"template_id\":\"1293546285747227\",\"name\":\"discount_campaign\",\"language\":{\"code\":\"en\"},\"parameter_format\":\"NAMED\",\"components\":[{\"type\":\"HEADER\",\"parameters\":[{\"type\":\"IMAGE\",\"file_list\":[{\"id\":\"d8b23d56d9974cdb90d6c2d6927861b9\",\"name\":\"demo.jpeg\",\"uri\":\"20250725/d8b23d56d9974cdb90d6c2d6927861b9\",\"type\":\"image/jpeg\",\"size\":88555}]}]},{\"type\":\"BODY\",\"parameters\":[{\"type\":\"TEXT\",\"text\":\"VIP\",\"parameter_name\":\"customertier\"},{\"type\":\"TEXT\",\"text\":\"discount\",\"parameter_name\":\"offertype\"},{\"type\":\"TEXT\",\"text\":\"20% off for all products\",\"parameter_name\":\"offerdetails\"},{\"type\":\"TEXT\",\"text\":\"July 31, 2025\",\"parameter_name\":\"expirydate\"},{\"type\":\"TEXT\",\"text\":\"SmartMal\",\"parameter_name\":\"companyname\"}]},{\"type\":\"BUTTONS\",\"parameters\":[{\"type\":\"FLOW\",\"text\":\"\"},{\"type\":\"URL\",\"text\":\"\"},{\"type\":\"VOICE_CALL\",\"text\":\"\"}]}]}"
      }

      Response example

      HTTP/1.1 200 OK
      {
          "errcode": 0,
          "errmsg": "SUCCESS",
          "id": 249
      }
Useful Links
  • Home
  • About us
  • Products
  • Services
  • Shipping
  • Return Policy
  • Warranty
  • Contact us
Legal
  • Terms
  • Privacy
  • Shared Responsibility
    Service Level Agreement
  • Certifications
About us

Cloud One Limited is a leading Kenyan local telephony service provider. Established in 2017, we offer reliable and secure cloud and on premise business communication solutions, including SIP trunks, Yealink IP phones, and VPS hosting in our Tier 3 data center.


Our mission is to revolutionize cloud communications by providing unparalleled reliability, cutting-edge innovation, and substantial cost savings. We deliver a stress-free, always-available service experience that empowers businesses to thrive in the digital age.

DUNS Registration Number: 561230946
Company Registration Number: PVT-5JUEYMA
Licensed & Regulated by the Communications Authority of Kenya


Follow us
Connect with us
  • Contact us
  • hello@cloudone.co
  • +254 20 7900000
  • Saachi Plaza, UNIT A3 - Argwings Kodhek Rd
Download Simu Connect

    Get the app on the playstore

    Download desktop app for Windows​

    Download app from the appstore

    Download MacOS app