---
title: "Template Message API"
method: POST
path: "/soip/rcs/v2/message"
tags: ["Message Sending APIs"]
---

# Template Message API

`POST /soip/rcs/v2/message`

Send a RCS Text Message to any RCS Enabled Mobile Number.
This API allows you to dispatch messages using a predefined template—simply specify the template ID and content parameters.

## Headers

- `api_key` string, required
- `Content-Type` string, required
- `nc_bot_id` string

## Request body

- object
  - `messages` object[]
    - `To` string — Recipient phone number in E.164 format (uppercase, for freeform messages)
    - `to` string — Recipient phone number in E.164 format (lowercase, for template messages)
    - `content` object
      - `type` 'template' | 'text' | 'CAROUSEL' | 'CARD' | 'FILE' | 'TEXT' — Type of message content
      - `templateCode` string — Template code for template type messages
      - `attributes` object — Template attributes for template type messages
        - `FIRSTNAME` string
      - `text` string — Text content for TEXT type messages
      - `file` object — File object for FILE type messages
        - `url` string, uri — URL of the file
      - `thumbnail` object — Thumbnail for FILE type messages
        - `url` string, uri — URL of the thumbnail image
      - `Suggestions` object[] — Array of suggestion chips (capital S for TEXT and FILE types)
        - `text` string — Display text of the suggestion
        - `postbackData` string — Data to be sent back when suggestion is clicked
        - `postbackdata` string — Data to be sent back when suggestion is clicked (lowercase variant)
        - `type` 'REPLY' | 'DIAL_PHONE' | 'SHOW_LOCATION' | 'REQUEST_LOCATION' | 'OPEN_URL' — Type of suggestion action
        - `phoneNumber` string — Phone number for DIAL_PHONE type (required for DIAL_PHONE)
        - `latitude` number, float — Latitude for SHOW_LOCATION type (required for SHOW_LOCATION)
        - `longitude` number, float — Longitude for SHOW_LOCATION type (required for SHOW_LOCATION)
        - `label` string — Label for SHOW_LOCATION type
        - `url` string, uri — URL for OPEN_URL type (required for OPEN_URL)
      - `orientation` 'vertical' | 'horizontal' — Orientation for CARD type messages
      - `alignment` 'left' | 'right' | 'center' — Alignment for CARD type messages
      - `content` object — Content object for CARD type messages
        - `title` string — Title of the card
        - `description` string — Description of the card
        - `media` object
          - `file` object
            - `url` string, uri — URL of the media file
          - `thumbnail` object
            - `url` string, uri — URL of the thumbnail image
          - `height` 'SHORT' | 'MEDIUM' | 'TALL' — Height of the media
        - `suggestions` object[] — Array of suggestion chips for CARD type
          - `text` string — Display text of the suggestion
          - `postbackData` string — Data to be sent back when suggestion is clicked
          - `postbackdata` string — Data to be sent back when suggestion is clicked (lowercase variant)
          - `type` 'REPLY' | 'DIAL_PHONE' | 'SHOW_LOCATION' | 'REQUEST_LOCATION' | 'OPEN_URL' — Type of suggestion action
          - `phoneNumber` string — Phone number for DIAL_PHONE type (required for DIAL_PHONE)
          - `latitude` number, float — Latitude for SHOW_LOCATION type (required for SHOW_LOCATION)
          - `longitude` number, float — Longitude for SHOW_LOCATION type (required for SHOW_LOCATION)
          - `label` string — Label for SHOW_LOCATION type
          - `url` string, uri — URL for OPEN_URL type (required for OPEN_URL)
      - `cardWidth` 'SMALL' | 'MEDIUM' | 'LARGE' — Width of the card (for CAROUSEL type)
      - `contents` object[] — Array of card contents (for CAROUSEL type)
        - `title` string — Title of the card
        - `description` string — Description of the card
        - `media` object
          - `file` object
            - `url` string, uri — URL of the media file
          - `thumbnail` object
            - `url` string, uri — URL of the thumbnail image
          - `height` 'SHORT' | 'MEDIUM' | 'TALL' — Height of the media
        - `suggestions` object[] — Array of suggestion chips
          - `text` string — Display text of the suggestion
          - `postbackData` string — Data to be sent back when suggestion is clicked
          - `type` 'REPLY' | 'DIAL_PHONE' | 'SHOW_LOCATION' | 'REQUEST_LOCATION' | 'OPEN_URL' — Type of suggestion action
          - `phoneNumber` string — Phone number for DIAL_PHONE type (required for DIAL_PHONE)
          - `latitude` number, float — Latitude for SHOW_LOCATION type (required for SHOW_LOCATION)
          - `longitude` number, float — Longitude for SHOW_LOCATION type (required for SHOW_LOCATION)
          - `label` string — Label for SHOW_LOCATION type
          - `url` string, uri — URL for OPEN_URL type (required for OPEN_URL)
    - `callbackData` string — Callback data to be returned in webhook
    - `ttl` string — Define the timeline before the campaign expires. The duration must be at least 1800 seconds. If both `ttl` and `expireTime` parameters are provided, `expireTime` takes precedence. This field is optional.
    - `expireTime` string — Specifies the absolute timestamp after which the message expires. The value must be in UTC. This field is optional.
    - `tags` string[] — Tags for message categorization
  - `fallbackchain` object[]
    - `channel` 'RCS' | 'SMS' — Fallback channel type
    - `from` string — Sender name/ID for fallback channel
    - `text` string — Fallback text message

## Response `200`

OK

- object
  - `messageId` string
  - `requestError` object
    - `serviceException` object
      - `messageId` string
      - `text` string
      - `validationErrors` unknown

## Other responses

- `400` — content type not valid header must contain "Content-Type" as "application/json" { "requestError": { "serviceException": { "messageId": "", "text": "ContentType not valid", "validationErrors": null } } }
- `401` — Unauthenticated: apikey not found/ unable to get feedid/clientid check if api_key is correct, if yes, contact SRE to for onboarding. { "requestError": { "serviceException": { "messageId": "8f1500e4319ee7ab4b0ff04103cce250", "text": "Unauthenticated: apikey not found/ unable to get feedid/clientid", "validationErrors": [ "apikey not valid" ] } } }

---

[API](https://skmtc.dev/netcorecloud/apis/email-api-v6.md) · [All operations](https://skmtc.dev/netcorecloud/apis/email-api-v6/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/netcorecloud/email-api-v6/revisions/73f83bc2eff8/schema)
