Send Message API

Updated 25 October 2023 We have stopped onboarding new agencies to the WhatsApp channel


This endpoints accept a request body that contains information about the WhatsApp message to be sent. Each successful request to this endpoint will send out a single WhatsApp message.

Request Body

  1. recipient: Mobile phone number of the recipient without special formatting (only contains numerical characters and prefixed with plus sign if country code is included).


    • Country code will need to be provided for non-SG mobile numbers.

    • If country code is not provided, the phone number will be defaulted to be an SG number.

  2. template_id: ID of the template that suits your need (can be retrieved from GET templates endpoint)

  3. params: A key-value object with keys being the parameter names (wrapped in double curly braces in the template body) and corresponding string values to fill in the template body.

  4. language_code (optional): The language code that can be retrieved from the multilingual_support field of the template

API Response

For general information about our API response formats, see here.

Example Response

  "id": "505",
  "recipient": "+6581489408",
  "template_id": "1",
  "params": {
    "topic": "document collection",
    "agency": "Open Government Products",
    "timeslot": "1-3PM",
    "officer_name": "John Tan",
    "recipient_name": "Stanley Nguyen",
    "officer_designation": "Reception Officer"
  "language_code": "en_GB",
  "created_at": "2023-07-31T16:39:59.631Z",
  "updated_at": "2023-07-31T16:40:01.526Z",
  "accepted_at": "2023-07-31T16:40:01.526Z",
  "sent_at": null,
  "delivered_at": null,
  "read_at": null,
  "errored_at": null,
  "error_code": null,
  "error_description": null,
  "status": "ACCEPTED"

For message status, we have 6 different states that a message can be in:

  • UNSENT - Initial state of a newly created transactional message (this status is not returned in the course of a successful request to send a GovSG message)

  • ACCEPTED - Message has been accepted by our service provider (this status is returned in the course of a successful request to send a message)

  • SENT - The send request was successfully forwarded to our service provider and our service provider will attempt to deliver the message to the recipientโ€™s phone number (API user can check this and all subsequent statuses via the /transactional/govSG/{messageId} endpoint)

  • DELIVERED - The service provider has successfully delivered the message to the recipient's phone number

  • READ - The recipient has received the message and viewed it

  • ERROR - An error happened when the service provider is trying to deliver the message

Last updated