---
title: "Send Template Message"
method: POST
path: "/v2/message/nc"
tags: ["Message Sending"]
---

# Send Template Message

`POST /v2/message/nc`

## Request

- Base URL: `https://cpaaswa.netcorecloud.net/api`
- URL: `https://cpaaswa.netcorecloud.net/api/v2/message/nc`
- Auth: HTTP bearer

Use this endpoint to send WhatsApp **template messages** (text, media, coupon, carousel, product, order, interactive, LTO).  
The request body structure determines the template type.
Batching is supported: include up to **100** messages in the `message` array per request.

**Workflow**
1. Confirm user opt-in and template approval.  
2. Build the payload using the appropriate template structure.  
3. Send the request and track delivery via webhooks.

## Request body

- object
  - `message` object[], required: Add one or more message objects to send different WhatsApp templates.
    - `recipient_type` string, required: Enter the type of recipient (e.g., individual or group).
    - `recipient_whatsapp` string, required: Enter the recipient’s WhatsApp number in international format.
    - `category` string: Only valid for direct utility message sending.
    - `ttl_seconds` integer: Optional. TTL for messages in seconds, only for direct utility message sending.
    - `source` string, required: Enter the source identifier for this message.
    - `cta_link_track` string: Set **1** to enable CTA link tracking, or **0** to disable.
    - `retry_enabled` '0' | '1': Set **1** to enable message retry on temporary failures, or **0** to disable. When enabled, the system will automatically retry sending the message if it encounters a transient error.
    - `message_type` 'text' | 'media' | 'template' | 'sms' | 'media_template' | 'location' | 'contacts' | 'interactive' | 'mpm_template' | 'catalog_template' | 'carousel_template' | 'order_details_template' | 'order_status_template' | 'typing_indicator' | 'product_card_carousel_template' | 'spm_template' | 'limited_time_offer_template' | 'call_permission_request': Choose the WhatsApp message type to send (e.g., limited_time_offer_template, product_card_carousel_template, interactive_template).
    - `x-apiheader` string: Enter custom header text used for routing or authentication.
    - `type_template` object[]: Add template details such as name, placeholders, and language.
      - `name` string, required: Name of the template.
      - `attributes` string[]: Template parameters to replace placeholders.
      - `language` object, required: Language and policy settings for the template.
        - `locale` string, required: Locale of the message.
        - `policy` string, required: Language fallback policy.
    - `type_media_template` object: Media content and metadata for LTO message.
      - `type` string, required: Media type (e.g., image, video).
      - `url` string, uri: Public URL of the media file.
      - `media_id` string: Media ID of the media file.
      - `filename` string: Filename of the media file.
      - `button` object[]: List of interactive buttons for the message.
        - `index` string, required: Button index (starting from 0).
        - `payload` string, required: Payload value sent when button is clicked.
        - `sub_type` 'copy_code' | 'url' | 'quick_reply' | 'voice_call', required: Type of button action.
      - `expiration_time_ms` string: Epoch timestamp (in ms) when the offer expires.
    - `type_mpm_template` object
      - `thumbnail_product_retailer_id` string: Thumbnail product retailer ID.
      - `sections` object[]: List of sections.
        - `title` string: Title of the section.
        - `product_items` object[]: List of product items.
          - `product_retailer_id` string: Product retailer ID.
    - `type_spm_template` object
      - `product` object
        - `product_retailer_id` string: Product retailer ID.
        - `catalog_id` string: Catalog ID.
      - `button` object[]: List of buttons.
        - `sub_type` 'copy_code' | 'url' | 'quick_reply': type of button
        - `payload` string: payload of the button
        - `index` string: index of the button
    - `type_product_card_carousel` object
      - `cards` object[]: List of cards.
        - `card_index` string: index of the card
        - `product_retailer_id` string: product retailer ID
        - `catalog_id` string: catalog ID
        - `button` object[]: List of buttons.
          - `sub_type` 'copy_code' | 'url' | 'quick_reply': type of button
          - `payload` string: payload of the button
          - `index` string: index of the button
    - `type_carousel_template` object
      - `cards` object[]: List of cards.
        - `card_index` string: index of the card
        - `components` object[]: List of components.
          - `type` 'header' | 'body' | 'button': type of component
          - `parameters` object[]: List of parameters.
            - `type` 'image' | 'text' | 'button': type of parameter
            - `image` object: Image parameter (used when type is 'image')
              - …
            - `text` string: text of the parameter (used when type is 'text')
            - `button` object: Button parameter (used when type is 'button')
              - …
    - `type_location` object[]: Location information to be sent with the message.
      - `longitude` number, float, required: Longitude coordinate of the location.
      - `latitude` number, float, required: Latitude coordinate of the location.
      - `name` string: Name of the location.
      - `address` string: Full address of the location.
    - `type_contact` object[]: Contact information to be sent with the message.
      - `addresses` object[]: List of addresses for the contact.
        - `city` string: City name.
        - `country` string: Country name.
        - `country_code` string: Country dialing code.
        - `state` string: State or province name.
        - `street` string: Street address.
        - `type` 'home' | 'work': Type of address.
        - `zip` string: Postal or ZIP code.
      - `birthday` string, date: Contact's birthday in YYYY-MM-DD format.
      - `emails` object[]: List of email addresses.
        - `email` string, email: Email address.
        - `type` 'personal' | 'work': Type of email.
      - `name` object: Contact's name information.
        - `first_name` string: First name of the contact.
        - `formatted_name` string: Formatted full name of the contact.
        - `last_name` string: Last name of the contact.
      - `org` object: Organization information for the contact.
        - `company` string: Company name.
        - `department` string: Department name.
        - `title` string: Job title.
      - `phones` object[]: List of phone numbers.
        - `phone` string: Phone number without country code.
        - `type` 'mobile' | 'home' | 'work': Type of phone number.
        - `wa_id` string: WhatsApp ID with country code.
      - `urls` object[]: List of URLs associated with the contact.
        - `type` string: Type of URL.
        - `url` string, uri: URL or email address.
    - `type_text` object[]: Interactive text message without header.
      - `content` string: Text content of the message.
    - `type_interactive` object[]: Interactive message configuration with various action types.
      - `type` 'button' | 'list' | 'product' | 'product_list' | 'flow' | 'cta_url' | 'location_request_message' | 'address_message' | 'order_status' | 'order_detail', required: Type of interactive message.
      - `header` object: Header content for the interactive message.
        - `type` 'document' | 'image' | 'video' | 'text': Type of header media.
        - `url` string, uri: URL of the header media file.
        - `filename` string: Filename for document headers.
        - `text` string: Text content for text headers.
      - `footer` string: Footer text for the message.
      - `body` string: Main body text of the interactive message.
      - `action` object[]: Action configuration for interactive elements.
        - `name` 'send_location' | 'address_message': Name of the action type.
        - `buttons` object[]: List of interactive buttons.
          - `type` 'reply': Type of button.
          - `name` string: Name of the button (for cta_url type).
          - `reply` object: Reply button configuration.
            - `id` string: Unique ID for the reply button.
            - `title` string: Display title for the reply button.
          - `parameters` object: Parameters for CTA URL buttons.
            - `display_text` string: Text displayed on the button.
            - `url` string, uri: URL to open when button is clicked.
        - `parameters` object: Parameters for address_message action.
          - `payment_type` string: Payment mode for order details flow.
          - `payment_configuration` string: Payment configuration name configured for the selected payment type.
          - `country` string: Country code for address validation.
          - `values` object: Address field values.
            - `name` string: Customer name.
            - `phone_number` string: Customer phone number with country code.
            - `in_pin_code` string: PIN code (India specific).
            - `address` string: Street address.
            - `city` string: City name.
            - `state` string: State or province.
            - `building_name` string: Building or apartment name.
    - `type_media` object[]: Media attachments to be sent with the message.
      - `attachments` object[]: List of media attachments.
        - `attachment_type` 'sticker' | 'image' | 'video' | 'audio' | 'document': Type of media attachment.
        - `attachment_url` string, uri: Public URL of the media attachment.
        - `caption` string: Caption text for the media attachment.
    - `context` object: Context information for replying to or reacting to a specific message.
      - `message_id` string: WhatsApp message ID to reply to or react to.

## Response `200`

Success response for single or batch requests.

- object

---

[API](https://skmtc.dev/netcorecloud/apis/whatsapp-api.md) - [All operations](https://skmtc.dev/netcorecloud/apis/whatsapp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/netcorecloud/apis/whatsapp-api/revisions/82cdf689fb7a?raw)
