> ## Documentation Index
> Fetch the complete documentation index at: https://developers.phonovation.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Message (JSON)

> Sends an SMS message or schedules one for later delivery.
This endpoint always responds with HTTP 200; the `status` field describes
success or failure.




## OpenAPI

````yaml openapi/json-legacy.yaml POST /sendmessage
openapi: 3.1.2
info:
  title: Phonovation SMS JSON Legacy API
  version: 1.0.0
  description: >
    Send SMS messages through Phonovation using the classic JSON API.


    This legacy interface is intended for existing systems that already submit
    JSON payloads for immediate or scheduled SMS delivery, with support for
    optional customer reference IDs used in delivery tracking.


    For new integrations, use the Phonovation SMS OAuth API where possible.
servers:
  - url: https://secure.interactsms.com/api/v1
    description: Phonovation SMS Legacy API Server
security: []
tags:
  - name: Bulk SMS API
    description: Phonovation SMS legacy JSON API endpoints.
paths:
  /sendmessage:
    post:
      tags:
        - Bulk SMS API
      summary: Send an SMS message
      description: >
        Sends an SMS message or schedules one for later delivery.

        This endpoint always responds with HTTP 200; the `status` field
        describes

        success or failure.
      operationId: SendJsonMessage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendMessageRequest'
            examples:
              basicMessage:
                summary: Basic message
                value:
                  User: YOUR_USERNAME
                  Password: YOUR_PASSWORD
                  ApiId: 1234
                  To: '353861234567'
                  Text: Hello World
                  SenderId: YourCompany
              futureMessage:
                summary: Message scheduled for future delivery
                value:
                  User: YOUR_USERNAME
                  Password: YOUR_PASSWORD
                  ApiId: 1234
                  To: '353861234567'
                  Text: Hello World
                  SenderId: YourCompany
                  DeliveryTime: 0
              messageWithNotifyId:
                summary: Message with NotifyId
                value:
                  User: YOUR_USERNAME
                  Password: YOUR_PASSWORD
                  ApiId: 1234
                  To: '353861234567'
                  Text: Hello World
                  SenderId: YourCompany
                  NotifyId: order-001
              futureMessageWithNotifyId:
                summary: Future message with NotifyId
                value:
                  User: YOUR_USERNAME
                  Password: YOUR_PASSWORD
                  ApiId: 1234
                  To: '353861234567'
                  Text: Hello World
                  SenderId: YourCompany
                  NotifyId: order-001
                  DeliveryTime: 0
      responses:
        '200':
          description: >-
            API always returns HTTP 200. The status field contains success or
            error information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendMessageResponse'
              examples:
                success_deferred:
                  summary: Success - message deferred
                  value:
                    status: |-
                      0
                      Request deferred successfully
                invalid_msisdns:
                  summary: Invalid MSISDN(s)
                  value:
                    status: >-
                      1

                      Error With Query String. No valid MSISDNS found. Invalid
                      numbers found > {numbers}
                generic_query_error:
                  summary: Query string error
                  value:
                    status: |-
                      1
                      Error With Query String
                invalid_user:
                  summary: Username/password incorrect
                  value:
                    status: |-
                      7

                      Username and Password don't match any client.
                not_enough_credit:
                  summary: Insufficient credit
                  value:
                    status: Not enough credit
                senderid_unregistered:
                  summary: Sender ID requires registration
                  value:
                    status: >-
                      SenderID requires registration, contact
                      support@phonovation.com
                from_required:
                  summary: From field missing
                  value:
                    status: The 'From' field is required and cannot be left blank
                empty_text:
                  summary: SMS content empty
                  value:
                    status: Content text is empty
                long_text:
                  summary: SMS content too long
                  value:
                    status: Message can't be more than 160 characters
                validation_error:
                  summary: General validation error
                  value:
                    status: 'Error in Validate: {message}'
                message_failed:
                  summary: Message failure
                  value:
                    status: Message couldn't be sent
                invalid_format:
                  summary: Invalid format exception
                  value:
                    status: |-
                      8
                      Invalid string format.
      security: []
components:
  schemas:
    SendMessageRequest:
      type: object
      description: Request payload for sending or scheduling an SMS message.
      properties:
        User:
          type: string
        Password:
          type: string
          format: password
        ApiId:
          type: integer
        To:
          type: string
          description: Destination mobile number in international format.
        Text:
          type: string
        SenderId:
          type: string
          description: Alphanumeric or shortcode sender.
        NotifyId:
          type: string
          description: Optional identifier used for delivery callback tracking.
        DeliveryTime:
          type: integer
          description: Unix timestamp or 0 for immediate delivery.
      required:
        - User
        - Password
        - ApiId
        - To
        - Text
        - SenderId
    SendMessageResponse:
      type: object
      description: >-
        Legacy JSON response. The `status` field contains the legacy status code
        and result message.
      properties:
        status:
          type: string

````