Skip to content
Download OpenAPI description
Languages
Servers
Production server

https://provisioning.api.sinch.com/

Webhooks

Webhooks allow the Sinch servers to communicate with your server backend. The webhooks endpoint lets you create, update, and delete webhooks programmatically.

Operations

Bundles

The bundles endpoint allows you to create and manage bundles of account resources.

Operations

Conversation

The Conversation endpoints allows you to retrieve about channels used with Conversation API.

Operations

WhatsApp

The WhatsApp endpoint allows you to programmatically log in to and get details of your WhatsApp account.

Operations

WhatsApp Templates

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.

Operations

Delete template by name and languageGA

Request

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.

Security
BasicAuth and BearerAuth
Path
projectIdstringrequired

The unique ID of the project. You can find this on the Sinch Dashboard.

templateNamestringrequired

The unique name of the template.

languageCodestring(WhatsappTemplateLanguagesEnum)required

The language code of the specific template.

Enum"AF""AR""AZ""BG""BN""CA""CS""DA""DE""EL"
Query
deleteSubmittedboolean

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.

Default false
curl -i -X DELETE \
  -u <username>:<password> \
  'https://provisioning.api.sinch.com/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}?deleteSubmitted=false' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Template deleted

Response
No content

Request

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.

Security
BasicAuth and BearerAuth
Path
projectIdstringrequired

The unique ID of the project. You can find this on the Sinch Dashboard.

templateNamestringrequired

The unique name of the template.

languageCodestring(WhatsappTemplateLanguagesEnum)required

The language code of the specific template.

Enum"AF""AR""AZ""BG""BN""CA""CS""DA""DE""EL"
Bodyapplication/jsonrequired

Supported template fields to update.

statusstring

Create as draft or submit. Defaults to draft.

Default "DRAFT"
Enum"DRAFT""SUBMIT"
categorystring

Works if status template is DRAFT or it was rejected with INCORRECT_CATEGORY.

Enum"AUTHENTICATION""MARKETING""UTILITY"
allowCategoryChangeboolean

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.

Default false
detailsobject

'Template input details and information.' Not required for draft.

curl -i -X PATCH \
  -u <username>:<password> \
  'https://provisioning.api.sinch.com/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "details": {
      "components": [
        {
          "type": "HEADER",
          "format": "LOCATION"
        },
        {
          "type": "HEADER",
          "format": "TEXT",
          "text": "Save {{1}}% on your next purchase!",
          "example": "20"
        },
        {
          "type": "HEADER",
          "format": "DOCUMENT",
          "example": {
            "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}}",
              "example": "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": "CAROUSEL",
          "cards": [
            {
              "components": [
                {
                  "type": "HEADER",
                  "format": "IMAGE",
                  "example": {
                    "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}}",
                      "example": "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
    }
  }'

Responses

Updated template draft

Bodyapplication/json
whatsappIdstring
statestring
Enum"APPROVED""DISABLED""PAUSED""REJECTED"
namestringrequired
languagestringrequired
Enum"AF""AR""AZ""BG""BN""CA""CS""DA""DE""EL"
categorystringrequired
Enum"AUTHENTICATION""MARKETING""UTILITY""UNRECOGNIZED"
rejectionCodestring

Rejection code if template is in status 'REJECTED'

Enum"ABUSIVE_CONTENT""INCORRECT_CATEGORY""INVALID_FORMAT""NONE""SCAM""UNRECOGNIZED"
qualityScorestring

Quality score of the HSM.

Enum"QUALITY_SCORE_GREEN""QUALITY_SCORE_RED""QUALITY_SCORE_YELLOW""QUALITY_SCORE_UNKNOWN""UNRECOGNIZED"
changesobject

Object containing changes on the template. If empty the changes has been approved and applied to the template.

detailsobject

Template details and information.

analyticsArray of objects(WhatsappTemplateAnalyticsDto)required

Template analytics.

analytics[].​sentnumberrequired

Number of times template has been sent.

analytics[].​deliverednumberrequired

Number of times template has been delivered.

analytics[].​readnumberrequired

Number of times template has been read.

analytics[].​startstringrequired

The UTC Date Time in ISO 8601 for start of date range.

analytics[].​endstringrequired

The UTC Date Time in ISO 8601 for end of date range.

analytics[].​buttonsArray of objects(WhatsappTemplateAnalyticsButtonsDto)required

Number of times buttons in the template has been clicked.

analytics[].​buttons[].​typestringrequired

Type of button.

Enum"QUICK_REPLY""UNIQUE_URL""URL""UNRECOGNIZED"
analytics[].​buttons[].​contentstringrequired

Content of the button.

analytics[].​buttons[].​clicksnumberrequired

Number of times the button has been clicked.

Response
application/json

Response when successfully update a template.

{ "whatsappId": "123456", "name": "My WhatsApp Template", "state": "APPROVED", "category": "UTILITY", "language": "EN_US", "qualityScore": "QUALITY_SCORE_GREEN", "changes": { "status": "IN_PROGRESS", "details": {} }, "details": { "components": [], "messageSendTtlSeconds": 60 }, "analytics": [] }

Callbacks

WhatsApp Template received a comment
post
WhatsApp Template approved
post
WhatsApp Template rejected
post
WhatsApp Template status updated
post
WhatsApp Template deleted
post
WhatsApp Template quality score updated
post
WhatsApp Template category updated
post
WhatsApp Template category coming update
post

Lists activities on project templateGA

Request

Paginated list of activities for a template. Ordered from the most recent one to the oldest one.

Security
BasicAuth and BearerAuth
Path
projectIdstringrequired

The unique ID of the project. You can find this on the Sinch Dashboard.

templateNamestringrequired

The unique name of the template.

languageCodestring(WhatsappTemplateLanguagesEnum)required

The language code of the specific template.

Enum"AF""AR""AZ""BG""BN""CA""CS""DA""DE""EL"
Query
pageTokenstring

The page token if retrieving the next page from a previous query.

pageSizenumber[ 1 .. 100 ]

The page size requested.

curl -i -X GET \
  -u <username>:<password> \
  'https://provisioning.api.sinch.com/v1/projects/{projectId}/whatsapp/templates/{templateName}/languages/{languageCode}/activities?pageToken=string&pageSize=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Recent activities on template

Bodyapplication/json
totalSizenumberrequired

Total size of the entries matching the search query.

pageSizenumberrequired

Requested size of the page.

previousPageTokenstring

Encoded token to use in list request to fetch previous batch of entries.

nextPageTokenstring

Encoded token to use in list request to fetch next batch of entries.

notificationsArray of objects(WhatsappTemplateNotificationDto)required
notifications[].​typestringrequired
Enum"COMMENT_ADDED""CREATED""DRAFT""EDITED""IN_PROGRESS""REJECTED"
notifications[].​createdstring
notifications[].​authorstring
notifications[].​commentstring
Response
application/json

Response for all template activities.

{ "totalSize": 2, "pageSize": 50, "notifications": [ {}, {} ] }

WhatsApp Senders

A WhatsApp Sender is also referred to as a 'Business Profile' or a WhatsApp channel. The WhatsApp Sender endpoint allows you to create a Sender through Meta's Embedded sign up. A Sender must be provisioned for you as a consumer of the WhatsApp API to send messages to your end users.

Operations

WhatsApp Accounts

The WhatsApp accounts endpoint lets you create and update WhatsApp accounts as well as get account activity and leave comments.

Operations

WhatsApp Flows

The WhatsApp flows endpoint lets you retrieve and manage WhatsApp Flows associated with the project.

Operations

WhatsApp Solutions

The WhatsApp solutions endpoint offers a way for you to manage your WhatsApp solutions.

Operations

KakaoTalk Templates

The KakaoTalk template endpoint offers a way for you to manage your KakaoTalk templates that can be used with the Conversation API.

Operations

KakaoTalk Categories

The KakoaTalk categories endpoint offers a way for you to manage all of the KakaoTalk template categories that you can use with the Conversation API.

Operations

KakaoTalk Senders

The KakaoTalk sender endpoint offers a way for you to manage your KakaoTalk senders that can be used with the Conversation API.

Operations

RCS Accounts

The RCS endpoint offers you a way to manage your RCS accounts.

Operations

RCS Questionnaire

Manage your RCS questionnaires.

Operations

RCS Senders

The RCS sender endpoint offers a way for you to manage your RCS senders that can be used with the Conversation API.

Operations

RCS Upscales

The RCS upscales endpoint offers a way for you to manage your RCS upscales.

Operations