---
title: "Create WhatsApp Template"
method: POST
path: "/whatsapp/1/senders/{sender}/templates"
tags: ["channels", "whatsapp", "whatsapp-service-management", "whatsapp-template-management"]
deprecated: true
---

# Create WhatsApp Template

`POST /whatsapp/1/senders/{sender}/templates`

## Request

- Base URL: `https://api.infobip.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infobip.com/whatsapp/1/senders/{sender}/templates`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.infobip.com/auth/1/oauth2/token`
  - API key in header `Authorization`
  - API key in header `Authorization`
  - HTTP basic

> **Deprecated.**

Create a WhatsApp template. Created template will be submitted for WhatsApp's review and approval. Once approved, template can be sent to end-users. Refer to [template guidelines](https://www.infobip.com/docs/whatsapp/message-types#guidelines-amp-best-practices) for additional info. This version is deprecated as of June 29th 2022, meaning no fixes/updates will be provided and no new parameters will be added. This API will be deleted at the end of the year. Please use the [latest version](#channels/whatsapp/create-whatsapp-template).

## Path parameters

- `sender` string, required

## Request body

- 8cb345d2b2e2a0cd5a7383bf2012768938eaa465c6e4f6554958ac7f4a58aa3fV1TemplatePublicApiRequest
  - `name` string, required: Template name. Must only contain lowercase alphanumeric characters and underscores.
  - `language` 'af' | 'sq' | 'ar' | 'ar_EG' | 'ar_AE' | 'ar_LB' | 'ar_MA' | 'ar_QA' | 'az' | 'bn' | 'bn_IN' | 'bg' | 'ca' | 'zh_CN' | 'zh_HK' | 'zh_TW' | 'hr' | 'cs' | 'da' | 'nl' | 'nl_BE' | 'en' | 'en_GB' | 'en_US' | 'en_AE' | 'en_AU' | 'en_CA' | 'en_GH' | 'en_IE' | 'en_IN' | 'en_JM' | 'en_MY' | 'en_NZ' | 'en_QA' | 'en_SG' | 'en_UG' | 'en_ZA' | 'et' | 'fil' | 'fi' | 'fr' | 'fr_BE' | 'fr_CA' | 'fr_CH' | 'fr_CI' | 'fr_MA' | 'ka' | 'de' | 'de_AT' | 'de_CH' | 'el' | 'gu' | 'ha' | 'he' | 'hi' | 'hu' | 'id' | 'ga' | 'it' | 'ja' | 'kn' | 'kk' | 'rw_RW' | 'ko' | 'ky_KG' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'nb' | 'fa' | 'pl' | 'pt_BR' | 'pt_PT' | 'pa' | 'ro' | 'ru' | 'sr' | 'si_LK' | 'sk' | 'sl' | 'es' | 'es_AR' | 'es_CL' | 'es_CO' | 'es_CR' | 'es_DO' | 'es_EC' | 'es_HN' | 'es_MX' | 'es_PA' | 'es_PE' | 'es_ES' | 'es_UY' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'uz' | 'vi' | 'zu' | 'unknown', required: Template language, one template with same name can have multiple transliterations.
  - `category` 'ACCOUNT_UPDATE' | 'PAYMENT_UPDATE' | 'PERSONAL_FINANCE_UPDATE' | 'SHIPPING_UPDATE' | 'RESERVATION_UPDATE' | 'ISSUE_RESOLUTION' | 'APPOINTMENT_UPDATE' | 'TRANSPORTATION_UPDATE' | 'TICKET_UPDATE' | 'ALERT_UPDATE' | 'AUTO_REPLY', required: All listed categories will be available until May 1, 2023.
  - `structure` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1TemplateStructureApiData, required: Template structure.
    - `header` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1HeaderApiData: Template header. Can be `image`, `document`, `video`, `location` or `text`.
      - `format` 'TEXT' | 'IMAGE' | 'VIDEO' | 'DOCUMENT' | 'LOCATION'
    - `body` string, required: Template body. Can be registered as plain text or text with placeholders. Placeholders have to be correctly formatted and in the correct order, regardless of other sections. Example: {{1}}, {{2}}, {{3}}...
    - `footer` string: Template footer. Plain text, up to 60 characters.
    - `buttons` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1ButtonApiData[]: Template buttons. Can be either up to 3 `quick reply` buttons or up to 2 `call to action` buttons. Call to action buttons must be unique in type.
      - `text` string, required: Button text.
      - `type` 'PHONE_NUMBER' | 'URL' | 'QUICK_REPLY'
    - `type` 'TEXT' | 'MEDIA' | 'UNSUPPORTED'

## Response `201`

Template created.

- 18564d7c4791a7efa60d2b6c8cb85f3f93b60abdd39e67aaeb1d653e4aff3ecdV1TemplateApiResponse: List of all templates for given sender.
  - `id` string: Template ID.
  - `businessAccountId` integer: Business account ID to which template belongs.
  - `name` string: Name of the template.
  - `language` 'af' | 'sq' | 'ar' | 'ar_EG' | 'ar_AE' | 'ar_LB' | 'ar_MA' | 'ar_QA' | 'az' | 'bn' | 'bn_IN' | 'bg' | 'ca' | 'zh_CN' | 'zh_HK' | 'zh_TW' | 'hr' | 'cs' | 'da' | 'nl' | 'nl_BE' | 'en' | 'en_GB' | 'en_US' | 'en_AE' | 'en_AU' | 'en_CA' | 'en_GH' | 'en_IE' | 'en_IN' | 'en_JM' | 'en_MY' | 'en_NZ' | 'en_QA' | 'en_SG' | 'en_UG' | 'en_ZA' | 'et' | 'fil' | 'fi' | 'fr' | 'fr_BE' | 'fr_CA' | 'fr_CH' | 'fr_CI' | 'fr_MA' | 'ka' | 'de' | 'de_AT' | 'de_CH' | 'el' | 'gu' | 'ha' | 'he' | 'hi' | 'hu' | 'id' | 'ga' | 'it' | 'ja' | 'kn' | 'kk' | 'rw_RW' | 'ko' | 'ky_KG' | 'lo' | 'lv' | 'lt' | 'mk' | 'ms' | 'ml' | 'mr' | 'nb' | 'fa' | 'pl' | 'pt_BR' | 'pt_PT' | 'pa' | 'ro' | 'ru' | 'sr' | 'si_LK' | 'sk' | 'sl' | 'es' | 'es_AR' | 'es_CL' | 'es_CO' | 'es_CR' | 'es_DO' | 'es_EC' | 'es_HN' | 'es_MX' | 'es_PA' | 'es_PE' | 'es_ES' | 'es_UY' | 'sw' | 'sv' | 'ta' | 'te' | 'th' | 'tr' | 'uk' | 'ur' | 'uz' | 'vi' | 'zu' | 'unknown': Template language, one template with same name can have multiple transliterations.
  - `status` 'APPROVED' | 'IN_APPEAL' | 'PENDING' | 'REJECTED' | 'PENDING_DELETION' | 'DELETED' | 'REINSTATED' | 'FLAGGED' | 'FIRST_PAUSED' | 'SECOND_PAUSED' | 'DISABLED' | 'ARCHIVED' | 'UNKNOWN': Status of the template.
  - `category` 'ACCOUNT_UPDATE' | 'PAYMENT_UPDATE' | 'PERSONAL_FINANCE_UPDATE' | 'SHIPPING_UPDATE' | 'RESERVATION_UPDATE' | 'ISSUE_RESOLUTION' | 'APPOINTMENT_UPDATE' | 'TRANSPORTATION_UPDATE' | 'TICKET_UPDATE' | 'ALERT_UPDATE' | 'AUTO_REPLY' | 'TRANSACTIONAL' | 'OTP' | 'MARKETING' | 'AUTHENTICATION' | 'UTILITY': Category of the template.
  - `structure` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1TemplateStructureApiData: Template structure.
    - `header` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1HeaderApiData: Template header. Can be `image`, `document`, `video`, `location` or `text`.
      - `format` 'TEXT' | 'IMAGE' | 'VIDEO' | 'DOCUMENT' | 'LOCATION'
    - `body` string, required: Template body. Can be registered as plain text or text with placeholders. Placeholders have to be correctly formatted and in the correct order, regardless of other sections. Example: {{1}}, {{2}}, {{3}}...
    - `footer` string: Template footer. Plain text, up to 60 characters.
    - `buttons` F9ccb6cb799d6a02d85ff0940902b67433383f1a3c972733a815fa9a18d16beaV1ButtonApiData[]: Template buttons. Can be either up to 3 `quick reply` buttons or up to 2 `call to action` buttons. Call to action buttons must be unique in type.
      - `text` string, required: Button text.
      - `type` 'PHONE_NUMBER' | 'URL' | 'QUICK_REPLY'
    - `type` 'TEXT' | 'MEDIA' | 'UNSUPPORTED'

## Other responses

- `400`: Template has invalid category, too long text or a template with a given name already exist.
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/infobip/apis/infobip-openapi-specification.md) - [All operations](https://skmtc.dev/infobip/apis/infobip-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/infobip/apis/infobip-openapi-specification/revisions/9dcbbaf902de?raw)
