---
title: "Create a template in project"
method: POST
path: "/v1/projects/{projectId}/kakaotalk/senders/{plusFriendId}/templates"
tags: ["KakaoTalk Templates"]
---

# Create a template in project

`POST /v1/projects/{projectId}/kakaotalk/senders/{plusFriendId}/templates`

## Request

- Base URL: `https://provisioning.api.sinch.com`
- URL: `https://provisioning.api.sinch.com/v1/projects/{projectId}/kakaotalk/senders/{plusFriendId}/templates`
- Auth: HTTP basic and HTTP bearer and OAuth 2
  - Client credentials
  - Token URL: `https://auth.sinch.com/oauth2/token`

Creates a new template with the request data.

## Path parameters

- `projectId` string, required
- `plusFriendId` string, required

## Request body

- KakaotalkInputTemplateDto
  - `status` 'DRAFT' | 'SUBMIT': Create as draft or submit. Defaults to submit.
  - `details` KakaotalkInputTemplateDetailsDto, required
    - `name` string, required: Button name
    - `language` 'AF' | 'AR' | 'AZ' | 'BG' | 'BN' | 'CA' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN' | 'EN_GB' | 'EN_US' | 'ES' | 'ES_AR' | 'ES_ES' | 'ES_MX' | 'ET' | 'FA' | 'FI' | 'FIL' | 'FR' | 'GA' | 'GU' | 'HA' | 'HE' | 'HI' | 'HR' | 'HU' | 'ID' | 'IT' | 'JA' | 'KA' | 'KK' | 'KN' | 'KO' | 'KY_KG' | 'LO' | 'LT' | 'LV' | 'MK' | 'ML' | 'MR' | 'MS' | 'NB' | 'NL' | 'PA' | 'PL' | 'PT_BR' | 'PT_PT' | 'RO' | 'RU' | 'RW_RW' | 'SK' | 'SL' | 'SQ' | 'SR' | 'SV' | 'SW' | 'TA' | 'TE' | 'TH' | 'TR' | 'UK' | 'UR' | 'UZ' | 'VI' | 'ZH_CN' | 'ZH_HK' | 'ZH_TW' | 'ZU', required: Template language
    - `content` string, required: Template body Not required for draft.
    - `messageType` 'AD_INCLUDED' | 'BASIC' | 'EXTRA_INFORMATION' | 'MIXED': Types of template message
    - `emphasizeType` 'EMPHASIZE_TYPE_IMAGE' | 'EMPHASIZE_TYPE_NONE' | 'EMPHASIZE_TYPE_TEXT': Types of emphasized template
    - `categoryCode` string: Template category code
    - `securityFlag` boolean: Security template Set for security messages such as OTP If set, message text is unexposed to all devices except for the main device at the time of sending
    - `extra` string: Additional template information
    - `title` string: Template Title (No more than 50 characters, Android: To be abbreviated if it exceeds 2 lines with more than 23 characters, iOS: To be abbreviated if it exceeds 2 lines with more than 27 characters)
    - `subtitle` string: Auxiliary Template Phrase (No more than 50 characters, Android: To be abbreviated if it exceeds 18 characters, iOS: To be abbreviated if it exceeds 21 characters)
    - `imageName` string: Image name (name of uploaded file)
    - `imageUrl` string, url: Image URL - Supported mime types: `image/jpeg` or `image/png`. - Maximum file size: 500KB. - Minimum image dimensions: 500 x 250 px. - Aspect ratio: 2 x 1.
    - `buttons` KakaotalkInputButtonDto[]: List of buttons Field 'type' must have unique values across items.
      - `ordering` number, required: Button sequence
      - `type` 'APP_LINK' | 'BOT_FOR_CONSULTATION' | 'BOT_KEYWORD' | 'BOT_TRANSFER' | 'BUSINESS_FORM' | 'CHANNEL_ID_ADDED' | 'DELIVERY_SEARCH' | 'IMAGE_SECURE_TRANSMISSION_PLUGIN_ID' | 'MESSAGE_DELIVERY' | 'ONE_CLICK_PAYMENT_PLUGIN' | 'PERSONAL_INFORMATION_USE_PLUGIN_ID' | 'WEB_LINK', required: Button type
      - `name` string, required: Button name Not required for draft.
      - `linkMo` string, url: Mobile web link
      - `linkPc` string, url: PC web link
      - `schemeIos` string, url: iOS app link
      - `schemeAndroid` string, url: Android app link
  - `saveDraftOnFailure` boolean: Flag to save template as draft if submission fails. Defaults to false.

## Response `201`

Created template

- KakaotalkTemplateDto
  - `id` string: The unique ID of the template.
  - `code` string, required: Registered delivery template code
  - `state` 'APPROVED' | 'REJECTED': The current state of the template.
  - `changes` KakaotalkTemplateChangesDto
    - `status` 'DRAFT' | 'IN_PROGRESS' | 'REJECTED', required: Current status of the pending changes
    - `details` union, required: Template details and information.
      - object
        - `language` 'AF' | 'AR' | 'AZ' | 'BG' | 'BN' | 'CA' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN' | 'EN_GB' | 'EN_US' | 'ES' | 'ES_AR' | 'ES_ES' | 'ES_MX' | 'ET' | 'FA' | 'FI' | 'FIL' | 'FR' | 'GA' | 'GU' | 'HA' | 'HE' | 'HI' | 'HR' | 'HU' | 'ID' | 'IT' | 'JA' | 'KA' | 'KK' | 'KN' | 'KO' | 'KY_KG' | 'LO' | 'LT' | 'LV' | 'MK' | 'ML' | 'MR' | 'MS' | 'NB' | 'NL' | 'PA' | 'PL' | 'PT_BR' | 'PT_PT' | 'RO' | 'RU' | 'RW_RW' | 'SK' | 'SL' | 'SQ' | 'SR' | 'SV' | 'SW' | 'TA' | 'TE' | 'TH' | 'TR' | 'UK' | 'UR' | 'UZ' | 'VI' | 'ZH_CN' | 'ZH_HK' | 'ZH_TW' | 'ZU' | 'UNRECOGNIZED', required: Template language
        - `messageType` 'AD_INCLUDED' | 'BASIC' | 'EXTRA_INFORMATION' | 'MIXED' | 'TEMPLATE_MESSAGE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED', required: Types of template message
        - `emphasizeType` 'EMPHASIZE_TYPE_IMAGE' | 'EMPHASIZE_TYPE_NONE' | 'EMPHASIZE_TYPE_TEXT' | 'EMPHASIZE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED', required: Types of emphasized template
        - `categoryCode` string, required: Template category code
        - `securityFlag` boolean, required: Security template
        - `name` string, required: Button name
        - `content` string: Template body
        - `extra` string: Additional template information
        - `ad` string: Request for consent of receiving within template or simple ad phrases
        - `title` string: Template title
        - `subtitle` string: Auxiliary template phrase
        - `imageName` string: Image name (name of uploaded file)
        - `imageUrl` string, url: Image URL
        - `buttons` KakaotalkButtonDto[], required: List of buttons
          - `ordering` number: Button sequence
          - `type` 'APP_LINK' | 'BOT_FOR_CONSULTATION' | 'BOT_KEYWORD' | 'BOT_TRANSFER' | 'BUSINESS_FORM' | 'BUTTON_TYPE_UNSPECIFIED' | 'CHANNEL_ID_ADDED' | 'DELIVERY_SEARCH' | 'IMAGE_SECURE_TRANSMISSION_PLUGIN_ID' | 'MESSAGE_DELIVERY' | 'ONE_CLICK_PAYMENT_PLUGIN' | 'PERSONAL_INFORMATION_USE_PLUGIN_ID' | 'WEB_LINK' | 'UNRECOGNIZED': Button type
          - `name` string: Button name
          - `linkMo` string, url: Mobile web link
          - `linkPc` string, url: PC web link
          - `schemeIos` string: iOS app link
          - `schemeAndroid` string: Android app link
      - object
        - `language` 'AF' | 'AR' | 'AZ' | 'BG' | 'BN' | 'CA' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN' | 'EN_GB' | 'EN_US' | 'ES' | 'ES_AR' | 'ES_ES' | 'ES_MX' | 'ET' | 'FA' | 'FI' | 'FIL' | 'FR' | 'GA' | 'GU' | 'HA' | 'HE' | 'HI' | 'HR' | 'HU' | 'ID' | 'IT' | 'JA' | 'KA' | 'KK' | 'KN' | 'KO' | 'KY_KG' | 'LO' | 'LT' | 'LV' | 'MK' | 'ML' | 'MR' | 'MS' | 'NB' | 'NL' | 'PA' | 'PL' | 'PT_BR' | 'PT_PT' | 'RO' | 'RU' | 'RW_RW' | 'SK' | 'SL' | 'SQ' | 'SR' | 'SV' | 'SW' | 'TA' | 'TE' | 'TH' | 'TR' | 'UK' | 'UR' | 'UZ' | 'VI' | 'ZH_CN' | 'ZH_HK' | 'ZH_TW' | 'ZU' | 'UNRECOGNIZED': Template language
        - `messageType` 'AD_INCLUDED' | 'BASIC' | 'EXTRA_INFORMATION' | 'MIXED' | 'TEMPLATE_MESSAGE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED': Types of template message
        - `emphasizeType` 'EMPHASIZE_TYPE_IMAGE' | 'EMPHASIZE_TYPE_NONE' | 'EMPHASIZE_TYPE_TEXT' | 'EMPHASIZE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED': Types of emphasized template
        - `categoryCode` string: Template category code
        - `securityFlag` boolean: Security template
        - `name` string: Button name
        - `content` string: Template body
        - `extra` string: Additional template information
        - `ad` string: Request for consent of receiving within template or simple ad phrases
        - `title` string: Template title
        - `subtitle` string: Auxiliary template phrase
        - `imageName` string: Image name (name of uploaded file)
        - `imageUrl` string, url: Image URL
        - `buttons` KakaotalkButtonDto[]: List of buttons
          - `ordering` number: Button sequence
          - `type` 'APP_LINK' | 'BOT_FOR_CONSULTATION' | 'BOT_KEYWORD' | 'BOT_TRANSFER' | 'BUSINESS_FORM' | 'BUTTON_TYPE_UNSPECIFIED' | 'CHANNEL_ID_ADDED' | 'DELIVERY_SEARCH' | 'IMAGE_SECURE_TRANSMISSION_PLUGIN_ID' | 'MESSAGE_DELIVERY' | 'ONE_CLICK_PAYMENT_PLUGIN' | 'PERSONAL_INFORMATION_USE_PLUGIN_ID' | 'WEB_LINK' | 'UNRECOGNIZED': Button type
          - `name` string: Button name
          - `linkMo` string, url: Mobile web link
          - `linkPc` string, url: PC web link
          - `schemeIos` string: iOS app link
          - `schemeAndroid` string: Android app link
  - `details` KakaotalkTemplateDetailsDto
    - `language` 'AF' | 'AR' | 'AZ' | 'BG' | 'BN' | 'CA' | 'CS' | 'DA' | 'DE' | 'EL' | 'EN' | 'EN_GB' | 'EN_US' | 'ES' | 'ES_AR' | 'ES_ES' | 'ES_MX' | 'ET' | 'FA' | 'FI' | 'FIL' | 'FR' | 'GA' | 'GU' | 'HA' | 'HE' | 'HI' | 'HR' | 'HU' | 'ID' | 'IT' | 'JA' | 'KA' | 'KK' | 'KN' | 'KO' | 'KY_KG' | 'LO' | 'LT' | 'LV' | 'MK' | 'ML' | 'MR' | 'MS' | 'NB' | 'NL' | 'PA' | 'PL' | 'PT_BR' | 'PT_PT' | 'RO' | 'RU' | 'RW_RW' | 'SK' | 'SL' | 'SQ' | 'SR' | 'SV' | 'SW' | 'TA' | 'TE' | 'TH' | 'TR' | 'UK' | 'UR' | 'UZ' | 'VI' | 'ZH_CN' | 'ZH_HK' | 'ZH_TW' | 'ZU' | 'UNRECOGNIZED', required: Template language
    - `messageType` 'AD_INCLUDED' | 'BASIC' | 'EXTRA_INFORMATION' | 'MIXED' | 'TEMPLATE_MESSAGE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED', required: Types of template message
    - `emphasizeType` 'EMPHASIZE_TYPE_IMAGE' | 'EMPHASIZE_TYPE_NONE' | 'EMPHASIZE_TYPE_TEXT' | 'EMPHASIZE_TYPE_UNSPECIFIED' | 'UNRECOGNIZED', required: Types of emphasized template
    - `categoryCode` string, required: Template category code
    - `securityFlag` boolean, required: Security template
    - `name` string, required: Button name
    - `content` string: Template body
    - `extra` string: Additional template information
    - `ad` string: Request for consent of receiving within template or simple ad phrases
    - `title` string: Template title
    - `subtitle` string: Auxiliary template phrase
    - `imageName` string: Image name (name of uploaded file)
    - `imageUrl` string, url: Image URL
    - `buttons` KakaotalkButtonDto[], required: List of buttons
      - `ordering` number: Button sequence
      - `type` 'APP_LINK' | 'BOT_FOR_CONSULTATION' | 'BOT_KEYWORD' | 'BOT_TRANSFER' | 'BUSINESS_FORM' | 'BUTTON_TYPE_UNSPECIFIED' | 'CHANNEL_ID_ADDED' | 'DELIVERY_SEARCH' | 'IMAGE_SECURE_TRANSMISSION_PLUGIN_ID' | 'MESSAGE_DELIVERY' | 'ONE_CLICK_PAYMENT_PLUGIN' | 'PERSONAL_INFORMATION_USE_PLUGIN_ID' | 'WEB_LINK' | 'UNRECOGNIZED': Button type
      - `name` string: Button name
      - `linkMo` string, url: Mobile web link
      - `linkPc` string, url: PC web link
      - `schemeIos` string: iOS app link
      - `schemeAndroid` string: Android app link
  - `created` string: The UTC Date Time in ISO 8601 for when the template was created.
  - `modified` string: The UTC Date Time in ISO 8601 for when the template was last modified.

## Other responses

- `400`: BadRequest
- `401`: Unauthorized
- `404`: NotFound
- `409`: Conflict
- `424`: FailedDependency
- `500`: InternalServerError

## Changes

> 17 revisions in range; 1 not diffed.

- **2026-09-01** `c6a937922d10`: 122 breaking, 337 info
  - added `#/components/schemas/KakaotalkActionsEnum` to the `status` request property `allOf` list
  - added `#/components/schemas/KakaotalkInputKakaoTalkButtonTypeEnum` to the `details/allOf[#/components/schemas/KakaotalkInputTemplateDetailsDto]/buttons/items/type` request property `allOf` list
  - added `#/components/schemas/KakaotalkInputKakaoTalkTemplateEmphasizeTypeEnum` to the `details/allOf[#/components/schemas/KakaotalkInputTemplateDetailsDto]/emphasizeType` request property `allOf` list
  - added `#/components/schemas/KakaotalkInputKakaoTalkTemplateMessageTypeEnum` to the `details/allOf[#/components/schemas/KakaotalkInputTemplateDetailsDto]/messageType` request property `allOf` list
  - …455 more

[Operation history](https://skmtc.dev/sinch/apis/provisioning-api/changes/v1/projects/:projectId/kakaotalk/senders/:plusFriendId/templates/post.md)

---

[API](https://skmtc.dev/sinch/apis/provisioning-api.md) - [All operations](https://skmtc.dev/sinch/apis/provisioning-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sinch/apis/provisioning-api/revisions/90d78b3a8575?raw)
