> ## 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.

# Get WhatsApp Template

> Get a single template with its status for a given template ID.

**Required scope:** Enable one of: `whatsapp:manage`.



## OpenAPI

````yaml /openapi/phonovation-whatsapp.json get /whatsapp/2/senders/{sender}/templates/{templateName}
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:
  /whatsapp/2/senders/{sender}/templates/{templateName}:
    get:
      tags:
        - channels
        - whatsapp
        - whatsapp-service-management
        - whatsapp-template-management
      summary: Get WhatsApp Template
      description: |-
        Get a single template with its status for a given template ID.

        **Required scope:** Enable one of: `whatsapp:manage`.
      operationId: get-whatsapp-template
      parameters:
        - name: sender
          in: path
          description: Registered WhatsApp sender number. Must be in international format.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: '353861234599'
        - name: templateName
          in: path
          description: Template ID. Must be a number.
          required: true
          style: simple
          explode: false
          schema:
            type: string
          example: '5653923468715475'
      responses:
        '200':
          description: Template with its status for a given template ID.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/f7a48ff9966e7ac9fef5292e0b74f7ccc796492cacffd985bfded901992c414b.TemplateApiResponse
              examples:
                Media Template:
                  summary: Media Template
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      footer:
                        text: exampleFooter
                      type: MEDIA
                    quality: HIGH
                    platform:
                      entityId: entityId
                      applicationId: applicationId
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Text header:
                  summary: Media Template with Text header
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_header
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        text: exampleContent
                        format: TEXT
                      body:
                        text: example {{1}} body
                      footer:
                        text: exampleFooter
                      type: MEDIA
                    quality: MEDIUM
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Buttons:
                  summary: Media Template with Buttons
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_buttons
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      footer:
                        text: exampleFooter
                      buttons:
                        - type: PHONE_NUMBER
                          text: Dial 911
                          phoneNumber: '911'
                        - type: URL
                          text: Visit our website
                          url: https://www.phonovation.com
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Copy Code:
                  summary: Media Template with Copy Code
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_copy_code
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: COPY_CODE
                          text: Copy offer code
                          example: exampleCopyCode
                      shorteningOptions:
                        customDomain: my-domain
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Order Details:
                  summary: Media Template with Order Details
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_order_details
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: ORDER_DETAILS
                          variant: BRAZIL
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Voice Call:
                  summary: Media Template with Voice Call
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_voice_call
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: VOICE_CALL
                          text: Call Now
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Request Contact Info:
                  summary: Media Template with Request Contact Info
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_request_contact_info
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: REQUEST_CONTACT_INFO
                          text: Share Contact Info
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Order Status Template:
                  summary: Order Status Template
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: order_status_template
                    language: en
                    status: APPROVED
                    category: UTILITY
                    structure:
                      body:
                        text: example {{1}} body
                      type: TEXT
                    quality: UNKNOWN
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                    subCategory: ORDER_STATUS
                Media Template with Carousel:
                  summary: Media Template with Carousel
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_carousel
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      body:
                        text: example {{1}} body
                      carousel:
                        cards:
                          - header:
                              format: IMAGE
                            body:
                              text: example {{1}} body
                            buttons:
                              - type: PHONE_NUMBER
                                text: Dial 911
                                phoneNumber: '911'
                              - type: URL
                                text: Visit our website
                                url: https://www.phonovation.com
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Flow Button:
                  summary: Media Template with Flow Button
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_flow_button
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: FLOW
                          text: example text
                          flowId: 123456
                          flowAction: NAVIGATE
                          navigateScreen: exampleScreen
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Catalog Button:
                  summary: Media Template with Catalog Button
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_catalog_button
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: CATALOG
                          text: View catalog
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Media Template with Multi Product Button:
                  summary: Media Template with Multi Product Button
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: media_template_with_multi_product_button
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      header:
                        format: IMAGE
                      body:
                        text: example {{1}} body
                      buttons:
                        - type: MULTI_PRODUCT
                          text: View items
                      shorteningOptions:
                        customDomain: example.com
                      type: MEDIA
                    quality: LOW
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Text template:
                  summary: Text template
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: text_template
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      body:
                        text: example {{1}} body
                      type: TEXT
                    quality: UNKNOWN
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Authentication Template:
                  summary: Authentication Template
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: authentication_template
                    language: en
                    status: APPROVED
                    category: AUTHENTICATION
                    structure:
                      body:
                        text: '*{{1}}* is your verification code.'
                        examples:
                          - '123456'
                      footer:
                        text: This code expires in 15 minutes.
                      buttons:
                        - type: URL
                          text: Copy Code
                          url: >-
                            https://wwww.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp{{1}}
                      type: MEDIA
                    quality: HIGH
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Authentication Template with validity period:
                  summary: Authentication Template with validity period
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: authentication_template
                    language: en
                    status: APPROVED
                    category: AUTHENTICATION
                    structure:
                      body:
                        text: '*{{1}}* is your verification code.'
                        examples:
                          - '123456'
                      footer:
                        text: This code expires in 15 minutes.
                      buttons:
                        - type: URL
                          text: Copy Code
                          url: >-
                            https://wwww.whatsapp.com/otp/code/?otp_type=COPY_CODE&code=otp{{1}}
                      type: MEDIA
                    quality: HIGH
                    validityPeriod:
                      amount: 2
                      timeUnit: MINUTES
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Utility Template with validity period:
                  summary: Utility Template with validity period
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: utility_template
                    language: en
                    status: APPROVED
                    category: UTILITY
                    structure:
                      body:
                        text: Your order is ready.
                      type: TEXT
                    quality: HIGH
                    validityPeriod:
                      amount: 720
                      timeUnit: MINUTES
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
                Marketing Template with validity period:
                  summary: Marketing Template with validity period
                  value:
                    id: '111'
                    businessAccountId: 222
                    name: marketing_template
                    language: en
                    status: APPROVED
                    category: MARKETING
                    structure:
                      body:
                        text: Your offer is available.
                      type: TEXT
                    quality: HIGH
                    validityPeriod:
                      amount: 780
                      timeUnit: MINUTES
                    createdAt: 2024-01-01T00:00:00.000+0000
                    lastUpdatedAt: 2024-01-01T00:00:00.000+0000
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/8ea2c7a3b5efbaf9015a5275da389c3449f0ab4f7dfbf8f3f925836e68df04d6.ApiException
              examples:
                Bad request:
                  summary: Bad request
                  value:
                    requestError:
                      serviceException:
                        messageId: BAD_REQUEST
                        text: Bad request
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '404':
          description: Template with the specified ID does not exist.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/8ea2c7a3b5efbaf9015a5275da389c3449f0ab4f7dfbf8f3f925836e68df04d6.ApiException
              examples:
                Not found:
                  summary: Not found
                  value:
                    requestError:
                      serviceException:
                        messageId: NOT_FOUND
                        text: Not found
        '429':
          $ref: '#/components/responses/ApiException429'
        '500':
          $ref: '#/components/responses/ApiException500'
      security:
        - APIKeyHeader: []
      externalDocs:
        description: Learn more about WhatsApp channel and use cases.
        url: https://www.phonovation.com/docs/whatsapp
components:
  schemas:
    f7a48ff9966e7ac9fef5292e0b74f7ccc796492cacffd985bfded901992c414b.TemplateApiResponse:
      type: object
      description: The list of the results for this page.
      discriminator:
        propertyName: category
        mapping:
          MARKETING: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultMarketingTemplateApiResponse
          UTILITY: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultTemplateApiResponse
          AUTHENTICATION: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.AuthenticationTemplateApiResponse
      properties:
        id:
          type: string
          description: Template ID.
          example: '111'
        businessAccountId:
          type: integer
          format: int64
          description: Business account ID to which template belongs.
          example: 222
        name:
          type: string
          description: Name of the template.
          example: template_name
        language:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.Language
        status:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.Status
        category:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.WhatsAppCategory
        structure:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultTemplateStructureApiData
        quality:
          type: string
          description: Quality of the template.
          enum:
            - HIGH
            - MEDIUM
            - LOW
            - UNKNOWN
          example: HIGH
        validityPeriod:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ValidityPeriodApiData
        platform:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.Platform
        createdAt:
          type: string
          format: date-time
          description: Creation date of the template.
        lastUpdatedAt:
          type: string
          format: date-time
          description: Last update date of the template.
        libraryTemplateName:
          type: string
          description: >-
            Name of the library template from which this template was created.
            If not present, the template was not created using the template
            library.
      required:
        - structure
      title: TemplateResponse
    8ea2c7a3b5efbaf9015a5275da389c3449f0ab4f7dfbf8f3f925836e68df04d6.ApiException:
      type: object
      properties:
        requestError:
          $ref: '#/components/schemas/ApiRequestError'
      title: ApiException
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultMarketingTemplateApiResponse:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f7a48ff9966e7ac9fef5292e0b74f7ccc796492cacffd985bfded901992c414b.TemplateApiResponse
      required:
        - structure
      title: DefaultMarketingTemplateApiResponse
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultTemplateApiResponse:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f7a48ff9966e7ac9fef5292e0b74f7ccc796492cacffd985bfded901992c414b.TemplateApiResponse
        - type: object
          properties:
            subCategory:
              type: string
              description: >-
                Subcategory of the template. Subcategories are used to further
                classify templates. Currently used only to distinguish
                ORDER_STATUS template which can be used only with UTILITY
                category.
              enum:
                - ORDER_STATUS
      required:
        - structure
      title: DefaultTemplateApiResponse
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.AuthenticationTemplateApiResponse:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f7a48ff9966e7ac9fef5292e0b74f7ccc796492cacffd985bfded901992c414b.TemplateApiResponse
      required:
        - structure
      title: AuthenticationTemplateApiResponse
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.Language:
      type: string
      description: >-
        Template language, one template with same name can have multiple
        transliterations.
      enum:
        - af
        - sq
        - ar
        - ar_EG
        - ar_AE
        - ar_LB
        - ar_MA
        - ar_QA
        - az
        - bn
        - bn_IN
        - bg
        - ca
        - zh_CN
        - zh_HK
        - zh_TW
        - hr
        - cs
        - da
        - nl
        - nl_BE
        - en
        - en_GB
        - en_US
        - en_AE
        - en_AU
        - en_CA
        - en_GH
        - en_IE
        - en_IN
        - en_JM
        - en_MY
        - en_NZ
        - en_QA
        - en_SG
        - en_UG
        - en_ZA
        - et
        - fil
        - fi
        - fr
        - fr_BE
        - fr_CA
        - fr_CH
        - fr_CI
        - fr_MA
        - ka
        - de
        - de_AT
        - de_CH
        - el
        - gu
        - ha
        - he
        - hi
        - hu
        - id
        - ga
        - it
        - ja
        - kn
        - kk
        - rw_RW
        - ko
        - ky_KG
        - lo
        - lv
        - lt
        - mk
        - ms
        - ml
        - mr
        - nb
        - fa
        - pl
        - pt_BR
        - pt_PT
        - pa
        - ro
        - ru
        - sr
        - si_LK
        - sk
        - sl
        - es
        - es_AR
        - es_CL
        - es_CO
        - es_CR
        - es_DO
        - es_EC
        - es_HN
        - es_MX
        - es_PA
        - es_PE
        - es_ES
        - es_UY
        - sw
        - sv
        - ta
        - te
        - th
        - tr
        - uk
        - ur
        - uz
        - vi
        - zu
        - unknown
      example: en
      title: Language
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.Status:
      type: string
      description: Status of the template.
      enum:
        - APPROVED
        - IN_APPEAL
        - PENDING
        - REJECTED
        - PENDING_DELETION
        - DELETED
        - REINSTATED
        - FLAGGED
        - FIRST_PAUSED
        - SECOND_PAUSED
        - DISABLED
        - ARCHIVED
        - UNKNOWN
      example: APPROVED
      title: Status
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.WhatsAppCategory:
      type: string
      description: Category of the template.
      enum:
        - MARKETING
        - AUTHENTICATION
        - UTILITY
      example: MARKETING
      title: WhatsAppCategory
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DefaultTemplateStructureApiData:
      type: object
      description: >-
        Structure of the created template. Can consist of body (mandatory),
        header, footer, buttons, carousel, limited time offer, call permission
        request and shortening options.
      properties:
        header:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        body:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.BodyApiData
        footer:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.FooterApiData
        buttons:
          type: array
          description: >-
            Template buttons. Can contain 1 to 10 buttons which include up to 2
            URL buttons, one phone number button, one `copy code` button and one
            `flow` button. `quick reply` and non `quick reply` buttons have to
            be grouped together.
          items:
            $ref: >-
              #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        carousel:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CarouselApiData
        limitedTimeOffer:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.LimitedTimeOfferApiData
        callPermissionRequest:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CallPermissionRequestApiData
        shorteningOptions:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ShorteningOptionsApiData
        type:
          type: string
          description: Template structure type.
          enum:
            - TEXT
            - MEDIA
            - UNSUPPORTED
          readOnly: true
      required:
        - body
      title: DefaultTemplateStructureApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ValidityPeriodApiData:
      type: object
      description: >-
        Template validity period in which WhatsApp will try to deliver a
        template message. Supported ranges are dependent on template category:
        10 seconds to 15 minutes for Authentication, 30 seconds to 12 hours for
        Utility, and 12 to 48 hours for Marketing. Marketing validity periods
        apply only to messages sent through the Marketing Messages API and are
        ignored by the Cloud API.
      properties:
        amount:
          type: integer
          format: int32
          description: Template validity period amount.
        timeUnit:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ValidityPeriodTimeUnit
      required:
        - amount
      title: ValidityPeriodApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.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
    ApiRequestError:
      type: object
      properties:
        serviceException:
          $ref: '#/components/schemas/ApiRequestErrorDetails'
      title: ApiRequestError
    ApiException:
      type: object
      properties:
        requestError:
          $ref: '#/components/schemas/ApiRequestError'
      title: ApiException
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData:
      type: object
      description: >-
        Template header. Can be `image`, `document`, `video`, `location` or
        `text`.
      discriminator:
        propertyName: format
        mapping:
          TEXT: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.TextHeaderApiData
          IMAGE: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ImageHeaderApiData
          VIDEO: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.VideoHeaderApiData
          GIF: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.GifHeaderApiData
          DOCUMENT: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DocumentHeaderApiData
          LOCATION: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.LocationHeaderApiData
      properties:
        format:
          type: string
          enum:
            - TEXT
            - IMAGE
            - VIDEO
            - GIF
            - DOCUMENT
            - LOCATION
      title: HeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.BodyApiData:
      type: object
      description: Template body.
      properties:
        text:
          type: string
          description: >-
            Plain text or text with placeholders. Placeholders have to be
            correctly formatted and in the correct order, regardless of other
            sections. Example: {{1}}, {{2}}, {{3}}...
          minLength: 1
        examples:
          type: array
          description: >-
            Placeholders examples. The number of examples has to be the same as
            the number of placeholders. Examples cannot contain placeholders.
          items:
            type: string
            description: >-
              Placeholders examples. The number of examples has to be the same
              as the number of placeholders. Examples cannot contain
              placeholders.
            minLength: 1
            writeOnly: true
          writeOnly: true
      required:
        - text
      title: BodyApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.FooterApiData:
      type: object
      description: Template footer.
      properties:
        text:
          type: string
          description: Plain text, up to 60 characters.
          maxLength: 60
          minLength: 0
      required:
        - text
      title: FooterApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData:
      type: object
      description: >-
        Template buttons. Can contain 1 to 10 buttons which include up to 2 URL
        buttons, one phone number button, one `copy code` button and one `flow`
        button. `quick reply` and non `quick reply` buttons have to be grouped
        together.
      discriminator:
        propertyName: type
        mapping:
          PHONE_NUMBER: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.PhoneNumberButtonApiData
          URL: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.UrlButtonApiData
          QUICK_REPLY: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.QuickReplyButtonApiData
          COPY_CODE: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CopyCodeDefaultButtonApiData
          FLOW: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.FlowButtonApiData
          CATALOG: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CatalogButtonApiData
          MULTI_PRODUCT: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.MultiProductButtonApiData
          ORDER_DETAILS: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.OrderDetailsButtonApiData
          VOICE_CALL: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.VoiceCallButtonApiData
          REQUEST_CONTACT_INFO: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.RequestContactInfoButtonApiData
      properties:
        type:
          type: string
          enum:
            - PHONE_NUMBER
            - URL
            - QUICK_REPLY
            - COPY_CODE
            - FLOW
            - CATALOG
            - MULTI_PRODUCT
            - ORDER_DETAILS
            - VOICE_CALL
            - REQUEST_CONTACT_INFO
      title: ButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CarouselApiData:
      type: object
      description: Template carousel. Applicable only for MARKETING category.
      properties:
        cards:
          type: array
          description: List of cards.
          items:
            $ref: >-
              #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CardApiData
          maxItems: 10
          minItems: 1
      required:
        - cards
      title: CarouselApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.LimitedTimeOfferApiData:
      type: object
      description: Limited time offer.
      properties:
        hasExpiration:
          type: boolean
          default: false
          description: >-
            Indicates whether offer expiration details will appear in the
            delivered message. If set to true, copy code button must be included
            in the buttons array, and must appear first in the array.
        text:
          type: string
          description: Offer details text. Up to 16 characters.
          maxLength: 16
          minLength: 1
      required:
        - text
      title: LimitedTimeOfferApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CallPermissionRequestApiData:
      type: object
      description: >-
        Call permission request. Presence of this object enables a call
        permission request feature, no fields are required. When header is media
        type call permission request will not be displayed on end-user's device.
      title: CallPermissionRequestApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ShorteningOptionsApiData:
      type: object
      description: >-
        URL shortening options. Applicable only if at least one dynamic URL
        button is present. Modifying this provided URL outside of our company's
        services may lead to unexpected results.
      properties:
        customDomain:
          type: string
          description: Custom domain to be used for URL shortening.
          minLength: 1
      required:
        - customDomain
      title: ShorteningOptionsApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ValidityPeriodTimeUnit:
      type: string
      default: MINUTES
      description: Message template validity period time unit.
      enum:
        - SECONDS
        - MINUTES
        - HOURS
      title: ValidityPeriodTimeUnit
    ApiRequestErrorDetails:
      type: object
      properties:
        messageId:
          type: string
          description: Identifier of the error.
        text:
          type: string
          description: Detailed error description.
        validationErrors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
              description: Validation errors.
          description: Validation errors.
      title: ApiRequestErrorDetails
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.TextHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        - type: object
          properties:
            text:
              type: string
              description: >-
                Template header text. Can contain up to 60 characters, with one
                placeholder {{1}}.
              minLength: 1
            example:
              type: string
              description: >-
                An example of the content for the template header a user could
                use. Cannot contain placeholders.
              minLength: 1
              writeOnly: true
      required:
        - example
        - text
      title: TextHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ImageHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        - type: object
          properties:
            example:
              type: string
              description: >-
                An example of a template header image a user could create.
                Should be a valid URL that starts with `http` or `https`.
                Supported image types are `JPG`, `JPEG`, `PNG`. Maximum image
                size is 16MB. Cannot contain placeholders.
              pattern: >-
                (http|https)://(\w+:?\w*@)?(\S+)(:[0-9]+)?(/|/([\w#!:.?+=&%@!\-/]))?
              writeOnly: true
      title: ImageHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.VideoHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        - type: object
          properties:
            example:
              type: string
              description: >-
                An example of a template header video a user could use. Should
                be a valid URL that starts with `http` or `https`. Supported
                video type is `MP4`. Maximum video size is 16MB. Cannot contain
                placeholders.
              pattern: >-
                (http|https)://(\w+:?\w*@)?(\S+)(:[0-9]+)?(/|/([\w#!:.?+=&%@!\-/]))?
              writeOnly: true
      title: VideoHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.GifHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        - type: object
          properties:
            example:
              type: string
              description: >-
                An example of a template header GIF a user could use. Should be
                a valid URL that starts with `http` or `https`. Supported type
                is `MP4`. Maximum size is 3.5MB. Cannot contain placeholders.
                Only available for MM API (Marketing Messages).
              pattern: >-
                (http|https)://(\w+:?\w*@)?(\S+)(:[0-9]+)?(/|/([\w#!:.?+=&%@!\-/]))?
              writeOnly: true
      title: GifHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.DocumentHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        - type: object
          properties:
            example:
              type: string
              description: >-
                An example of a template header document a user could create.
                Should be a valid URL that starts with `http` or `https`.
                Supported document type is `PDF`. Maximum document size is 16MB.
                Cannot contain placeholders.
              pattern: >-
                (http|https)://(\w+:?\w*@)?(\S+)(:[0-9]+)?(/|/([\w#!:.?+=&%@!\-/]))?
              writeOnly: true
      title: DocumentHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.LocationHeaderApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
      title: LocationHeaderApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.PhoneNumberButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
            phoneNumber:
              type: string
              description: >-
                Phone number to which a phone call would be placed by end-user
                when hitting the button.
              minLength: 1
      required:
        - phoneNumber
        - text
      title: PhoneNumberButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.UrlButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
            url:
              type: string
              description: >-
                URL to which the end-user will be directed when hitting the
                button. URL is expected to start with `https://` or `http://`.
                Can be static or dynamic. For dynamic URL registration, add a
                placeholder {{1}} at the end of the link. Example:
                `https://www.phonovation.com/{{1}}`.
              minLength: 1
            example:
              type: string
              description: >-
                An example of a URL a user could use. Should be a valid URL that
                starts with `https://` or `http://`. Cannot contain
                placeholders.
              pattern: >-
                ^(ftp|http|https)://(www\.)?(([-a-z0-9@:%._+~#=]{1,4096}\.([a-z]{1,63})(\b|_))|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))(:\d{2,5})?([-a-z0-9()@:%_+,.~!#?&/='*;$]+)?
              writeOnly: true
            destinationUrl:
              type: string
              description: >-
                Url of button's destination. Available only if custom domain is
                present.
              readOnly: true
      required:
        - text
        - url
      title: UrlButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.QuickReplyButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
      required:
        - text
      title: QuickReplyButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CopyCodeDefaultButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
              readOnly: true
            example:
              type: string
              description: An example of a copy code.
              maxLength: 20
              minLength: 1
              pattern: ^[a-z0-9]*$
              writeOnly: true
      title: CopyCodeDefaultButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.FlowButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
            flowId:
              type: integer
              format: int64
              description: Flow Id.
            flowAction:
              type: string
              description: Type of action after pressing the button.
              enum:
                - NAVIGATE
                - DATA_EXCHANGE
            navigateScreen:
              type: string
              description: >-
                Name of screen to navigate, required if flow action is
                'navigate'.
      required:
        - flowAction
        - flowId
        - text
      title: FlowButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CatalogButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
              readOnly: true
      title: CatalogButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.MultiProductButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
              readOnly: true
      title: MultiProductButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.OrderDetailsButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            variant:
              type: string
              description: Order details variant.
              enum:
                - BRAZIL
                - INDIA
      required:
        - type
        - variant
      title: OrderDetailsButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.VoiceCallButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              maxLength: 25
              minLength: 0
            callValidityPeriod:
              type: integer
              format: int32
              description: >-
                Time to live for the call button in minutes. Must be between
                1440 (1 day) and 43200 (30 days).
              maximum: 43200
              minimum: 1440
      required:
        - text
      title: VoiceCallButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.RequestContactInfoButtonApiData:
      type: object
      allOf:
        - $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
        - type: object
          properties:
            text:
              type: string
              description: Button text.
              readOnly: true
      title: RequestContactInfoButtonApiData
    f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.CardApiData:
      type: object
      description: List of cards.
      properties:
        header:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.HeaderApiData
        body:
          $ref: >-
            #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.BodyApiData
        buttons:
          type: array
          description: Card buttons. Can contain 1 to 2 buttons.
          items:
            $ref: >-
              #/components/schemas/f9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16bea.ButtonApiData
          maxItems: 2
          minItems: 1
      required:
        - body
        - buttons
        - header
      title: CardApiData
  responses:
    ApiException401:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiException'
          example:
            requestError:
              serviceException:
                messageId: UNAUTHORIZED
                text: Unauthorized
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiException'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiException>
              <requestError>
                <serviceException>
                  <messageId>UNAUTHORIZED</messageId>
                  <text>Unauthorized</text>
                </serviceException>
              </requestError>
            </ApiException>
    ApiException403:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiException'
          example:
            requestError:
              serviceException:
                messageId: FORBIDDEN
                text: Forbidden
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiException'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiException>
              <requestError>
                <serviceException>
                  <messageId>FORBIDDEN</messageId>
                  <text>Forbidden</text>
                </serviceException>
              </requestError>
            </ApiException>
    ApiException429:
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiException'
          example:
            requestError:
              serviceException:
                messageId: TOO_MANY_REQUESTS
                text: Too many requests
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiException'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiException>
              <requestError>
                <serviceException>
                  <messageId>TOO_MANY_REQUESTS</messageId>
                  <text>Too many requests</text>
                </serviceException>
              </requestError>
            </ApiException>
    ApiException500:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiException'
          example:
            requestError:
              serviceException:
                messageId: GENERAL_ERROR
                text: Something went wrong. Please contact support.
        application/xml:
          schema:
            $ref: '#/components/schemas/ApiException'
          example: |
            <?xml version="1.0" encoding="UTF-8"?><ApiException>
              <requestError>
                <serviceException>
                  <messageId>GENERAL_ERROR</messageId>
                  <text>Something went wrong. Please contact support.</text>
                </serviceException>
              </requestError>
            </ApiException>
  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.