---
title: "Duplicate a marketing template with a new maximum price"
method: POST
path: "/v1/projects/{projectId}/whatsapp/templates/duplicateMaxPrice"
tags: ["WhatsApp Templates"]
---

# Duplicate a marketing template with a new maximum price

`POST /v1/projects/{projectId}/whatsapp/templates/duplicateMaxPrice`

## Request

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

Duplicates a Marketing template using a new name and maximum-price optimization specification.
      The operation requires maximum-price onboarding, an owner Business Manager, and the Marketing API enabled for the WhatsApp Business Account.
      The duplicated template keeps the source template's language and category. The name must be available for that language, and if the name exists in another language, its category must match the source template's category.

## Path parameters

- `projectId` string, required

## Request body

- WhatsappInputDuplicateTemplateWithMaxPriceDto
  - `sourceTemplateId` string, required: ID of the approved marketing template to duplicate.
  - `name` string, required: Name for the duplicated template.
  - `optimization` WhatsappInputDuplicateTemplateWithMaxPriceOptimizationDto, required
    - `bidAmount` number, required: 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).
    - `bidStrategy` 'LOWEST_COST_WITH_BID_CAP', required: Bid strategy to use for the template optimization configuration.

## Response `201`

Newly created duplicate template

- WhatsappTemplateDto
  - `whatsappId` string
  - `state` 'APPROVED' | 'DISABLED' | 'PAUSED' | 'PENDING' | 'REJECTED'
  - `name` string, required
  - `language` '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', required
  - `category` 'AUTHENTICATION' | 'MARKETING' | 'UTILITY' | 'UNRECOGNIZED', required
  - `rejectionCode` 'ABUSIVE_CONTENT' | 'INCORRECT_CATEGORY' | 'INVALID_FORMAT' | 'NONE' | 'SCAM' | 'UNRECOGNIZED': Rejection code if template is in status 'REJECTED'
  - `qualityScore` 'QUALITY_SCORE_GREEN' | 'QUALITY_SCORE_RED' | 'QUALITY_SCORE_YELLOW' | 'QUALITY_SCORE_UNKNOWN' | 'UNRECOGNIZED': Quality score of the HSM.
  - `changes` WhatsappTemplateChangesDto
    - `status` 'DRAFT' | 'IN_PROGRESS' | 'REJECTED', required: The current status of the changes. `DRAFT`: The changes has not been submitted. `IN_PROGRESS`: The changes has been submitted.
    - `allowCategoryChange` boolean: 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.
    - `details` union: Template details and information.
      - object
        - `components` union[], required: List of components in the template. Must contain a BODY component and can only have one entry of each type.
          - union
            - WhatsappTextHeaderComponentDto
              - …
            - WhatsappMediaHeaderComponentDto
              - …
            - WhatsappBodyComponentDto
              - …
            - WhatsappFooterComponentDto
              - …
            - WhatsappButtonsComponentDto
              - …
            - WhatsappLocationHeaderComponentDto
              - …
            - WhatsappCarouselComponentDto
              - …
            - WhatsappLimitedTimeOfferComponentDto
              - …
        - `messageSendTtlSeconds` number: 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. | | AUTHENTICATION | MARKETING | UTILITY | | -- | -- | -- | -- | | Default | 10 minutes | 30 days | 30 days | | Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours | | Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds | Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.
        - `optimization` WhatsappTemplateDetailsOptimizationDto
          - `bidAmount` number, required: 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).
          - `bidStrategy` 'BID_STRATEGY_LOWEST_COST_WITH_BID_CAP' | 'BID_STRATEGY_UNSPECIFIED' | 'UNRECOGNIZED', required: Bid strategy returned for the template optimization configuration.
          - `bidCountryMultiplierOverrides` object: 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" }.
      - object
        - `components` union[]: The current status of the changes. `DRAFT`: The changes has not been submitted. `IN_PROGRESS`: The changes has been submitted.
          - union
            - WhatsappTextHeaderComponentDto
              - …
            - WhatsappMediaHeaderComponentDto
              - …
            - WhatsappLocationHeaderComponentDto
              - …
            - WhatsappBodyComponentDto
              - …
            - WhatsappFooterComponentDto
              - …
            - WhatsappButtonsComponentDto
              - …
            - WhatsappCarouselComponentDto
              - …
            - WhatsappLimitedTimeOfferComponentDto
              - …
        - `messageSendTtlSeconds` number: 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. | | AUTHENTICATION | MARKETING | UTILITY | | -- | -- | -- | -- | | Default | 10 minutes | 30 days | 30 days | | Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours | | Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds | Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.
        - `optimization` WhatsappTemplateDetailsOptimizationDto
          - `bidAmount` number, required: 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).
          - `bidStrategy` 'BID_STRATEGY_LOWEST_COST_WITH_BID_CAP' | 'BID_STRATEGY_UNSPECIFIED' | 'UNRECOGNIZED', required: Bid strategy returned for the template optimization configuration.
          - `bidCountryMultiplierOverrides` object: 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" }.
  - `details` WhatsappTemplateDetailsDto
    - `components` union[], required: List of components in the template. Must contain a BODY component and can only have one entry of each type.
      - union
        - WhatsappTextHeaderComponentDto
          - `type` 'HEADER', required
          - `format` 'TEXT', required
          - `text` string: Text to show in the header
          - `example` string: Example for the header variable.
        - WhatsappMediaHeaderComponentDto
          - `type` 'HEADER', required
          - `format` 'DOCUMENT' | 'IMAGE' | 'VIDEO', required
          - `examples` unknown
        - WhatsappBodyComponentDto
          - `type` 'BODY', required
          - `text` string
          - `examples` string[]: Examples for the body variables.
          - `addSecurityRecommendation` boolean
        - WhatsappFooterComponentDto
          - `type` 'FOOTER', required
          - `text` string
          - `codeExpirationMinutes` number
        - WhatsappButtonsComponentDto
          - `type` 'BUTTONS', required
          - `buttons` union[], required
            - union
              - …
        - WhatsappLocationHeaderComponentDto
          - `type` 'HEADER', required
          - `format` 'LOCATION', required
        - WhatsappCarouselComponentDto
          - `type` 'CAROUSEL', required
          - `cards` WhatsappCardDto[], required: Media cards.
            - `components` union[], required: List of components in the cards.
              - …
        - WhatsappLimitedTimeOfferComponentDto
          - `type` 'LIMITED_TIME_OFFER', required
          - `text` string: Offer details text.
          - `hasExpiration` boolean, required: Indicates if the offer expiration details appear in the delivered message.
    - `messageSendTtlSeconds` number: 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. | | AUTHENTICATION | MARKETING | UTILITY | | -- | -- | -- | -- | | Default | 10 minutes | 30 days | 30 days | | Customizable range | 10 seconds to 15 minutes | 12 hours to 30 days | 30 seconds to 12 hours | | Valid values | 10 to 900 seconds | 43200 to 2592000 seconds | 30 to 43200 seconds | Please note that authentication templates created before October 23, 2024, have a default TTL of 30 days.
    - `optimization` WhatsappTemplateDetailsOptimizationDto
      - `bidAmount` number, required: 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).
      - `bidStrategy` 'BID_STRATEGY_LOWEST_COST_WITH_BID_CAP' | 'BID_STRATEGY_UNSPECIFIED' | 'UNRECOGNIZED', required: Bid strategy returned for the template optimization configuration.
      - `bidCountryMultiplierOverrides` object: 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" }.
  - `analytics` WhatsappTemplateAnalyticsDto[], required: Template analytics.
    - `sent` number, required: Number of times template has been sent.
    - `delivered` number, required: Number of times template has been delivered.
    - `read` number, required: Number of times template has been read.
    - `start` string, required: The UTC Date Time in ISO 8601 for start of date range.
    - `end` string, required: The UTC Date Time in ISO 8601 for end of date range.
    - `buttons` WhatsappTemplateAnalyticsButtonsDto[], required: Number of times buttons in the template has been clicked.
      - `type` 'QUICK_REPLY' | 'UNIQUE_URL' | 'URL' | 'UNRECOGNIZED', required: Type of button.
      - `content` string, required: Content of the button.
      - `clicks` number, required: Number of times the button has been clicked.
  - `isMetaGenerated` boolean, required: Indicates if the template was auto-generated by Meta.

## Other responses

- `400`: BadRequest
- `401`: Unauthorized
- `404`: NotFound
- `409`: Conflict
- `429`: TooManyRequests
- `500`: InternalServerError

## Changes

> 17 revisions in range; 1 not diffed.

- **2026-10-19** `cfaba0720273`: 1 info
  - endpoint added

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

---

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