> ## 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 SMS message

> With this API method, you can do anything from sending a basic message to one person, all the way to sending customized messages to thousands of recipients in one go. It comes with a range of useful features like transliteration, scheduling, and tracking in a unified way.\
If utilizing Message Delivery Reports webhook, please consult the documentation provided at [Receive outbound SMS message reports](#channels/sms/receive-outbound-sms-message-report-v3).\
This endpoint is the successor of [Send SMS message](#channels/sms/send-sms-message) and [Send binary SMS message](#channels/sms/send-binary-sms-message).

**Required scope:** Enable one of: `message:send`, `sms:message:send`, `sms:manage`.



## OpenAPI

````yaml /openapi/phonovation-whatsapp.json post /sms/3/messages
openapi: 3.1.0
info:
  title: Phonovation Messaging APIs
  description: >-
    OpenAPI specification for Phonovation messaging, customer engagement, and
    platform APIs.
  contact:
    name: Phonovation support
    email: support@phonovation.com
  version: 3.250.0
  x-generatedAt: '2026-10-15T11:28:56.135064395Z'
servers:
  - url: https://api.messaging.phonovation.com
    description: Phonovation Messaging API production server
security: []
tags:
  - name: customer-engagement
    description: >
      Complete solutions that will help you drive better outcomes for your
      customers and business across the entire customer journey.
    x-type: category
    x-displayName: Customer Engagement
  - name: people
    description: >
      Build rich profiles for each person to create audience segments for more
      precise targeting. Manage duplicates and import your data over API.


      Events reflect actions that end users take on your website or in your
      mobile application.


      Events API is a robust way to send those events to Phonovation. Event can
      be sent only to an existing person in People module and an event
      definition should be created beforehand to describe contents of the event.


      Other events tracking options:

      * [ JavaScript SDK ](https://github.com/phonovation/people-web-sdk)

      * [iOS
      SDK](https://github.com/phonovation/mobile-messaging-sdk-ios/wiki/Events)

      * [Android
      SDK](https://github.com/phonovation/mobile-messaging-sdk-android/wiki/Events)
    x-type: product
    x-displayName: People
  - name: person-profile
    description: ''
    x-type: section
    x-displayName: Person profile
  - name: company-profile
    description: ''
    x-type: section
    x-displayName: Company profile
  - name: tags
    description: ''
    x-type: section
    x-displayName: Tags
  - name: custom-attributes
    description: ''
    x-type: section
    x-displayName: Custom attributes
  - name: custom-attributes-lists
    description: ''
    x-type: section
    x-displayName: 'Custom attributes: Lists'
  - name: contact-information:-push
    description: ''
    x-type: section
    x-displayName: 'Contact Information: Push'
  - name: events
    description: ''
    x-type: section
    x-displayName: Events
  - name: segments
    description: ''
    x-type: section
    x-displayName: Segments
  - name: moments
    description: >
      Use Moments to set up and manage automated messaging campaigns with your
      customers by building conversation workflows.
    x-type: product
    x-displayName: Moments
  - name: flow
    description: >
      [Flow](https://www.phonovation.com/docs/moments/manage-flow) is the
      Phonovation communication builder that helps you create and manage
      messaging campaigns. The Flows API allows you to add or remove people from
      communication programmatically for flows with an [active
      status](https://www.phonovation.com/docs/moments/manage-flow#launch-create).


      Use the Add Participants to flow endpoint to a person or batches of
      persons (between 1-1000 persons). The method works asynchronously to queue
      and process participants at a rate of 10 requests per second. For
      reporting of operation results, use the notifyUrl  field to provide a URL
      of your callback server that will receive a status report or use the Get a
      report on participants added to Flow endpoint.
    x-type: module
    x-displayName: Flow
  - name: conversations
    description: >-
      Conversations is a solution that allows Enterprises to engage in
      conversations with their customers over multiple channels. The solution is
      available either as a web-based cloud platform web interface or over HTTP
      API for 2-way messaging over SMS, WhatsApp, Viber, and Facebook messenger.
      It supports conversation threading, conversation management including
      queues and routing, agent assignment, resolution management and
      conversation history overview.
    x-type: product
    x-displayName: Conversations
  - name: conversation-management
    description: ''
    x-type: section
    x-displayName: Conversation management
  - name: conversation-tags
    description: ''
    x-type: section
    x-displayName: Conversation tags
  - name: conversation-messages
    description: ''
    x-type: section
    x-displayName: Conversation messages
  - name: conversation-events
    description: ''
    x-type: section
    x-displayName: Conversation events
  - name: conversation-notes
    description: ''
    x-type: section
    x-displayName: Conversation notes
  - name: conversation-agents
    description: ''
    x-type: section
    x-displayName: Conversation agents
  - name: conversation-queues
    description: ''
    x-type: section
    x-displayName: Conversation queues
  - name: conversation-routing
    description: ''
    x-type: section
    x-displayName: Conversation routing
  - name: bots
    description: ''
    x-type: section
    x-displayName: Bots
  - name: metadata
    description: ''
    x-type: section
    x-displayName: Metadata
  - name: templates
    description: ''
    x-type: section
    x-displayName: Templates
  - name: conversation-forms
    description: ''
    x-type: section
    x-displayName: Conversation forms
  - name: account-configuration
    description: ''
    x-type: section
    x-displayName: Account Configuration
  - name: agent-configuration-calls
    description: ''
    x-type: section
    x-displayName: Agent Configuration (Calls)
  - name: outbound-call-conversation-calls
    description: ''
    x-type: section
    x-displayName: Outbound Call Conversation (Calls)
  - name: waiting-strategies-calls
    description: ''
    x-type: section
    x-displayName: Waiting Strategies (Calls)
  - name: recording-configuration-calls
    description: ''
    x-type: section
    x-displayName: Recording Configuration (Calls)
  - name: recording-metadata-calls
    description: ''
    x-type: section
    x-displayName: Recording metadata (Calls)
  - name: recording-calls
    description: ''
    x-type: section
    x-displayName: Recording (Calls)
  - name: wrap-up-configuration-calls
    description: ''
    x-type: section
    x-displayName: Wrap Up Configuration (Calls)
  - name: wrap-up-time-calls
    description: ''
    x-type: section
    x-displayName: Wrap Up Time (Calls)
  - name: transfers-calls
    description: ''
    x-type: section
    x-displayName: Transfers (Calls)
  - name: transfer-to-external-number-configuration-calls
    description: ''
    x-type: section
    x-displayName: Transfer to External Number Configuration (Calls)
  - name: transfer-strategy-calls
    description: ''
    x-type: section
    x-displayName: Transfer Strategy (Calls)
  - name: call-hold-calls
    description: ''
    x-type: section
    x-displayName: Call Hold (Calls)
  - name: hold-configuration-calls
    description: ''
    x-type: section
    x-displayName: Hold Configuration (Calls)
  - name: call-timeout-calls
    description: ''
    x-type: section
    x-displayName: Call Timeout (Calls)
  - name: working-hours
    description: ''
    x-type: section
    x-displayName: Working Hours
  - name: tts-options-calls
    description: ''
    x-type: section
    x-displayName: TTS options (Calls)
  - name: away-audio-messages
    description: ''
    x-type: section
    x-displayName: Away Audio Messages
  - name: web-forms
    description: ''
    x-type: section
    x-displayName: Web Forms
  - name: answers
    description: >
      Answers is the Phonovation fully-encompassed chatbot building platform
      that enables you to build, test, and deploy highly customized chatbots of
      different types. Multiple channels are supported on Answers like WhatsApp,
      Facebook Messenger, Live Chat, Apple Business Chat, Viber, Google Business
      Messaging and other. Communication with Bot is achieved through existing
      Conversations solution infrastructure which enables integration and
      switching between communicating with bot and a live agent. Processing can
      start by receiving MO message or by receiving a trigger event. Users can
      manage bots (create, update, delete, start and stop bots) through a web
      interface. For more details, visit the [Answers
      documentation](https://www.phonovation.com/docs/answers).


      Answers API is in Early access stage.
    x-type: product
    x-displayName: Answers
  - name: answers-testing-start-test
    description: ''
    x-type: section
    x-displayName: Start Answers test
  - name: answers-testing-stop-test
    description: ''
    x-type: section
    x-displayName: Stop Answers test
  - name: answers-testing-send-message
    description: ''
    x-type: section
    x-displayName: Send inbound message to test
  - name: common-assets
    description: >
      Reuse assets created on Phonovation SaaS products in order to recreate
      configuration more easily on a single or across multiple accounts. Export
      or share Moments flows, Answers chatbots or other SaaS assets from your
      account and import it on another one.  


      This feature is in Early access stage.
    x-type: product
    x-displayName: Common Assets
  - name: saas-resource-export
    description: ''
    x-type: section
    x-displayName: Export resource
  - name: saas-resource-import
    description: ''
    x-type: section
    x-displayName: Import resource
  - name: saas-resource-share
    description: ''
    x-type: section
    x-displayName: Share resource
  - name: saas-status-request
    description: ''
    x-type: section
    x-displayName: Get SaaS request status
  - name: knowledge-base
    description: >-
      Knowledge Base is a centralized content management system for creating,
      organizing, and retrieving articles, attachments, and structured content.
      Content is organized into categories, folders, and a hierarchical content
      tree. Articles support draft and published workflow statuses, tagging,
      commenting, and file attachments.
    x-type: product
    x-displayName: Knowledge Base
  - name: knowledge-base-search
    description: ''
    x-type: section
    x-displayName: Search
  - name: knowledge-base-articles
    description: ''
    x-type: section
    x-displayName: Articles
  - name: knowledge-base-categories
    description: ''
    x-type: section
    x-displayName: Categories
  - name: knowledge-base-folders
    description: ''
    x-type: section
    x-displayName: Folders
  - name: knowledge-base-content-tree
    description: ''
    x-type: section
    x-displayName: Content Tree
  - name: knowledge-base-tags
    description: ''
    x-type: section
    x-displayName: Tags
  - name: knowledge-base-attachments
    description: ''
    x-type: section
    x-displayName: Attachments
  - name: ai-hub
    description: >
      AI-powered tools and services to help you create smarter and more
      personalized customer experiences.
    x-type: category
    x-displayName: AI Hub
  - name: ai-assistants
    description: >
      Phonovation AI assistant is a retrieval-augmented generation (RAG)
      solution that performs tasks based on documents and

      instructions you specify. This means the AI draws answers directly from
      your documents, resulting in more accurate

      and relevant responses. For more information on use cases and how to build
      AI assistants, visit our

      [AI Assistant](https://www.phonovation.com/docs/ai-hub/ai-assistant)
      product documentation.


      With AI Assistants API, you can:

      * Query your existing AI assistants created via [Phonovation
      Portal](https://www.phonovation.com/docs/ai-hub/ai-assistant/create-ai-assistant)

      * Retrieve context the AI assistant uses to answer your queries
    x-type: product
    x-displayName: AI Assistants
  - name: channels
    description: >
      Create a perfect customer experience by using the channels your customer
      already use and love.
    x-type: category
    x-displayName: Channels
  - name: sms
    description: >
      SMS (Short Message Service) is the most extensive messaging service
      available in terms of reach and coverage. A SMS can be sent to and from
      any mobile device in the world and does not necessarily require a data
      connection.


      Phonovation SMS API allows you to send and receive text messages (SMS),
      fetch or receive delivery reports on your endpoint in real time, and see
      message logs. You can send messages in different languages, schedule your
      messages, define delivery time window, and much more.


      To utilize SMS in combination with other channels, check out [Messages
      API](https://www.phonovation.com/docs/api/platform/messages-api).
    x-type: product
    x-displayName: SMS
  - name: outbound-sms
    description: >
      When you send an SMS to a phone number belonging to an end user's device
      you are sending an Outbound SMS. Historically, this was and still is
      referred to as a Mobile Terminated (MT) SMS, though nowadays an SMS is not
      always sent to a mobile device. In an Outbound SMS you can set the From or
      Sender field with whatever you have registered or purchased with
      Phonovation, either a Long Number, Short Code, or text based Sender.
    x-type: module
    x-displayName: Outbound SMS
  - name: send-message
    description: ''
    x-type: section
    x-displayName: Send a message
  - name: manage-scheduled-sms-messages
    description: ''
    x-type: section
    x-displayName: Manage Scheduled SMS Messages
  - name: confirm-conversion
    description: ''
    x-type: section
    x-displayName: Confirm conversion
  - name: inbound-sms
    description: >
      When an end user sends an SMS from their device to a Phone Number or Short
      Code they have sent an Inbound SMS. The Inbound SMS is routed to the
      Phonovation Platform and Phonovation in turn routes the SMS to its
      Customer who has purchased that Phone Number or Short Code. Inbound SMS,
      for historical reasons, are referred to as Mobile Originated (MO) SMS.
    x-type: module
    x-displayName: Inbound SMS
  - name: logs-and-status-reports
    description: >
      Status Reports tell you what happened to the SMS you sent, whether it was
      successfully delivered or failed to be delivered.

      They also provide timestamps, network information if available, and on SMS
      delivery failure, a status code indicating the reason. 

      Status Reports can be pushed in real-time to a Customer's webhook or can
      be retrieved by an API call. 

      Logs provide similar information to Status Reports but are available to
      query for 48hrs.
    x-type: module
    x-displayName: Logs and Status Reports
  - name: whatsapp
    description: >
      With 2 billion users, WhatsApp is the most used application worldwide. It
      enables you to reach more customers, sharing important and timely
      notifications, as well as provide real-time customer support. Phonovation
      is an official WhatsApp Business solution provider. Send and manage
      WhatsApp messages over Phonovation's WhatsApp API.


      To utilize WhatsApp in combination with other channels, check out
      [Messages
      API](https://www.phonovation.com/docs/api/platform/messages-api).


      [Learn more about WhatsApp channel and use
      cases](https://www.phonovation.com/docs/whatsapp).
    x-type: product
    x-displayName: WhatsApp
  - name: whatsapp-outbound-messages
    description: >
      When you send a WhatsApp message to a phone number belonging to an end
      user's device you are sending an outbound WhatsApp message. 

      There are several types of WhatsApp messages:
        - Template message – use a pre-defined template to send text, images, videos, share location, documents, attach buttons, and configure SMS failover.
        - Free-form text or media – use it only when contacted by the end user within a certain timeframe to send text, images, audio, video, stickers, share location, or contacts.
        - Interactive messages – send a message that your end user can interact with, such as interactive buttons, lists, or product messages.
    x-type: module
    x-displayName: Outbound messages
  - name: whatsapp-template-message
    description: ''
    x-type: section
    x-displayName: Template Message
  - name: whatsapp-text-and-media-messages
    description: ''
    x-type: section
    x-displayName: Text and media messages
  - name: send-whatsapp-interactive-messages
    description: ''
    x-type: section
    x-displayName: Interactive messages
  - name: whatsapp-events
    description: ''
    x-type: section
    x-displayName: Events
  - name: whatsapp-inbound-messages
    description: >
      When the end user sends a WhatsApp from their device to a phone number,
      they have sent an inbound WhatsApp message. 

      The inbound message is routed to the Phonovation Platform and Phonovation
      in turn routes the message to its customer who has registered the WhatsApp
      sender.

      Typical supporting features you’d use with inbound messages are:
        - Marking messages as read to communicate to the end user that you have read their message.
        - Downloading media and its metadata sent over by the end user.
    x-type: module
    x-displayName: Inbound messages
  - name: whatsapp-receive-inbound-message
    description: ''
    x-type: section
    x-displayName: Receive inbound message
  - name: whatsapp-get-inbound-media
    description: ''
    x-type: section
    x-displayName: Get inbound media
  - name: whatsapp-mark-message-as-read
    description: ''
    x-type: section
    x-displayName: Mark message as read
  - name: whatsapp-message-status-reports
    description: >
      Status Reports tell you what happened to the WhatsApp message you sent,
      whether it was successfully delivered or failed to be delivered, whether
      it’s been seen. 

      Status Reports can be pushed in real time to a customer's webhook or can
      be retrieved by an API call. 

      Logs provide similar information to Status Reports but are only available
      to query for 48hrs.

      There are a few reports you can set up for your WhatsApp messaging:
        - Delivery Reports - In case of a failure, you’ll receive a timestamp with a delivery failure message and a status code indicating the reason behind it.
        - Seen Reports – In case the message has been delivered successfully to the end user, this report will additionally inform you whether the message has been seen.
        - Payments - It provides all updates to your payment transaction in real time. It's also possible to fetch current state of the payment transaction in any time.
    x-type: module
    x-displayName: Message Status Reports
  - name: whatsapp-status-reports
    description: ''
    x-type: section
    x-displayName: Status Reports
  - name: whatsapp-payments
    description: ''
    x-type: section
    x-displayName: Payments
  - name: whatsapp-marketing-update
    description: ''
    x-type: section
    x-displayName: Marketing Update
  - name: whatsapp-service-management
    description: >
      As opposed to free-form messages, template messages can be sent and
      delivered at any time. 

      Here, you can manage your templates, from template registration,
      retrieving template statuses, to deleting existing templates.

      With each WhatsApp message, you can send various types of media. Here, you
      can manage your media and configure additional feature enhancing their
      functionality.

      Moreover you can fetch quality and business info of your senders.
    x-type: module
    x-displayName: Service Management
  - name: whatsapp-template-management
    description: ''
    x-type: section
    x-displayName: Template Management
  - name: whatsapp-flow-management
    description: ''
    x-type: section
    x-displayName: Flow Management
  - name: whatsapp-media-management
    description: ''
    x-type: section
    x-displayName: Media Management
  - name: whatsapp-sender-management
    description: ''
    x-type: section
    x-displayName: Sender Management
  - name: whatsapp-bulk-sender-registration
    description: ''
    x-type: section
    x-displayName: Bulk Sender Registration
  - name: whatsapp-identity-management
    description: >
      Set up identity change, an add-on available for senders hosted by
      Phonovation. This is supported for interactive buttons, interactive lists,
      or an interactive product message. 

      Identity change allows you to increase your security by preventing
      messages from being sent to unverified end users. 

      Once enabled for a sender, you would receive notifications when an end
      user's WhatsApp account (MSISDN) has potentially been transferred to a
      different user. 

      When a potential identity change has been detected, the outbound traffic
      towards that end user is blocked until you verify the user outside the
      channel and acknowledge the change.

      Contact your Account Executive for more information.
    x-type: module
    x-displayName: Identity Management
  - name: whatsapp-ad-conversions
    description: >
      The Conversions API for Business Messaging enables advertisers to
      consolidate web, app, physical store, and business messaging events into a
      single endpoint for Meta. With Phonovation, you can submit Purchase or
      LeadSubmitted conversion events for WhatsApp.
    x-type: module
    x-displayName: Ad Conversions
  - name: platform
    description: |
      Modular tools to scale and automate your business.
    x-type: category
    x-displayName: Platform
  - name: subscriptions-api
    description: >
      Subscriptions are a way to manage notifications sent to your webhooks by
      Phonovation.

      It is a useful feature if you want to narrow down the list of events to be
      notified about or specify different webhooks for different use cases.

      It will also allow you to set up authentication settings for your
      endpoint.


      If you want to use mutual TLS for the webhook that receives notification
      events from Phonovation, you can upload and manage a TLS certificate that
      Phonovation will use when connecting to your server. The certificate
      allows your server to verify that the request is really coming from
      Phonovation. For details, see [Create and Manage
      Certificates](https://www.phonovation.com/docs/cpaas-x/subscriptions-management/create-manage-subscriptions#create-and-manage-certificates).
    x-type: product
    x-displayName: Subscriptions Management
  - name: subscription
    description: ''
    x-type: section
    x-displayName: Subscription
  - name: profile
    description: ''
    x-type: section
    x-displayName: Profile
  - name: security
    description: ''
    x-type: section
    x-displayName: Security
  - name: certificate
    description: ''
    x-type: section
    x-displayName: Certificate
paths:
  /sms/3/messages:
    post:
      tags:
        - channels
        - sms
        - outbound-sms
        - send-message
      summary: Send SMS message
      description: >-
        With this API method, you can do anything from sending a basic message
        to one person, all the way to sending customized messages to thousands
        of recipients in one go. It comes with a range of useful features like
        transliteration, scheduling, and tracking in a unified way.\

        If utilizing Message Delivery Reports webhook, please consult the
        documentation provided at [Receive outbound SMS message
        reports](#channels/sms/receive-outbound-sms-message-report-v3).\

        This endpoint is the successor of [Send SMS
        message](#channels/sms/send-sms-message) and [Send binary SMS
        message](#channels/sms/send-binary-sms-message).


        **Required scope:** Enable one of: `message:send`, `sms:message:send`,
        `sms:manage`.
      operationId: send-sms-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsRequestEnvelope
            examples:
              Send basic textual message:
                summary: Send basic textual message
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        text: This is a sample message
              Send fully-featured textual message:
                summary: Send fully-featured textual message
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                          messageId: MESSAGE-ID-123-xyz
                        - to: '353861234582'
                      content:
                        text: >-
                          Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli
                          smslerinizi rahatlıkla iletebilirsiniz.
                        transliteration: TURKISH
                        language:
                          languageCode: TR
                      options:
                        validityPeriod:
                          amount: 720
                          timeUnit: HOURS
                        campaignReferenceId: summersale
                      webhooks:
                        delivery:
                          url: https://www.example.com/sms/advanced
                          intermediateReport: true
                        contentType: application/json
                        callbackData: DLR callback data
                    - sender: '353861234578'
                      destinations:
                        - to: '353861234578'
                      content:
                        text: >-
                          A long time ago, in a galaxy far, far away... It is a
                          period of civil war. Rebel spaceships, striking from a
                          hidden base, have won their first victory against the
                          evil Galactic Empire.
                      options:
                        deliveryTimeWindow:
                          days:
                            - MONDAY
                            - TUESDAY
                            - WEDNESDAY
                            - THURSDAY
                            - FRIDAY
                            - SATURDAY
                            - SUNDAY
                          from:
                            hour: 6
                            minute: 0
                          to:
                            hour: 15
                            minute: 30
                  options:
                    schedule:
                      bulkId: BULK-ID-123-xyz
                      sendAt: 2021-08-24T15:00:00.000+0000
                    tracking:
                      shortenUrl: true
                      trackClicks: true
                      trackingUrl: https://example.com/click-report
                      removeProtocol: true
                      customDomain: example.com
                    includeSmsCountInResponse: true
                    conversionTracking:
                      useConversionTracking: true
                      conversionTrackingName: MY_CAMPAIGN
              Send flash textual message:
                summary: Send flash textual message
                description: Send a message that will pop-up on the user's phone
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        text: Toto, I've got a feeling we're not in Kansas anymore.
                      options:
                        flash: true
              SMS language:
                summary: SMS language
                description: >-
                  Crossing SMS language barriers with the National Language
                  Identifier for Turkish, Spanish and Portuguese
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        text: >-
                          Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli
                          smslerinizi rahatlıkla iletebilirsiniz.
                        language:
                          languageCode: TR
              SMS transliteration:
                summary: SMS transliteration
                description: >-
                  Send full-size messages in original language alphabet using
                  transliteration conversion
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        text: Ως Μεγαρικό ψήφισμα είνα…ι καθολικό εμπάργκο στα
                        transliteration: GREEK
              Platform features:
                summary: Platform features
                description: >-
                  Parts of the SMS message, such as message sender, will be
                  customized in accordance with provided application and entity
                  ids. For more details, see our
                  [documentation](https://www.phonovation.com/docs/cpaas-x/application-and-entity-management).
                value:
                  messages:
                    - destinations:
                        - to: '353861234579'
                      content:
                        text: >-
                          Custom application and entity based rules will be
                          applied to this message
                      options:
                        platform:
                          entityId: promotional-traffic-entity
                          applicationId: marketing-automation-application
              Send Basic India DLT message:
                summary: Send Basic India DLT message
                description: Send a message with India DLT parameters included
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        text: India DLT parameters will be applied in this message
                      options:
                        regional:
                          indiaDlt:
                            contentTemplateId: '1111111111111111111'
                            principalEntityId: '1111111111111111112'
                            telemarketerId: '111111111111'
              Send fully-featured binary SMS message:
                summary: Send fully-featured binary SMS message
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                          messageId: MESSAGE-ID-123-xyz
                        - to: '353861234582'
                      content:
                        dataCoding: 0
                        esmClass: 0
                        hex: 54 65 73 74 20 6d 65 73 73 61 67 65 2e
                      options:
                        validityPeriod:
                          amount: 720
                          timeUnit: HOURS
                      webhooks:
                        delivery:
                          url: https://www.example.com/sms/advanced
                          intermediateReport: true
                        contentType: application/json
                        callbackData: DLR callback data
                    - sender: '353861234578'
                      destinations:
                        - to: '353861234578'
                      content:
                        dataCoding: 0
                        esmClass: 0
                        hex: 41 20 6C 6F 6E 67 20 74 …20 45 6D 70 69 72 65 2E
                      options:
                        deliveryTimeWindow:
                          days:
                            - MONDAY
                            - TUESDAY
                            - WEDNESDAY
                            - THURSDAY
                            - FRIDAY
                            - SATURDAY
                            - SUNDAY
                          from:
                            hour: 6
                            minute: 0
                          to:
                            hour: 15
                            minute: 30
                        campaignReferenceId: summersale
                  options:
                    schedule:
                      bulkId: BULK-ID-123-xyz
                      sendAt: 2021-08-23T14:00:00.000+0000
              Send Unicode flash binary SMS message:
                summary: Send Unicode flash binary SMS message
                value:
                  messages:
                    - sender: InfoSMS
                      destinations:
                        - to: '353861234579'
                      content:
                        dataCoding: 8
                        esmClass: 0
                        hex: >-
                          0048 0065 006c 006c 006f 0020 0077 006f 0072 006c 0064
                          002c 0020 039a 03b1 03bb 03b7 03bc 03ad 03c1 03b1 0020
                          03ba 03cc 03c3 03bc 03b5 002c 0020 30b3 30f3 30cb 30c1
                          30cf
                      options:
                        flash: true
          application/xml:
            schema:
              $ref: >-
                #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsRequestEnvelope
            examples:
              Send basic textual message:
                summary: Send basic textual message
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>This is a sample message</text>
                        </content>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Send fully-featured textual message:
                summary: Send fully-featured textual message
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <options>
                      <schedule>
                        <bulkId>BULK-ID-123-xyz</bulkId>
                        <sendAt>2021-08-24T15:00:00.000+0000</sendAt>
                      </schedule>
                      <tracking>
                        <shortenUrl>true</shortenUrl>
                        <trackClicks>true</trackClicks>
                        <trackingUrl>https://example.com/click-report</trackingUrl>
                        <removeProtocol>true</removeProtocol>
                        <customDomain>example.com</customDomain>
                      </tracking>
                      <includeSmsCountInResponse>true</includeSmsCountInResponse>
                      <conversionTracking>
                        <useConversionTracking>true</useConversionTracking>
                        <conversionTrackingName>MY_CAMPAIGN</conversionTrackingName>
                      </conversionTracking>
                    </options>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli smslerinizi rahatlıkla iletebilirsiniz.</text>
                          <transliteration>TURKISH</transliteration>
                          <language>
                            <languageCode>TR</languageCode>
                          </language>
                        </content>
                        <options>
                          <validityPeriod>
                            <amount>720</amount>
                            <timeUnit>HOURS</timeUnit>
                          </validityPeriod>
                          <campaignReferenceId>summersale</campaignReferenceId>
                        </options>
                        <webhooks>
                          <delivery>
                            <url>https://www.example.com/sms/advanced</url>
                            <intermediateReport>true</intermediateReport>
                          </delivery>
                          <contentType>application/json</contentType>
                          <callbackData>DLR callback data</callbackData>
                        </webhooks>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                            <messageId>MESSAGE-ID-123-xyz</messageId>
                          </destination>
                          <destination>
                            <to>353861234582</to>
                          </destination>
                        </destinations>
                      </message>
                      <message>
                        <sender>353861234578</sender>
                        <content>
                          <text>A long time ago, in a galaxy far, far away... It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galactic Empire.</text>
                        </content>
                        <options>
                          <deliveryTimeWindow>
                            <days>
                              <days>MONDAY</days>
                              <days>TUESDAY</days>
                              <days>WEDNESDAY</days>
                              <days>THURSDAY</days>
                              <days>FRIDAY</days>
                              <days>SATURDAY</days>
                              <days>SUNDAY</days>
                            </days>
                            <from>
                              <hour>6</hour>
                              <minute>0</minute>
                            </from>
                            <to>
                              <hour>15</hour>
                              <minute>30</minute>
                            </to>
                          </deliveryTimeWindow>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234578</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Send flash textual message:
                summary: Send flash textual message
                description: Send a message that will pop-up on the user's phone
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>Toto, I've got a feeling we're not in Kansas anymore.</text>
                        </content>
                        <options>
                          <flash>true</flash>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              SMS language:
                summary: SMS language
                description: >-
                  Crossing SMS language barriers with the National Language
                  Identifier for Turkish, Spanish and Portuguese
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>Artık Ulusal Dil Tanımlayıcısı ile Türkçe karakterli smslerinizi rahatlıkla iletebilirsiniz.</text>
                          <language>
                            <languageCode>TR</languageCode>
                          </language>
                        </content>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              SMS transliteration:
                summary: SMS transliteration
                description: >-
                  Send full-size messages in original language alphabet using
                  transliteration conversion
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>Ως Μεγαρικό ψήφισμα είνα…ι καθολικό εμπάργκο στα</text>
                          <transliteration>GREEK</transliteration>
                        </content>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Platform features:
                summary: Platform features
                description: >-
                  Parts of the SMS message, such as message sender, will be
                  customized in accordance with provided application and entity
                  ids. For more details, see our
                  [documentation](https://www.phonovation.com/docs/cpaas-x/application-and-entity-management).
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <content>
                          <text>Custom application and entity based rules will be applied to this message</text>
                        </content>
                        <options>
                          <platform>
                            <entityId>promotional-traffic-entity</entityId>
                            <applicationId>marketing-automation-application</applicationId>
                          </platform>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Send Basic India DLT message:
                summary: Send Basic India DLT message
                description: Send a message with India DLT parameters included
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <text>India DLT parameters will be applied in this message</text>
                        </content>
                        <options>
                          <regional>
                            <indiaDlt>
                              <contentTemplateId>1111111111111111111</contentTemplateId>
                              <principalEntityId>1111111111111111112</principalEntityId>
                              <telemarketerId>111111111111</telemarketerId>
                            </indiaDlt>
                          </regional>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Send fully-featured binary SMS message:
                summary: Send fully-featured binary SMS message
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <options>
                      <schedule>
                        <bulkId>BULK-ID-123-xyz</bulkId>
                        <sendAt>2021-08-23T14:00:00.000+0000</sendAt>
                      </schedule>
                    </options>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <dataCoding>0</dataCoding>
                          <esmClass>0</esmClass>
                          <hex>54 65 73 74 20 6d 65 73 73 61 67 65 2e</hex>
                        </content>
                        <options>
                          <validityPeriod>
                            <amount>720</amount>
                            <timeUnit>HOURS</timeUnit>
                          </validityPeriod>
                        </options>
                        <webhooks>
                          <delivery>
                            <url>https://www.example.com/sms/advanced</url>
                            <intermediateReport>true</intermediateReport>
                          </delivery>
                          <contentType>application/json</contentType>
                          <callbackData>DLR callback data</callbackData>
                        </webhooks>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                            <messageId>MESSAGE-ID-123-xyz</messageId>
                          </destination>
                          <destination>
                            <to>353861234582</to>
                          </destination>
                        </destinations>
                      </message>
                      <message>
                        <sender>353861234578</sender>
                        <content>
                          <dataCoding>0</dataCoding>
                          <esmClass>0</esmClass>
                          <hex>41 20 6C 6F 6E 67 20 74 …20 45 6D 70 69 72 65 2E</hex>
                        </content>
                        <options>
                          <deliveryTimeWindow>
                            <days>
                              <days>MONDAY</days>
                              <days>TUESDAY</days>
                              <days>WEDNESDAY</days>
                              <days>THURSDAY</days>
                              <days>FRIDAY</days>
                              <days>SATURDAY</days>
                              <days>SUNDAY</days>
                            </days>
                            <from>
                              <hour>6</hour>
                              <minute>0</minute>
                            </from>
                            <to>
                              <hour>15</hour>
                              <minute>30</minute>
                            </to>
                          </deliveryTimeWindow>
                          <campaignReferenceId>summersale</campaignReferenceId>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234578</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
              Send Unicode flash binary SMS message:
                summary: Send Unicode flash binary SMS message
                value: |
                  <?xml version="1.0" encoding="UTF-8"?><SmsRequestEnvelope>
                    <messages>
                      <message>
                        <sender>InfoSMS</sender>
                        <content>
                          <dataCoding>8</dataCoding>
                          <esmClass>0</esmClass>
                          <hex>0048 0065 006c 006c 006f 0020 0077 006f 0072 006c 0064 002c 0020 039a 03b1 03bb 03b7 03bc 03ad 03c1 03b1 0020 03ba 03cc 03c3 03bc 03b5 002c 0020 30b3 30f3 30cb 30c1 30cf</hex>
                        </content>
                        <options>
                          <flash>true</flash>
                        </options>
                        <destinations>
                          <destination>
                            <to>353861234579</to>
                          </destination>
                        </destinations>
                      </message>
                    </messages>
                  </SmsRequestEnvelope>
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsResponseEnvelope
              examples:
                Response for request with one destination:
                  summary: Response for request with one destination
                  value:
                    bulkId: '2034072219640523072'
                    messages:
                      - messageId: 2250be2d4219-3af1-78856-aabe-1362af1edfd2
                        status:
                          groupId: 1
                          groupName: PENDING
                          id: 26
                          name: PENDING_ACCEPTED
                          description: Message sent to next instance
                        destination: '353861234579'
                        details:
                          messageCount: 1
                Response for request with multiple destinations:
                  summary: Response for request with multiple destinations
                  value:
                    bulkId: '2034072219640523072'
                    messages:
                      - messageId: 2250be2d4219-3af1-78856-aabe-1362af1edfd2
                        status:
                          groupId: 1
                          groupName: PENDING
                          id: 26
                          name: PENDING_ACCEPTED
                          description: Message sent to next instance
                        destination: '353861234579'
                        details:
                          messageCount: 1
                      - messageId: 3350be2d4219-3af1-23343-bbbb-1362af1edfd3
                        status:
                          groupId: 1
                          groupName: PENDING
                          id: 26
                          name: PENDING_ACCEPTED
                          description: Message sent to next instance
                        destination: '353861234576'
                        details:
                          messageCount: 1
            application/xml:
              schema:
                $ref: >-
                  #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsResponseEnvelope
              examples:
                Response for request with one destination:
                  summary: Response for request with one destination
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?><SmsResponseEnvelope>
                      <bulkId>2034072219640523072</bulkId>
                      <messages>
                        <message>
                          <messageId>2250be2d4219-3af1-78856-aabe-1362af1edfd2</messageId>
                          <status>
                            <groupId>1</groupId>
                            <groupName>PENDING</groupName>
                            <id>26</id>
                            <name>PENDING_ACCEPTED</name>
                            <description>Message sent to next instance</description>
                          </status>
                          <destination>353861234579</destination>
                          <details>
                            <messageCount>1</messageCount>
                          </details>
                        </message>
                      </messages>
                    </SmsResponseEnvelope>
                Response for request with multiple destinations:
                  summary: Response for request with multiple destinations
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?><SmsResponseEnvelope>
                      <bulkId>2034072219640523072</bulkId>
                      <messages>
                        <message>
                          <messageId>2250be2d4219-3af1-78856-aabe-1362af1edfd2</messageId>
                          <status>
                            <groupId>1</groupId>
                            <groupName>PENDING</groupName>
                            <id>26</id>
                            <name>PENDING_ACCEPTED</name>
                            <description>Message sent to next instance</description>
                          </status>
                          <destination>353861234579</destination>
                          <details>
                            <messageCount>1</messageCount>
                          </details>
                        </message>
                        <message>
                          <messageId>3350be2d4219-3af1-23343-bbbb-1362af1edfd3</messageId>
                          <status>
                            <groupId>1</groupId>
                            <groupName>PENDING</groupName>
                            <id>26</id>
                            <name>PENDING_ACCEPTED</name>
                            <description>Message sent to next instance</description>
                          </status>
                          <destination>353861234576</destination>
                          <details>
                            <messageCount>1</messageCount>
                          </details>
                        </message>
                      </messages>
                    </SmsResponseEnvelope>
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                Bad request:
                  summary: Bad request
                  value:
                    errorCode: E400
                    description: Request cannot be processed.
                    action: Check the syntax, violations and adjust the request.
                    violations:
                      - property: property.path
                        violation: Violation message.
                    resources: []
            application/xml:
              schema:
                $ref: '#/components/schemas/ApiError'
              examples:
                Bad request:
                  summary: Bad request
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?><ApiError>
                      <errorCode>E400</errorCode>
                      <description>Request cannot be processed.</description>
                      <action>Check the syntax, violations and adjust the request.</action>
                      <violations>
                        <violation>
                          <property>property.path</property>
                          <violation>Violation message.</violation>
                        </violation>
                      </violations>
                      <resources/>
                    </ApiError>
        '401':
          $ref: '#/components/responses/ApiError401'
        '403':
          $ref: '#/components/responses/ApiError403'
        '500':
          $ref: '#/components/responses/ApiError500'
      security:
        - APIKeyHeader: []
      externalDocs:
        description: Learn more about the SMS channel and its use cases
        url: https://www.phonovation.com/docs/sms
components:
  schemas:
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsRequestEnvelope:
      type: object
      properties:
        messages:
          type: array
          description: >-
            An array of message objects of a single message or multiple messages
            sent under one bulk ID.
          items:
            $ref: >-
              #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessage
          minItems: 1
        options:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageRequestOptions
      required:
        - messages
      title: SmsRequestEnvelope
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsResponseEnvelope:
      type: object
      properties:
        bulkId:
          type: string
          description: >-
            Unique ID assigned to the request if messaging multiple recipients
            or sending multiple messages via a single API request. If not
            provided, it will be auto-generated and returned in the API
            response. Typically used for fetching delivery reports and message
            logs.
        messages:
          type: array
          description: >-
            An array of message objects of a single message or multiple messages
            sent under one bulk ID.
          items:
            $ref: >-
              #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageResponseSmsMessageResponseDetails
          minItems: 1
      required:
        - messages
      title: SmsResponseEnvelope
    ApiError:
      type: object
      properties:
        errorCode:
          type: string
          description: An error code uniquely identifying the error case.
          minLength: 1
        description:
          type: string
          description: A detailed description of an error.
          minLength: 1
        action:
          type: string
          description: An action that should be taken to recover from the error.
          minLength: 1
        violations:
          type: array
          description: List of violations that caused the error.
          items:
            $ref: '#/components/schemas/ApiErrorViolation'
        resources:
          type: array
          description: List of available resources to recover from the error.
          items:
            $ref: '#/components/schemas/ApiErrorResource'
      required:
        - action
        - description
        - errorCode
        - resources
        - violations
      title: ApiError
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessage:
      type: object
      description: >-
        An array of message objects of a single message or multiple messages
        sent under one bulk ID.
      properties:
        sender:
          type: string
          description: >-
            The sender ID. It can be alphanumeric or numeric (e.g.,
            `CompanyName`). Make sure you don't exceed [character
            limit](https://www.phonovation.com/docs/sms/get-started#sender-names).
        destinations:
          type: array
          description: >-
            An array of destination objects for where messages are being sent. A
            valid destination is required.
          items:
            $ref: >-
              #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsToDestination
          minItems: 1
        content:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageContent
        options:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageOptions
        webhooks:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Webhooks
      required:
        - content
        - destinations
      title: SmsMessage
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageRequestOptions:
      type: object
      description: Options applicable to all messages in the request.
      properties:
        schedule:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RequestSchedulingSettings
        tracking:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.UrlOptions
        includeSmsCountInResponse:
          type: boolean
          default: false
          description: >-
            Set to true to return `messageCount` in the response. The
            `messageCount` is the total count of SMS submitted in the request.
            SMS messages have a character limit and messages longer than the
            limit will be split into multiple SMS. Not compatible with `binary`
            message content type.
        conversionTracking:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Tracking
      title: SmsMessageRequestOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageResponseSmsMessageResponseDetails:
      type: object
      description: >-
        An array of message objects of a single message or multiple messages
        sent under one bulk ID.
      properties:
        messageId:
          type: string
          description: >-
            Unique message ID. If not provided, it will be auto-generated and
            returned in the API response.
        status:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageStatus
        destination:
          type: string
          description: The destination address of the message, i.e., its recipient.
        details:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageResponseDetails
      title: MessageResponseSmsMessageResponseDetails
    ApiErrorViolation:
      type: object
      description: List of violations that caused the error.
      properties:
        property:
          type: string
          description: Request property that caused the error.
        violation:
          type: string
          description: Detailed violation description.
      title: ApiErrorViolation
    ApiErrorResource:
      type: object
      description: List of available resources to recover from the error.
      properties:
        name:
          type: string
          description: Resource name.
        url:
          type: string
          description: Resource URL.
      title: ApiErrorResource
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsToDestination:
      type: object
      description: >-
        An array of destination objects for where messages are being sent. A
        valid destination is required.
      properties:
        to:
          type: string
          description: The destination address of the message.
          maxLength: 64
          minLength: 0
        messageId:
          type: string
          description: The ID that uniquely identifies the message sent.
          maxLength: 200
          minLength: 0
        networkId:
          type: integer
          format: int32
          description: >-
            Available in US and Canada only if networkId is known for Network
            Operator of the destination. Returned in [SMS message delivery
            reports](https://www.phonovation.com/docs/api/channels/sms/sms-messaging/logs-and-status-reports)
            and [Inbound
            SMS](https://www.phonovation.com/docs/api/channels/sms/sms-messaging/inbound-sms);
            contact Phonovation Support to enable.
      required:
        - to
      title: Destination
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageContent:
      type: object
      description: Message content.
      oneOf:
        - $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsTextMessageContent
        - $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsBinaryMessageContent
      title: SmsMessageContent
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageOptions:
      type: object
      description: Message options.
      properties:
        platform:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Platform
        validityPeriod:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.ValidityPeriod
        deliveryTimeWindow:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryTimeWindow
        campaignReferenceId:
          type: string
          description: >-
            ID that allows you to track, analyze, and show an aggregated
            overview and the performance of individual campaigns per sending
            channel.
          maxLength: 255
          minLength: 0
        regional:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RegionalOptions
        flash:
          type: boolean
          description: >-
            Allows for sending a [flash
            SMS](https://www.phonovation.com/docs/sms/message-types#flash-sms)
            to automatically appear on recipient devices without interaction.
            Set to `true` to enable flash SMS, or leave the default value,
            `false` to send a standard SMS.
      title: SmsMessageOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Webhooks:
      type: object
      description: Provides options for configuring message webhooks.
      properties:
        delivery:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageDeliveryReporting
        contentType:
          type: string
          description: >-
            Preferred delivery report content type, `application/json` or
            `application/xml`.
        callbackData:
          type: string
          description: >-
            Additional data that can be used for identifying, managing, or
            monitoring a message. Data included here will also be automatically
            included in the message Delivery Report. The maximum value is 4000
            characters.
          maxLength: 4000
          minLength: 0
      title: Webhooks
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RequestSchedulingSettings:
      type: object
      description: Options for scheduling a message.
      properties:
        bulkId:
          type: string
          description: >-
            Unique ID assigned to the request if messaging multiple recipients
            or sending multiple messages via a single API request. If not
            provided, it will be auto-generated and returned in the API
            response.
          maxLength: 100
          minLength: 0
        sendAt:
          type: string
          format: date-time
          description: >-
            Date and time when the message is to be sent. Used for scheduled
            messages. Has the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`,
            and can only be scheduled for no later than 180 days in advance.
        sendingSpeedLimit:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SendingSpeedLimit
      title: RequestSchedulingSettings
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.UrlOptions:
      type: object
      description: >-
        Sets up [URL
        shortening](https://www.phonovation.com/docs/url-shortening) and
        tracking feature.
      properties:
        shortenUrl:
          type: boolean
          default: true
          description: >-
            Enable shortening of the URLs within a message. Set this to `true`,
            if you want to set up other URL options.
        trackClicks:
          type: boolean
          default: true
          description: >-
            Enable tracking of short URL clicks within a message: which URL was
            clicked, how many times, and by whom.
        trackingUrl:
          type: string
          description: >-
            The URL of your callback server on to which the Click report will be
            sent.
        removeProtocol:
          type: boolean
          default: false
          description: >-
            Remove a protocol, such as `https://`, from links to shorten a
            message. Note that some mobiles may not recognize such links as a
            URL.
        customDomain:
          type: string
          description: >-
            Select a predefined custom domain to use when generating a short
            URL.
      title: UrlOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Tracking:
      type: object
      description: >-
        Allows you to set up tracking parameters to track conversion metrics.
        For more details, see: [SMS with conversion
        tracking](https://www.phonovation.com/docs/sms/sms-over-api#send-sms-with-conversion-tracking).
      properties:
        useConversionTracking:
          type: boolean
          description: >-
            Indicates if a message has to be tracked for conversion rates.
            Default "false".
        conversionTrackingName:
          type: string
          description: >-
            Sets a custom conversion type naming convention, e.g. `ONE_TIME_PIN`
            or `SOCIAL_INVITES`.
      title: Tracking
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageStatus:
      type: object
      description: >-
        Indicates the
        [status](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#api-status-codes)
        of the message and how to recover from an error should there be any.
      properties:
        groupId:
          type: integer
          format: int32
          description: Status group ID.
        groupName:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageGeneralStatus
        id:
          type: integer
          format: int32
          description: Status code ID.
        name:
          type: string
          description: >-
            [Status
            code](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#api-status-codes)
            name.
        description:
          type: string
          description: Human-readable description of the status.
        action:
          type: string
          description: Action to take to recover from the error.
      title: MessageStatus
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsMessageResponseDetails:
      type: object
      description: Other details of the message.
      properties:
        messageCount:
          type: integer
          format: int32
          description: Number of SMS message parts required to deliver the message.
      title: SmsMessageResponseDetails
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsTextMessageContent:
      type: object
      allOf:
        - type: object
          properties:
            text:
              type: string
              description: Content of the message being sent.
              minLength: 1
            transliteration:
              $ref: >-
                #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.TransliterationCode
            language:
              $ref: >-
                #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsLanguage
      required:
        - text
      title: text content
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsBinaryMessageContent:
      type: object
      allOf:
        - type: object
          properties:
            dataCoding:
              type: integer
              format: int32
              default: 0
              description: >-
                Binary content data coding. The default value is (`0`) for GSM7.
                Example: (`8`) for  Unicode data.
              example: 8
            esmClass:
              type: integer
              format: int32
              default: 0
              description: >-
                “Esm_class” parameter. Indicate special message attributes
                associated with the SMS. Default value is (`0`).
            hex:
              type: string
              description: >-
                Hexadecimal string. This is the representation of your binary
                data. Two hex digits represent one byte. They should be
                separated by the space character.
              example: 48 65 6c 6c 6f
              minLength: 1
      required:
        - hex
      title: binary content
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.Platform:
      type: object
      description: >-
        Platform options. For more details, see
        [documentation](https://www.phonovation.com/docs/cpaas-x/application-and-entity-management).
      properties:
        entityId:
          type: string
          description: >-
            Used when specifying an entity in outbound send requests. It is also
            returned in notification events. For detailed usage, refer to the
            [documentation](https://www.phonovation.com/docs/cpaas-x/application-and-entity-management).
          maxLength: 255
          minLength: 0
        applicationId:
          type: string
          description: >-
            Used when specifying an application in outbound send requests. It is
            also returned in notification events. For detailed usage, refer to
            the
            [documentation](https://www.phonovation.com/docs/cpaas-x/application-and-entity-management).
          maxLength: 255
          minLength: 0
      title: Platform
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.ValidityPeriod:
      type: object
      description: >-
        Message validity period. Once expired, the message won't be sent.
        Validity period longer than 48h is not supported. If exceeded, it will
        be automatically set to 48h.
      properties:
        amount:
          type: integer
          format: int32
          description: >-
            Message validity period's value. If `timeUnit` is not set, it will
            default to `MINUTES`.
          exclusiveMinimum: 0
          minimum: 0
        timeUnit:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.ValidityPeriodTimeUnit
      required:
        - amount
      title: ValidityPeriod
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryTimeWindow:
      type: object
      description: >-
        Sets specific message delivery window outside of which messages won't be
        delivered. Often, used when there are restrictions on when messages can
        be sent. The exact time of the day to start sending messages can be
        defined using the `from` property. The exact time of the day to end
        sending messages can be defined using the `to` property. Properties
        `from` and `to` should be both provided with the minimum 1 hour
        difference or omitted.
      properties:
        days:
          type: array
          description: >-
            Days of the week which are included in the delivery time window. At
            least one day must be provided. Separate multiple days with a comma.
          items:
            $ref: >-
              #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryDay
          minItems: 1
        from:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryTime
        to:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryTime
      required:
        - days
      title: DeliveryTimeWindow
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RegionalOptions:
      type: object
      description: >-
        Region-specific parameters, often imposed by local laws. Use this, if
        country or region that you are sending an SMS to requires additional
        information.
      properties:
        indiaDlt:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.IndiaDltOptions
        turkeyIys:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.TurkeyIysOptions
        southKorea:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SouthKoreaOptions
      title: RegionalOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageDeliveryReporting:
      type: object
      description: Provides options for configuring the delivery report behavior.
      properties:
        url:
          type: string
          description: >-
            The URL on your call back server where a delivery report will be
            sent. If your URL becomes unavailable then the [retry
            cycle](https://www.phonovation.com/docs/sms/sms-over-api#push-retry-cycle-notify-url)
            uses the following formula: `1min + (1min * retryNumber *
            retryNumber)`.
        intermediateReport:
          type: boolean
          description: >-
            The real-time intermediate delivery report containing GSM error
            codes, messages status, pricing, network and country codes, etc.,
            which will be sent on your callback server. Defaults to `false`.
        notify:
          type: boolean
          description: >-
            Notify enables you to specify your preferences for receiving DLRs.
            If set to false, no DLR will be sent. Note: When no webhook is
            specified in the request and notify is set to 'true' or not defined,
            your Subscription settings will apply.
      title: MessageDeliveryReporting
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SendingSpeedLimit:
      type: object
      description: >-
        Limits the send speed when sending messages in bulk to deliver messages
        over a longer period of time. You may wish to use this to allow your
        systems or agents to handle large amounts of incoming traffic, e.g., if
        you are expecting recipients to follow through with a call-to-action
        option from a message you sent. Not setting a send speed limit can
        overwhelm your resources with incoming traffic.
      properties:
        amount:
          type: integer
          format: int32
          description: >-
            The number of messages to be sent per timeUnit. By default, the
            system sends messages as fast as the infrastructure allows. Use this
            parameter to adapt sending capacity to your needs. The system is
            only able to work against its maximum capacity for ambitious message
            batches.
        timeUnit:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SpeedLimitTimeUnit
      required:
        - amount
      title: SendingSpeedLimit
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.MessageGeneralStatus:
      type: string
      description: >-
        Status group name that describes which category the status code belongs
        to, i.e.,
        [PENDING](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#pending-general-status-codes),
        [UNDELIVERABLE](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#undeliverable-general-status-codes),
        [DELIVERED](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#delivered-general-status-codes),
        [EXPIRED](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#expired-general-status-codes),
        [REJECTED](https://www.phonovation.com/docs/essentials/response-status-and-error-codes#rejected-general-status-codes).
      enum:
        - ACCEPTED
        - PENDING
        - UNDELIVERABLE
        - DELIVERED
        - EXPIRED
        - REJECTED
      title: MessageGeneralStatus
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.TransliterationCode:
      type: string
      description: >-
        The transliteration of your sent message from one script to another.
        [Transliteration](https://www.phonovation.com/docs/sms/language#sms-transliteration)
        is used to replace characters which are not recognized as part of your
        defaulted alphabet. `ALL` means that the transliteration process will
        recognize all supported languages.
      enum:
        - NONE
        - TURKISH
        - GREEK
        - CYRILLIC
        - SERBIAN_CYRILLIC
        - CENTRAL_EUROPEAN
        - BALTIC
        - NON_UNICODE
        - PORTUGUESE
        - COLOMBIAN
        - BULGARIAN_CYRILLIC
        - ALL
      title: TransliterationCode
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SmsLanguage:
      type: object
      description: Sets the language parameters for the message being sent.
      properties:
        languageCode:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.LanguageCode
        singleShift:
          type: boolean
          default: false
          description: >-
            Uses a single shift table which enhances only the extension table of
            the GSM default alphabet. Allows you to selectively improve
            character support without altering the entire message.
        lockingShift:
          type: boolean
          default: false
          description: >-
            Uses a locking shift table which allows you to represent characters
            beyond the standard GSM default alphabet. This flexibility enables
            better language support.
      title: SmsLanguage
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.ValidityPeriodTimeUnit:
      type: string
      default: MINUTES
      description: Message validity period time unit.
      enum:
        - SECONDS
        - MINUTES
        - HOURS
      title: ValidityPeriodTimeUnit
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryDay:
      type: string
      description: >-
        Days of the week which are included in the delivery time window. At
        least one day must be provided. Separate multiple days with a comma.
      enum:
        - MONDAY
        - TUESDAY
        - WEDNESDAY
        - THURSDAY
        - FRIDAY
        - SATURDAY
        - SUNDAY
      title: DeliveryDay
      writeOnly: true
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.DeliveryTime:
      type: object
      description: The exact time of the day. The time is expressed in the UTC time zone.
      properties:
        hour:
          type: integer
          format: int32
          description: >-
            Hour when the time window opens when used in the `from` property or
            closes when used in the `to` property.
          maximum: 23
          minimum: 0
        minute:
          type: integer
          format: int32
          description: >-
            Minute when the time window opens when used in the `from` property
            or closes when used in the `to` property.
          maximum: 59
          minimum: 0
      required:
        - hour
        - minute
      title: DeliveryTime
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.IndiaDltOptions:
      type: object
      description: >-
        Distributed Ledger Technology (DLT) specific parameters required for
        sending SMS to phone numbers registered in India.
      properties:
        contentTemplateId:
          type: string
          description: >-
            Registered DLT content template ID which matches message you are
            sending.
        principalEntityId:
          type: string
          description: Your assigned DLT principal entity ID.
          minLength: 1
        telemarketerId:
          type: string
          description: Your assigned Telemarketer ID. (required for Aggregators)
      required:
        - principalEntityId
      title: IndiaDltOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.TurkeyIysOptions:
      type: object
      description: >-
        IYS regulations specific parameters required for sending promotional SMS
        to phone numbers registered in Turkey.
      properties:
        brandCode:
          type: integer
          format: int32
          description: >-
            Brand code is an ID of the company based on a company VAT number. If
            not provided in request, default value is used from your Phonovation
            account.
        recipientType:
          $ref: >-
            #/components/schemas/20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RecipientType
      required:
        - recipientType
      title: TurkeyIysOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SouthKoreaOptions:
      type: object
      description: >-
        Use case dependent parameters for sending SMS to phone numbers
        registered in South Korea.
      properties:
        title:
          type: string
          description: Title of the message.
          maxLength: 66
          minLength: 0
        resellerCode:
          type: integer
          format: int32
          description: >-
            Reseller identification code: 9-digit registration number in the
            business registration certificate for South Korea. Resellers should
            submit this when sending.
      title: SouthKoreaOptions
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.SpeedLimitTimeUnit:
      type: string
      default: MINUTE
      description: >-
        The time unit to define when setting a messaging speed limit. Defaults
        to `MINUTE`.
      enum:
        - MINUTE
        - HOUR
        - DAY
      title: SpeedLimitTimeUnit
      writeOnly: true
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.LanguageCode:
      type: string
      description: >-
        [Language
        code](https://www.phonovation.com/docs/sms/language#national-language-identifier)
        for the correct character set. `AUTODETECT` lets the platform select the
        character set based on message content only for supported languages.
      enum:
        - NONE
        - TR
        - ES
        - PT
        - AUTODETECT
      title: LanguageCode
    20085a4036d67f66ebf204560d55d58a7c131c15d42c8ed9442747c488e08630.RecipientType:
      type: string
      description: Recipient Type must be `TACIR` or `BIREYSEL`.
      enum:
        - BIREYSEL
        - TACIR
      title: RecipientType
  responses:
    ApiError401:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            errorCode: E401
            description: >-
              The request lacks valid authentication credentials for the
              requested resource.
            action: Check the resources and adjust authentication credentials.
            violations: []
            resources:
              - name: API Authentication
                url: https://www.phonovation.com/docs/essentials/api-authentication
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiError'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiError>
              <errorCode>E401</errorCode>
              <description>The request lacks valid authentication credentials for the requested resource.</description>
              <action>Check the resources and adjust authentication credentials.</action>
              <violations/>
              <resources>
                <resource>
                  <name>API Authentication</name>
                  <url>https://www.phonovation.com/docs/essentials/api-authentication</url>
                </resource>
              </resources>
            </ApiError>
    ApiError403:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            errorCode: E403
            description: Insufficient permissions to access the requested resource.
            action: Repeat the request with new or different credentials.
            violations: []
            resources:
              - name: API Scopes
                url: >-
                  https://www.phonovation.com/docs/essentials/api-essentials/api-authorization#api-scopes
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiError'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiError>
              <errorCode>E403</errorCode>
              <description>Insufficient permissions to access the requested resource.</description>
              <action>Repeat the request with new or different credentials.</action>
              <violations/>
              <resources>
                <resource>
                  <name>API Scopes</name>
                  <url>https://www.phonovation.com/docs/essentials/api-essentials/api-authorization#api-scopes</url>
                </resource>
              </resources>
            </ApiError>
    ApiError500:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          example:
            errorCode: E500
            description: Something went wrong.
            action: Contact the support.
            violations: []
            resources: []
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiError'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiError>
              <errorCode>E500</errorCode>
              <description>Something went wrong.</description>
              <action>Contact the support.</action>
              <violations/>
              <resources/>
            </ApiError>
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: >
        This is the most secure authorization type and the one with the most
        flexibility.


        API keys can be generated by calling the dedicated API method.
        Furthermore, API keys can have a limited scope and cover only some API
        methods. Lastly, they can

        be revoked at any time. This range of possibilities makes API keys well
        suited for separating the API access rights across multiple applications
        or use cases.

        Finally, the loss of an API key is easily manageable.


        You can manage your API keys from
        [GUI](https://portal.phonovation.com/settings/accounts/api-keys), or
        programmatically

        with [dedicated API](#platform-&-connectivity/settings).


        API key Authorization header example:


        ```shell

        Authorization: App
        003026bbc133714df1834b8638bb496e-8f4b3d9a-e931-478d-a994-28a725159ab9

        ```
      name: Authorization
      in: header
      x-default: 'App '

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.