openapi: 3.2.0
info:
title: Provisioning WhatsApp Templates API
description: The WhatsApp template endpoint offers a way for you to manage your WhatsApp templates that can be used with the Conversation API. The WhatsApp templates are a requirement to send the initial outbound messages in the WhatsApp API.
version: 1.2.117
servers:
- url: https://provisioning.api.sinch.com
description: Production server
security:
- BasicAuth: []
BearerAuth: []
OAuth2Production: []
tags:
- name: WhatsApp Templates
description: The WhatsApp template endpoint offers a way for you to manage your WhatsApp templates that can be used with the Conversation API. The WhatsApp templates are a requirement to send the initial outbound messages in the WhatsApp API.
paths:
/v1/projects/{projectId}/whatsapp/templates:
get:
description: Returns a paginated list of templates for the specified project. If no page token is supplied then the first `50` templates are returned in alphabetical order.
operationId: WhatsappTemplatesController_listTemplates_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: pageToken
required: false
in: query
schema:
type: string
description: The page token if retrieving the next page from a previous query.
- name: pageSize
required: false
in: query
schema:
type: number
minimum: 1
maximum: 1000
description: The page size requested.
- name: fieldMask
required: false
in: query
description: Field masks are a way for API callers to list the fields that a request should return.
schema:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateDtoFieldMaskPathsEnum'
- name: filterStates
required: false
in: query
description: Optionally query for sender by states.
x-enumDescriptions:
APPROVED: The template is approved and available for use.
DISABLED: The template has been disabled and is restricted from outbound messaging operations.
PAUSED: The template is temporarily paused and cannot be utilized until explicitly resumed.
PENDING: The template is queued and currently awaiting approval or processing milestones.
REJECTED: The template was rejected and cannot be used.
schema:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateStatesEnum'
- name: filterStatuses
required: false
in: query
description: Optionally query for sender by statuses.
x-enumDescriptions:
DRAFT: The template changes are saved as a draft only.
IN_PROGRESS: The template changes have been submitted and are still processing.
REJECTED: The template changes have been reviewed and rejected.
schema:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateStatusesEnum'
- name: templateAnalyticsDateRange
required: false
in: query
description: The date range to retrieve template analytics for. Fallback to DAY if none is set.
x-enumDescriptions:
DAY: Filters metrics collection to include data from the last 24 hours.
MONTH: Filters metrics collection to include data from the last 30 days.
QUARTER: Filters metrics collection to include data from the last 90 days.
WEEK: Filters metrics collection to include data from the last 7 days.
schema:
$ref: '#/components/schemas/WhatsappTemplateAnalyticsDateRangesEnum'
- name: templateName
required: false
in: query
description: Optionally query for template by name. Will return all templates with names that begin with the query string.
schema:
type: string
responses:
'200':
description: List of templates
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/WhatsappTemplateListDto'
- $ref: '#/components/schemas/WhatsappPartialTemplateListDto'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
invalid_page_size-1:
summary: InvalidPageSizeError
value:
errorCode: invalid_page_size
message: Page size must be numeric.
resolution: Use a integer value for pageSize parameter.
invalid_page_token-2:
summary: InvalidPageTokenError
value:
errorCode: invalid_page_token
message: Invalid page token.
resolution: The page token to use is provided in the previous query response, for new queries simply leave this field undefined.
invalid_filter_states-3:
summary: InvalidFilterStatesError
value:
errorCode: invalid_filter_states
message: Invalid filterStates.
resolution: Verify that the filterStates used are supported by the Provisioning API.
additionalInformation:
supportedCodes: APPROVED, DISABLED, PAUSED, PENDING, REJECTED
invalid_filter_statuses-4:
summary: InvalidFilterStatusesError
value:
errorCode: invalid_filter_statuses
message: Invalid filter statuses.
resolution: Verify that the filterStatuses used are supported by the Provisioning API.
additionalInformation:
supportedCodes: DRAFT, IN_PROGRESS, REJECTED
invalid_fields-5:
summary: InvalidFieldsError
value:
errorCode: invalid_fields
message: Invalid fields.
resolution: Verify that the fields used are supported by the Provisioning API.
additionalInformation:
supportedCodes: whatsappId, state, name, language, category, rejectionCode, qualityScore, changes, changes.status, changes.allowCategoryChange, changes.details, changes.details.components, changes.details.components.0.type, changes.details.components.0.format, changes.details.components.0.text, changes.details.components.0.example, changes.details.components.0.example.url, changes.details.components.0.examples, changes.details.components.0.addSecurityRecommendation, changes.details.components.0.codeExpirationMinutes, changes.details.components.0.buttons, changes.details.components.0.buttons.0.type, changes.details.components.0.buttons.0.text, changes.details.components.0.buttons.0.phoneNumber, changes.details.components.0.buttons.0.url, changes.details.components.0.buttons.0.example, changes.details.components.0.buttons.0.otpType, changes.details.components.0.buttons.0.autofillText, changes.details.components.0.buttons.0.packageName, changes.details.components.0.buttons.0.signatureHash, changes.details.components.0.buttons.0.supportedApps, changes.details.components.0.buttons.0.supportedApps.0.packageName, changes.details.components.0.buttons.0.supportedApps.0.signatureHash, changes.details.components.0.buttons.0.zeroTapTermsAccepted, changes.details.components.0.buttons.0.flowId, changes.details.components.0.buttons.0.flowAction, changes.details.components.0.buttons.0.navigateScreen, changes.details.components.0.hasExpiration, changes.details.messageSendTtlSeconds, changes.details.optimization, details, details.components, details.components.0.type, details.components.0.format, details.components.0.text, details.components.0.example, details.components.0.example.url, details.components.0.examples, details.components.0.addSecurityRecommendation, details.components.0.codeExpirationMinutes, details.components.0.buttons, details.components.0.buttons.0.type, details.components.0.buttons.0.text, details.components.0.buttons.0.phoneNumber, details.components.0.buttons.0.url, details.components.0.buttons.0.example, details.components.0.buttons.0.otpType, details.components.0.buttons.0.autofillText, details.components.0.buttons.0.packageName, details.components.0.buttons.0.signatureHash, details.components.0.buttons.0.supportedApps, details.components.0.buttons.0.supportedApps.0.packageName, details.components.0.buttons.0.supportedApps.0.signatureHash, details.components.0.buttons.0.zeroTapTermsAccepted, details.components.0.buttons.0.flowId, details.components.0.buttons.0.flowAction, details.components.0.buttons.0.navigateScreen, details.components.0.hasExpiration, details.messageSendTtlSeconds, details.optimization, analytics, analytics.0.sent, analytics.0.delivered, analytics.0.read, analytics.0.start, analytics.0.end, analytics.0.buttons, analytics.0.buttons.0.type, analytics.0.buttons.0.content, analytics.0.buttons.0.clicks, isMetaGenerated
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: List all templates in project
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
post:
callbacks:
Comment:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template received a comment
description: "\n Callback sent when a comment is placed on a template.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_COMMENT_ADDED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_COMMENT_ADDED
payload:
name: My WhatsApp Template
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
changes:
status: DRAFT
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: HEADER
format: LOCATION
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: REQUEST_CONTACT_INFO
text: Share Contact Info
- type: ORDER_DETAILS
text: Copy Pix code
- type: COPY_CODE
text: Copy offer code
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Approved:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template approved
description: "\n Callback sent when a template is approved.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_APPROVED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_APPROVED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Rejected:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template rejected
description: "\n Callback sent when a template is rejected.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_REJECTED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_REJECTED
payload:
name: My WhatsApp Template
state: REJECTED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
StatusUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template status updated
description: "\n Callback sent when a template status in changed to `ARCHIVED`, `DISABLED`, `FLAGGED`, `PAUSED`, `REINSTATED` or `UNPAUSED`.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_STATUS_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
newState:
description: New state for template.
type: string
enum:
- ARCHIVED
- DISABLED
- FLAGGED
- PAUSED
- REINSTATED
- UNPAUSED
x-enumDescriptions:
ARCHIVED: The template has been archived.
DISABLED: The template has been disabled.
FLAGGED: The template has been flagged for review or policy compliance issues.
PAUSED: The template has been paused and cannot be used until unpaused.
REINSTATED: The template has been reinstated after a previous restriction was lifted.
UNPAUSED: The template has been unpaused and is available for use.
comment:
description: Comment for template.
type: string
required:
- type
- payload
- newState
example:
type: WHATSAPP_TEMPLATE_STATUS_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: PAUSED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
newState: PAUSED
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Deleted:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template deleted
description: Callback sent when a template is deleted.
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case WHATSAPP_TEMPLATE_DELETED.
type: string
required:
- type
example:
type: WHATSAPP_TEMPLATE_DELETED
payload:
whatsappId: '123456'
name: My WhatsApp Template
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
QualityScoreUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template quality score updated
description: "\n Callback sent when a template quality score changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_QUALITY_SCORE_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_QUALITY_SCORE_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
CategoryUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template category updated
description: "\n Callback sent when a templates category is changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_CATEGORY_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_CATEGORY_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
FutureCategoryUpdate:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template category coming update
description: "\n Callback sent when a templates category coming to be changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_CATEGORY_FUTURE_UPDATE`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
futureCategory:
description: Future category for template.
type: string
enum:
- AUTHENTICATION
- MARKETING
- UTILITY
- UNRECOGNIZED
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
comment:
description: Comment for template.
type: string
required:
- type
- payload
- futureCategory
example:
type: WHATSAPP_TEMPLATE_CATEGORY_FUTURE_UPDATE
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
futureCategory: MARKETING
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
description: Creates a new template with the request data. If the `status` field is set to `submit` the template will be created immediately, otherwise it will be saved as a `draft`.
operationId: WhatsappTemplatesController_createTemplate_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
requestBody:
required: true
description: Template data
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappTemplateInputDto'
examples:
marketingOrUtilityFull:
summary: Marketing or Utility full example
description: "\n Full body to create a Marketing or Utility template.\n "
value:
name: my_template
category: MARKETING
language: EN
details:
components:
- type: HEADER
format: LOCATION
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: FLOW
text: Start Flow
flowId: flow-id
navigateScreen: QUESTION_ONE
flowAction: NAVIGATE
- type: REQUEST_CONTACT_INFO
- type: ORDER_DETAILS
- type: COPY_CODE
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
marketingWithOptimization:
summary: Marketing template with dynamic pricing optimization
description: "\n Body example to create a Marketing template with dynamic pricing optimization.\n "
value:
name: my_template
category: MARKETING
language: EN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
optimization:
bidAmount: 500
bidStrategy: LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
marketingOrUtilityMinimum:
summary: Minimalist Marketing or Utility example
description: "\n Minimalist body to create a Marketing or Utility template.\n "
value:
name: my_template
category: UTILITY
language: EN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
authenticationFull:
summary: Authentication full example
description: "\n Full body to create an Authentication template.\n "
value:
name: my_template
category: AUTHENTICATION
language: EN
details:
components:
- type: BODY
addSecurityRecommendation: true
- type: FOOTER
codeExpirationMinutes: 62
- type: BUTTONS
buttons:
- type: OTP
otpType: ONE_TAP
text: My copy code text
autofillText: My autofill text
packageName: com.android.chrome
signatureHash: sample+hash
supportedApps:
- packageName: com.android.chrome
signatureHash: sample+hash
- type: BUTTONS
buttons:
- type: OTP
otpType: ZERO_TAP
text: My copy code text
autofillText: My autofill text
packageName: com.android.chrome
signatureHash: sample+hash
supportedApps:
- packageName: com.android.chrome
signatureHash: sample+hash
zeroTapTermsAccepted: true
messageSendTtlSeconds: 360
authenticationMinimum:
summary: Minimalist Authentication example
description: "\n Minimalist body to create an Authentication template.\n "
value:
name: my_template
category: AUTHENTICATION
language: EN
details:
components:
- type: BODY
addSecurityRecommendation: false
- type: BUTTONS
buttons:
- type: OTP
otpType: COPY_CODE
text: Copy code
flowUtility:
summary: Start Flow Utility example
description: "\n Body example to create a Flow template of utility category.\n "
value:
name: my_template
category: UTILITY
language: EN
details:
components:
- type: BUTTONS
buttons:
- type: FLOW
flowId: flow-id
text: Start Flow
navigateScreen: QUESTION_ONE
flowAction: NAVIGATE
flowMarketing:
summary: Start Flow Marketing example
description: "\n Body example to create a Flow template of marketing category.\n "
value:
name: my_template
category: MARKETING
language: EN
details:
components:
- type: BUTTONS
buttons:
- type: FLOW
flowId: flow-id
text: Start Flow
navigateScreen: QUESTION_ONE
flowAction: NAVIGATE
responses:
'201':
description: Created template
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappTemplateDto'
examples:
response:
summary: Create response
description: "\n Response when successfully creating a template.\n "
value:
name: My WhatsApp Template
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
changes:
status: DRAFT
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: HEADER
format: LOCATION
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: REQUEST_CONTACT_INFO
text: Share Contact Info
- type: ORDER_DETAILS
text: Copy Pix code
- type: COPY_CODE
text: Copy offer code
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
invalid_input-0:
summary: InvalidInputError
value:
errorCode: invalid_input
message: Invalid input.
resolution: Correct the validation errors and submit again.
additionalInformation:
validationErrors:
- 'category must be one of the following values: AUTHENTICATION, MARKETING, UTILITY'
project_not_initialized-1:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_policies_violations-2:
summary: TemplatePoliciesViolationsError
value:
errorCode: template_policies_violations
message: Your message couldn't be sent because it includes content that other people on Facebook have reported as abusive.
resolution: Remove violating content. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_check_media_file_size-3:
summary: TemplateCheckMediaFileSizeError
value:
errorCode: template_check_media_file_size
message: Failed to check media file size.
resolution: Ensure media file URL is correct and then try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_dynamic_pricing_not_available-4:
summary: TemplateDynamicPricingNotAvailableError
value:
errorCode: template_dynamic_pricing_not_available
message: Dynamic pricing is not available for this account.
resolution: Enable dynamic pricing prerequisites for the WhatsApp Business Account before retrying.
template_invalid_category-5:
summary: TemplateInvalidCategoryError
value:
errorCode: template_invalid_category
message: Template invalid category.
resolution: 'Verify that categories are correct: AUTHENTICATION, MARKETING, UTILITY.'
template_invalid_button_example-6:
summary: TemplateInvalidButtonExampleError
value:
errorCode: template_invalid_button_example
message: Invalid button example.
resolution: Only dynamic URL buttons are allowed to have an example.
template_media_file_size_exceeds_maximum_file_size_limit-7:
summary: TemplateMediaFileSizeExceedsMaximumFileSizeLimitError
value:
errorCode: template_media_file_size_exceeds_maximum_file_size_limit
message: Template media file size exceeds maximum file size limit.
resolution: Try again with a smaller file.
file_invalid_mime_type-8:
summary: FileInvalidMimeTypeError
value:
errorCode: file_invalid_mime_type
message: 'details.components[0].headerExample.media.url: invalid file mime type.'
resolution: 'Try again with supported mime types: image/jpeg, image/png, application/pdf, video/3gp, video/mp4.'
invalid_payload-9:
summary: InvalidPayloadError
value:
errorCode: invalid_payload
message: Invalid payload.
resolution: Correct payload and submit again.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
template_exists-1:
summary: TemplateExistsError
value:
errorCode: template_exists
message: Template already exists.
resolution: Templates must have unique name and language. Change language or name and submit again.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
template_name_recently_used-2:
summary: TemplateNameRecentlyUsedError
value:
errorCode: template_name_recently_used
message: A template with the same name has been deleted within 30 days.
resolution: Use another "name" for "EN" or wait the required time.
template_incorrect_category-3:
summary: TemplateIncorrectCategoryError
value:
errorCode: template_incorrect_category
message: Template incorrect category.
resolution: 'Use a category that has been used in another language: "UTILITY".'
template_restricted_Domain_for_button_url-4:
summary: TemplateRestrictedDomainForButtonUrlError
value:
errorCode: template_restricted_Domain_for_button_url
message: Restricted domain for button url.
resolution: 'Replace any of the following restricted domains: wa.me, whatsapp.com'
file_not_found-5:
summary: FileNotFoundError
value:
errorCode: file_not_found
message: 'details.components[0].headerExample.media.url: file not found.'
resolution: Verify that the url is correct.
file_size_too_large-6:
summary: FileSizeTooLargeError
value:
errorCode: file_size_too_large
message: 'details.components[0].headerExample.media.url: file size is too large.'
resolution: Try again with a smaller file. Max size for `image/jpeg` is 5MB.
file_unexpected_error-7:
summary: FileUnexpectedErrorError
value:
errorCode: file_unexpected_error
message: 'details.components[0].headerExample.media.url: file unexpected error.'
resolution: The file cannot be handled properly. Please try with another one.
object_with_whatsapp_business_account_id_does_not_exist-8:
summary: ObjectWithWhatsappBusinessAccountIdDoesNotExistError
value:
errorCode: object_with_whatsapp_business_account_id_does_not_exist
message: WhatsApp Business Account does not exist.
resolution: Verify that WhatsApp Business ID still exists and contact support.
template_language_recently_deleted-9:
summary: TemplateLanguageRecentlyDeletedError
value:
errorCode: template_language_recently_deleted
message: A template with the same language has been deleted within 4 weeks.
resolution: Try to create EN content again in 4 weeks or create a new template.
'424':
description: FailedDependency
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_limit_reached-0:
summary: TemplateLimitReachedError
value:
errorCode: template_limit_reached
message: Number of templates has reached the limit.
resolution: Delete some templates or reach out to support to increase the template limit. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_content_already_exists-1:
summary: TemplateContentAlreadyExistsError
value:
errorCode: template_content_already_exists
message: Template cannot be submitted because the content is the same as the content in another template.
resolution: Use other template or edit template data and submit again. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_submit_error-2:
summary: TemplateSubmitErrorError
value:
errorCode: template_submit_error
message: Template submit error.
resolution: Please try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
additionalInformation:
metaError:
code: '123'
subcode: '123456'
message: Invalid parameter
description: Character Limit Exceeded
reason: field 'name' can't have more than 1,024 characters
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
whatsapp_business_api_request_limit_exceeded-0:
summary: WhatsappBusinessApiRequestLimitExceededError
value:
errorCode: whatsapp_business_api_request_limit_exceeded
message: WhatsApp business api request limit reached.
resolution: WhatsApp business API request limits reached. Please try again later.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_start_session_for_uploading_media-0:
summary: TemplateStartSessionForUploadingMediaError
value:
errorCode: template_start_session_for_uploading_media
message: Failed to start session for uploading template media example.
resolution: Please try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
internal_error-1:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
internal_error-2:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Create a template in project
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/{templateName}:
get:
description: Returns a paginated list of templates for the specified project and name. If no page token is supplied then the first `50` templates are returned in alphabetical order.
operationId: WhatsappTemplatesController_listTemplatesByName_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: pageToken
required: false
in: query
schema:
type: string
description: The page token if retrieving the next page from a previous query.
- name: pageSize
required: false
in: query
schema:
type: number
minimum: 1
maximum: 1000
description: The page size requested.
- name: fieldMask
required: false
in: query
description: Field masks are a way for API callers to list the fields that a request should return.
schema:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateDtoFieldMaskPathsEnum'
- name: templateAnalyticsDateRange
required: false
in: query
description: The date range to retrieve template analytics for. Fallback to DAY if none is set.
x-enumDescriptions:
DAY: Filters metrics collection to include data from the last 24 hours.
MONTH: Filters metrics collection to include data from the last 30 days.
QUARTER: Filters metrics collection to include data from the last 90 days.
WEEK: Filters metrics collection to include data from the last 7 days.
schema:
$ref: '#/components/schemas/WhatsappTemplateAnalyticsDateRangesEnum'
responses:
'200':
description: List of templates with the same name
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/WhatsappTemplateListDto'
- $ref: '#/components/schemas/WhatsappPartialTemplateListDto'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
invalid_page_size-1:
summary: InvalidPageSizeError
value:
errorCode: invalid_page_size
message: Page size must be numeric.
resolution: Use a integer value for pageSize parameter.
invalid_page_token-2:
summary: InvalidPageTokenError
value:
errorCode: invalid_page_token
message: Invalid page token.
resolution: The page token to use is provided in the previous query response, for new queries simply leave this field undefined.
invalid_fields-3:
summary: InvalidFieldsError
value:
errorCode: invalid_fields
message: Invalid fields.
resolution: Verify that the fields used are supported by the Provisioning API.
additionalInformation:
supportedCodes: whatsappId, state, name, language, category, rejectionCode, qualityScore, changes, changes.status, changes.allowCategoryChange, changes.details, changes.details.components, changes.details.components.0.type, changes.details.components.0.format, changes.details.components.0.text, changes.details.components.0.example, changes.details.components.0.example.url, changes.details.components.0.examples, changes.details.components.0.addSecurityRecommendation, changes.details.components.0.codeExpirationMinutes, changes.details.components.0.buttons, changes.details.components.0.buttons.0.type, changes.details.components.0.buttons.0.text, changes.details.components.0.buttons.0.phoneNumber, changes.details.components.0.buttons.0.url, changes.details.components.0.buttons.0.example, changes.details.components.0.buttons.0.otpType, changes.details.components.0.buttons.0.autofillText, changes.details.components.0.buttons.0.packageName, changes.details.components.0.buttons.0.signatureHash, changes.details.components.0.buttons.0.supportedApps, changes.details.components.0.buttons.0.supportedApps.0.packageName, changes.details.components.0.buttons.0.supportedApps.0.signatureHash, changes.details.components.0.buttons.0.zeroTapTermsAccepted, changes.details.components.0.buttons.0.flowId, changes.details.components.0.buttons.0.flowAction, changes.details.components.0.buttons.0.navigateScreen, changes.details.components.0.hasExpiration, changes.details.messageSendTtlSeconds, changes.details.optimization, details, details.components, details.components.0.type, details.components.0.format, details.components.0.text, details.components.0.example, details.components.0.example.url, details.components.0.examples, details.components.0.addSecurityRecommendation, details.components.0.codeExpirationMinutes, details.components.0.buttons, details.components.0.buttons.0.type, details.components.0.buttons.0.text, details.components.0.buttons.0.phoneNumber, details.components.0.buttons.0.url, details.components.0.buttons.0.example, details.components.0.buttons.0.otpType, details.components.0.buttons.0.autofillText, details.components.0.buttons.0.packageName, details.components.0.buttons.0.signatureHash, details.components.0.buttons.0.supportedApps, details.components.0.buttons.0.supportedApps.0.packageName, details.components.0.buttons.0.supportedApps.0.signatureHash, details.components.0.buttons.0.zeroTapTermsAccepted, details.components.0.buttons.0.flowId, details.components.0.buttons.0.flowAction, details.components.0.buttons.0.navigateScreen, details.components.0.hasExpiration, details.messageSendTtlSeconds, details.optimization, analytics, analytics.0.sent, analytics.0.delivered, analytics.0.read, analytics.0.start, analytics.0.end, analytics.0.buttons, analytics.0.buttons.0.type, analytics.0.buttons.0.content, analytics.0.buttons.0.clicks, isMetaGenerated
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: List all templates for a specific name
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
delete:
description: 'Delete template that matches the name.
If message templates with the same name exists in multiple languages, all those templates will also be deleted.
Once deleted the name can not be used for new message templates for 30 days. Use a different name to create future templates during that time period.
Messages that have been sent with the deleted template, but not yet delivered, will be attempted to be deliver for 30 days from the time of the message.'
operationId: WhatsappTemplatesController_deleteTemplatesByName_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
responses:
'204':
description: Template(s) deleted
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-1:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
whatsapp_business_api_request_limit_exceeded-0:
summary: WhatsappBusinessApiRequestLimitExceededError
value:
errorCode: whatsapp_business_api_request_limit_exceeded
message: WhatsApp business api request limit reached.
resolution: WhatsApp business API request limits reached. Please try again later.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Delete template by name
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}:
get:
description: Returns a template for a project, with the specified name and language.
operationId: WhatsappTemplatesController_getTemplate_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
- name: fieldMask
required: false
in: query
description: Field masks are a way for API callers to list the fields that a request should return.
schema:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateDtoFieldMaskPathsEnum'
- name: templateAnalyticsDateRange
required: false
in: query
description: The date range to retrieve template analytics for. Fallback to DAY if none is set.
x-enumDescriptions:
DAY: Filters metrics collection to include data from the last 24 hours.
MONTH: Filters metrics collection to include data from the last 30 days.
QUARTER: Filters metrics collection to include data from the last 90 days.
WEEK: Filters metrics collection to include data from the last 7 days.
schema:
$ref: '#/components/schemas/WhatsappTemplateAnalyticsDateRangesEnum'
responses:
'200':
description: Template
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
- $ref: '#/components/schemas/WhatsappPartialTemplateDto'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-1:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
invalid_fields-2:
summary: InvalidFieldsError
value:
errorCode: invalid_fields
message: Invalid fields.
resolution: Verify that the fields used are supported by the Provisioning API.
additionalInformation:
supportedCodes: whatsappId, state, name, language, category, rejectionCode, qualityScore, changes, changes.status, changes.allowCategoryChange, changes.details, changes.details.components, changes.details.components.0.type, changes.details.components.0.format, changes.details.components.0.text, changes.details.components.0.example, changes.details.components.0.example.url, changes.details.components.0.examples, changes.details.components.0.addSecurityRecommendation, changes.details.components.0.codeExpirationMinutes, changes.details.components.0.buttons, changes.details.components.0.buttons.0.type, changes.details.components.0.buttons.0.text, changes.details.components.0.buttons.0.phoneNumber, changes.details.components.0.buttons.0.url, changes.details.components.0.buttons.0.example, changes.details.components.0.buttons.0.otpType, changes.details.components.0.buttons.0.autofillText, changes.details.components.0.buttons.0.packageName, changes.details.components.0.buttons.0.signatureHash, changes.details.components.0.buttons.0.supportedApps, changes.details.components.0.buttons.0.supportedApps.0.packageName, changes.details.components.0.buttons.0.supportedApps.0.signatureHash, changes.details.components.0.buttons.0.zeroTapTermsAccepted, changes.details.components.0.buttons.0.flowId, changes.details.components.0.buttons.0.flowAction, changes.details.components.0.buttons.0.navigateScreen, changes.details.components.0.hasExpiration, changes.details.messageSendTtlSeconds, changes.details.optimization, details, details.components, details.components.0.type, details.components.0.format, details.components.0.text, details.components.0.example, details.components.0.example.url, details.components.0.examples, details.components.0.addSecurityRecommendation, details.components.0.codeExpirationMinutes, details.components.0.buttons, details.components.0.buttons.0.type, details.components.0.buttons.0.text, details.components.0.buttons.0.phoneNumber, details.components.0.buttons.0.url, details.components.0.buttons.0.example, details.components.0.buttons.0.otpType, details.components.0.buttons.0.autofillText, details.components.0.buttons.0.packageName, details.components.0.buttons.0.signatureHash, details.components.0.buttons.0.supportedApps, details.components.0.buttons.0.supportedApps.0.packageName, details.components.0.buttons.0.supportedApps.0.signatureHash, details.components.0.buttons.0.zeroTapTermsAccepted, details.components.0.buttons.0.flowId, details.components.0.buttons.0.flowAction, details.components.0.buttons.0.navigateScreen, details.components.0.hasExpiration, details.messageSendTtlSeconds, details.optimization, analytics, analytics.0.sent, analytics.0.delivered, analytics.0.read, analytics.0.start, analytics.0.end, analytics.0.buttons, analytics.0.buttons.0.type, analytics.0.buttons.0.content, analytics.0.buttons.0.clicks, isMetaGenerated
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Get template in project
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
delete:
description: 'Delete a template by name and language.
Please note that by default only draft is removed. Use query parameter `deleteSubmitted=true` to also remove the submitted template.
Once an approved template is deleted, the template cannot be recreated again with this name and language for 30 days. Consequently, be aware that you must use a different name to create template for this language within this 30 days long period.
If you need the template in this language soon, update the submitted template for a specific language instead of trying to delete and recreate it again.'
operationId: WhatsappTemplatesController_deleteTemplateByNameAndLanguage_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
- name: deleteSubmitted
required: false
in: query
description: Set this flag to true if you want to delete a template already submitted to Meta. Otherwise, it defaults to false, meaning that it deletes a template in "draft" state only, and throws an error if you attempt to delete a submitted template.
schema:
default: false
type: boolean
responses:
'204':
description: Template deleted
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-1:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
template_changes_not_found-1:
summary: TemplateChangesNotFoundError
value:
errorCode: template_changes_not_found
message: Template changes not found.
resolution: Verify that the template has pending changes.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
template_not_deletable_due_to_input_config-1:
summary: TemplateNotDeletableDueToInputConfigError
value:
errorCode: template_not_deletable_due_to_input_config
message: Template is not deletable due to input config.
resolution: Only draft templates will be deleted by name and language code if `deleteSubmitted` is `false` or not provided. Be aware that templates deleted for a language cannot be recreated for 30 days with the same template name. If you need the template in this language soon, update the submitted template for the language instead of trying to delete and recreate it again.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Delete template by name and language
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
patch:
callbacks:
Comment:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template received a comment
description: "\n Callback sent when a comment is placed on a template.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_COMMENT_ADDED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_COMMENT_ADDED
payload:
name: My WhatsApp Template
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
changes:
status: DRAFT
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: HEADER
format: LOCATION
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: REQUEST_CONTACT_INFO
text: Share Contact Info
- type: ORDER_DETAILS
text: Copy Pix code
- type: COPY_CODE
text: Copy offer code
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Approved:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template approved
description: "\n Callback sent when a template is approved.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_APPROVED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_APPROVED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Rejected:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template rejected
description: "\n Callback sent when a template is rejected.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_REJECTED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_REJECTED
payload:
name: My WhatsApp Template
state: REJECTED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
StatusUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template status updated
description: "\n Callback sent when a template status in changed to `ARCHIVED`, `DISABLED`, `FLAGGED`, `PAUSED`, `REINSTATED` or `UNPAUSED`.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_STATUS_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
newState:
description: New state for template.
type: string
enum:
- ARCHIVED
- DISABLED
- FLAGGED
- PAUSED
- REINSTATED
- UNPAUSED
x-enumDescriptions:
ARCHIVED: The template has been archived.
DISABLED: The template has been disabled.
FLAGGED: The template has been flagged for review or policy compliance issues.
PAUSED: The template has been paused and cannot be used until unpaused.
REINSTATED: The template has been reinstated after a previous restriction was lifted.
UNPAUSED: The template has been unpaused and is available for use.
comment:
description: Comment for template.
type: string
required:
- type
- payload
- newState
example:
type: WHATSAPP_TEMPLATE_STATUS_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: PAUSED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
newState: PAUSED
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
Deleted:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template deleted
description: Callback sent when a template is deleted.
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case WHATSAPP_TEMPLATE_DELETED.
type: string
required:
- type
example:
type: WHATSAPP_TEMPLATE_DELETED
payload:
whatsappId: '123456'
name: My WhatsApp Template
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
QualityScoreUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template quality score updated
description: "\n Callback sent when a template quality score changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_QUALITY_SCORE_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_QUALITY_SCORE_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
CategoryUpdated:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template category updated
description: "\n Callback sent when a templates category is changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_CATEGORY_UPDATED`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
comment:
description: Comment for template.
type: string
required:
- type
- payload
example:
type: WHATSAPP_TEMPLATE_CATEGORY_UPDATED
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
FutureCategoryUpdate:
'{$request.body#webhooks.target}':
post:
summary: WhatsApp Template category coming update
description: "\n Callback sent when a templates category coming to be changed.\n "
parameters:
- in: header
name: x-sinch-webhook-signature
schema:
type: string
format: SHA256-hash
example: Jc88RMjzkxPoy/fCPiL+iy7osojuUgawpjl1g6H38O8=
- in: header
name: x-sinch-webhook-signature-algorithm
schema:
type: string
const: HmacSHA256
x-enumDescriptions:
HmacSHA256: The HMAC SHA-256 signature algorithm used to validate webhook authenticity.
uniqueItems: false
example: HmacSHA256
- in: header
name: x-sinch-webhook-signature-nonce
schema:
type: string
example: 01EAW2BNWCG9DC13RS582V0ZQ3
- in: header
name: x-sinch-webhook-signature-timestamp
schema:
type: string
format: timestamp
example: '1592227387'
requestBody:
content:
application/json:
schema:
type: object
properties:
type:
description: Type of event, in this case `WHATSAPP_TEMPLATE_CATEGORY_FUTURE_UPDATE`.
type: string
payload:
description: Template at time of callback.
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDto'
futureCategory:
description: Future category for template.
type: string
enum:
- AUTHENTICATION
- MARKETING
- UTILITY
- UNRECOGNIZED
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
comment:
description: Comment for template.
type: string
required:
- type
- payload
- futureCategory
example:
type: WHATSAPP_TEMPLATE_CATEGORY_FUTURE_UPDATE
payload:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
futureCategory: MARKETING
responses:
'200':
description: Response to callback will be ignored. The call will retry if unsuccessful.
description: 'Updates a template DRAFT.
Note that it is not possible to update all fields for a template,
if you want to update a field that is not supported you will need to delete the draft and create a new one.
Update a template REJECTED / APPROVED / PAUSED / DISABLED
It is possible to update templates that have been rejected, approved, paused or disabled, we will automatically set the status to draft when update a rejected template.'
operationId: WhatsappTemplatesController_updateTemplate_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
requestBody:
required: true
description: Supported template fields to update.
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappUpdateTemplateInputDto'
examples:
value:
summary: Body request
description: "\n Example body request to update a template.\n "
value:
details:
components:
- type: HEADER
format: LOCATION
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: FLOW
text: Start Flow
flowId: flow-id
navigateScreen: QUESTION_ONE
flowAction: NAVIGATE
- type: REQUEST_CONTACT_INFO
- type: ORDER_DETAILS
- type: COPY_CODE
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
messageSendTtlSeconds: 60
marketingWithOptimization:
summary: Marketing template update with dynamic pricing optimization
description: "\n Updates the dynamic pricing optimization for an existing Marketing template.\n Dynamic pricing is available only for direct-business accounts whose WABA is enabled for maximum-price templates, is connected to a Business Manager, and has the Marketing API enabled.\n Omit `details.optimization` to leave the existing optimization unchanged.\n "
value:
status: DRAFT
category: MARKETING
details:
optimization:
bidAmount: 10
bidStrategy: LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.0'
GB: '2.8'
marketingWithoutOptimization:
summary: Remove dynamic pricing optimization from a Marketing template
description: "\n Removes the dynamic pricing optimization from an existing Marketing template.\n Set `details.optimization` to `null` to clear the existing optimization.\n "
value:
status: DRAFT
category: MARKETING
details:
optimization: null
marketingWithoutCountryMultiplierOverrides:
summary: Clear country multiplier overrides from a Marketing template
description: "\n Clears the country-specific bid multiplier overrides while keeping dynamic pricing optimization enabled.\n Set `details.optimization.bidCountryMultiplierOverrides` to `null` to clear the existing overrides.\n "
value:
status: DRAFT
category: MARKETING
details:
optimization:
bidAmount: 10
bidStrategy: LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides: null
responses:
'200':
description: Updated template draft
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappTemplateDto'
examples:
response:
summary: Update response
description: "\n Response when successfully update a template.\n "
value:
whatsappId: '123456'
name: My WhatsApp Template
state: APPROVED
category: UTILITY
language: EN_US
qualityScore: QUALITY_SCORE_GREEN
changes:
status: IN_PROGRESS
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
- type: HEADER
format: DOCUMENT
examples:
- url: https://example.com/photos/1.png
- type: HEADER
format: LOCATION
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
addSecurityRecommendation: true
- type: FOOTER
text: To track your order please click the 'Track Your Order' button
codeExpirationMinutes: 5
- type: BUTTONS
buttons:
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: OTP
otpType: COPY_CODE
text: Example text.
- type: REQUEST_CONTACT_INFO
text: Share Contact Info
- type: ORDER_DETAILS
text: Copy Pix code
- type: COPY_CODE
text: Copy offer code
examples:
- WINTER27
- type: CAROUSEL
cards:
- components:
- type: HEADER
format: IMAGE
examples:
- url: https://example.com/photos/1.png
- type: BODY
text: Good morning {{1}}, your package has arrived.
examples:
- Mr. Smith
- type: BUTTONS
buttons:
- type: URL
text: Example test
url: https://www.my-website.com?name={{1}}
examples:
- https://www.my-website.com?name=john
- type: QUICK_REPLY
text: Track Your Order
- type: PHONE_NUMBER
text: Example text.
phoneNumber: +48 777 777777
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
details:
components:
- type: HEADER
format: TEXT
text: Save {{1}}% on your next purchase!
examples:
- '20'
messageSendTtlSeconds: 60
optimization:
bidAmount: 500
bidStrategy: BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
bidCountryMultiplierOverrides:
US: '1.2'
GB: '1.1'
analytics: []
isMetaGenerated: false
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-1:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
template_policies_violations-2:
summary: TemplatePoliciesViolationsError
value:
errorCode: template_policies_violations
message: Your message couldn't be sent because it includes content that other people on Facebook have reported as abusive.
resolution: Remove violating content. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_check_media_file_size-3:
summary: TemplateCheckMediaFileSizeError
value:
errorCode: template_check_media_file_size
message: Failed to check media file size.
resolution: Ensure media file URL is correct and then try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_invalid_button_example-4:
summary: TemplateInvalidButtonExampleError
value:
errorCode: template_invalid_button_example
message: Invalid button example.
resolution: Only dynamic URL buttons are allowed to have an example.
template_media_file_size_exceeds_maximum_file_size_limit-5:
summary: TemplateMediaFileSizeExceedsMaximumFileSizeLimitError
value:
errorCode: template_media_file_size_exceeds_maximum_file_size_limit
message: Template media file size exceeds maximum file size limit.
resolution: Try again with a smaller file.
file_invalid_mime_type-6:
summary: FileInvalidMimeTypeError
value:
errorCode: file_invalid_mime_type
message: 'details.components[0].headerExample.media.url: invalid file mime type.'
resolution: 'Try again with supported mime types: image/jpeg, image/png, application/pdf, video/3gp, video/mp4.'
invalid_payload-7:
summary: InvalidPayloadError
value:
errorCode: invalid_payload
message: Invalid payload.
resolution: Correct payload and submit again.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
template_not_updatable-1:
summary: TemplateNotUpdatableError
value:
errorCode: template_not_updatable
message: Template is not updatable.
resolution: 'Updates are only supported by templates with state: APPROVED, DISABLED, PAUSED, REJECTED.'
template_changes_not_updatable-2:
summary: TemplateChangesNotUpdatableError
value:
errorCode: template_changes_not_updatable
message: Template is not updatable.
resolution: 'Updates are only supported by template changes with status: DRAFT, REJECTED.'
template_category_not_updatable-3:
summary: TemplateCategoryNotUpdatableError
value:
errorCode: template_category_not_updatable
message: Template category is not updatable.
resolution: 'Updates are only supported by template with state: DRAFT or with state: REJECTED and rejectionCode: INCORRECT_CATEGORY.'
template_allow_category_change_not_updatable-4:
summary: TemplateAllowCategoryChangeNotUpdatableError
value:
errorCode: template_allow_category_change_not_updatable
message: Template allowCategoryChange is not updatable.
resolution: 'Updates are only supported by template with state: DRAFT or with state: REJECTED and rejectionCode: INCORRECT_CATEGORY.'
template_source_not_updatable-5:
summary: TemplateSourceNotUpdatableError
value:
errorCode: template_source_not_updatable
message: Template is not updatable.
resolution: Templates generated by Meta cannot be updated.
template_name_recently_used-6:
summary: TemplateNameRecentlyUsedError
value:
errorCode: template_name_recently_used
message: A template with the same name has been deleted within 30 days.
resolution: Use another "name" for "EN" or wait the required time.
template_restricted_Domain_for_button_url-7:
summary: TemplateRestrictedDomainForButtonUrlError
value:
errorCode: template_restricted_Domain_for_button_url
message: Restricted domain for button url.
resolution: 'Replace any of the following restricted domains: wa.me, whatsapp.com'
file_not_found-8:
summary: FileNotFoundError
value:
errorCode: file_not_found
message: 'details.components[0].headerExample.media.url: file not found.'
resolution: Verify that the url is correct.
file_size_too_large-9:
summary: FileSizeTooLargeError
value:
errorCode: file_size_too_large
message: 'details.components[0].headerExample.media.url: file size is too large.'
resolution: Try again with a smaller file. Max size for `image/jpeg` is 5MB.
file_unexpected_error-10:
summary: FileUnexpectedErrorError
value:
errorCode: file_unexpected_error
message: 'details.components[0].headerExample.media.url: file unexpected error.'
resolution: The file cannot be handled properly. Please try with another one.
object_with_whatsapp_business_account_id_does_not_exist-11:
summary: ObjectWithWhatsappBusinessAccountIdDoesNotExistError
value:
errorCode: object_with_whatsapp_business_account_id_does_not_exist
message: WhatsApp Business Account does not exist.
resolution: Verify that WhatsApp Business ID still exists and contact support.
template_language_recently_deleted-12:
summary: TemplateLanguageRecentlyDeletedError
value:
errorCode: template_language_recently_deleted
message: A template with the same language has been deleted within 4 weeks.
resolution: Try to create EN content again in 4 weeks or create a new template.
'424':
description: FailedDependency
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_limit_reached-0:
summary: TemplateLimitReachedError
value:
errorCode: template_limit_reached
message: Number of templates has reached the limit.
resolution: Delete some templates or reach out to support to increase the template limit. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_content_already_exists-1:
summary: TemplateContentAlreadyExistsError
value:
errorCode: template_content_already_exists
message: Template cannot be submitted because the content is the same as the content in another template.
resolution: Use other template or edit template data and submit again. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
template_submit_error-2:
summary: TemplateSubmitErrorError
value:
errorCode: template_submit_error
message: Template submit error.
resolution: Please try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
additionalInformation:
metaError:
code: '123'
subcode: '123456'
message: Invalid parameter
description: Character Limit Exceeded
reason: field 'name' can't have more than 1,024 characters
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
whatsapp_business_api_request_limit_exceeded-0:
summary: WhatsappBusinessApiRequestLimitExceededError
value:
errorCode: whatsapp_business_api_request_limit_exceeded
message: WhatsApp business api request limit reached.
resolution: WhatsApp business API request limits reached. Please try again later.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_start_session_for_uploading_media-0:
summary: TemplateStartSessionForUploadingMediaError
value:
errorCode: template_start_session_for_uploading_media
message: Failed to start session for uploading template media example.
resolution: Please try again later. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
internal_error-1:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support. If template is saved as draft, try to submit the template again. If option "saveDraftOnFailure" is specified as "false", try the request again.
internal_error-2:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Update a template in project
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}/activities:
get:
description: Paginated list of activities for a template. Ordered from the most recent one to the oldest one.
operationId: WhatsappTemplatesController_listActivities_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
- name: pageToken
required: false
in: query
schema:
type: string
description: The page token if retrieving the next page from a previous query.
- name: pageSize
required: false
in: query
schema:
type: number
minimum: 1
maximum: 100
description: The page size requested.
responses:
'200':
description: Recent activities on template
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappTemplateNotificationListDto'
examples:
response:
summary: List template activities response
description: "\n Response for all template activities.\n "
value:
totalSize: 2
pageSize: 50
notifications:
- type: CREATED
created: '2023-01-19T13:11:08.204Z'
author: Provisioning API user
- type: COMMENT_ADDED
created: '2023-01-19T13:11:08.204Z'
comment: Example comment
author: Provisioning API user
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-1:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
invalid_page_token-2:
summary: InvalidPageTokenError
value:
errorCode: invalid_page_token
message: Invalid page token.
resolution: The page token to use is provided in the previous query response, for new queries simply leave this field undefined.
invalid_page_size-3:
summary: InvalidPageSizeError
value:
errorCode: invalid_page_size
message: Page size must be numeric.
resolution: Use a integer value for pageSize parameter.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Lists activities on project template
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}/comments:
post:
description: Creates a comment for a template.
operationId: WhatsappTemplatesController_createComment_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
requestBody:
required: true
description: Comment data
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappCommentInputDto'
examples:
input:
summary: Body request
description: "\n Example body request to create a comment.\n "
value:
comment: Example comment.
responses:
'201':
description: Created comment for a template
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappCommentDto'
examples:
created:
summary: Create response
description: "\n Response when successfully creating a comment.\n "
value:
type: CREATED
comment: Example comment
created: '2023-01-19T13:11:08.204Z'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
invalid_input-0:
summary: InvalidInputError
value:
errorCode: invalid_input
message: Invalid input.
resolution: Correct the validation errors and submit again.
additionalInformation:
validationErrors:
- comment must be longer than or equal to 1 characters
project_not_initialized-1:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-2:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
invalid_payload-3:
summary: InvalidPayloadError
value:
errorCode: invalid_payload
message: Invalid payload.
resolution: Correct payload and submit again.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Creates a comment for a template
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}/compare:
post:
description: Compare two templates.
operationId: WhatsappTemplatesController_compareTemplates_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
- name: templateName
required: true
in: path
description: The unique name of the template.
schema:
type: string
- name: languageCode
required: true
in: path
description: The language code of the specific template.
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
schema:
$ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
requestBody:
required: true
description: Compare data
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappInputTemplateCompareDto'
examples:
input:
summary: Body request
description: "\n Example body request compare templates.\n "
value:
templates:
- templateName: templateName2
templateLanguage: PL
timeframe: '60'
endTimestamp: 1694612898734
responses:
'200':
description: Compared template response
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappTemplateCompareDto'
examples:
created:
summary: Compare template response
description: "\n Response when successfully compared templates.\n "
value:
templates:
- name: templateName1
language: EN
blockOrder: 1
messageSends: 1000
topBlockReason: NO_REASON
- name: templateName1
language: PL
blockOrder: 2
messageSends: 2000
topBlockReason: NO_REASON_GIVEN
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
invalid_input-0:
summary: InvalidInputError
value:
errorCode: invalid_input
message: Invalid input.
resolution: Correct the validation errors and submit again.
additionalInformation:
validationErrors:
- templates must be an array
- templates must contain no more than 1 elements
- templates must contain at least 1 elements
project_not_initialized-1:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
template_invalid_language_code-2:
summary: TemplateInvalidLanguageCodeError
value:
errorCode: template_invalid_language_code
message: Invalid language code.
resolution: Verify that the language code used is supported by the Provisioning API and WhatsApp.
additionalInformation:
supportedCodes: AF, AR, AZ, BG, BN, CA, CS, DA, DE, EL, EN, EN_GB, EN_US, ES, ES_AR, ES_ES, ES_MX, ES_UY, 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
invalid_payload-3:
summary: InvalidPayloadError
value:
errorCode: invalid_payload
message: Invalid payload.
resolution: Correct payload and submit again.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'404':
description: NotFound
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
template_not_found-0:
summary: TemplateNotFoundError
value:
errorCode: template_not_found
message: Template not found.
resolution: Verify that the parameters are correct.
templates_compare_not_found-1:
summary: TemplatesCompareNotFoundError
value:
errorCode: templates_compare_not_found
message: Templates to compare not found.
resolution: 'Verify that the parameters are correct. No templates found for templateName: templateName and templateLanguage: EN'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
templates_not_eligible_for_comparison-1:
summary: TemplatesNotEligibleForComparisonError
value:
errorCode: templates_not_eligible_for_comparison
message: Templates not eligible for comparison.
resolution: Templates must have been sent at least 1,000 times in the specified timeframe.
templates_compare_not_unique-2:
summary: TemplatesCompareNotUniqueError
value:
errorCode: templates_compare_not_unique
message: Templates to compare not unique.
resolution: Template can't be compared with itself. Provide unique templates for comparison.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Compare two templates
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
/v1/projects/{projectId}/whatsapp/templates/sync:
post:
operationId: WhatsappTemplatesController_syncTemplates_v1
parameters:
- name: projectId
required: true
in: path
description: The unique ID of the project. You can find this on the Sinch Dashboard.
schema:
type: string
responses:
'200':
description: Templates have been synchronized for project
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
project_not_initialized-0:
summary: ProjectNotInitializedError
value:
errorCode: project_not_initialized
message: Project not initialized for WhatsApp.
resolution: Verify that the project ID is correct and that it has been onboarded for WhatsApp.
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
unauthorized_error-0:
summary: UnauthorizedErrorError
value:
errorCode: unauthorized_error
message: Unauthorized error.
resolution: Verify that projectId is correct.
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
resource_locked-0:
summary: ResourceLockedError
value:
errorCode: resource_locked
message: Resource is locked.
resolution: Another operation for this resource is already in progress. Please wait and try again.
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
too_many_requests-0:
summary: TooManyRequestsError
value:
errorCode: too_many_requests
message: Too many requests.
resolution: Please wait and try again.
'500':
description: InternalServerError
content:
application/json:
schema:
$ref: '#/components/schemas/WhatsappPapiErrorDto'
examples:
internal_error-0:
summary: InternalErrorError
value:
errorCode: internal_error
message: Internal server error.
resolution: Please wait and try again, if the error persist please contact support.
summary: Synchronize templates for project
tags:
- WhatsApp Templates
x-badges:
- name: GA
position: after
color: green
components:
schemas:
WhatsappButtonsComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappPhoneNumberButtonDto'
- $ref: '#/components/schemas/WhatsappUrlButtonDto'
- $ref: '#/components/schemas/WhatsappQuickReplyButtonDto'
- $ref: '#/components/schemas/WhatsappOtpButtonDto'
- $ref: '#/components/schemas/WhatsappFlowButtonDto'
- $ref: '#/components/schemas/WhatsappRequestContactInfoButtonDto'
- $ref: '#/components/schemas/WhatsappOrderDetailsButtonDto'
- $ref: '#/components/schemas/WhatsappCopyCodeButtonDto'
uniqueItems: false
required:
- type
- buttons
WhatsappTemplateInputDto:
type: object
properties:
status:
x-enumDescriptions:
DRAFT: Saves the pending changes as a draft without submitting them to the system.
SUBMIT: Submits the pending changes directly for processing.
description: Create as draft or submit. Defaults to submit.
default: SUBMIT
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappActionsEnum'
name:
type: string
pattern: ^[a-z0-9][a-z0-9_]*[a-z0-9]$
maxLength: 512
uniqueItems: false
language:
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputTemplateLanguagesEnum'
category:
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateInputCategoryEnum'
saveDraftOnFailure:
type: boolean
default: false
description: Flag to save template as draft if submission fails. Defaults to false.
uniqueItems: false
allowCategoryChange:
type: boolean
default: false
description: True if Meta should be allowed to change the category if they determine the category is wrong. If false, Meta might reject the template if they determine the category is wrong based on the template contents. Defaults to false.
uniqueItems: false
details:
description: '''Template input details and information.'' Not required for draft.'
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsInputDto'
required:
- name
- language
- category
- details
WhatsappTemplateCategoryEnum:
type: string
enum:
- AUTHENTICATION
- MARKETING
- UTILITY
- UNRECOGNIZED
WhatsappTemplateDto:
type: object
properties:
whatsappId:
type: string
uniqueItems: false
state:
x-enumDescriptions:
APPROVED: The template is approved and available for use.
DISABLED: The template has been disabled and is restricted from outbound messaging operations.
PAUSED: The template is temporarily paused and cannot be utilized until explicitly resumed.
PENDING: The template is queued and currently awaiting approval or processing milestones.
REJECTED: The template was rejected and cannot be used.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateStatesEnum'
name:
type: string
uniqueItems: false
language:
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
category:
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateCategoryEnum'
rejectionCode:
x-enumDescriptions:
ABUSIVE_CONTENT: The upstream gateway rejected the layout because the messaging copy violated safety, spam, or abuse criteria.
INCORRECT_CATEGORY: The upstream gateway rejected the layout because the business vertical classification does not align with the actual content.
INVALID_FORMAT: The upstream gateway rejected the layout because variable placeholders, syntax parameters, or media configurations are invalid.
NONE: The template has not faced any restriction codes or rejection events.
SCAM: The upstream gateway rejected the layout because the text patterns match fraudulent, deceptive, or financial scam signatures.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Rejection code if template is in status 'REJECTED'
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateRejectionCodeEnum'
qualityScore:
x-enumDescriptions:
QUALITY_SCORE_GREEN: Indicates an optimal template delivery standing reflecting low user block counts.
QUALITY_SCORE_RED: Indicates a severely degraded template standing, which may trigger suspension or delivery throttling.
QUALITY_SCORE_YELLOW: Indicates a warning template standing reflecting a notable increase in recent opt-out actions.
QUALITY_SCORE_UNKNOWN: The platform has not collected sufficient telemetry data to compute an active quality rating.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Quality score of the HSM.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateQualityScoreEnum'
changes:
description: Object containing changes on the template. If empty the changes has been approved and applied to the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateChangesDto'
details:
description: Template details and information.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsDto'
analytics:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateAnalyticsDto'
description: Template analytics.
uniqueItems: false
isMetaGenerated:
type: boolean
description: Indicates if the template was auto-generated by Meta.
uniqueItems: false
required:
- name
- language
- category
- analytics
- isMetaGenerated
WhatsappInputMediaHeaderExampleSupportedMimeTypesEnum:
type: string
enum:
- IMAGE/JPEG
- IMAGE/PNG
- APPLICATION/PDF
- VIDEO/3GP
- VIDEO/MP4
description: Optional mime type of file if it can not be determined by the file contents.
WhatsappInputOtpTypeEnum:
type: string
enum:
- COPY_CODE
- ONE_TAP
- ZERO_TAP
WhatsappPartialOtpButtonDto:
type: object
properties:
type:
x-enumDescriptions:
OTP: Defines an interactive component configured to transmit immediate high-volume verification tokens.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeOtpEnum'
otpType:
x-enumDescriptions:
COPY_CODE: Configures the verification layout to present a plain-text code that the user can manually copy or transfer.
ONE_TAP: Configures the verification layout to invoke a native device callback wrapper, requiring a single tap confirmation from the user.
ZERO_TAP: Configures the verification layout to execute automated background authentication handshake layers without requiring manual user input.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappOtpTypeEnum'
text:
type: string
uniqueItems: false
autofillText:
type: string
uniqueItems: false
packageName:
type: string
deprecated: true
uniqueItems: false
signatureHash:
type: string
deprecated: true
uniqueItems: false
supportedApps:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappSupportedAppDto'
zeroTapTermsAccepted:
type: boolean
uniqueItems: false
WhatsappPartialFlowButtonDto:
type: object
properties:
type:
x-enumDescriptions:
FLOW: Defines an interactive component that initializes an embedded native rich interaction flow.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeEnum'
text:
type: string
description: Text to display on the Flow button
uniqueItems: false
flowId:
type: string
description: Flow ID to launch when button is pressed
uniqueItems: false
flowAction:
x-enumDescriptions:
DATA_EXCHANGE: Triggers an asynchronous data synchronization payload transfer with the configured webhook or API endpoint.
NAVIGATE: Advances the interactive user workflow viewport context to the subsequent structural layout step.
UNKNOWN: The targeted interaction action code type cannot be resolved.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Flow action
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappFlowActionEnum'
navigateScreen:
type: string
description: The unique ID of the first screen. Required for Navigate action.
uniqueItems: false
WhatsappMediaHeaderExampleInputDto:
type: object
properties:
url:
type: string
format: url
description: 'File Requirements
1) Image
- Images must be 8-bit, RGB or RGBA
- supported mime types: `image/jpeg` or `image/png`
- max file size: `5MB`
2) Video
- Only H.264 video codec and AAC audio codec is supported.
- We support videos with a single audio stream or no audio stream.
- supported mime types: `video/3gp` or `video/mp4`
- max file size: `16MB`
3) Document
- supported mime types: `application/pdf`
- max file size: `100MB`
Not required for draft.'
uniqueItems: false
mimeType:
x-enumDescriptions:
IMAGE/JPEG: Specifies image/jpeg as a valid media format for template header variables.
IMAGE/PNG: Specifies image/png as a valid media format for template header variables.
APPLICATION/PDF: Specifies application/pdf as a valid media format for template header variables.
VIDEO/3GP: Specifies video/3gpp as a valid media format for template header variables.
VIDEO/MP4: Specifies video/mp4 as a valid media format for template header variables.
description: Optional mime type of file if it can not be determined by the file contents.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputMediaHeaderExampleSupportedMimeTypesEnum'
required:
- url
WhatsappTemplateDetailsOptimizationDto:
type: object
properties:
bidAmount:
type: number
description: 'Maximum price returned for 1,000 message deliveries, expressed in your WABA currency''s smallest unit (for example, cents for USD). Example: a value of 5000 represents $0.05 USD per delivery (5 cents x 1,000 messages).'
uniqueItems: false
bidStrategy:
x-enumDescriptions:
BID_STRATEGY_UNSPECIFIED: No bid strategy was specified for the template optimization configuration.
BID_STRATEGY_LOWEST_COST_WITH_BID_CAP: The template optimization configuration uses the lowest-cost strategy with a bid cap.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Bid strategy returned for the template optimization configuration.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappBidStrategiesEnum'
bidCountryMultiplierOverrides:
type: object
additionalProperties:
type: string
description: 'Country-specific bid multipliers returned by the upstream system, keyed by ISO 3166-1 alpha-2 country code. Values are strings to preserve decimal precision. If not provided, the default bid multiplier of 1.0 is applied for all countries. Allowed range is 0.0 to 10.0. Example: { "US": "1.2", "GB": "1.1" }.'
uniqueItems: false
required:
- bidAmount
- bidStrategy
WhatsappInputCardButtonsComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappUrlButtonInputDto'
- $ref: '#/components/schemas/WhatsappQuickReplyButtonInputDto'
- $ref: '#/components/schemas/WhatsappPhoneNumberButtonInputDto'
minItems: 1
maxItems: 2
description: '
Card buttons.
Button combinations can be a mix of quick reply buttons, phone number buttons, and URL buttons.
Not required for draft.
Fields (type, text) must not all share the same value across items.'
uniqueItems: true
required:
- type
- buttons
WhatsappTemplateAnalyticsDateRangesEnum:
type: string
enum:
- DAY
- MONTH
- QUARTER
- WEEK
WhatsappTemplateChangesDto:
type: object
properties:
status:
x-enumDescriptions:
DRAFT: The template changes are saved as a draft only.
IN_PROGRESS: The template changes have been submitted and are still processing.
REJECTED: The template changes have been reviewed and rejected.
description: "\n The current status of the changes.\n \n `DRAFT`: The changes has not been submitted.\n `IN_PROGRESS`: The changes has been submitted.\n"
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateStatusesEnum'
allowCategoryChange:
type: boolean
description: True if Meta should be allowed to change the category if they determine the category is wrong. If false, Meta might reject the template if they determine the category is wrong based on the template contents. Defaults to false.
uniqueItems: false
details:
anyOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsDto'
description: For newly created template
- $ref: '#/components/schemas/WhatsappTemplateChangesDetailsDto'
description: For update template
description: Template details and information.
uniqueItems: false
required:
- status
WhatsappTemplateStatesEnum:
type: string
enum:
- APPROVED
- DISABLED
- PAUSED
- PENDING
- REJECTED
WhatsappBodyComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
text:
type: string
uniqueItems: false
examples:
description: Examples for the body variables.
uniqueItems: false
type: array
items:
type: string
addSecurityRecommendation:
type: boolean
uniqueItems: false
required:
- type
WhatsappFooterComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
FOOTER: Defines the supplementary structural layout block used for faint text copy or legal disclaimers.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeFooterEnum'
text:
type: string
maxLength: 60
uniqueItems: false
codeExpirationMinutes:
type: number
description: Only valid if template category is AUTHENTICATION. If set will add a text detailing the expiration time.
uniqueItems: false
required:
- type
WhatsappPartialCardBodyComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
examples:
description: Examples for the body variables.
uniqueItems: false
type: array
items:
type: string
text:
type: string
description: Card body text.
uniqueItems: false
WhatsappBidStrategiesEnum:
type: string
enum:
- BID_STRATEGY_LOWEST_COST_WITH_BID_CAP
- BID_STRATEGY_UNSPECIFIED
- UNRECOGNIZED
description: Bid strategy returned for the template optimization configuration.
WhatsappFlowButtonDto:
type: object
properties:
type:
x-enumDescriptions:
FLOW: Defines an interactive component that initializes an embedded native rich interaction flow.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeEnum'
text:
type: string
description: Text to display on the Flow button
uniqueItems: false
flowId:
type: string
description: Flow ID to launch when button is pressed
uniqueItems: false
flowAction:
x-enumDescriptions:
DATA_EXCHANGE: Triggers an asynchronous data synchronization payload transfer with the configured webhook or API endpoint.
NAVIGATE: Advances the interactive user workflow viewport context to the subsequent structural layout step.
UNKNOWN: The targeted interaction action code type cannot be resolved.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Flow action
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappFlowActionEnum'
navigateScreen:
type: string
description: The unique ID of the first screen. Required for Navigate action.
uniqueItems: false
required:
- type
WhatsappLocationHeaderComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
LOCATION: Configures the structural template header block to host coordinate and geolocational location arrays.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentFormatEnum'
required:
- type
- format
WhatsappInputBidStrategiesEnum:
type: string
const: LOWEST_COST_WITH_BID_CAP
description: Bid strategy to use for the template optimization configuration.
WhatsappPartialBodyComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
text:
type: string
uniqueItems: false
examples:
description: Examples for the body variables.
uniqueItems: false
type: array
items:
type: string
addSecurityRecommendation:
type: boolean
uniqueItems: false
WhatsappPartialTemplateAnalyticsButtonsDto:
type: object
properties:
type:
x-enumDescriptions:
QUICK_REPLY: Aggregates interaction metrics for static pre-configured response buttons.
UNIQUE_URL: Aggregates interaction metrics for call-to-action buttons configured with dynamic tracking URLs.
URL: Aggregates interaction metrics for call-to-action buttons redirecting to static web hyperlinks.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Type of button.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateAnalyticsButtonTypesEnum'
content:
type: string
description: Content of the button.
uniqueItems: false
clicks:
type: number
description: Number of times the button has been clicked.
uniqueItems: false
WhatsappInputUpdateTemplateDetailsOptimization:
type: object
properties:
bidAmount:
type: number
minimum: 0
description: 'Maximum price to bid for 1,000 message deliveries, expressed in your WABA currency''s smallest unit (for example, cents for USD). Example: a value of 5000 represents $0.05 USD per delivery (5 cents x 1,000 messages).'
uniqueItems: false
bidStrategy:
x-enumDescriptions:
LOWEST_COST_WITH_BID_CAP: Use the lowest-cost strategy with a bid cap.
description: Bid strategy to use for the template optimization configuration.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputBidStrategiesEnum'
bidCountryMultiplierOverrides:
type:
- object
- 'null'
additionalProperties:
type: string
description: 'Optional country-specific bid multipliers, keyed by ISO 3166-1 alpha-2 country code. Values must be strings to preserve decimal precision. If not provided, the default bid multiplier of 1.0 is applied for all countries. Allowed range is 0.0 to 10.0. Example: { "US": "1.2", "GB": "1.1" }.'
uniqueItems: false
required:
- bidAmount
- bidStrategy
WhatsappTextHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
TEXT: Configures the structural template header block to host alphanumeric text copy strings.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTextHeaderComponentFormatEnum'
text:
type: string
description: Text to show in the header
uniqueItems: false
example:
type: string
description: Example for the header variable.
uniqueItems: false
required:
- type
- format
WhatsappLimitedTimeOfferComponentDto:
type: object
properties:
type:
x-enumDescriptions:
LIMITED_TIME_OFFER: Defines a dynamic structural layout block for showcasing time-sensitive promotional offers and urgency-driven purchase incentives.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeLimitedTimeOfferEnum'
text:
type: string
description: Offer details text.
uniqueItems: false
hasExpiration:
type: boolean
description: Indicates if the offer expiration details appear in the delivered message.
uniqueItems: false
required:
- type
- hasExpiration
WhatsappPartialTemplateChangesDto:
type: object
properties:
status:
x-enumDescriptions:
DRAFT: The template changes are saved as a draft only.
IN_PROGRESS: The template changes have been submitted and are still processing.
REJECTED: The template changes have been reviewed and rejected.
description: "\n The current status of the changes.\n \n `DRAFT`: The changes has not been submitted.\n `IN_PROGRESS`: The changes has been submitted.\n"
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateStatusesEnum'
allowCategoryChange:
type: boolean
description: True if Meta should be allowed to change the category if they determine the category is wrong. If false, Meta might reject the template if they determine the category is wrong based on the template contents. Defaults to false.
uniqueItems: false
details:
oneOf:
- $ref: '#/components/schemas/WhatsappPartialTemplateDetailsDto'
description: For newly created template
- $ref: '#/components/schemas/WhatsappTemplateChangesDetailsDto'
description: For update template
description: Template details and information.
uniqueItems: false
WhatsappPartialCardDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappPartialCardHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappPartialCardBodyComponentDto'
- $ref: '#/components/schemas/WhatsappPartialCardButtonsComponentDto'
description: List of components in the cards.
uniqueItems: false
WhatsappButtonTypeQuickReplyEnum:
type: string
const: QUICK_REPLY
WhatsappInputTemplateCompareIdentifierDto:
type: object
properties:
templateName:
type: string
pattern: ^[a-z0-9][a-z0-9_]*[a-z0-9]$
description: Template name
uniqueItems: false
templateLanguage:
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Template language
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
required:
- templateName
- templateLanguage
WhatsappComponentTypeHeaderEnum:
type: string
const: HEADER
WhatsappCardBodyComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
examples:
description: Examples for the body variables.
uniqueItems: false
type: array
items:
type: string
text:
type: string
description: Card body text.
uniqueItems: false
required:
- type
WhatsappPhoneNumberButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
PHONE_NUMBER: Defines an interactive component that routes natively to the host hardware dialer array.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypePhoneNumberEnum'
text:
type: string
minLength: 1
maxLength: 25
description: Not required for draft.
uniqueItems: false
phoneNumber:
type: string
format: phone number
description: Not required for draft.
uniqueItems: false
required:
- type
- text
- phoneNumber
WhatsappButtonTypePhoneNumberEnum:
type: string
const: PHONE_NUMBER
WhatsappMediaHeaderComponentFormatEnum:
type: string
enum:
- DOCUMENT
- IMAGE
- VIDEO
WhatsappRequestContactInfoButtonDto:
type: object
properties:
type:
x-enumDescriptions:
REQUEST_CONTACT_INFO: Defines an interactive component that prompts native interface sharing configurations to harvest user identity footprints.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeRequestContactInfoEnum'
text:
type: string
uniqueItems: false
required:
- type
WhatsappCommentTypeEnum:
type: string
const: CREATED
WhatsappTemplateCompareBlockReasonsEnum:
type: string
enum:
- NO_LONGER_NEEDED
- NO_REASON
- NO_REASON_GIVEN
- NO_SIGN_UP
- OFFENSIVE_MESSAGES
- OTHER
- OTP_DID_NOT_REQUEST
- SPAM
- UNKNOWN_BLOCK_REASON
- UNRECOGNIZED
description: Block reason
WhatsappComponentTypeButtonsEnum:
type: string
const: BUTTONS
WhatsappButtonTypeCopyCodeEnum:
type: string
const: COPY_CODE
WhatsappPartialMediaHeaderExampleDto:
type: object
properties:
url:
type: string
format: url
uniqueItems: false
WhatsappLocationHeaderComponentFormatEnum:
type: string
const: LOCATION
WhatsappUrlButtonDto:
type: object
properties:
type:
x-enumDescriptions:
URL: Defines an interactive component that switches viewports out of the client app into a dedicated browser environment.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeUrlEnum'
text:
type: string
uniqueItems: false
url:
type: string
format: url
uniqueItems: false
examples:
- type: string
format: url
uniqueItems: false
required:
- type
WhatsappTemplateRejectionCodeEnum:
type: string
enum:
- ABUSIVE_CONTENT
- INCORRECT_CATEGORY
- INVALID_FORMAT
- NONE
- SCAM
- UNRECOGNIZED
description: Rejection code if template is in status 'REJECTED'
WhatsappCardHeaderComponentFormatsEnum:
type: string
enum:
- IMAGE
- VIDEO
description: Card header format.
WhatsappUrlButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
URL: Defines an interactive component that switches viewports out of the client app into a dedicated browser environment.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeUrlEnum'
text:
type: string
minLength: 1
maxLength: 25
description: Not required for draft.
uniqueItems: false
url:
type: string
format: url
description: "\n The url address. To make it dynamic you can add '{{1}}' to the end of the url eg,\n\n https://www.my-website.com?name={{1}}, and not\n\n https://www.my-{{1}}.com.\n\n Restricted domains: `wa.me` or `whatsapp.com`\n \nNot required for draft."
uniqueItems: false
examples:
- type: string
format: url
description: "\n Example of the full url together with the dynamic value. Required if there is a {{1}} in the URL field, eg\n \n If the 'url' field is 'https://www.my-website.com?name={{1}}', then example can have the following value\n\n 'example' = 'https://www.my-website.com?name=john'\n \nNot required for draft."
uniqueItems: false
required:
- type
- text
- url
WhatsappCardButtonsComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappUrlButtonDto'
- $ref: '#/components/schemas/WhatsappQuickReplyButtonDto'
- $ref: '#/components/schemas/WhatsappPhoneNumberButtonDto'
description: Card buttons.
uniqueItems: false
required:
- type
- buttons
WhatsappTemplateLanguagesEnum:
type: string
enum:
- AF
- AR
- AZ
- BG
- BN
- CA
- CS
- DA
- DE
- EL
- EN
- EN_GB
- EN_US
- ES
- ES_AR
- ES_ES
- ES_MX
- ES_UY
- 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
WhatsappPartialMediaHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
DOCUMENT: Configures the structural template header block to host file and document media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentFormatEnum'
examples:
- uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappPartialMediaHeaderExampleDto'
WhatsappPartialCardHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
description: Card header format.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappCardHeaderComponentFormatsEnum'
examples:
- description: Uploaded media asset handle.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappPartialMediaHeaderExampleDto'
WhatsappSupportedAppInputDto:
type: object
properties:
packageName:
type: string
description: Your Android app's package name.
uniqueItems: false
signatureHash:
type: string
description: Your app signing key hash.
uniqueItems: false
required:
- packageName
- signatureHash
WhatsappTemplateInputCategoryEnum:
type: string
enum:
- AUTHENTICATION
- MARKETING
- UTILITY
WhatsappUpdateTemplateInputDto:
type: object
properties:
status:
x-enumDescriptions:
DRAFT: Saves the pending changes as a draft without submitting them to the system.
SUBMIT: Submits the pending changes directly for processing.
default: DRAFT
description: Create as draft or submit. Defaults to draft.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappActionsEnum'
category:
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
description: Works if status template is DRAFT or it was rejected with INCORRECT_CATEGORY.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateInputCategoryEnum'
allowCategoryChange:
type: boolean
description: Works if status template is DRAFT or it was rejected with INCORRECT_CATEGORY True if Meta should be allowed to change the category if they determine the category is wrong. If false, Meta might reject the template if they determine the category is wrong based on the template contents. Defaults to false.
uniqueItems: false
details:
description: '''Template input details and information.'' Not required for draft.'
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappUpdateTemplateDetailsInputDto'
WhatsappOtpButtonDto:
type: object
properties:
type:
x-enumDescriptions:
OTP: Defines an interactive component configured to transmit immediate high-volume verification tokens.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeOtpEnum'
otpType:
x-enumDescriptions:
COPY_CODE: Configures the verification layout to present a plain-text code that the user can manually copy or transfer.
ONE_TAP: Configures the verification layout to invoke a native device callback wrapper, requiring a single tap confirmation from the user.
ZERO_TAP: Configures the verification layout to execute automated background authentication handshake layers without requiring manual user input.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappOtpTypeEnum'
text:
type: string
uniqueItems: false
autofillText:
type: string
uniqueItems: false
packageName:
type: string
deprecated: true
uniqueItems: false
signatureHash:
type: string
deprecated: true
uniqueItems: false
supportedApps:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappSupportedAppDto'
zeroTapTermsAccepted:
type: boolean
uniqueItems: false
required:
- type
- otpType
WhatsappInputCardMediaHeaderExampleDto:
type: object
properties:
url:
type: string
format: url
description: 'File Requirements
1) Image
- Images must be 8-bit, RGB or RGBA
- supported mime types: `image/jpeg` or `image/png`
- max file size: `5MB`
2) Video
- Only H.264 video codec and AAC audio codec is supported.
- We support videos with a single audio stream or no audio stream.
- supported mime types: `video/3gp` or `video/mp4`
- max file size: `16MB`
Not required for draft.'
uniqueItems: false
mimeType:
x-enumDescriptions:
IMAGE/JPEG: Specifies image/jpeg as a valid media format for rich card header variables.
IMAGE/PNG: Specifies image/png as a valid media format for rich card header variables.
VIDEO/3GP: Specifies video/3gpp as a valid media format for rich card header variables.
VIDEO/MP4: Specifies video/mp4 as a valid media format for rich card header variables.
description: Optional mime type of file if it can not be determined by the file contents.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputCardMediaHeaderExampleSupportedMimeTypesEnum'
required:
- url
WhatsappMediaHeaderComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
DOCUMENT: Configures the structural template header block to host file and document media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentFormatEnum'
examples:
- description: Not required for draft.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderExampleInputDto'
required:
- type
- format
- example
WhatsappPartialButtonsComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappPartialPhoneNumberButtonDto'
- $ref: '#/components/schemas/WhatsappPartialUrlButtonDto'
- $ref: '#/components/schemas/WhatsappPartialQuickReplyButtonDto'
- $ref: '#/components/schemas/WhatsappPartialOtpButtonDto'
- $ref: '#/components/schemas/WhatsappPartialFlowButtonDto'
uniqueItems: false
WhatsappInputTemplateDetailsOptimization:
type: object
properties:
bidAmount:
type: number
minimum: 0
description: 'Maximum price to bid for 1,000 message deliveries, expressed in your WABA currency''s smallest unit (for example, cents for USD). Example: a value of 5000 represents $0.05 USD per delivery (5 cents x 1,000 messages).'
uniqueItems: false
bidStrategy:
x-enumDescriptions:
LOWEST_COST_WITH_BID_CAP: Use the lowest-cost strategy with a bid cap.
description: Bid strategy to use for the template optimization configuration.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputBidStrategiesEnum'
bidCountryMultiplierOverrides:
type: object
additionalProperties:
type: string
description: 'Optional country-specific bid multipliers, keyed by ISO 3166-1 alpha-2 country code. Values must be strings to preserve decimal precision. If not provided, the default bid multiplier of 1.0 is applied for all countries. Allowed range is 0.0 to 10.0. Example: { "US": "1.2", "GB": "1.1" }.'
uniqueItems: false
required:
- bidAmount
- bidStrategy
WhatsappInputCardMediaHeaderExampleSupportedMimeTypesEnum:
type: string
enum:
- IMAGE/JPEG
- IMAGE/PNG
- VIDEO/3GP
- VIDEO/MP4
description: Optional mime type of file if it can not be determined by the file contents.
WhatsappCopyCodeButtonDto:
type: object
properties:
type:
x-enumDescriptions:
COPY_CODE: Defines an interactive component that copies a code snippet.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeCopyCodeEnum'
text:
type: string
uniqueItems: false
examples:
- type: string
uniqueItems: false
required:
- type
WhatsappMediaHeaderExampleDto:
type: object
properties:
url:
type: string
format: url
uniqueItems: false
WhatsappCardHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
description: Card header format.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappCardHeaderComponentFormatsEnum'
examples:
- description: Uploaded media asset handle.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderExampleDto'
required:
- type
- format
WhatsappButtonTypeEnum:
type: string
const: FLOW
WhatsappMediaHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
DOCUMENT: Configures the structural template header block to host file and document media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentFormatEnum'
examples:
- uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappMediaHeaderExampleDto'
required:
- type
- format
WhatsappPartialTemplateDetailsDto:
type: object
properties:
messageSendTtlSeconds:
type: number
description: "\n Template message delivery retry time-to-live (TTL) override value. If unable to deliver the template message, it will be periodically retry for this period of time. If it is unable to deliver the message for this period of time, the message will be dropped.\n\n| | AUTHENTICATION | MARKETING | UTILITY |\n| -- | -- | -- | -- |\n| Default | 10 minutes | 30 days | 30 days |\n| Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours |\n| Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds |\n\n Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.\n "
uniqueItems: false
optimization:
description: Optimization settings for the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsOptimizationDto'
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappPartialTextHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappPartialMediaHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappPartialBodyComponentDto'
- $ref: '#/components/schemas/WhatsappPartialFooterComponentDto'
- $ref: '#/components/schemas/WhatsappPartialButtonsComponentDto'
- $ref: '#/components/schemas/WhatsappPartialLocationHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappPartialCarouselComponentDto'
- $ref: '#/components/schemas/WhatsappPartialLimitedTimeOfferComponentDto'
description: List of components in the template. Must contain a BODY component and can only have one entry of each type.
uniqueItems: false
WhatsappUpdateTemplateDetailsInputDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappTextHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappBodyComponentInputDto'
- $ref: '#/components/schemas/WhatsappFooterComponentInputDto'
- $ref: '#/components/schemas/WhatsappButtonsComponentInputDto'
- $ref: '#/components/schemas/WhatsappInputCarouselComponentDto'
- $ref: '#/components/schemas/WhatsappLimitedTimeOfferComponentInputDto'
description: List of components in the template. Must contain a BODY component and can only have one entry of each type. Not required for draft. Field 'type' must have unique values across items.
uniqueItems: true
messageSendTtlSeconds:
type: number
description: "\n Template message delivery retry time-to-live (TTL) override value. If unable to deliver the template message, it will be periodically retry for this period of time. If it is unable to deliver the message for this period of time, the message will be dropped.\n\n| | AUTHENTICATION | MARKETING | UTILITY |\n| -- | -- | -- | -- |\n| Default | 10 minutes | 30 days | 30 days |\n| Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours |\n| Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds |\n\n Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.\n "
uniqueItems: false
optimization:
description: Optimization settings for the template.
uniqueItems: false
type:
- object
- 'null'
allOf:
- $ref: '#/components/schemas/WhatsappInputUpdateTemplateDetailsOptimization'
WhatsappCommentInputDto:
type: object
properties:
comment:
type: string
minLength: 1
maxLength: 65535
uniqueItems: false
required:
- comment
WhatsappPartialUrlButtonDto:
type: object
properties:
type:
x-enumDescriptions:
URL: Defines an interactive component that switches viewports out of the client app into a dedicated browser environment.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeUrlEnum'
text:
type: string
uniqueItems: false
url:
type: string
format: url
uniqueItems: false
examples:
- type: string
format: url
uniqueItems: false
WhatsappInputFlowActionEnum:
type: string
enum:
- DATA_EXCHANGE
- NAVIGATE
description: Flow action. Not required for draft.
WhatsappInputCardHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
IMAGE: Configures the structural template header block to host static image media assets.
VIDEO: Configures the structural template header block to host short video media assets.
description: Card header format.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappCardHeaderComponentFormatsEnum'
examples:
- description: '
Uploaded media asset handle.
Media assets are automatically cropped to a wide ratio based on the WhatsApp user''s device.
Not required for draft.
'
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputCardMediaHeaderExampleDto'
required:
- type
- format
- example
WhatsappButtonTypeOrderDetailsEnum:
type: string
const: ORDER_DETAILS
WhatsappPartialTemplateListDto:
type: object
properties:
totalSize:
type: number
description: Total size of the entries matching the search query.
uniqueItems: false
pageSize:
type: number
description: Requested size of the page.
uniqueItems: false
previousPageToken:
type: string
description: Encoded token to use in list request to fetch previous batch of entries.
uniqueItems: false
nextPageToken:
type: string
description: Encoded token to use in list request to fetch next batch of entries.
uniqueItems: false
templates:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappPartialTemplateDto'
required:
- totalSize
- pageSize
- templates
WhatsappInputCarouselComponentDto:
type: object
properties:
type:
x-enumDescriptions:
CAROUSEL: Defines a dynamic multimedia block configured with horizontal scrolling multi-card cards.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeCarouselEnum'
cards:
type: array
items:
$ref: '#/components/schemas/WhatsappInputCardDto'
minItems: 1
maxItems: 10
description: "\nMedia cards.\nAll cards defined on a template must have the same components.\nIt is only necessary to define two product cards upon template creation. \nAn approved template with two product cards can be used to send up to 10 cards in a template message.\nNot required for draft.\n"
uniqueItems: false
required:
- type
- cards
WhatsappOrderDetailsButtonDto:
type: object
properties:
type:
x-enumDescriptions:
ORDER_DETAILS: Defines an interactive component that directs the customer to systemic order tracking metadata views.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeOrderDetailsEnum'
text:
type: string
uniqueItems: false
required:
- type
WhatsappButtonsComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappFlowButtonInputDto'
- $ref: '#/components/schemas/WhatsappOtpButtonInputDto'
- $ref: '#/components/schemas/WhatsappPhoneNumberButtonInputDto'
- $ref: '#/components/schemas/WhatsappQuickReplyButtonInputDto'
- $ref: '#/components/schemas/WhatsappRequestContactInfoButtonInputDto'
- $ref: '#/components/schemas/WhatsappOrderDetailsButtonInputDto'
- $ref: '#/components/schemas/WhatsappUrlButtonInputDto'
- $ref: '#/components/schemas/WhatsappCopyCodeButtonInputDto'
minItems: 1
description: Not required for draft. Each field in (value, text) must have unique values across items.
uniqueItems: true
required:
- type
- buttons
WhatsappSupportedAppDto:
type: object
properties:
packageName:
type: string
uniqueItems: false
signatureHash:
type: string
uniqueItems: false
required:
- packageName
- signatureHash
WhatsappPartialTemplateAnalyticsDto:
type: object
properties:
sent:
type: number
description: Number of times template has been sent.
uniqueItems: false
delivered:
type: number
description: Number of times template has been delivered.
uniqueItems: false
read:
type: number
description: Number of times template has been read.
uniqueItems: false
start:
type: string
description: The UTC Date Time in ISO 8601 for start of date range.
uniqueItems: false
end:
type: string
description: The UTC Date Time in ISO 8601 for end of date range.
uniqueItems: false
buttons:
type: array
items:
$ref: '#/components/schemas/WhatsappPartialTemplateAnalyticsButtonsDto'
description: Number of times buttons in the template has been clicked.
uniqueItems: false
WhatsappComponentTypeBodyEnum:
type: string
const: BODY
WhatsappPartialTextHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
TEXT: Configures the structural template header block to host alphanumeric text copy strings.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTextHeaderComponentFormatEnum'
text:
type: string
description: Text to show in the header
uniqueItems: false
example:
type: string
description: Example for the header variable.
uniqueItems: false
WhatsappPartialQuickReplyButtonDto:
type: object
properties:
type:
x-enumDescriptions:
QUICK_REPLY: Defines an interactive component that routes immediate, automated textual response payloads back to the host gateway.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeQuickReplyEnum'
text:
type: string
uniqueItems: false
WhatsappFooterComponentDto:
type: object
properties:
type:
x-enumDescriptions:
FOOTER: Defines the supplementary structural layout block used for faint text copy or legal disclaimers.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeFooterEnum'
text:
type: string
uniqueItems: false
codeExpirationMinutes:
type: number
uniqueItems: false
required:
- type
WhatsappTextHeaderComponentFormatEnum:
type: string
const: TEXT
WhatsappTemplateDetailsDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappTextHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappBodyComponentDto'
- $ref: '#/components/schemas/WhatsappFooterComponentDto'
- $ref: '#/components/schemas/WhatsappButtonsComponentDto'
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappCarouselComponentDto'
- $ref: '#/components/schemas/WhatsappLimitedTimeOfferComponentDto'
description: List of components in the template. Must contain a BODY component and can only have one entry of each type.
uniqueItems: false
messageSendTtlSeconds:
type: number
description: "\n Template message delivery retry time-to-live (TTL) override value. If unable to deliver the template message, it will be periodically retry for this period of time. If it is unable to deliver the message for this period of time, the message will be dropped.\n\n| | AUTHENTICATION | MARKETING | UTILITY |\n| -- | -- | -- | -- |\n| Default | 10 minutes | 30 days | 30 days |\n| Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours |\n| Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds |\n\n Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.\n "
uniqueItems: false
optimization:
description: Optimization settings for the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsOptimizationDto'
required:
- components
WhatsappButtonTypeFlowEnum:
type: string
const: FLOW
WhatsappPapiErrorDto:
type: object
properties:
errorCode:
type: string
description: Error code identifying the type of error.
uniqueItems: false
message:
type: string
description: Human-readable error message.
uniqueItems: false
resolution:
type: string
description: Suggested resolution for the error.
uniqueItems: false
additionalInformation:
type: object
additionalProperties:
oneOf:
- type: array
items:
type: string
description: Additional context about the error.
uniqueItems: false
required:
- errorCode
- message
- resolution
WhatsappTextHeaderComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
TEXT: Configures the structural template header block to host alphanumeric text copy strings.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTextHeaderComponentFormatEnum'
text:
type: string
maxLength: 60
minLength: 1
description: Text to show in the header. Can contain one header variable. Not required for draft.
uniqueItems: false
examples:
- type: string
minLength: 1
description: Example for the header variable. Required if there is a variable in the text header.
uniqueItems: false
required:
- type
- format
- text
WhatsappCarouselComponentDto:
type: object
properties:
type:
x-enumDescriptions:
CAROUSEL: Defines a dynamic multimedia block configured with horizontal scrolling multi-card cards.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeCarouselEnum'
cards:
description: Media cards.
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappCardDto'
required:
- type
- cards
WhatsappPartialCardButtonsComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BUTTONS: Defines the interactive layout block hosting quick reply or call-to-action components.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeButtonsEnum'
buttons:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappPartialUrlButtonDto'
- $ref: '#/components/schemas/WhatsappPartialQuickReplyButtonDto'
- $ref: '#/components/schemas/WhatsappPartialPhoneNumberButtonDto'
description: Card buttons.
uniqueItems: false
WhatsappOtpButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
OTP: Defines an interactive component configured to transmit immediate high-volume verification tokens.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeOtpEnum'
otpType:
x-enumDescriptions:
COPY_CODE: Configures the verification layout to present a plain-text code that the user can manually copy or transfer.
ONE_TAP: Configures the verification layout to invoke a native device callback wrapper, requiring a single tap confirmation from the user.
ZERO_TAP: Configures the verification layout to execute automated background authentication handshake layers without requiring manual user input.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputOtpTypeEnum'
text:
type: string
minLength: 1
maxLength: 25
description: Not required for draft.
uniqueItems: false
autofillText:
type: string
maxLength: 25
description: One-tap autofill button label text.
uniqueItems: false
packageName:
type: string
deprecated: true
description: Your Android app's package name.
uniqueItems: false
signatureHash:
type: string
deprecated: true
description: Your app signing key hash.
uniqueItems: false
supportedApps:
description: List of supported apps for the OTP button.
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappSupportedAppInputDto'
zeroTapTermsAccepted:
type: boolean
description: Set to true to indicate that you understand that your use of zero-tap authentication is subject to the WhatsApp Business Terms of Service, and that it's your responsibility to ensure your customers expect that the code will be automatically filled in on their behalf when they choose to receive the zero-tap code through WhatsApp.
uniqueItems: false
required:
- type
- otpType
- text
WhatsappCopyCodeButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
COPY_CODE: Defines an interactive component that copies a code snippet.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeCopyCodeEnum'
examples:
- type: string
maxLength: 20
minLength: 1
description: Sample code.
uniqueItems: false
required:
- type
- example
WhatsappTemplateStatusesEnum:
type: string
enum:
- DRAFT
- IN_PROGRESS
- REJECTED
description: "\n The current status of the changes.\n \n `DRAFT`: The changes has not been submitted.\n `IN_PROGRESS`: The changes has been submitted.\n"
WhatsappButtonTypeRequestContactInfoEnum:
type: string
const: REQUEST_CONTACT_INFO
WhatsappTemplateCompareDto:
type: object
properties:
templates:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateCompareIdentifierDto'
description: List of templates
uniqueItems: false
required:
- templates
WhatsappTemplateAnalyticsDto:
type: object
properties:
sent:
type: number
description: Number of times template has been sent.
uniqueItems: false
delivered:
type: number
description: Number of times template has been delivered.
uniqueItems: false
read:
type: number
description: Number of times template has been read.
uniqueItems: false
start:
type: string
description: The UTC Date Time in ISO 8601 for start of date range.
uniqueItems: false
end:
type: string
description: The UTC Date Time in ISO 8601 for end of date range.
uniqueItems: false
buttons:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateAnalyticsButtonsDto'
description: Number of times buttons in the template has been clicked.
uniqueItems: false
required:
- sent
- delivered
- read
- start
- end
- buttons
WhatsappOtpTypeEnum:
type: string
enum:
- COPY_CODE
- ONE_TAP
- ZERO_TAP
- UNRECOGNIZED
WhatsappTemplateNotificationListDto:
type: object
properties:
totalSize:
type: number
description: Total size of the entries matching the search query.
uniqueItems: false
pageSize:
type: number
description: Requested size of the page.
uniqueItems: false
previousPageToken:
type: string
description: Encoded token to use in list request to fetch previous batch of entries.
uniqueItems: false
nextPageToken:
type: string
description: Encoded token to use in list request to fetch next batch of entries.
uniqueItems: false
notifications:
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateNotificationDto'
uniqueItems: false
required:
- totalSize
- pageSize
- notifications
WhatsappButtonTypeOtpEnum:
type: string
const: OTP
WhatsappTemplateDetailsInputDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappTextHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentInputDto'
- $ref: '#/components/schemas/WhatsappBodyComponentInputDto'
- $ref: '#/components/schemas/WhatsappFooterComponentInputDto'
- $ref: '#/components/schemas/WhatsappButtonsComponentInputDto'
- $ref: '#/components/schemas/WhatsappInputCarouselComponentDto'
- $ref: '#/components/schemas/WhatsappLimitedTimeOfferComponentInputDto'
description: List of components in the template. Must contain a BODY component and can only have one entry of each type. Not required for draft. Field 'type' must have unique values across items.
uniqueItems: true
messageSendTtlSeconds:
type: number
description: "\n Template message delivery retry time-to-live (TTL) override value. If unable to deliver the template message, it will be periodically retry for this period of time. If it is unable to deliver the message for this period of time, the message will be dropped.\n\n| | AUTHENTICATION | MARKETING | UTILITY |\n| -- | -- | -- | -- |\n| Default | 10 minutes | 30 days | 30 days |\n| Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours |\n| Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds |\n\n Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.\n "
uniqueItems: false
optimization:
description: Optimization settings for the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputTemplateDetailsOptimization'
required:
- components
WhatsappInputTemplateLanguagesEnum:
type: string
enum:
- AF
- AR
- AZ
- BG
- BN
- CA
- CS
- DA
- DE
- EL
- EN
- EN_GB
- EN_US
- ES
- ES_AR
- ES_ES
- ES_MX
- ES_UY
- 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
WhatsappPartialPhoneNumberButtonDto:
type: object
properties:
type:
x-enumDescriptions:
PHONE_NUMBER: Defines an interactive component that routes natively to the host hardware dialer array.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypePhoneNumberEnum'
text:
type: string
uniqueItems: false
phoneNumber:
type: string
format: phone number
uniqueItems: false
WhatsappInputTemplateCompareTimeframesEnum:
type: string
enum:
- '30'
- '60'
- '7'
- '90'
description: Timeframes are limited to 7, 30, 60 and 90 day lookbacks from the time of the request
WhatsappQuickReplyButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
QUICK_REPLY: Defines an interactive component that routes immediate, automated textual response payloads back to the host gateway.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeQuickReplyEnum'
text:
type: string
minLength: 1
maxLength: 25
description: Not required for draft.
uniqueItems: false
required:
- type
- text
WhatsappInputTemplateCompareDto:
type: object
properties:
templates:
type: array
items:
$ref: '#/components/schemas/WhatsappInputTemplateCompareIdentifierDto'
minItems: 1
maxItems: 1
description: List of templates
uniqueItems: false
timeframe:
x-enumDescriptions:
'7': Configures the aggregation engine to contrast metrics over a rolling 7-day interval.
'30': Configures the aggregation engine to contrast metrics over a rolling 30-day interval.
'60': Configures the aggregation engine to contrast metrics over a rolling 60-day interval.
'90': Configures the aggregation engine to contrast metrics over a rolling 90-day interval.
default: '7'
description: Timeframes are limited to 7, 30, 60 and 90 day lookbacks from the time of the request
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputTemplateCompareTimeframesEnum'
endTimestamp:
type: number
format: timestamp
description: 'End of timeframe (default: now)'
uniqueItems: false
required:
- templates
WhatsappLocationHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
LOCATION: Configures the structural template header block to host coordinate and geolocational location arrays.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentFormatEnum'
required:
- type
- format
WhatsappTemplateChangesDetailsDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappTextHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappMediaHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappBodyComponentDto'
- $ref: '#/components/schemas/WhatsappFooterComponentDto'
- $ref: '#/components/schemas/WhatsappButtonsComponentDto'
- $ref: '#/components/schemas/WhatsappCarouselComponentDto'
- $ref: '#/components/schemas/WhatsappLimitedTimeOfferComponentDto'
description: "\n The current status of the changes.\n \n `DRAFT`: The changes has not been submitted.\n `IN_PROGRESS`: The changes has been submitted.\n"
uniqueItems: false
messageSendTtlSeconds:
type: number
description: "\n Template message delivery retry time-to-live (TTL) override value. If unable to deliver the template message, it will be periodically retry for this period of time. If it is unable to deliver the message for this period of time, the message will be dropped.\n\n| | AUTHENTICATION | MARKETING | UTILITY |\n| -- | -- | -- | -- |\n| Default | 10 minutes | 30 days | 30 days |\n| Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours |\n| Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds |\n\n Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.\n "
uniqueItems: false
optimization:
description: Optimization settings for the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateDetailsOptimizationDto'
WhatsappTemplateAnalyticsButtonsDto:
type: object
properties:
type:
x-enumDescriptions:
QUICK_REPLY: Aggregates interaction metrics for static pre-configured response buttons.
UNIQUE_URL: Aggregates interaction metrics for call-to-action buttons configured with dynamic tracking URLs.
URL: Aggregates interaction metrics for call-to-action buttons redirecting to static web hyperlinks.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Type of button.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateAnalyticsButtonTypesEnum'
content:
type: string
description: Content of the button.
uniqueItems: false
clicks:
type: number
description: Number of times the button has been clicked.
uniqueItems: false
required:
- type
- content
- clicks
WhatsappOrderDetailsButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
ORDER_DETAILS: Defines an interactive component that directs the customer to systemic order tracking metadata views.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeOrderDetailsEnum'
required:
- type
WhatsappTemplateNotificationDto:
type: object
properties:
type:
x-enumDescriptions:
COMMENT_ADDED: A new comment has been added to the notification trail.
CREATED: The notification configuration has been successfully created.
DRAFT: The notification configuration is currently in a draft state.
EDITED: The notification configuration has been edited or updated.
IN_PROGRESS: The notification process is currently executing.
REJECTED: The notification configuration has been rejected.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateNotificationTypeEnum'
created:
type: string
uniqueItems: false
author:
type: string
uniqueItems: false
comment:
type: string
uniqueItems: false
required:
- type
WhatsappTemplateQualityScoreEnum:
type: string
enum:
- QUALITY_SCORE_GREEN
- QUALITY_SCORE_RED
- QUALITY_SCORE_YELLOW
- QUALITY_SCORE_UNKNOWN
- UNRECOGNIZED
description: Quality score of the HSM.
WhatsappInputCardBodyComponentDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
examples:
description: Examples for the body variables. Requires one example for each variable in the body text. If no variables are used, the examples are optional.
uniqueItems: false
type: array
items:
type: string
minLength: 1
text:
type: string
minLength: 1
maxLength: 160
description: Card body text. Supports variables. Not required for draft.
uniqueItems: false
required:
- type
- text
WhatsappTemplateCompareIdentifierDto:
type: object
properties:
name:
type: string
description: Template name
uniqueItems: false
language:
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Template language
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
blockOrder:
type: number
description: Order of block rate
uniqueItems: false
messageSends:
type: number
description: Message send number
uniqueItems: false
topBlockReason:
x-enumDescriptions:
NO_LONGER_NEEDED: Indicates the end-user opted out because the communication sequence lost relevance to them.
NO_REASON: Indicates the explicit feedback metrics lack a categorized block reason.
NO_REASON_GIVEN: Indicates the end-user executed a standard block gesture without submitting survey criteria.
NO_SIGN_UP: Indicates the end-user reported a potential compliance breach, claiming they never provided authorization opt-in.
OFFENSIVE_MESSAGES: Indicates the end-user flagged the message payload as malicious, abusive, or inappropriate.
OTHER: Indicates the block reason submitted by the recipient falls outside the standard platform choices.
OTP_DID_NOT_REQUEST: Indicates a security or delivery anomaly where the recipient intercepted an unrequested secure authentication token.
SPAM: Indicates the recipient explicitly reported the messaging flow to the carrier as junk telemetry.
UNKNOWN_BLOCK_REASON: The explicit rationale behind the recipient block gesture cannot be determined.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Block reason
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateCompareBlockReasonsEnum'
required:
- name
- language
- blockOrder
- messageSends
- topBlockReason
WhatsappTemplateAnalyticsButtonTypesEnum:
type: string
enum:
- QUICK_REPLY
- UNIQUE_URL
- URL
- UNRECOGNIZED
description: Type of button.
WhatsappPartialTemplateDto:
type: object
properties:
whatsappId:
type: string
uniqueItems: false
state:
x-enumDescriptions:
APPROVED: The template is approved and available for use.
DISABLED: The template has been disabled and is restricted from outbound messaging operations.
PAUSED: The template is temporarily paused and cannot be utilized until explicitly resumed.
PENDING: The template is queued and currently awaiting approval or processing milestones.
REJECTED: The template was rejected and cannot be used.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateStatesEnum'
name:
type: string
uniqueItems: false
language:
x-enumDescriptions:
AF: The language configuration is set to Afrikaans.
AR: The language configuration is set to Arabic.
AZ: The language configuration is set to Azerbaijani.
BG: The language configuration is set to Bulgarian.
BN: The language configuration is set to Bengali.
CA: The language configuration is set to Catalan.
CS: The language configuration is set to Czech.
DA: The language configuration is set to Danish.
DE: The language configuration is set to German.
EL: The language configuration is set to Greek.
EN: The language configuration is set to English.
EN_GB: The language configuration is set to British English.
EN_US: The language configuration is set to American English.
ES: The language configuration is set to Spanish.
ES_AR: The language configuration is set to Argentinian Spanish.
ES_ES: The language configuration is set to European Spanish.
ES_MX: The language configuration is set to Mexican Spanish.
ES_UY: The language configuration is set to Uruguayan Spanish.
ET: The language configuration is set to Estonian.
FA: The language configuration is set to Persian.
FI: The language configuration is set to Finnish.
FIL: The language configuration is set to Filipino.
FR: The language configuration is set to French.
GA: The language configuration is set to Irish.
GU: The language configuration is set to Gujarati.
HA: The language configuration is set to Hausa.
HE: The language configuration is set to Hebrew.
HI: The language configuration is set to Hindi.
HR: The language configuration is set to Croatian.
HU: The language configuration is set to Hungarian.
ID: The language configuration is set to Indonesian.
IT: The language configuration is set to Italian.
JA: The language configuration is set to Japanese.
KA: The language configuration is set to Georgian.
KK: The language configuration is set to Kazakh.
KN: The language configuration is set to Kannada.
KO: The language configuration is set to Korean.
KY_KG: The language configuration is set to Kyrgyz.
LO: The language configuration is set to Lao.
LT: The language configuration is set to Lithuanian.
LV: The language configuration is set to Latvian.
MK: The language configuration is set to Macedonian.
ML: The language configuration is set to Malayalam.
MR: The language configuration is set to Marathi.
MS: The language configuration is set to Malay.
NB: The language configuration is set to Norwegian.
NL: The language configuration is set to Dutch.
PA: The language configuration is set to Punjabi.
PL: The language configuration is set to Polish.
PT_BR: The language configuration is set to Brazilian Portuguese.
PT_PT: The language configuration is set to European Portuguese.
RO: The language configuration is set to Romanian.
RU: The language configuration is set to Russian.
RW_RW: The language configuration is set to Kinyarwanda.
SK: The language configuration is set to Slovak.
SL: The language configuration is set to Slovenian.
SQ: The language configuration is set to Albanian.
SR: The language configuration is set to Serbian.
SV: The language configuration is set to Swedish.
SW: The language configuration is set to Swahili.
TA: The language configuration is set to Tamil.
TE: The language configuration is set to Telugu.
TH: The language configuration is set to Thai.
TR: The language configuration is set to Turkish.
UK: The language configuration is set to Ukrainian.
UR: The language configuration is set to Urdu.
UZ: The language configuration is set to Uzbek.
VI: The language configuration is set to Vietnamese.
ZH_CN: The language configuration is set to Simplified Chinese.
ZH_HK: The language configuration is set to Traditional Chinese (Hong Kong).
ZH_TW: The language configuration is set to Traditional Chinese (Taiwan).
ZU: The language configuration is set to Zulu.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateLanguagesEnum'
category:
x-enumDescriptions:
AUTHENTICATION: Billing or functional category for authentication and verification messages.
MARKETING: Billing or functional category for promotional or marketing messages.
UTILITY: Billing or functional category for utility and service-related messages.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateCategoryEnum'
rejectionCode:
x-enumDescriptions:
ABUSIVE_CONTENT: The upstream gateway rejected the layout because the messaging copy violated safety, spam, or abuse criteria.
INCORRECT_CATEGORY: The upstream gateway rejected the layout because the business vertical classification does not align with the actual content.
INVALID_FORMAT: The upstream gateway rejected the layout because variable placeholders, syntax parameters, or media configurations are invalid.
NONE: The template has not faced any restriction codes or rejection events.
SCAM: The upstream gateway rejected the layout because the text patterns match fraudulent, deceptive, or financial scam signatures.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Rejection code if template is in status 'REJECTED'
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateRejectionCodeEnum'
qualityScore:
x-enumDescriptions:
QUALITY_SCORE_GREEN: Indicates an optimal template delivery standing reflecting low user block counts.
QUALITY_SCORE_RED: Indicates a severely degraded template standing, which may trigger suspension or delivery throttling.
QUALITY_SCORE_YELLOW: Indicates a warning template standing reflecting a notable increase in recent opt-out actions.
QUALITY_SCORE_UNKNOWN: The platform has not collected sufficient telemetry data to compute an active quality rating.
UNRECOGNIZED: The value returned by an upstream system is not recognized by this API version.
description: Quality score of the HSM.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappTemplateQualityScoreEnum'
isMetaGenerated:
type: boolean
description: Indicates if the template was auto-generated by Meta.
uniqueItems: false
changes:
description: Object containing changes on the template. If empty the changes has been approved and applied to the template.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappPartialTemplateChangesDto'
details:
description: Template details and information.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappPartialTemplateDetailsDto'
analytics:
type: array
items:
$ref: '#/components/schemas/WhatsappPartialTemplateAnalyticsDto'
description: Template analytics.
uniqueItems: false
WhatsappLimitedTimeOfferComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
LIMITED_TIME_OFFER: Defines a dynamic structural layout block for showcasing time-sensitive promotional offers and urgency-driven purchase incentives.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeLimitedTimeOfferEnum'
text:
type: string
description: Offer details text.
minLength: 1
maxLength: 16
uniqueItems: false
hasExpiration:
type: boolean
description: Set to true to have the offer expiration details appear in the delivered message.
default: false
uniqueItems: false
required:
- type
- text
WhatsappTemplateListDto:
type: object
properties:
totalSize:
type: number
description: Total size of the entries matching the search query.
uniqueItems: false
pageSize:
type: number
description: Requested size of the page.
uniqueItems: false
previousPageToken:
type: string
description: Encoded token to use in list request to fetch previous batch of entries.
uniqueItems: false
nextPageToken:
type: string
description: Encoded token to use in list request to fetch next batch of entries.
uniqueItems: false
templates:
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappTemplateDto'
required:
- totalSize
- pageSize
- templates
WhatsappButtonTypeUrlEnum:
type: string
const: URL
WhatsappActionsEnum:
type: string
enum:
- DRAFT
- SUBMIT
description: Create as draft or submit. Defaults to draft.
WhatsappPartialFooterComponentDto:
type: object
properties:
type:
x-enumDescriptions:
FOOTER: Defines the supplementary structural layout block used for faint text copy or legal disclaimers.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeFooterEnum'
text:
type: string
uniqueItems: false
codeExpirationMinutes:
type: number
uniqueItems: false
WhatsappQuickReplyButtonDto:
type: object
properties:
type:
x-enumDescriptions:
QUICK_REPLY: Defines an interactive component that routes immediate, automated textual response payloads back to the host gateway.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeQuickReplyEnum'
text:
type: string
uniqueItems: false
required:
- type
WhatsappInputCardDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappInputCardHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappInputCardBodyComponentDto'
- $ref: '#/components/schemas/WhatsappInputCardButtonsComponentDto'
description: '
List of components in the cards.
Each card in the template has an image or video header asset, card body text, and up to two buttons.
All cards defined on a template must have the same components.
Not required for draft.
Field ''type'' must have unique values across items.'
uniqueItems: true
required:
- components
WhatsappComponentTypeFooterEnum:
type: string
const: FOOTER
WhatsappComponentTypeLimitedTimeOfferEnum:
type: string
const: LIMITED_TIME_OFFER
WhatsappFlowButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
FLOW: Defines an interactive component that initializes an embedded native rich interaction flow.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeFlowEnum'
text:
type: string
minLength: 1
maxLength: 25
description: Text to display on the Flow button. Not required for draft.
uniqueItems: false
flowId:
type: string
minLength: 1
maxLength: 30
description: Flow ID to launch when button is pressed. Not required for draft.
format: digits
uniqueItems: false
flowAction:
x-enumDescriptions:
DATA_EXCHANGE: Triggers an asynchronous data synchronization payload transfer with the configured webhook or API endpoint.
NAVIGATE: Advances the interactive user workflow viewport context to the subsequent structural layout step.
description: Flow action. Not required for draft.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappInputFlowActionEnum'
navigateScreen:
type: string
minLength: 1
maxLength: 432
description: The unique ID of the first screen. Required for Navigate action.
uniqueItems: false
required:
- type
- text
- flowId
- flowAction
WhatsappTemplateDtoFieldMaskPathsEnum:
type: string
enum:
- whatsappId
- state
- name
- language
- category
- rejectionCode
- qualityScore
- changes
- changes.status
- changes.allowCategoryChange
- changes.details
- changes.details.components
- changes.details.components.0.type
- changes.details.components.0.format
- changes.details.components.0.text
- changes.details.components.0.example
- changes.details.components.0.example.url
- changes.details.components.0.examples
- changes.details.components.0.addSecurityRecommendation
- changes.details.components.0.codeExpirationMinutes
- changes.details.components.0.buttons
- changes.details.components.0.buttons.0.type
- changes.details.components.0.buttons.0.text
- changes.details.components.0.buttons.0.phoneNumber
- changes.details.components.0.buttons.0.url
- changes.details.components.0.buttons.0.example
- changes.details.components.0.buttons.0.otpType
- changes.details.components.0.buttons.0.autofillText
- changes.details.components.0.buttons.0.packageName
- changes.details.components.0.buttons.0.signatureHash
- changes.details.components.0.buttons.0.supportedApps
- changes.details.components.0.buttons.0.supportedApps.0.packageName
- changes.details.components.0.buttons.0.supportedApps.0.signatureHash
- changes.details.components.0.buttons.0.zeroTapTermsAccepted
- changes.details.components.0.buttons.0.flowId
- changes.details.components.0.buttons.0.flowAction
- changes.details.components.0.buttons.0.navigateScreen
- changes.details.components.0.hasExpiration
- changes.details.messageSendTtlSeconds
- changes.details.optimization
- details
- details.components
- details.components.0.type
- details.components.0.format
- details.components.0.text
- details.components.0.example
- details.components.0.example.url
- details.components.0.examples
- details.components.0.addSecurityRecommendation
- details.components.0.codeExpirationMinutes
- details.components.0.buttons
- details.components.0.buttons.0.type
- details.components.0.buttons.0.text
- details.components.0.buttons.0.phoneNumber
- details.components.0.buttons.0.url
- details.components.0.buttons.0.example
- details.components.0.buttons.0.otpType
- details.components.0.buttons.0.autofillText
- details.components.0.buttons.0.packageName
- details.components.0.buttons.0.signatureHash
- details.components.0.buttons.0.supportedApps
- details.components.0.buttons.0.supportedApps.0.packageName
- details.components.0.buttons.0.supportedApps.0.signatureHash
- details.components.0.buttons.0.zeroTapTermsAccepted
- details.components.0.buttons.0.flowId
- details.components.0.buttons.0.flowAction
- details.components.0.buttons.0.navigateScreen
- details.components.0.hasExpiration
- details.messageSendTtlSeconds
- details.optimization
- analytics
- analytics.0.sent
- analytics.0.delivered
- analytics.0.read
- analytics.0.start
- analytics.0.end
- analytics.0.buttons
- analytics.0.buttons.0.type
- analytics.0.buttons.0.content
- analytics.0.buttons.0.clicks
- isMetaGenerated
WhatsappRequestContactInfoButtonInputDto:
type: object
properties:
type:
x-enumDescriptions:
REQUEST_CONTACT_INFO: Defines an interactive component that prompts native interface sharing configurations to harvest user identity footprints.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypeRequestContactInfoEnum'
required:
- type
WhatsappPhoneNumberButtonDto:
type: object
properties:
type:
x-enumDescriptions:
PHONE_NUMBER: Defines an interactive component that routes natively to the host hardware dialer array.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappButtonTypePhoneNumberEnum'
text:
type: string
uniqueItems: false
phoneNumber:
type: string
format: phone number
uniqueItems: false
required:
- type
WhatsappPartialCarouselComponentDto:
type: object
properties:
type:
x-enumDescriptions:
CAROUSEL: Defines a dynamic multimedia block configured with horizontal scrolling multi-card cards.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeCarouselEnum'
cards:
description: Media cards.
uniqueItems: false
type: array
items:
$ref: '#/components/schemas/WhatsappPartialCardDto'
WhatsappCommentDto:
type: object
properties:
type:
x-enumDescriptions:
CREATED: Indicates the comment has been successfully created and published.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappCommentTypeEnum'
comment:
type: string
uniqueItems: false
created:
type: string
uniqueItems: false
required:
- type
- comment
WhatsappFlowActionEnum:
type: string
enum:
- DATA_EXCHANGE
- NAVIGATE
- UNKNOWN
- UNRECOGNIZED
description: Flow action
WhatsappBodyComponentInputDto:
type: object
properties:
type:
x-enumDescriptions:
BODY: Defines the primary structural layout block containing the main text message and variables.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeBodyEnum'
text:
type: string
minLength: 1
maxLength: 1024
description: The main content of the body component. Supports variables in the format {{1}}, {{2}}, etc. Empty for AUTHENTICATION category templates.
uniqueItems: false
examples:
description: Examples for the body variables. Requires one example for each variable in the body text. If no variables are used, the examples are optional.
uniqueItems: false
type: array
items:
type: string
minLength: 1
addSecurityRecommendation:
type: boolean
default: false
description: Only valid if template category is AUTHENTICATION. If true, adds a security recommendation to the body. Defaults to false.
uniqueItems: false
required:
- type
WhatsappPartialLimitedTimeOfferComponentDto:
type: object
properties:
type:
x-enumDescriptions:
LIMITED_TIME_OFFER: Defines a dynamic structural layout block for showcasing time-sensitive promotional offers and urgency-driven purchase incentives.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeLimitedTimeOfferEnum'
text:
type: string
description: Offer details text.
uniqueItems: false
hasExpiration:
type: boolean
description: Indicates if the offer expiration details appear in the delivered message.
uniqueItems: false
WhatsappComponentTypeCarouselEnum:
type: string
const: CAROUSEL
WhatsappCardDto:
type: object
properties:
components:
type: array
items:
anyOf:
- $ref: '#/components/schemas/WhatsappCardHeaderComponentDto'
- $ref: '#/components/schemas/WhatsappCardBodyComponentDto'
- $ref: '#/components/schemas/WhatsappCardButtonsComponentDto'
description: List of components in the cards.
uniqueItems: false
required:
- components
WhatsappTemplateNotificationTypeEnum:
type: string
enum:
- COMMENT_ADDED
- CREATED
- DRAFT
- EDITED
- IN_PROGRESS
- REJECTED
WhatsappPartialLocationHeaderComponentDto:
type: object
properties:
type:
x-enumDescriptions:
HEADER: Defines the high-visibility structural layout block used for introductory text or rich media assets.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappComponentTypeHeaderEnum'
format:
x-enumDescriptions:
LOCATION: Configures the structural template header block to host coordinate and geolocational location arrays.
uniqueItems: false
allOf:
- $ref: '#/components/schemas/WhatsappLocationHeaderComponentFormatEnum'
securitySchemes:
BasicAuth:
type: http
scheme: basic
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
OAuth2Production:
type: oauth2
description: OAuth2 authorization for production
flows:
clientCredentials:
tokenUrl: https://auth.sinch.com/oauth2/token
scopes:
'-': '-'
x-tagGroup-upscale:
name: Upscale
tags:
- Upscale Admin Feature Flag
- Upscale Admin Log Operation
- Upscale Admin Migrations
- Upscale Admin Sms
- Upscale Admin Upscales
- Internal
- Upscale Sms
- Upscale Upscales
x-tagGroup-notification:
name: Notification
tags:
- Notification Admin Feature Flag
- Notification Admin Log Operation
- Internal
x-tagGroups:
- name: Webhook
tags:
- Webhooks
- name: WhatsApp
tags:
- WhatsApp Accounts
- WhatsApp
- WhatsApp Flows
- WhatsApp Senders
- WhatsApp Solutions
- WhatsApp Templates
- name: Bundles
tags:
- Bundles
- name: KakaoTalk
tags:
- KakaoTalk Categories
- KakaoTalk Senders
- KakaoTalk Templates
- name: Conversation
tags:
- Conversation
- name: RCS
tags:
- RCS Accounts
- RCS Questionnaire
- RCS Senders
- name: SMS
tags:
- SMS Apps