openapi: 3.2.0
info:
title: Sinch Transcoding API
version: '1.0'
description: 'Operations tagged Transcoding across 2 of this provider''s published API definitions: sinch-conversation-api-openapi.yaml, original-sinch-conversation-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{region}.conversation.api.sinch.com
variables:
region:
default: us
enum:
- us
- eu
- br
description: The {region} variable must be set to us, eu, or br, and it must match the region in which you created your Conversation API app.
- url: https://us.conversation.api.sinch.com
description: US Production Server
- url: https://eu.conversation.api.sinch.com
description: EU Production Server
- url: https://br.conversation.api.sinch.com
description: Brazil Production Server
tags:
- description: Endpoint for transcoding generic message format to channel-specific one.
name: Transcoding
x-displayName: Transcode
paths:
/v1/projects/{project_id}/messages:transcode:
parameters:
- $ref: '#/components/parameters/project_id'
post:
description: 'Transcodes the message from the Conversation API format to the
channel-specific formats for the requested channels. No message
is sent to the contact.'
tags:
- Transcoding
summary: Transcode a message
operationId: Transcoding_TranscodeMessage
requestBody:
description: The message to be transcoded, and the app and channels for which the message is to be transcoded.
content:
application/json:
schema:
$ref: '#/components/schemas/TranscodeMessageRequest'
required: true
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/TranscodeMessageResponse'
'400':
$ref: '#/components/responses/400Error'
'401':
$ref: '#/components/responses/401Error'
'403':
$ref: '#/components/responses/403Error'
'500':
$ref: '#/components/responses/500Error'
'501':
$ref: '#/components/responses/501Error'
x-codeSamples:
- lang: Java
source: "/**\n * Sinch Java Snippet\n *\n *
This snippet is available at https://github.com/sinch/sinch-sdk-java\n *\n *
See https://github.com/sinch/sinch-sdk-java/blob/main/examples/snippets/README.md for details\n */\npackage conversation.transcoding;\n\nimport com.sinch.sdk.SinchClient;\nimport com.sinch.sdk.domains.conversation.api.v1.TranscodingService;\nimport com.sinch.sdk.domains.conversation.models.v1.ConversationChannel;\nimport com.sinch.sdk.domains.conversation.models.v1.messages.AppMessage;\nimport com.sinch.sdk.domains.conversation.models.v1.messages.types.location.Coordinates;\nimport com.sinch.sdk.domains.conversation.models.v1.messages.types.location.LocationMessage;\nimport com.sinch.sdk.domains.conversation.models.v1.transcoding.request.TranscodeMessageRequest;\nimport com.sinch.sdk.domains.conversation.models.v1.transcoding.response.TranscodeMessageResponse;\nimport com.sinch.sdk.models.Configuration;\nimport com.sinch.sdk.models.ConversationRegion;\nimport java.util.Arrays;\nimport java.util.logging.Logger;\nimport utils.Settings;\n\npublic class Transcode {\n\n private static final Logger LOGGER = Logger.getLogger(Transcode.class.getName());\n\n public static void main(String[] args) {\n\n String projectId = Settings.getProjectId().orElse(\"MY_PROJECT_ID\");\n String keyId = Settings.getKeyId().orElse(\"MY_KEY_ID\");\n String keySecret = Settings.getKeySecret().orElse(\"MY_KEY_SECRET\");\n String conversationRegion = Settings.getConversationRegion().orElse(\"MY_CONVERSATION_REGION\");\n\n // ID of the Conversation application to use for transcoding\n String conversationApplicationId = \"APPLICATION_ID\";\n // The channel to transcode the message for\n ConversationChannel conversationChannel = ConversationChannel.WHATSAPP;\n\n Configuration configuration =\n Configuration.builder()\n .setProjectId(projectId)\n .setKeyId(keyId)\n .setKeySecret(keySecret)\n .setConversationRegion(ConversationRegion.from(conversationRegion))\n .build();\n\n SinchClient client = new SinchClient(configuration);\n\n TranscodingService transcodingService = client.conversation().v1().transcoding();\n\n AppMessage> appMessage =\n AppMessage.builder()\n .setBody(\n LocationMessage.builder()\n .setCoordinates(\n Coordinates.builder()\n .setLatitude(47.627980)\n .setLongitude(-2.822915)\n .build())\n .setTitle(\"Coordinates title\")\n .build())\n .build();\n\n TranscodeMessageRequest request =\n TranscodeMessageRequest.builder()\n .setAppId(conversationApplicationId)\n .setAppMessage(appMessage)\n .setChannels(Arrays.asList(conversationChannel))\n .build();\n\n LOGGER.info(\"Transcode message request: \" + request);\n\n TranscodeMessageResponse response = transcodingService.transcodeMessage(request);\n\n LOGGER.info(\"Transcode message response: \" + response);\n }\n}\n"
- lang: Node.js
source: "/**\n * Sinch Node.js Snippet\n * See: https://github.com/sinch/sinch-sdk-node/examples/snippets\n */\nimport { SinchClient } from '@sinch/sdk-core';\nimport * as dotenv from 'dotenv';\ndotenv.config();\n\nasync function main() {\n const projectId = process.env.SINCH_PROJECT_ID ?? 'MY_PROJECT_ID';\n const keyId = process.env.SINCH_KEY_ID ?? 'MY_KEY_ID';\n const keySecret = process.env.SINCH_KEY_SECRET ?? 'MY_KEY_SECRET';\n const conversationRegion = process.env.SINCH_CONVERSATION_REGION ?? 'MY_CONVERSATION_REGION';\n\n // The ID of the conversation application that must contain the target channels for transcoding\n const appId = 'CONVERSATION_APP_ID';\n // Add other channels as needed, e.g., 'SMS', 'RCS', 'MESSENGER'.\n const targetChannels = ['WHATSAPP'];\n\n const sinch = new SinchClient({ projectId, keyId, keySecret, conversationRegion });\n\n try {\n const response = await sinch.conversation.transcoding.transcodeMessage({\n transcodeMessageRequestBody: {\n app_id: appId,\n app_message: {\n location_message: {\n title: 'Coordinates title',\n coordinates: {\n latitude: 59.3360453,\n longitude: 18.0117363,\n },\n },\n },\n channels: targetChannels,\n },\n });\n console.log('✅ Successfully transcoded the message.');\n console.log(JSON.stringify(response, null, 2));\n } catch (err) {\n console.error('❌ Failed to transcode the message:');\n console.error(err);\n }\n}\n\nmain();\n"
security:
- Basic: []
- oAuth2: []
servers:
- url: https://{region}.conversation.api.sinch.com
variables:
region:
default: us
enum:
- us
- eu
- br
description: The {region} variable must be set to us, eu, or br, and it must match the region in which you created your Conversation API app.
components:
schemas:
WhatsAppPaymentButton:
description: WhatsApp Payment Button
oneOf:
- $ref: '#/components/schemas/WhatsAppPaymentSettingsButtonPix'
- $ref: '#/components/schemas/WhatsAppPaymentSettingsButtonPaymentLink'
- $ref: '#/components/schemas/WhatsAppPaymentSettingsButtonBoleto'
discriminator:
propertyName: type
mapping:
pix_dynamic_code: '#/components/schemas/WhatsAppPaymentSettingsButtonPix'
payment_link: '#/components/schemas/WhatsAppPaymentSettingsButtonPaymentLink'
boleto: '#/components/schemas/WhatsAppPaymentSettingsButtonBoleto'
KakaoTalkWebLinkButton:
title: KakaoTalk Web Link Button
description: A button that opens a web link.
allOf:
- $ref: '#/components/schemas/KakaoTalkButton'
- type: object
properties:
type:
enum:
- WL
link_mo:
type: string
description: URL opened on a mobile device
link_pc:
type: string
description: URL opened on a desktop device
required:
- link_mo
WhatsAppPaymentSettingsPix:
type: object
deprecated: true
required:
- dynamic_pix
properties:
dynamic_pix:
type: object
description: The dynamic Pix payment settings.
required:
- code
- merchant_name
- key
- key_type
properties:
code:
type: string
description: The dynamic Pix code to be used by the buyer to pay.
merchant_name:
type: string
description: Account holder name.
key:
type: string
description: Pix key.
key_type:
type: string
description: Pix key type.
enum:
- CPF
- CNPJ
- EMAIL
- PHONE
- EVP
x-enumDescriptions:
CPF: The CPF key type.
CNPJ: The CNPJ key type.
EMAIL: The EMAIL key type.
PHONE: The PHONE key type.
EVP: The EVP key type.
LocationMessageField:
type: object
description: Message containing geographic location.
title: Location
properties:
location_message:
title: Location Message
type: object
required:
- coordinates
- title
properties:
coordinates:
$ref: '#/components/schemas/Coordinates'
label:
description: Label or name for the position.
type: string
title:
description: The title is shown close to the button or link that leads to a map showing the location. The title can be clickable in some cases.
type: string
Choice:
description: A choice is an action the user can take such as buttons for quick replies or other call to actions.
type: object
title: Choice message
allOf:
- $ref: '#/components/schemas/choiceTypes'
- $ref: '#/components/schemas/choiceCommonProps'
CarouselMessageField:
description: Message containing a list of cards often rendered horizontally on supported channels.
type: object
title: Carousel
properties:
carousel_message:
title: Carousel Message
type: object
required:
- cards
properties:
cards:
description: A list of up to 10 cards.
type: array
items:
$ref: '#/components/schemas/CardMessage'
choices:
description: Optional. Outer choices on the carousel level. The number of outer choices is limited to 3.
type: array
items:
$ref: '#/components/schemas/Choice'
AgentType:
description: Agent's classification. It can be UNKNOWN_AGENT_TYPE, HUMAN or BOT.
enum:
- UNKNOWN_AGENT_TYPE
- HUMAN
- BOT
x-enumDescriptions:
UNKNOWN_AGENT_TYPE: The default AgentType. When the agent type is unknown.
HUMAN: Human agent.
BOT: Bot agent.
type: string
default: UNKNOWN_AGENT_TYPE
KakaoTalkRegularPriceCommerce:
description: Information about a product with regular price
type: object
properties:
type:
enum:
- REGULAR_PRICE_COMMERCE
x-enumDescriptions:
REGULAR_PRICE_COMMERCE: Commerce with regular price
title:
description: Product title
type: string
maxLength: 30
regular_price:
description: Regular price of the product
type: integer
minimum: 0
maximum: 99999999
required:
- type
- title
- regular_price
CardHeight:
description: You can set the desired size of the card in the message.
type: string
x-enumDescriptions:
UNSPECIFIED_HEIGHT: The height of the card is unspecified.
SHORT: The shortest card height.
MEDIUM: Medium card height.
TALL: The tallest card height.
enum:
- UNSPECIFIED_HEIGHT
- SHORT
- MEDIUM
- TALL
choiceCommonProps:
type: object
properties:
postback_data:
description: An optional field. This data will be returned in the ChoiceResponseMessage. The default is message_id_{text, title}.
display_mode:
$ref: '#/components/schemas/DisplayMode'
PhoneNumberInfo:
type: object
title: Phone number
description: Phone numbers of the contact.
required:
- phone_number
properties:
phone_number:
description: Phone number with country code included.
type: string
type:
description: Phone number type, e.g. WORK or HOME.
type: string
PaymentOrderStatusChannelSpecificMessage:
allOf:
- $ref: '#/components/schemas/ChannelSpecificCommonProps'
- type: object
title: WhatsApp Payment Order Status channel specific message.
description: A message type for sending WhatsApp Payment Status Requests.
required:
- payment
properties:
payment:
type: object
description: The payment order status message content
required:
- reference_id
- order
properties:
reference_id:
type: string
description: Unique ID used to query the current payment status.
order:
type: object
description: The payment order.
required:
- status
properties:
status:
type: string
description: The new payment message status.
enum:
- pending
- processing
- partially-shipped
- shipped
- completed
- canceled
x-enumDescriptions:
pending: The order is pending.
processing: The order is processing.
partially-shipped: A portion of the order has been shipped.
shipped: The order has been shipped.
completed: The order is complete.
canceled: The order was canceled.
description:
type: string
description: The description of payment message status update (120 characters maximum).
ContactInfoMessageField:
type: object
description: Message containing contact information.
title: Contact Info
properties:
contact_info_message:
title: Contact Info Message
type: object
required:
- name
- phone_numbers
properties:
name:
$ref: '#/components/schemas/NameInfo'
phone_numbers:
description: Phone numbers of the contact
type: array
items:
$ref: '#/components/schemas/PhoneNumberInfo'
addresses:
description: Physical addresses of the contact
type: array
items:
$ref: '#/components/schemas/AddressInfo'
email_addresses:
description: Email addresses of the contact
type: array
items:
$ref: '#/components/schemas/EmailInfo'
organization:
$ref: '#/components/schemas/OrganizationInfo'
urls:
description: URLs/websites associated with the contact
type: array
items:
$ref: '#/components/schemas/UrlInfo'
birthday:
description: Date of birth in YYYY-MM-DD format.
type: string
WhatsAppInteractiveTextHeader:
type: object
description: Header of the interactive message with text.
required:
- type
- text
properties:
type:
type: string
x-enumDescriptions:
text: The text of the header.
enum:
- text
text:
type: string
description: Text for the header. Formatting allows emojis, but not Markdown.
ListSection:
type: object
title: List Section
description: Section for interactive WhatsApp messages containing ListItem
required:
- items
properties:
title:
description: Optional parameter. Title for list section.
type: string
items:
type: array
items:
$ref: '#/components/schemas/ListItem'
WhatsAppInteractiveBody:
type: object
description: Body of the interactive message.
required:
- text
properties:
text:
type: string
description: The content of the message (1024 characters maximum). Emojis and Markdown are supported.
TemplateMessageField:
type: object
description: Message referring to predefined template
title: Template Message
properties:
template_message:
type: object
title: Template Message
properties:
channel_template:
description: 'Optional. Channel specific template reference with parameters per channel.
The channel template if exists overrides the omnichannel template.
At least one of `channel_template` or `omni_template` needs to be present.
The key in the map must point to a valid conversation channel as
defined by the enum ConversationChannel.'
type: object
additionalProperties:
$ref: '#/components/schemas/TemplateReference'
omni_template:
$ref: '#/components/schemas/TemplateReferenceWithVersion'
Agent:
description: Represents an agent that is involved in a conversation.
type: object
title: Agent
properties:
display_name:
description: Agent's display name
type: string
type:
$ref: '#/components/schemas/AgentType'
picture_url:
description: The Agent's picture url.
type: string
OmniMessageOverride:
oneOf:
- $ref: '#/components/schemas/TextMessageField'
- $ref: '#/components/schemas/MediaMessageField'
- $ref: '#/components/schemas/TemplateReferenceField'
- $ref: '#/components/schemas/ChoiceMessageField'
- $ref: '#/components/schemas/CardMessageField'
- $ref: '#/components/schemas/CarouselMessageField'
- $ref: '#/components/schemas/LocationMessageField'
- $ref: '#/components/schemas/ContactInfoMessageField'
- $ref: '#/components/schemas/ListMessageField'
DisplayMode:
description: Controls the display behavior of a choice. Only supported for Choice Message on the RCS channel. Has no effect on other channels or message types, except for a carousel's outer choices, where it is rejected outright.
type: string
x-enumDescriptions:
DISPLAY_MODE_UNSPECIFIED: Default. Transient — choice disappears when new messages arrive.
PERSISTENT: Persistent — choice remains visible in the message bubble.
enum:
- DISPLAY_MODE_UNSPECIFIED
- PERSISTENT
KakaoTalkCoupon:
properties:
type:
description: Coupon type
type: string
description:
description: Coupon description
type: string
maxLength: 12
link_mo:
description: Coupon URL opened on a mobile device
type: string
link_pc:
description: Coupon URL opened on a desktop device
type: string
scheme_android:
description: 'Channel coupon URL (format: `alimtalk=coupon://...`)'
type: string
scheme_ios:
description: 'Channel coupon URL (format: `alimtalk=coupon://...`)'
type: string
required:
- type
WhatsAppInteractiveVideoHeader:
type: object
description: Header of the interactive message with video.
required:
- type
- video
properties:
type:
type: string
x-enumDescriptions:
video: The video associated with the header.
enum:
- video
video:
$ref: '#/components/schemas/WhatsAppInteractiveHeaderMedia'
OrganizationInfo:
type: object
title: Organization information
description: Organization information of the contact.
properties:
company:
description: Company name
type: string
department:
description: Department at the company
type: string
title:
description: Corporate title, e.g. Software engineer
type: string
choiceTypes:
type: object
oneOf:
- $ref: '#/components/schemas/CallMessageField'
- $ref: '#/components/schemas/LocationMessageField'
- $ref: '#/components/schemas/TextMessageField'
- $ref: '#/components/schemas/UrlMessageField'
- $ref: '#/components/schemas/CalendarMessageField'
- $ref: '#/components/schemas/ShareLocationMessageField'
TemplateReferenceField:
type: object
title: Template (Reference)
properties:
template_reference:
$ref: '#/components/schemas/TemplateReferenceWithVersion'
WhatsAppPaymentSettingsBoleto:
type: object
deprecated: true
required:
- boleto
properties:
boleto:
type: object
description: The Boleto payment settings.
required:
- digitable_line
properties:
digitable_line:
type: string
description: The Boleto digitable line which will be copied to the clipboard when the user taps the Boleto button.
MediaProperties:
title: Media Properties
type: object
required:
- url
properties:
thumbnail_url:
type: string
description: An optional parameter. Will be used where it is natively supported.
url:
description: Url to the media file.
type: string
filename_override:
description: Overrides the media file name.
type: string
ListItem:
type: object
title: List Item
description: Item containing either choiceItem or ProductItem
oneOf:
- required:
- choice
type: object
properties:
choice:
$ref: '#/components/schemas/ChoiceItem'
title: Choice
- required:
- product
type: object
properties:
product:
$ref: '#/components/schemas/ProductItem'
title: Product
Coordinates:
type: object
title: Geographic coordinates
required:
- latitude
- longitude
properties:
latitude:
description: The latitude.
type: number
format: float
longitude:
description: The longitude.
type: number
format: float
PaymentOrderDetailsChannelSpecificMessage:
allOf:
- $ref: '#/components/schemas/ChannelSpecificCommonProps'
- type: object
title: WhatsApp Payment Order Details channel specific message.
description: A message type for sending WhatsApp Payment Requests.
required:
- payment
properties:
payment:
type: object
description: The payment order details content.
required:
- type
- reference_id
- type_of_goods
- total_amount_value
- order
properties:
type:
type: string
description: The country/currency associated with the payment message.
enum:
- br
- sg
x-enumDescriptions:
br: Brazil
sg: Singapore
reference_id:
type: string
description: Unique reference ID.
type_of_goods:
type: string
description: The type of good associated with this order.
enum:
- digital-goods
- physical-goods
x-enumDescriptions:
digital-goods: Digital goods.
physical-goods: Physical goods.
payment_settings:
deprecated: true
description: The payment settings. Use `payment_buttons` in place of this deprecated field.
oneOf:
- $ref: '#/components/schemas/WhatsAppPaymentSettingsPix'
- $ref: '#/components/schemas/WhatsAppPaymentSettingsPaymentLink'
- $ref: '#/components/schemas/WhatsAppPaymentSettingsBoleto'
payment_buttons:
type: array
description: Array of payment buttons (1 to 2 items).
minItems: 1
maxItems: 2
items:
$ref: '#/components/schemas/WhatsAppPaymentButton'
total_amount_value:
type: integer
description: Integer representing the total amount of the transaction.
order:
type: object
description: The payment order.
required:
- items
- subtotal_value
- tax_value
properties:
catalog_id:
type: string
description: Unique ID of the Facebook catalog being used by the business.
expiration_time:
type: string
description: 'UTC timestamp indicating when the order should expire.
The timestamp must be given in seconds.
The minimum threshold for the timestamp is 300 seconds.'
expiration_description:
type: string
description: Description of the expiration.
subtotal_value:
type: integer
description: Value representing the subtotal amount of this order.
tax_value:
type: integer
description: Value representing the tax amount for this order.
tax_description:
type: string
description: Description of the tax for this order.
shipping_value:
type: integer
description: Value representing the shipping amount for this order.
shipping_description:
type: string
description: Shipping description for this order.
discount_value:
type: integer
description: Value of the discount for this order.
discount_description:
type: string
description: Description of the discount for this order.
discount_program_name:
type: string
description: Discount program name for this order.
items:
type: array
description: The items list for this order.
items:
type: object
required:
- retailer_id
- name
- amount_value
- quantity
properties:
retailer_id:
type: string
description: Unique ID of the retailer.
name:
type: string
description: Item's name as displayed to the user.
amount_value:
type: integer
description: Price per item.
quantity:
type: integer
description: Number of items in this order.
sale_amount_value:
type: integer
description: Discounted price per item.
WhatsAppInteractiveHeaderMedia:
type: object
description: Media object for the header.
required:
- link
properties:
link:
type: string
description: URL for the media.
LineNotificationMessageTemplateBody:
type: object
description: Template body
properties:
emphasized_item:
$ref: '#/components/schemas/LineNotificationMessageTemplateEmphasizedItem'
items:
type: array
description: List of template items
items:
$ref: '#/components/schemas/LineNotificationMessageTemplateItem'
maxItems: 15
buttons:
type: array
description: List of template buttons
items:
$ref: '#/components/schemas/LineNotificationMessageTemplateButton'
maxItems: 2
WhatsAppPaymentSettingsButtonBoleto:
type: object
description: The Boleto payment settings.
required:
- type
- digitable_line
properties:
type:
type: string
enum:
- boleto
x-enumDescriptions:
boleto: The Boleto button identifier
digitable_line:
type: string
description: The Boleto digitable line which will be copied to the clipboard when the user taps the Boleto button.
WhatsAppPaymentSettingsPaymentLink:
type: object
deprecated: true
required:
- payment_link
properties:
payment_link:
type: object
description: The payment link payment settings.
required:
- uri
properties:
uri:
type: string
description: The payment link to be used by the buyer to pay.
ShareLocationMessageField:
description: Message requesting location from a user.
type: object
title: Request location
properties:
share_location_message:
title: Share Location Message
type: object
required:
- title
- fallback_url
properties:
title:
description: The title is shown close to the button that leads to open a map to share a location.
type: string
fallback_url:
description: The URL that is opened when channel does not have support for this type.
type: string
KakaoTalkCommerceMessage:
type: object
title: KakaoTalk commerce message
description: A message type for sending KakaoTalk commerce messages
properties:
buttons:
description: Buttons list
type: array
minItems: 1
maxItems: 2
items:
oneOf:
- $ref: '#/components/schemas/KakaoTalkWebLinkButton'
- $ref: '#/components/schemas/KakaoTalkAppLinkButton'
- $ref: '#/components/schemas/KakaoTalkBotKeywordButton'
additional_content:
description: Additional information
type: string
maxLength: 34
image:
description: Product image
type: object
properties:
image_url:
type: string
description: URL to the product image
image_link:
type: string
description: URL opened when a user clicks on the image
required:
- image_url
commerce:
description: Product information
oneOf:
- $ref: '#/components/schemas/KakaoTalkRegularPriceCommerce'
- $ref: '#/components/schemas/KakaoTalkDiscountFixedCommerce'
- $ref: '#/components/schemas/KakaoTalkDiscountRateCommerce'
coupon:
description: Discount coupon
oneOf:
- $ref: '#/components/schemas/KakaoTalkFixedDiscountCoupon'
- $ref: '#/components/schemas/KakaoTalkDiscountRateCoupon'
- $ref: '#/components/schemas/KakaoTalkShippingDiscountCoupon'
- $ref: '#/components/schemas/KakaoTalkFreeCoupon'
- $ref: '#/components/schemas/KakaoTalkUpCoupon'
required:
- image
- commerce
- buttons
AddressInfo:
type: object
title: Address information
description: Physical addresses of the contact.
properties:
city:
description: City Name
type: string
country:
description: Country Name
type: string
state:
description: Name of a state or region of a country.
type: string
zip:
description: Zip/postal code
type: string
type:
description: Address type, e.g. WORK or HOME
type: string
country_code:
description: Two letter country code.
type: string
ChoiceItem:
type: object
title: Choice
description: A message component for interactive messages, containing a choice.
required:
- title
properties:
title:
type: string
description: Required parameter. Title for the choice item.
description:
type: string
description: Optional parameter. The description (or subtitle) of this choice item.
media:
description: Optional parameter. The media of this choice item.
allOf:
- $ref: '#/components/schemas/MediaProperties'
postback_data:
type: string
description: Optional parameter. Postback data that will be returned in the MO if the user selects this option.
TemplateReference:
type: object
title: Template reference with concrete parameter values
description: The referenced template can be an omnichannel template stored in Conversation API Template Store as an AppMessage. You may also reference external channel-specific templates, such as a WhatsApp Business Template. Note that channel-specific template references are not supported when populating the `explicit_channel_omni_message` field.
required:
- template_id
properties:
version:
type: string
description: 'Used to specify what version of a template to use. Required when using `omni_channel_override` and `omni_template` fields.
This will be used in conjunction with `language_code`. Note that, when referencing omni-channel templates using the [Sinch Customer Dashboard](https://dashboard.sinch.com/), the latest version of a given omni-template can be identified by populating this field with `latest`.'
language_code:
description: 'The BCP-47 language code, such as `en_US` or `sr_Latn`.
For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. English is the default `language_code`.
Note that, while many API calls involving templates accept either the dashed format (`en-US`) or the underscored format (`en_US`), some channel specific templates (for example, WhatsApp channel-specific templates) only accept the underscored format. Note that this field is required for WhatsApp channel-specific templates.'
type: string
parameters:
description: 'Required if the template has parameters. Concrete values must
be present for all defined parameters
in the template. Parameters can be different for
different versions and/or languages of the template.'
type: object
additionalProperties:
type: string
template_id:
description: The ID of the template. Note that, in the case of WhatsApp channel-specific templates, this field must be populated by the name of the template.
type: string
CalendarMessageField:
description: Message containing details about a calendar event.
type: object
title: Calendar
properties:
calendar_message:
title: Calendar message
type: object
required:
- title
- event_start
- event_end
- event_title
- fallback_url
properties:
title:
description: The title is shown close to the button that leads to open a user calendar.
type: string
event_start:
description: The timestamp defines start of a calendar event.
type: string
format: date-time
example: '2025-11-30T10:00:00Z'
event_end:
description: The timestamp defines end of a calendar event.
type: string
format: date-time
example: '2025-11-30T11:00:00Z'
event_title:
description: Title of a calendar event.
type: string
event_description:
description: Description of a calendar event.
type: string
fallback_url:
description: The URL that is opened when the user cannot open a calendar event directly or channel does not have support for this type.
type: string
AppMessageCommonProps:
type: object
properties:
explicit_channel_message:
description: Allows you to specify a channel and define a corresponding channel specific message payload that will override the standard Conversation API message types. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The message content must be provided in a string format. You may use the [transcoding endpoint](https://developers.sinch.com/docs/conversation/api-reference/conversation/tag/Transcoding/) to help create your message. For more information about how to construct an explicit channel message for a particular channel, see that [channel's corresponding documentation](https://developers.sinch.com/docs/conversation/channel-support/) (for example, using explicit channel messages with [the WhatsApp channel](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#explicit-channel-messages)).
type: object
additionalProperties:
type: string
explicit_channel_omni_message:
description: Override the message's content for specified channels. The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`. The content defined under the specified channel will be sent on that channel.
type: object
additionalProperties:
$ref: '#/components/schemas/OmniMessageOverride'
channel_specific_message:
description: 'Channel specific messages, overriding any transcoding. The structure of this property is more well-defined than the open structure of the `explicit_channel_message` property, and may be easier to use.
The key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.'
type: object
additionalProperties:
$ref: '#/components/schemas/ChannelSpecificMessage'
agent:
$ref: '#/components/schemas/Agent'
reply_to:
title: Reply To
description: Sends this message as a contextual reply to an inbound contact message, so the contact sees their original message quoted. Only supported on the WhatsApp channel. Conversation API keeps the mapping needed for the quote for 96 hours. If the referenced message is unknown or older than 96 hours, or the message is sent on a channel that does not support contextual replies, the message is still sent without the quote. For more information, see [Sending contextual replies](https://developers.sinch.com/docs/conversation/channel-support/whatsapp/message-support/#sending-contextual-replies).
type: object
required:
- message_id
properties:
message_id:
type: string
description: Required when using `reply_to`. The Conversation API ID of the inbound contact message this message replies to. Do not use a channel message ID (e.g., a WhatsApp message ID) from Meta.
WhatsAppPaymentSettingsButtonPaymentLink:
type: object
description: The payment link payment settings.
required:
- type
- uri
properties:
type:
type: string
enum:
- payment_link
x-enumDescriptions:
payment_link: The payment link button identifier
uri:
type: string
description: The payment link to be used by the buyer to pay.
ChannelSpecificCommonProps:
type: object
properties:
header:
description: The header of the interactive message.
type: object
oneOf:
- $ref: '#/components/schemas/WhatsAppInteractiveTextHeader'
- $ref: '#/components/schemas/WhatsAppInteractiveImageHeader'
- $ref: '#/components/schemas/WhatsAppInteractiveDocumentHeader'
- $ref: '#/components/schemas/WhatsAppInteractiveVideoHeader'
discriminator:
propertyName: type
mapping:
text: '#/components/schemas/WhatsAppInteractiveTextHeader'
image: '#/components/schemas/WhatsAppInteractiveImageHeader'
document: '#/components/schemas/WhatsAppInteractiveDocumentHeader'
video: '#/components/schemas/WhatsAppInteractiveVideoHeader'
body:
$ref: '#/components/schemas/WhatsAppInteractiveBody'
footer:
$ref: '#/components/schemas/WhatsAppInteractiveFooter'
TranscodeMessageResponse:
type: object
properties:
transcoded_message:
description: 'The transcoded message for the different channels.
The keys in the map correspond to channel names, as defined by the type
ConversationChannel.'
type: object
additionalProperties:
type: string
readOnly: true
TextMessageField:
type: object
title: Text
description: A message containing only text.
properties:
text_message:
type: object
title: Text Message
required:
- text
properties:
text:
description: The text to be sent.
type: string
CardMessageField:
description: Field containing a Card Message
type: object
title: Card
properties:
card_message:
$ref: '#/components/schemas/CardMessage'
KakaoTalkCarouselCommerceChannelSpecificMessage:
allOf:
- $ref: '#/components/schemas/KakaoTalkChannelSpecificMessage'
- type: object
title: KakaoTalk carousel commerce channel specific message
description: A message type for sending KakaoTalk carousel commerce messages
properties:
carousel:
description: Carousel content
type: object
properties:
head:
description: Carousel introduction
type: object
properties:
header:
description: Carousel introduction title
type: string
maxLength: 20
content:
description: Carousel introduction description
type: string
maxLength: 50
image_url:
description: URL to the image displayed in the introduction
type: string
link_mo:
description: URL opened on a mobile device
type: string
link_pc:
description: URL opened on a desktop device
type: string
scheme_ios:
description: App link opened on an iOS device (e.g. `tel://PHONE_NUMBER`)
type: string
scheme_android:
description: App link opened on an Android device (e.g. `tel://PHONE_NUMBER`)
type: string
required:
- header
- content
- image_url
list:
description: List of carousel cards
type: array
minItems: 2
maxItems: 10
items:
$ref: '#/components/schemas/KakaoTalkCommerceMessage'
tail:
description: '"More" button'
type: object
properties:
link_mo:
description: URL opened on a mobile device
type: string
link_pc:
description: URL opened on a desktop device
type: string
scheme_ios:
description: App link opened on an iOS device (e.g. `tel://PHONE_NUMBER`)
type: string
scheme_android:
description: App link opened on an Android device (e.g. `tel://PHONE_NUMBER`)
type: string
required:
- link_mo
required:
- list
required:
- carousel
ListMessageField:
type: object
title: List
description: A message containing a list of options to choose from. All items must be of the same type.
properties:
list_message:
title: List Message
type: object
required:
- title
- sections
properties:
title:
description: A title for the message that is displayed near the products or choices.
type: string
description:
description: This is an optional field, containing a description for the message.
type: string
media:
$ref: '#/components/schemas/MediaProperties'
sections:
description: List of ListSection objects containing choices to be presented in the list message.
type: array
items:
$ref: '#/components/schemas/ListSection'
message_properties:
description: Additional properties for the message. Required if sending a product list message.
properties:
catalog_id:
description: Required if sending a product list message. The ID of the catalog to which the products belong.
type: string
menu:
description: Optional. Sets the text for the menu of a choice list message.
type: string
whatsapp_header:
description: Optional. Sets the text for the header of a WhatsApp choice list message. Ignored for other channels.
type: string
LineNotificationMessageTemplateButton:
type: object
description: Template button
required:
- button_key
- url
properties:
button_key:
type: string
description: Button key. See [LINE documentation](https://developers.line.biz/en/docs/partner-docs/line-notification-messages/template/?r=jp#buttons) for available keys
url:
type: string
maxLength: 1000
description: Button URL
LineNotificationMessageTemplateItem:
type: object
description: Template item
required:
- item_key
- content
properties:
item_key:
description: Item key. See [LINE documentation](https://developers.line.biz/en/docs/partner-docs/line-notification-messages/template/?r=jp#items) for available keys
type: string
content:
description: Item value
type: string
maxLength: 300
protobufAny:
type: object
properties:
type_url:
type: string
value:
type: string
format: byte
Choices:
type: object
properties:
choices:
type: array
description: The number of choices is limited to 10.
items:
$ref: '#/components/schemas/Choice'
KakaoTalkBotKeywordButton:
title: KakaoTalk Bot Keyword Button
description: A button that sends a keyword specified in `name` property
allOf:
- $ref: '#/components/schemas/KakaoTalkButton'
- type: object
properties:
type:
enum:
- BK
WhatsAppInteractiveFooter:
type: object
description: Footer of the interactive message.
required:
- text
properties:
text:
type: string
description: The footer content (60 characters maximum). Emojis, Markdown and links are supported.
WhatsAppInteractiveDocumentHeader:
type: object
description: Header of the interactive message with document.
required:
- type
- document
properties:
type:
type: string
x-enumDescriptions:
document: The document associated with the header.
enum:
- document
document:
$ref: '#/components/schemas/WhatsAppInteractiveHeaderMedia'
AppMessageTypes:
type: object
oneOf:
- $ref: '#/components/schemas/CardMessageField'
- $ref: '#/components/schemas/CarouselMessageField'
- $ref: '#/components/schemas/ChoiceMessageField'
- $ref: '#/components/schemas/LocationMessageField'
- $ref: '#/components/schemas/MediaMessageField'
- $ref: '#/components/schemas/TemplateMessageField'
- $ref: '#/components/schemas/TextMessageField'
- $ref: '#/components/schemas/ListMessageField'
- $ref: '#/components/schemas/ContactInfoMessageField'
ChannelSpecificMessage:
type: object
title: Channel specific message
description: A message containing a channel specific message (not supported by OMNI types).
required:
- message_type
- message
properties:
message_type:
type: string
x-enumDescriptions:
FLOWS: The WhatsApp Flows message type.
ORDER_DETAILS: The WhatsApp order details message type.
ORDER_STATUS: The WhatsApp order status message type.
COMMERCE: KakaoTalk commerce channel specific message type
CAROUSEL_COMMERCE: KakaoTalk carousel commerce channel specific message type
NOTIFICATION_MESSAGE_TEMPLATE: LINE notification message template type
description: The type of the channel specific message.
enum:
- FLOWS
- ORDER_DETAILS
- ORDER_STATUS
- COMMERCE
- CAROUSEL_COMMERCE
- NOTIFICATION_MESSAGE_TEMPLATE
message:
oneOf:
- $ref: '#/components/schemas/FlowChannelSpecificMessage'
- $ref: '#/components/schemas/PaymentOrderDetailsChannelSpecificMessage'
- $ref: '#/components/schemas/PaymentOrderStatusChannelSpecificMessage'
- $ref: '#/components/schemas/KakaoTalkCommerceChannelSpecificMessage'
- $ref: '#/components/schemas/KakaoTalkCarouselCommerceChannelSpecificMessage'
- $ref: '#/components/schemas/LineNotificationMessageTemplateChannelSpecificMessage'
WhatsAppPaymentSettingsButtonPix:
type: object
description: The dynamic Pix payment settings button.
required:
- type
- code
- merchant_name
- key
- key_type
properties:
type:
type: string
enum:
- pix_dynamic_code
x-enumDescriptions:
pix_dynamic_code: The dynamic Pix code button identifier
code:
type: string
description: The dynamic Pix code to be used by the buyer to pay.
merchant_name:
type: string
description: Account holder name.
key:
type: string
description: Pix key.
key_type:
type: string
description: Pix key type.
enum:
- CPF
- CNPJ
- EMAIL
- PHONE
- EVP
x-enumDescriptions:
CPF: The CPF key type.
CNPJ: The CNPJ key type.
EMAIL: The EMAIL key type.
PHONE: The PHONE key type.
EVP: The EVP key type.
KakaoTalkDiscountRateCommerce:
description: Information about a product with discount rate
allOf:
- $ref: '#/components/schemas/KakaoTalkRegularPriceCommerce'
- type: object
properties:
type:
enum:
- PERCENTAGE_DISCOUNT_COMMERCE
x-enumDescriptions:
PERCENTAGE_DISCOUNT_COMMERCE: Commerce with percentage discount
discount_price:
description: Discounted price of the product
type: integer
minimum: 0
maximum: 99999999
discount_rate:
description: Discount rate (%)
type: integer
minimum: 0
maximum: 100
required:
- discount_price
- discount_rate
KakaoTalkDiscountRateCoupon:
title: KakaoTalk discount rate coupon
description: 'Percentage discount coupon with the following title: "discount_rate% 할인 쿠폰" (translates to: "discount_rate% discount coupon")
One of the following fields is required: link_mo, scheme_android, scheme_ios
'
allOf:
- $ref: '#/components/schemas/KakaoTalkCoupon'
- type: object
properties:
type:
enum:
- PERCENTAGE_DISCOUNT_COUPON
discount_rate:
description: Discount rate (%)
type: integer
minimum: 0
maximum: 100
required:
- discount_rate
KakaoTalkShippingDiscountCoupon:
title: KakaoTalk shipping discount coupon
description: 'Shipping discount coupon with with the following title: "배송비 할인 쿠폰" (translates to: "shipping fee discount coupon")
One of the following fields is required: link_mo, scheme_android, scheme_ios
'
allOf:
- $ref: '#/components/schemas/KakaoTalkCoupon'
- type: object
properties:
type:
enum:
- SHIPPING_DISCOUNT_COUPON
UrlMessageField:
description: A generic URL message.
type: object
title: URL
properties:
url_message:
title: URL Message
type: object
required:
- title
- url
properties:
title:
description: The title shown close to the URL. The title can be clickable in some cases.
type: string
url:
description: The url to show.
type: string
WhatsAppInteractiveImageHeader:
type: object
description: Header of the interactive message with image.
required:
- type
- image
properties:
type:
type: string
x-enumDescriptions:
image: The image associated with the header.
enum:
- image
image:
$ref: '#/components/schemas/WhatsAppInteractiveHeaderMedia'
ChoiceMessageField:
description: Message containing choices/actions.
type: object
title: Choice
properties:
choice_message:
title: Choice Message
type: object
required:
- choices
allOf:
- description: A message containing choices.
- $ref: '#/components/schemas/Choices'
- $ref: '#/components/schemas/TextMessageField'
- $ref: '#/components/schemas/ChoiceMessagePropertiesField'
CallMessageField:
description: Message for triggering a call.
type: object
title: Call
properties:
call_message:
title: Call Message
type: object
required:
- phone_number
- title
properties:
phone_number:
description: Phone number in E.164 with leading +.
type: string
example: '+15551231234'
title:
description: 'Title shown close to the phone number.
The title is clickable in some cases.'
type: string
example: Message text
TemplateReferenceWithVersion:
type: object
allOf:
- required:
- version
- $ref: '#/components/schemas/TemplateReference'
ProductItem:
type: object
title: Product
description: A message component for interactive messages, containing a product.
required:
- id
- marketplace
properties:
id:
type: string
description: Required parameter. The ID for the product.
marketplace:
type: string
description: Required parameter. The marketplace to which the product belongs.
example: FACEBOOK
quantity:
type: integer
format: int32
description: Output only. The quantity of the chosen product.
item_price:
type: number
format: float
description: Output only. The price for one unit of the chosen product.
currency:
type: string
description: Output only. The currency of the item_price.
CardMessage:
description: Message containing text, media and choices.
title: Card Message
type: object
properties:
choices:
description: You may include choices in your Card Message. The number of choices is limited to 10.
type: array
items:
$ref: '#/components/schemas/Choice'
description:
description: This is an optional description field that is displayed below the title on the card.
type: string
height:
$ref: '#/components/schemas/CardHeight'
title:
description: The title of the card message.
type: string
media_message:
type: object
description: A message containing a media component.
allOf:
- $ref: '#/components/schemas/MediaProperties'
message_properties:
type: object
description: Optional additional properties.
properties:
whatsapp_header:
description: Optional. Sets the header for the footer of a WhatsApp reply button message, if there is no media in the message. Ignored for other channels. Ignored if not transcoded to a native WhatsApp message with reply buttons.
type: string
MediaMessageField:
type: object
title: Media Message
description: A message containing a media component, such as an image, document, or video.
properties:
media_message:
$ref: '#/components/schemas/MediaProperties'
ChoiceMessagePropertiesField:
type: object
title: Properties
description: Additional properties for the message.
properties:
message_properties:
type: object
properties:
whatsapp_footer:
description: Optional. Sets the text for the footer of a WhatsApp reply button or URL button message. Ignored for other channels.
type: string
AppMessage:
type: object
title: Message originating from app
description: A message originating from a Conversation API app
allOf:
- $ref: '#/components/schemas/AppMessageTypes'
- $ref: '#/components/schemas/AppMessageCommonProps'
TranscodeMessageRequest:
type: object
required:
- app_id
- app_message
- channels
properties:
app_id:
description: The ID of the app used to transcode the message.
type: string
app_message:
$ref: '#/components/schemas/AppMessage'
channels:
description: The list of channels for which the message shall be transcoded.
type: array
items:
$ref: '#/components/schemas/ConversationChannel'
from:
description: Optional.
type: string
to:
description: Optional.
type: string
UrlInfo:
type: object
title: URL Info
description: A URL/website
required:
- url
properties:
url:
description: The URL to be referenced
type: string
type:
description: Optional. URL type, e.g. Org or Social
type: string
FlowChannelSpecificMessage:
allOf:
- $ref: '#/components/schemas/ChannelSpecificCommonProps'
- type: object
title: WhatsApp Flow channel specific message
description: A message type for sending WhatsApp Flows.
required:
- flow_id
- flow_cta
properties:
flow_id:
type: string
description: ID of the Flow.
flow_token:
type: string
description: Generated token which is an identifier.
flow_mode:
type: string
description: The mode in which the flow is.
default: published
enum:
- draft
- published
x-enumDescriptions:
draft: The flow is in draft mode.
published: The flow is published.
flow_cta:
type: string
description: Text which is displayed on the Call To Action button (20 characters maximum, emoji not supported).
flow_action:
type: string
default: navigate
enum:
- navigate
- data_exchange
x-enumDescriptions:
navigate: The navigate flow action.
data_exchange: The data exchange flow action.
flow_action_payload:
type: object
properties:
screen:
type: string
description: The ID of the screen displayed first. This must be an entry screen.
data:
type: object
description: Data for the first screen.
KakaoTalkDiscountFixedCommerce:
description: Information about a product with fixed discount
allOf:
- $ref: '#/components/schemas/KakaoTalkRegularPriceCommerce'
- type: object
properties:
type:
enum:
- FIXED_DISCOUNT_COMMERCE
x-enumDescriptions:
FIXED_DISCOUNT_COMMERCE: Commerce with fixed discount
discount_price:
description: Discounted price of the product
type: integer
minimum: 0
maximum: 99999999
discount_fixed:
description: Fixed discount
type: integer
minimum: 0
maximum: 999999
required:
- discount_price
- discount_fixed
LineNotificationMessageTemplateEmphasizedItem:
type: object
description: Template emphasized item
required:
- item_key
- content
properties:
item_key:
description: Item key. See [LINE documentation](https://developers.line.biz/en/docs/partner-docs/line-notification-messages/template/?r=jp#items) for available keys
type: string
content:
description: Item value
type: string
maxLength: 15
KakaoTalkFreeCoupon:
title: KakaoTalk free coupon
description: 'Free coupon with the following title: "title 무료 쿠폰" (translates to: "title free coupon")
One of the following fields is required: link_mo, scheme_android, scheme_ios
'
allOf:
- $ref: '#/components/schemas/KakaoTalkCoupon'
- type: object
properties:
type:
enum:
- FREE_COUPON
title:
description: Coupon title
type: string
maxLength: 7
required:
- title
LineNotificationMessageTemplateChannelSpecificMessage:
type: object
title: LINE notification message (template) channel specific message
description: A message type for sending LINE notification messages (template)
required:
- template_key
properties:
template_key:
description: Template key. See [LINE documentation](https://developers.line.biz/en/docs/partner-docs/line-notification-messages/template/?r=jp#templates) for available keys
type: string
body:
$ref: '#/components/schemas/LineNotificationMessageTemplateBody'
NameInfo:
type: object
title: Name of the contact
description: Name information of the contact.
required:
- full_name
properties:
full_name:
description: Full name of the contact
type: string
first_name:
description: First name.
type: string
last_name:
description: Last name.
type: string
middle_name:
description: Middle name.
type: string
prefix:
description: Prefix before the name. e.g. Mr, Mrs, Dr etc.
type: string
suffix:
description: Suffix after the name.
type: string
KakaoTalkButton:
type: object
properties:
type:
description: Button type
type: string
name:
description: Text displayed on the button
type: string
maxLength: 8
required:
- type
- name
KakaoTalkCommerceChannelSpecificMessage:
allOf:
- $ref: '#/components/schemas/KakaoTalkChannelSpecificMessage'
- $ref: '#/components/schemas/KakaoTalkCommerceMessage'
- type: object
title: KakaoTalk commerce channel specific message
description: A message type for sending KakaoTalk commerce messages
ConversationChannel:
type: string
title: Channel Identifier
description: The identifier of the channel you want to include. Must be one of the enum values.
example: WHATSAPP
x-enumDescriptions:
SMS: The SMS channel.
RCS: The RCS channel.
WHATSAPP: The WhatsApp channel.
MMS: The MMS channel.
KAKAOTALK: The KakaoTalk channel.
KAKAOTALKCHAT: The KakaoTalk chat channel (used primarily in ConsultationTalk).
VIBERBM: The Viber Business Messages channel.
LINE: The LINE channel.
INSTAGRAM: The Instagram channel.
MESSENGER: The Facebook Messenger channel.
WECHAT: The WeChat channel.
TELEGRAM: The Telegram channel.
APPLEBC: The Apple Messages for Business channel.
enum:
- SMS
- RCS
- WHATSAPP
- MMS
- KAKAOTALK
- KAKAOTALKCHAT
- VIBERBM
- LINE
- INSTAGRAM
- MESSENGER
- WECHAT
- TELEGRAM
- APPLEBC
KakaoTalkFixedDiscountCoupon:
title: KakaoTalk fixed discount coupon
description: 'Fixed discount coupon with with the following title: "discount_fixed 원 할인 쿠폰" (translates to: "discount_fixed won discount coupon")
One of the following fields is required: link_mo, scheme_android, scheme_ios
'
allOf:
- $ref: '#/components/schemas/KakaoTalkCoupon'
- type: object
properties:
type:
enum:
- FIXED_DISCOUNT_COUPON
discount_fixed:
description: Fixed discount
type: integer
minimum: 0
maximum: 999999
required:
- discount_fixed
KakaoTalkAppLinkButton:
title: KakaoTalk App Link Button
description: A button that opens an app link (e.g. call button)
allOf:
- $ref: '#/components/schemas/KakaoTalkButton'
- type: object
properties:
type:
enum:
- AL
scheme_ios:
type: string
description: App link opened on an iOS device (e.g. `tel://PHONE_NUMBER`)
scheme_android:
type: string
description: App link opened on an Android device (e.g. `tel://PHONE_NUMBER`)
required:
- scheme_ios
- scheme_android
KakaoTalkUpCoupon:
title: KakaoTalk UP coupon
description: 'UP coupon with the following title: "title UP 쿠폰" (translates to: "title UP coupon")
One of the following fields is required: link_mo, scheme_android, scheme_ios
'
allOf:
- $ref: '#/components/schemas/KakaoTalkCoupon'
- type: object
properties:
type:
enum:
- UP_COUPON
title:
description: Coupon title
type: string
maxLength: 7
required:
- title
EmailInfo:
type: object
title: Email information
description: Email addresses of the contact.
required:
- email_address
properties:
email_address:
description: Email address.
type: string
type:
description: Email address type. e.g. WORK or HOME.
type: string
runtimeError:
type: object
properties:
error:
type: object
properties:
code:
type: integer
format: int32
details:
type: array
items:
$ref: '#/components/schemas/protobufAny'
message:
type: string
status:
type: string
KakaoTalkChannelSpecificMessage:
type: object
properties:
push_alarm:
type: boolean
default: true
description: Set to `true` if a push alarm should be sent to a device.
adult:
type: boolean
default: false
description: Set to `true` if a message contains adult content. Set to `false` by default.
Choice_2:
type: object
properties:
text_message:
type: object
description: Text choice
properties:
text:
type: string
description: The choice text
postback_data:
type: string
description: Data sent back when the choice is selected
TranscodeRequest:
type: object
required:
- app_id
- app_message
- channels
properties:
app_id:
type: string
description: The app ID
app_message:
$ref: '#/components/schemas/AppMessage_2'
channels:
type: array
description: Target channels for transcoding
items:
type: string
AppMessage_2:
type: object
properties:
text_message:
type: object
description: A text message
properties:
text:
type: string
description: The message text
media_message:
type: object
description: A media message
properties:
url:
type: string
format: uri
description: The media URL
thumbnail_url:
type: string
format: uri
description: The thumbnail URL
template_message:
type: object
description: A template message
properties:
omni_template:
type: object
description: The template reference
properties:
template_id:
type: string
description: The template identifier
version:
type: string
description: The template version
language_code:
type: string
description: The language code
parameters:
type: object
description: Template parameter values
card_message:
type: object
description: A card message with title, description, and media
properties:
title:
type: string
description: The card title
description:
type: string
description: The card description
media_message:
type: object
description: The card media
properties:
url:
type: string
format: uri
description: The media URL
choices:
type: array
description: Action choices on the card
items:
$ref: '#/components/schemas/Choice_2'
list_message:
type: object
description: A list message with sections
properties:
title:
type: string
description: The list title
description:
type: string
description: The list description
sections:
type: array
description: List sections
items:
type: object
properties:
title:
type: string
description: Section title
items:
type: array
description: Section items
items:
$ref: '#/components/schemas/Choice_2'
TranscodeResponse:
type: object
properties:
transcoded_message:
type: object
description: Map of channel to transcoded message
additionalProperties:
type: string
responses:
500Error:
description: Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
content:
application/json:
schema:
$ref: '#/components/schemas/runtimeError'
example:
code: 500
message: There was an internal server error.
status: INTERNAL_ERROR
details: []
401Error:
description: Incorrect credentials. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
content:
application/json:
schema:
type: object
403Error:
description: Correct credentials but you don't have access to the requested resource. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
content:
application/json:
schema:
$ref: '#/components/schemas/runtimeError'
example:
code: 403
message: You do not have access to the requested resource.
status: UNAUTHORIZED
details: []
501Error:
description: Something went wrong on our end, try again with exponential back-off. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
content:
application/json:
schema:
$ref: '#/components/schemas/runtimeError'
example:
code: 501
message: There was an internal server error.
status: INTERNAL_ERROR
details: []
400Error:
description: Malformed request. See [common error responses](https://developers.sinch.com/docs/conversation/api-reference/#common-error-responses) for more information.
content:
application/json:
schema:
$ref: '#/components/schemas/runtimeError'
example:
code: 400
message: Malformed request
status: INVALID_REQUEST
details: []
parameters:
project_id:
name: project_id
description: The unique ID of the project. You can find this on the [Sinch Dashboard](https://dashboard.sinch.com/convapi/apps).
in: path
required: true
schema:
type: string
ProjectId:
name: project_id
in: path
required: true
description: The unique project identifier
schema:
type: string
securitySchemes:
Basic:
type: http
scheme: basic
description: For more information about basic authentication, see [Basic Authentication](https://developers.sinch.com/docs/conversation/api-reference/#authentication).
oAuth2:
type: oauth2
description: The user name and password are your client_id and key_secret from the [Access keys sections](https://dashboard.sinch.com/settings/access-keys)
flows:
clientCredentials:
tokenUrl: https://auth.sinch.com/oauth2/token
scopes: {}
basicAuth:
type: http
scheme: basic
description: Key ID as username and key secret as password.
externalDocs:
description: Sinch Conversation API Documentation
url: https://developers.sinch.com/docs/conversation
x-refined-from:
- sinch-conversation-api-openapi.yaml
- original-sinch-conversation-openapi.yml
x-explorer-enabled: false
x-samples-languages:
- curl
- java
- csharp
- node
- php
x-original-swagger-version: '2.0'
x-provenance:
method: harvested
publisher: Sinch
source: https://developers.sinch.com/_bundle/docs/conversation/api-reference/conversation.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)