{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sinch/main/json-schema/sinch-transcode-message-request-schema.json", "title": "TranscodeMessageRequest", "x-generated": "2026-10-08", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sinch-conversation-api-openapi.yml#/components/schemas/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": "#/$defs/AppMessage" }, "channels": { "description": "The list of channels for which the message shall be transcoded.", "type": "array", "items": { "$ref": "#/$defs/ConversationChannel" } }, "from": { "description": "Optional.", "type": "string" }, "to": { "description": "Optional.", "type": "string" } }, "$defs": { "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" } } }, "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": "#/$defs/AgentType" }, "picture_url": { "description": "The Agent's picture url.", "type": "string" } } }, "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" }, "AppMessage": { "type": "object", "title": "Message originating from app", "description": "A message originating from a Conversation API app", "allOf": [ { "$ref": "#/$defs/AppMessageTypes" }, { "$ref": "#/$defs/AppMessageCommonProps" } ] }, "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": "#/$defs/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.\nThe key in the map must point to a valid conversation channel as defined in the enum `ConversationChannel`.", "type": "object", "additionalProperties": { "$ref": "#/$defs/ChannelSpecificMessage" } }, "agent": { "$ref": "#/$defs/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." } } } } }, "AppMessageTypes": { "type": "object", "oneOf": [ { "$ref": "#/$defs/CardMessageField" }, { "$ref": "#/$defs/CarouselMessageField" }, { "$ref": "#/$defs/ChoiceMessageField" }, { "$ref": "#/$defs/LocationMessageField" }, { "$ref": "#/$defs/MediaMessageField" }, { "$ref": "#/$defs/TemplateMessageField" }, { "$ref": "#/$defs/TextMessageField" }, { "$ref": "#/$defs/ListMessageField" }, { "$ref": "#/$defs/ContactInfoMessageField" } ] }, "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" }, "event_end": { "description": "The timestamp defines end of a calendar event.", "type": "string", "format": "date-time" }, "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" } } } } }, "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" }, "title": { "description": "Title shown close to the phone number.\nThe title is clickable in some cases.", "type": "string" } } } } }, "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" ] }, "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": "#/$defs/Choice" } }, "description": { "description": "This is an optional description field that is displayed below the title on the card.", "type": "string" }, "height": { "$ref": "#/$defs/CardHeight" }, "title": { "description": "The title of the card message.", "type": "string" }, "media_message": { "type": "object", "description": "A message containing a media component.", "allOf": [ { "$ref": "#/$defs/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" } } } } }, "CardMessageField": { "description": "Field containing a Card Message", "type": "object", "title": "Card", "properties": { "card_message": { "$ref": "#/$defs/CardMessage" } } }, "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": "#/$defs/CardMessage" } }, "choices": { "description": "Optional. Outer choices on the carousel level. The number of outer choices is limited to 3.", "type": "array", "items": { "$ref": "#/$defs/Choice" } } } } } }, "ChannelSpecificCommonProps": { "type": "object", "properties": { "header": { "description": "The header of the interactive message.", "type": "object", "oneOf": [ { "$ref": "#/$defs/WhatsAppInteractiveTextHeader" }, { "$ref": "#/$defs/WhatsAppInteractiveImageHeader" }, { "$ref": "#/$defs/WhatsAppInteractiveDocumentHeader" }, { "$ref": "#/$defs/WhatsAppInteractiveVideoHeader" } ] }, "body": { "$ref": "#/$defs/WhatsAppInteractiveBody" }, "footer": { "$ref": "#/$defs/WhatsAppInteractiveFooter" } } }, "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": "#/$defs/FlowChannelSpecificMessage" }, { "$ref": "#/$defs/PaymentOrderDetailsChannelSpecificMessage" }, { "$ref": "#/$defs/PaymentOrderStatusChannelSpecificMessage" }, { "$ref": "#/$defs/KakaoTalkCommerceChannelSpecificMessage" }, { "$ref": "#/$defs/KakaoTalkCarouselCommerceChannelSpecificMessage" }, { "$ref": "#/$defs/LineNotificationMessageTemplateChannelSpecificMessage" } ] } } }, "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": "#/$defs/choiceTypes" }, { "$ref": "#/$defs/choiceCommonProps" } ] }, "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": "#/$defs/MediaProperties" } ] }, "postback_data": { "type": "string", "description": "Optional parameter. Postback data that will be returned in the MO if the user selects this option." } } }, "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": "#/$defs/Choices" }, { "$ref": "#/$defs/TextMessageField" }, { "$ref": "#/$defs/ChoiceMessagePropertiesField" } ] } } }, "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" } } } } }, "Choices": { "type": "object", "properties": { "choices": { "type": "array", "description": "The number of choices is limited to 10.", "items": { "$ref": "#/$defs/Choice" } } } }, "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": "#/$defs/NameInfo" }, "phone_numbers": { "description": "Phone numbers of the contact", "type": "array", "items": { "$ref": "#/$defs/PhoneNumberInfo" } }, "addresses": { "description": "Physical addresses of the contact", "type": "array", "items": { "$ref": "#/$defs/AddressInfo" } }, "email_addresses": { "description": "Email addresses of the contact", "type": "array", "items": { "$ref": "#/$defs/EmailInfo" } }, "organization": { "$ref": "#/$defs/OrganizationInfo" }, "urls": { "description": "URLs/websites associated with the contact", "type": "array", "items": { "$ref": "#/$defs/UrlInfo" } }, "birthday": { "description": "Date of birth in YYYY-MM-DD format.", "type": "string" } } } } }, "ConversationChannel": { "type": "string", "title": "Channel Identifier", "description": "The identifier of the channel you want to include. Must be one of the enum values.", "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" ] }, "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" } } }, "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" ] }, "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" } } }, "FlowChannelSpecificMessage": { "allOf": [ { "$ref": "#/$defs/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." } } } } } ] }, "KakaoTalkAppLinkButton": { "title": "KakaoTalk App Link Button", "description": "A button that opens an app link (e.g. call button)", "allOf": [ { "$ref": "#/$defs/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" ] } ] }, "KakaoTalkBotKeywordButton": { "title": "KakaoTalk Bot Keyword Button", "description": "A button that sends a keyword specified in `name` property", "allOf": [ { "$ref": "#/$defs/KakaoTalkButton" }, { "type": "object", "properties": { "type": { "enum": [ "BK" ] } } } ] }, "KakaoTalkButton": { "type": "object", "properties": { "type": { "description": "Button type", "type": "string" }, "name": { "description": "Text displayed on the button", "type": "string", "maxLength": 8 } }, "required": [ "type", "name" ] }, "KakaoTalkCarouselCommerceChannelSpecificMessage": { "allOf": [ { "$ref": "#/$defs/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": "#/$defs/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" ] } ] }, "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." } } }, "KakaoTalkCommerceChannelSpecificMessage": { "allOf": [ { "$ref": "#/$defs/KakaoTalkChannelSpecificMessage" }, { "$ref": "#/$defs/KakaoTalkCommerceMessage" }, { "type": "object", "title": "KakaoTalk commerce channel specific message", "description": "A message type for sending KakaoTalk commerce messages" } ] }, "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": "#/$defs/KakaoTalkWebLinkButton" }, { "$ref": "#/$defs/KakaoTalkAppLinkButton" }, { "$ref": "#/$defs/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": "#/$defs/KakaoTalkRegularPriceCommerce" }, { "$ref": "#/$defs/KakaoTalkDiscountFixedCommerce" }, { "$ref": "#/$defs/KakaoTalkDiscountRateCommerce" } ] }, "coupon": { "description": "Discount coupon", "oneOf": [ { "$ref": "#/$defs/KakaoTalkFixedDiscountCoupon" }, { "$ref": "#/$defs/KakaoTalkDiscountRateCoupon" }, { "$ref": "#/$defs/KakaoTalkShippingDiscountCoupon" }, { "$ref": "#/$defs/KakaoTalkFreeCoupon" }, { "$ref": "#/$defs/KakaoTalkUpCoupon" } ] } }, "required": [ "image", "commerce", "buttons" ] }, "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" ] }, "KakaoTalkDiscountFixedCommerce": { "description": "Information about a product with fixed discount", "allOf": [ { "$ref": "#/$defs/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" ] } ] }, "KakaoTalkDiscountRateCommerce": { "description": "Information about a product with discount rate", "allOf": [ { "$ref": "#/$defs/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
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
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
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
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