---
title: "Direct Send Message"
method: POST
path: "/v2/{sid}/whatsapp/{phone_number}/messages"
tags: ["Direct Send Message"]
---

# Direct Send Message

`POST /v2/{sid}/whatsapp/{phone_number}/messages`

The WhatsApp Direct Send Message API allows you to send WhatsApp text and interactive messages without requiring a pre-approved template.

## Path parameters

- `sid` string, required
- `phone_number` string, required

## Request body

- DirectSendRequest — Root request payload for WhatsApp direct message.
  - `messaging_object` union, required — WhatsApp message payload supporting multiple types.
    - TextMessage — Plain text WhatsApp message schema.
      - `messaging_product` string, required — Messaging platform name.
      - `recipient_type` string, required — Recipient type.
      - `to` string, required — Recipient WhatsApp number.
      - `type` string, required — Message type.
      - `text` object, required — Text message content.
        - `body` string, required — Message body text.
      - `category` string, required — Message category (Utility and Authentication).
      - `ttl_seconds` integer — Message time-to-live in seconds.
      - `direct_send_config` object — Optional configuration for Direct Send messages.
        - `template_name` string — Name of the template associated with the Direct Send message.
    - CtaUrlMessage — CTA URL interactive message schema.
      - `messaging_product` string, required — Messaging platform.
      - `recipient_type` string, required — Recipient type.
      - `to` string, required — Recipient WhatsApp number.
      - `type` string, required — Message type.
      - `interactive` object, required — Interactive CTA configuration.
        - `type` string — Interactive type.
        - `body` object — Body content.
          - `text` string — Body text.
        - `action` object — CTA action configuration.
          - `name` string — Action name.
          - `parameters` object — CTA button parameters.
            - `display_text` string — Button label (max 20 chars).
            - `url` string — Destination URL.
      - `category` string, required — Message category.
      - `ttl_seconds` integer — Message TTL.
    - ReplyButtonMessage — Quick reply button message schema.
      - `messaging_product` string, required — Messaging platform.
      - `recipient_type` string, required — Recipient type.
      - `to` string, required — Recipient WhatsApp number.
      - `type` string, required — Message type.
      - `interactive` object, required — Button configuration.
      - `category` string, required — Message category.
      - `ttl_seconds` integer — Message TTL.
  - `extra_info` object — Optional metadata returned in webhook callbacks.
    - `ref` string — Customer reference ID.
    - `ref1` string — Secondary tracking reference.
    - `ref2` string — Additional reference field.
    - `wa_source` string — Source identifier for WhatsApp campaign.

## Response `202`

Request Accepted

- AcceptedResponse — Success response for accepted requests.
  - `code` string — Response code.
  - `message` string — Response message.
  - `data` object
    - `message_id` string — Unique message ID generated by system.
  - `error` object — Empty object on success.

## Other responses

- `400` — Bad Request / Validation Errors

---

[API](https://skmtc.net/kaleyra/apis/kaleyra-io-sms-apis.md) · [All operations](https://skmtc.net/kaleyra/apis/kaleyra-io-sms-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kaleyra/kaleyra-io-sms-apis/revisions/d9b785884d03/schema)
