---
schema_version: "1"
id: 23fac418630f89821d9c86407014ff475e52d00f0ae9af8f7f94fb282ce2efd7
title: Transactional Messaging - OTT
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/references/generated-api-specs/mc_rest_transactional_messaging_ott.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott
source_site: developer.salesforce.com
content_type: documentation
content_hash: 69505124b805dc3b01db45e5baf93a7f9f53351cf892a6a6bdddaea6ce99d9b3
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
Transactional Messaging - OTT

# Transactional Messaging - OTT

## Overview

Use the transactional messaging for OTT (over-the-top) endpoint to send immediate, automated, and high-performance transactional messages. Transactional messages may include order confirmation messages, password reset emails, and bank balance inquiry messages.

**Note**: The transactional messaging for OTT endpoint is supported for [Unified Messaging](https://help.salesforce.com/s/articleView?id=mktg.um_unified_messaging.htm&type=5) and WhatsApp Direct.

### Base URI

`https://{YOUR_SUBDOMAIN}.rest.marketingcloudapis.com/`

In the base URI example, replace `{YOUR_SUBDOMAIN}` with your service's "sub domain". For more information, see [Tenant-Specific API Endpoints](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/your-subdomain-tenant-specific-endpoints.html).

### Prerequisites

Before using the transactional messaging for OTT APIs, ensure that you:

*   [Set up your WhatsApp Account in Marketing Cloud.](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_whatsapp_set_up_account.htm)
*   [Create a WhatsApp template message for approval in Marketing Cloud.](https://help.salesforce.com/s/articleView?id=mktg.mc_jb_whatsapp_template_message_approval.htm)
*   Set up Installed Packages to create an [API integration](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/api-integration.html) and get a client ID and client secret. Remember to assign the appropriate scopes for the package. For more information, see [API Integration Permission Scopes](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/data-access-permissions.html#channels).

### Supported Use Cases

| Supported Use Case | HTTP Verb | URI |
| --- | --- | --- |
| Get all send definitions | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Get%2Ball%2Bsend%2Bdefinitions) | /messaging/v1/ott/definitions/ |
| Create a send definition | [POST](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Create%2Ban%2BOTT%2Bsend%2Bdefinition) | /messaging/v1/ott/definitions/ |
| Get a send definition by key | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Get%2Bsend%2Bdefinition%2Bby%2Bdefinition%2Bkey) | /messaging/v1/ott/definitions/{definitionKey} |
| Update a definition | [PATCH](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Update%2Ban%2BOTT%2Bsend%2Bdefinition) | /messaging/v1/ott/definitions/{definitionKey} |
| Delete a definition | [DELETE](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Delete%2Ban%2BOTT%2Bsend%2Bdefinition%2Bby%2Bkey) | /messaging/v1/ott/definitions/{definitionKey} |
| Sends a message to multiple recipients using a send definition | [POST](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Send%2Bmessage%2Bto%2Bmultiple%2Brecipients) | /messaging/v1/ott/messages/ |
| Get message send status for recipient | [GET](/docs/marketing/marketing-cloud/references/mc_rest_transactional_messaging_ott?meta=Get%2Bmessage%2Bsend%2Bstatus%2Bfor%2Brecipient) | /messaging/v1/ott/messages/{messageKey} |

**Version:** 1.0

## Operations

### GET Get a list of OTT send definitions. The number of records that the method returns is based on the $pageSize and $page parameters. It doesn't necessarily return all the records in one call.

`GET /messaging/v1/ott/definitions/`

Operation ID: `Get all send definitions`.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.
*   `$page` (path, integer) This parameter selects the page returned from paginated results.  
    Example: `2`.
*   `$pageSize` (path, integer) This parameter selects the size of the page of the results.  
    Example: `40`.
*   `$count` (path, integer) This parameter is the count of results to return per page.  
    Example: `10`.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `getSendDefinitionResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "27de1564-15ff-4310-8ca5-40ea1c7fada5",
      "definitions": [
        {
          "name": "account-reset",
          "definitionKey": "account-reset",
          "status": "Active",
          "createdDate": "2024-01-13T11:03:31.4133333",
          "modifiedDate": "2024-01-13T11:03:31.4133333"
        },
        {
          "name": "account-reset",
          "definitionKey": "my_unique_1",
          "status": "Active",
          "createdDate": "2024-01-13T05:21:26.48",
          "modifiedDate": "2024-01-13T05:21:26.48"
        },
        {
          "name": "account-reset",
          "definitionKey": "account-reset45",
          "status": "Active",
          "createdDate": "2024-01-13T04:56:40.0266667",
          "modifiedDate": "2024-01-13T04:56:40.0266667"
        },
        {
          "name": "account-reset",
          "definitionKey": "my_video_def_13",
          "status": "Active",
          "createdDate": "2024-01-15T06:27:59.18",
          "modifiedDate": "2024-01-15T06:27:59.18"
        },
        {
          "name": "account-reset",
          "definitionKey": "my_video_def_14",
          "status": "Active",
          "createdDate": "2024-01-15T07:19:04.1666667",
          "modifiedDate": "2024-01-15T07:19:04.1666667"
        }
      ],
      "count": 5,
      "page": 2,
      "pageSize": 5
    }
    ```
    

### POST Create an OTT send definition used to make final message sends.

`POST /messaging/v1/ott/definitions/`

Operation ID: `Create an OTT send definition`.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.

#### Request body (required)

Create an OTT send definition with existing content.

Media type: `application/json`. Schema: `definitionCreateRequest`.

#### Responses

*   **201** Created
    
    Media type: `application/json`. Schema: `definitionGetCreateOrUpdateResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "aa86e980-2869-4b50-a7db-cadc0a7c8fee",
      "name": "account-reset",
      "definitionKey": "account-reset",
      "definitionId": "2693a6a7-1819-4bda-9580-f1b094606ada",
      "description": "Using new WhatsApp Transactional API",
      "senderID": "15555551234",
      "senderType": "WhatsApp",
      "status": "Active",
      "createdDate": "2024-02-22T09:06:36.6666667",
      "modifiedDate": "2024-02-22T09:06:36.6666667",
      "content": {
        "customerKey": "0488a5d3-7f83-4fdd-abda-66d277c43389"
      },
      "options": {}
    }
    ```
    
*   **400** Bad Request
    
    Media type: `application/json`. Schema: `definitionCreateFailureResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "message": "MCMS_UWH_Validation_InvalidValue: MCMS_UTM_Validation_InvalidValue: Fetch Asset by customer key failed for customerKey: c0553d21-d634-406b-8033-6893d018cd35. Object reference not set to an instance of an object.",
      "errorcode": 10005,
      "documentation": ""
    }
    ```
    

### GET Retrieve the send definition configuration details for a definition key.

`GET /messaging/v1/ott/definitions/{definitionKey}`

Operation ID: `Get send definition by definition key`.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.
*   `definitionKey` (path, string, required) Unique identifier of the definition.  
    Example: `account-reset`.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `definitionGetCreateOrUpdateResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "60c4731c-debb-43cd-8f9d-754ad7a3b9ef",
      "name": "account-reset",
      "definitionKey": "account-reset",
      "definitionId": "be0a4e59-2fd0-4e11-a3b7-b42115d775d6",
      "description": "Using new WhatsApp Transactional API",
      "senderID": "15555551234",
      "senderType": "WhatsApp",
      "status": "Active",
      "createdDate": "2024-01-22T10:57:31.8333333",
      "modifiedDate": "2024-01-22T10:57:31.8333333",
      "content": {
        "customerKey": "0488a5d3-7f83-4fdd-abda-66d277c43389"
      },
      "options": {}
    }
    ```
    
*   **404** Bad Request
    
    Media type: `application/json`. Schema: `definitionGetFailureResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "message": "FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset for mid: 512023559",
      "errorcode": 30003,
      "documentation": ""
    }
    ```
    

### DELETE Delete a message definition. You can't restore a deleted definition. The deleted definition is archived, and a delete location of the definition key is provided in the response for reference. You can reuse a deleted definition key because the information associated with it is copied to a new unique identifier.

`DELETE /messaging/v1/ott/definitions/{definitionKey}`

Operation ID: `Delete an OTT send definition by key`.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.
*   `definitionKey` (path, string, required) Unique key to access the definition object.  
    Example: `account-reset`.

#### Responses

*   **200** Successful
    
    Media type: `application/json`. Schema: `definitionDeleteResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "6329bc9a-acfd-46f9-9341-3440af4a7fa0",
      "message": "Success",
      "deletedDefinitionKey": "6EDECAE2-5E7D-4CB3-A922-6C12315D1E18"
    }
    ```
    
*   **404** Bad Request
    
    Media type: `application/json`. Schema: `definitionDeleteFailureResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "message": "FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset_qa3_1213111 for mid: 512023559",
      "errorcode": 30003,
      "documentation": ""
    }
    ```
    

### PATCH Update an OTT send definition using the definition key. You can update only the status of the send definition.

`PATCH /messaging/v1/ott/definitions/{definitionKey}`

Operation ID: `Update an OTT send definition`.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.
*   `definitionKey` (path, string, required) Unique key to access the definition object.  
    Example: `account-reset`.

#### Request body (required)

Update an OTT send definition.

Media type: `application/json`. Schema: `definitionUpdateRequest`.

#### Responses

*   **200** Successful
    
    Media type: `application/json`. Schema: `definitionGetCreateOrUpdateResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "1ebf7e9f-95b2-4269-92d2-a8c261912025",
      "name": "account-reset",
      "definitionKey": "account-reset",
      "definitionId": "2693a6a7-1819-4bda-9580-f1b094606ada",
      "description": "Using new WhatsApp Transactional API 1",
      "senderID": "15555551234",
      "senderType": "WhatsApp",
      "status": "Active",
      "createdDate": "2024-02-22T09:06:36.6666667",
      "modifiedDate": "2024-02-22T09:12:36.1833333",
      "content": {
        "customerKey": "0488a5d3-7f83-4fdd-abda-66d277c43389"
      },
      "options": {}
    }
    ```
    
*   **404** Bad Request
    
    Media type: `application/json`. Schema: `definitionUpdateFailureResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "message": "FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset for mid: 512023559",
      "errorcode": 30003,
      "documentation": ""
    }
    ```
    

### POST Send a message to multiple recipients using a send definition.

`POST /messaging/v1/ott/messages/`

Operation ID: `Send message to multiple recipients`.

You can provide a messageKey in the request; otherwise, the messageKey is automatically generated in the response.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.

#### Request body (required)

Send message to multiple recipients using a send definition

Media type: `application/json`. Schema: `messageSendRequest`.

#### Responses

*   **202** Completely Successful
    
    Media type: `application/json`. Schema: `messageSendResponseSuccess`.
    
    _Example: Example Response_
    
    ```
    {
        "requestId": "6b2ef0ec-cc59-4701-8fc5-bbd38ade78ca",
        "errorcode": 0,
        "responses": [
            {
                "messageKey": "rvFuCrCeXkCOP3YwSIaZ6Q"
            },
            {
                "messageKey": "eMvwhWQS1km7HwLMzCmrFg"
            }
        ]
    }
    ```
    
*   **207** Partial failures
    
    Media type: `application/json`. Schema: `messageSendResponsePartialFailure`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "eafa7fdd-7e01-4ad6-8fbe-36d3e7fac46b",
      "errorcode": 109001,
      "message": "MCMS_UTM_ResponsesHasErrors: 1 subscribers failed to queue out of 2",
      "responses": [
        {
          "messageKey": "q_HdBTWgPUesEGeQ_izl8g"
        },
        {
          "messageKey": "TH85MefKJUy_4OEdy1H3UA",
          "errorcode": 109129,
          "message": "MCMS_UTM_Validation_IncorrectAttributes: Incorrect attribute count. Expected: 1 while request have: 0"
        }
      ]
    }
    ```
    
*   **400** Bad Request
    
    Media type: `application/json`. Schema: `messageSendFailureResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "message": "MCMS_UTM_Validation_MissingRequiredField: Both 'contactKey' and 'to' needs to be provided per subscriber",
      "errorcode": 10002,
      "documentation": ""
    }
    ```
    

### GET Get message send status for a recipient.

`GET /messaging/v1/ott/messages/{messageKey}`

Operation ID: `Get message send status for recipient`.

This method returns the send status for a message.

#### Parameters

*   `Authorization` (header, string, required)  
    Example: `Bearer YOUR_ACCESS_TOKEN`.
*   `messageKey` (path, string, required)
    
    Unique identifier for the message.
    
    **Note**: Message keys must be unique among all of the keys that have been used in your business unit over the prior 72 hours. However, you can reuse message keys after 72 hours. If you use message keys that aren't globally unique, you can’t retrieve the status of messages that are more than 72 hours old. For this reason, we recommend that you subscribe to transactional send events using [Event Notification Service](https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ens.html).
    
      
    Example: `f0d8enf0d0snd`.

#### Responses

*   **200** Successful
    
    Media type: `application/json`. Schema: `messageSendStatusResponse`.
    
    _Example: Example Response_
    
    ```
    {
      "requestId": "a52119c5-9a53-43f0-a547-bf628f3604af",
      "messageKey": "vySeaLEvak6IXh6QNwwClg",
      "eventCategoryType": "TransactionalSendEvents.OttFailed",
      "info": {
        "contactKey": "Astro25",
        "to": "919745313285",
        "errorMessage": "131047 Message failed to send because more than 24 hours have passed since the customer last replied to this number. ",
        "timestamp": "2024-02-22T06:53:26.4166667",
        "definitionKey": "account-reset"
      }
    }
    ```
    

### GET Download rich media inbound messages.

`GET /ott/v1/media/download/{mediaId}?SenderId={senderId}&SenderType={senderType}`

Operation ID: `Download Rich Media Inbound Messages`.

Download rich media inbound messages using the media 'id' received in the ENS notification.

#### Parameters

*   `mediaId` (path, string, required) Unique identifier of the media shared in the ENS event. This corresponds to media 'id' that you received in the ENS notification.
*   `SenderId` (query, string, required) The ID of the sender used to send the message. For example, for WhatsApp, it's the sender's phone number.
*   `SenderType` (query, string) The type of sender. For example, WhatsApp, LINE and so on. Currently, the only supported value is WhatsApp.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `content-type` (string) The MIME type of the media file.
    *   `contentLength` (integer) The size of the media file returned by META.
    *   `Content-Disposition` (string) The content disposition received from META.
*   **400** Bad Request
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: badRequestExample_ Example of a bad request response
    
    ```
    {
      "success": false,
      "message": "BAD_REQUEST_REASON"
    }
    ```
    
*   **404** Not Found
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: notFoundExample_ Example of a not found response
    
    ```
    {
      "success": false,
      "message": "The given media-id does not exist for sender senderId"
    }
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: internalServerErrorExample_ Example of an internal server error response
    
    ```
    {
      "success": false,
      "message": "Internal Server Error"
    }
    ```
    

## Schemas

### getSendDefinitionResponse

Response object for getting an OTT send definition.

*   `requestId` (_string_) The system-generated unique identifier for the request.  
    Example: `1f1e8755-819b-424d-a914-e066b5ba20f8`.
*   `definitions` (_array of object_)
    
    _Example_
    
    ```
    [
      {
        "name": "account-reset",
        "definitionKey": "account-reset",
        "status": "Active",
        "createdDate": "2024-01-13T11:03:31.4133333",
        "modifiedDate": "2024-01-13T11:03:31.4133333"
      },
      {
        "name": "account-reset",
        "definitionKey": "my_unique_1",
        "status": "Active",
        "createdDate": "2024-01-13T05:21:26.48",
        "modifiedDate": "2024-01-13T05:21:26.48"
      },
      {
        "name": "account-reset",
        "definitionKey": "account-reset45",
        "status": "Active",
        "createdDate": "2024-01-13T04:56:40.0266667",
        "modifiedDate": "2024-01-13T04:56:40.0266667"
      },
      {
        "name": "account-reset",
        "definitionKey": "my_video_def_13",
        "status": "Active",
        "createdDate": "2024-01-15T06:27:59.18",
        "modifiedDate": "2024-01-15T06:27:59.18"
      },
      {
        "name": "account-reset",
        "definitionKey": "my_video_def_14",
        "status": "Active",
        "createdDate": "2024-01-15T07:19:04.1666667",
        "modifiedDate": "2024-01-15T07:19:04.1666667"
      }
    ]
    ```
    
    *   `name` (_string_) Definition name.  
        Example: `account-reset`.
    *   `definitionKey` (_string_) Unique, user-generated key to access the definition object.  
        Example: `account-reset`.
    *   `status` (_string_) Operational state of the definition: Active or Inactive. Users should use an active definition key to send messages.  
        Allowed values: `Active: A message sent to an active definition is processed and delivered.`, `Inactive: A message sent to an inactive definition isn’t processed or delivered.`. Example: `Active`.
    *   `createdDate` (_string_) The date and time the definition was created (in UTC format).  
        Example: `2021-12-17T13:00:00`.
    *   `modifiedDate` (_string_) The date and time the definition was most recently changed (in UTC format).  
        Example: `2021-12-17T13:00:00`.
*   `count` (_integer_)  
    Example: `2`.
*   `page` (_integer_)  
    Example: `1`.
*   `pageSize` (_integer_)  
    Example: `50`.

### definitionCreateRequest

Request object to create an OTT definition with existing content.

*   `definitionKey` (_string_, required) Unique, user-generated key to access the definition object.  
    Example: `account-reset`.
*   `name` (_string_, required) Name of the definition.  
    Example: `account-reset`.
*   `senderType` (_string_, required) The type of sender. Currently, the only supported value is WhatsApp.  
    Example: `WhatsApp`.
*   `senderId` (_string_, required) The ID of the sender used to send the message. In case of WhatsApp, it is the sender's phone number.  
    Example: `15555551234`.
*   `status` (_string_) Operational state of the definition: Active or Inactive. Users should use an active definition key to send messages.  
    Allowed values: `Active: A message sent to an active definition is processed and delivered.`, `Inactive: A message sent to an inactive definition isn’t processed or delivered.`. Example: `Active`.
*   `description` (_string_) User-provided description of the send definition.  
    Example: `Using new WhatsApp Transactional API`.
*   `content` (_object_, required)
    
    *   `customerKey` (_string_, required) Unique identifier of the content asset. It is the customerKey obtained from content builder.  
        Example: `0488a5d3-7f83-4fdd-abda-66d277c43389`.
    
    _Example_
    
    ```
    {
      "customerKey": "0488a5d3-7f83-4fdd-abda-66d277c43389"
    }
    ```
    

### definitionGetCreateOrUpdateResponse

Response object to get, create, and update an OTT definition.

*   `requestId` (_string_) The system-generated unique identifier for the request.  
    Example: `1f1e8755-819b-424d-a914-e066b5ba20f8`.
*   `name` (_string_) Name of the definition.  
    Example: `account-reset`.
*   `definitionKey` (_string_) Unique, user-generated key to access the definition object.  
    Example: `account-reset`.
*   `definitionId` (_string_) System generated unique ID for the definition.  
    Example: `c13a2f02-2e02-e911-80e9-1402ec6b9711`.
*   `senderType` (_string_) The type of sender. Currently, the only supported value is WhatsApp.  
    Example: `WhatsApp`.
*   `senderId` (_string_) The ID of the sender used to send the message. In case of WhatsApp Direct, it is the sender's phone number.  
    Example: `918876455590`.
*   `description` (_string_) User-provided description of the send definition.  
    Example: `Using new WhatsApp Transactional API`.
*   `status` (_string_) Operational state of the definition: Active or Inactive. Users should use an active definition key to send messages.  
    Allowed values: `Active: A message sent to an active definition is processed and delivered.`, `Inactive: A message sent to an inactive definition isn’t processed or delivered.`. Example: `Active`.
*   `createdDate` (_string_) The date and time the definition was created (in UTC format).  
    Example: `2021-12-17T13:00:00`.
*   `modifiedDate` (_string_) The date and time the definition was last modified (in UTC format).  
    Example: `2021-12-17T13:00:00`.
*   `content` (_object_)
    
    *   `customerKey` (_string_) Unique identifier of the content asset. It is the customerKey obtained from content builder.  
        Example: `bebf8650-137a-494c-8727-cdeb32534961`.
    
    _Example_
    
    ```
    {
      "customerKey": "bebf8650-137a-494c-8727-cdeb32534961"
    }
    ```
    
*   `options` (_object_) Currently options are not supported.

### definitionCreateFailureResponse

Response object for failure while creating an OTT definition.

*   `message` (_string_) Error message.  
    Example: `MCMS_UWH_Validation_InvalidValue: MCMS_UTM_Validation_InvalidValue: Fetch Asset by customer key failed for customerKey: c0553d21-d634-406b-8033-6893d018cd35. Object reference not set to an instance of an object.`.
*   `errorcode` (_integer_) Error code.  
    Example: `10005`.
*   `documentation` (_string_) Documentation link.

### definitionGetFailureResponse

Response object for failure while getting an OTT definition.

*   `message` (_string_) Error message.  
    Example: `FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset for mid: 512023559`.
*   `errorcode` (_integer_) Error code.  
    Example: `30003`.
*   `documentation` (_string_) Documentation link.

### definitionDeleteResponse

Response object for deleting an OTT definition.

*   `message` (_string_) Deletion response message.  
    Example: `Success`.
*   `requestId` (_string_) The system-generated unique identifier for the request.  
    Example: `6329bc9a-acfd-46f9-9341-3440af4a7fa0`.
*   `deletedDefinitionKey` (_string_) Deleted definition's key.  
    Example: `6EDECAE2-5E7D-4CB3-A922-6C12315D1E18`.

### definitionDeleteFailureResponse

Response object for deleting an OTT definition.

*   `message` (_string_) Error message.  
    Example: `FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset_qa3_1213111 for mid: 512023559`.
*   `errorcode` (_integer_) Error code.  
    Example: `30003`.
*   `documentation` (_string_) Documentation to follow.

### definitionUpdateRequest

Request object to update an OTT definition.

*   `name` (_string_) Name of the definition.  
    Example: `account-reset`.
*   `description` (_string_) User-provided description of the send definition.  
    Example: `Using new WhatsApp Transactional API`.
*   `status` (_string_) Operational state of the definition: Active or Inactive. Users should use an active definition key to send messages.  
    Allowed values: `Active: A message sent to an active definition is processed and delivered.`, `Inactive: A message sent to an inactive definition isn’t processed or delivered.`. Example: `Active`.

### definitionUpdateFailureResponse

Response object for failure while updating an OTT definition.

*   `message` (_string_) Error message.  
    Example: `FuelRuntime_ObjectNotFound: Unable to find Definition with Key: account-reset for mid: 512023559`.
*   `errorcode` (_integer_) Error code.  
    Example: `30003`.
*   `documentation` (_string_) Documentation link.

### messageSendRequest

Request object for sending a message to recipients.

*   `definitionKey` (_string_, required) A unique key to access the definition object.  
    Example: `account-reset`.
*   `recipients` (_array of object_, required) A list of recipient objects that contains parameters and metadata for each recipient. Use this parameter to send messages to one or multiple recipients. You can send a message to a maximum of 50 recipients using a single POST request. To send messages to more than 50 recipients, you must use multiple requests.
    
    _Example_
    
    ```
    [
      {
        "contactKey": "Astro25",
        "to": "918898992567"
      },
      {
        "contactKey": "Astro30",
        "to": "917888889045",
        "attributes": {
          "firstName": "Sam",
          "lastName": "Altman"
        }
      }
    ]
    ```
    
    *   `contactKey` (_string_, required) Unique identifier for a subscriber in Marketing Cloud.  
        Example: `Astro25`.
    *   `to` (_string_, required) Recipient's phone number with country code and without '+' sign.  
        Example: `918898992567`.
    *   `attributes` (_object_) Information used to personalize the message for the recipient. Written as key:value pairs. The attributes match profile attributes, content attributes, or triggered send data extension attributes.
        
        _Example_
        
        ```
        {
          "message": "Testing from Postman"
        }
        ```
        
*   `attributes` (_object_) Information used to personalize the message for the request. Written as key pairs. The attributes match profile attributes, content attributes, or triggered send data extension attributes.
    
    _Example_
    
    ```
    {
      "flightNumber": "AI210"
    }
    ```
    

### messageSendResponseSuccess

message send response object

*   `requestId` (_string_) The system-generated unique identifier for the message send request.  
    Example: `f7f72daa-fe0d-49ec-a109-95ec576006fc`.
*   `errorCode` (_integer_) Error code related to the message send request. See [Transactional API Subscriber Error Codes](/docs/marketing/marketing-cloud/guide/transactional-send-subscriber.html) and [Transactional API Response Level Error Codes](/docs/marketing/marketing-cloud/guide/transactional-send-response.html).  
    Example: `0`.
*   `responses` (_array of object_) List of responses for each message send request
    
    _Example_
    
    ```
    {
      "value": "[\n        {\n            \"messageKey\": \"rvFuCrCeXkCOP3YwSIaZ6Q\"\n        },\n        {\n            \"messageKey\": \"eMvwhWQS1km7HwLMzCmrFg\"\n        }\n    ]"
    }
    ```
    
    *   `messageKey` (_string_) Unique identifier for the definition.  
        Example: `rvFuCrCeXkCOP3YwSIaZ6Q`.

### messageSendResponsePartialFailure

message send response object

*   `requestId` (_string_) The system-generated unique identifier for the message send request.  
    Example: `f7f72daa-fe0d-49ec-a109-95ec576006fc`.
*   `errorCode` (_integer_) Error code related to the message send request. See [Transactional API Subscriber Error Codes](/docs/marketing/marketing-cloud/guide/transactional-send-subscriber.html).  
    Example: `0`.
*   `responses` (_array of object_) List of responses for each message send request
    
    _Example_
    
    ```
    [
      {
        "messageKey": "q_HdBTWgPUesEGeQ_izl8g"
      },
      {
        "messageKey": "TH85MefKJUy_4OEdy1H3UA",
        "errorcode": 109129,
        "message": "MCMS_UTM_Validation_IncorrectAttributes: Incorrect attribute count. Expected: 1 while request have: 0"
      }
    ]
    ```
    
    *   `messageKey` (_string_) Unique identifier for the definition.  
        Example: `rvFuCrCeXkCOP3YwSIaZ6Q`.
    *   `message` (_string_) Error message.  
        Example: `MCMS_UTM_Validation_IncorrectAttributes: Incorrect attribute count. Expected: 1 while request have: 0`.
    *   `errorCode` (_integer_) Error code associated with the message send request.  
        Example: `109129`.

### messageSendFailureResponse

message send failure response object

*   `message` (_string_) Error message.  
    Example: `MCMS_UTM_Validation_MissingRequiredField: Both 'contactKey' and 'to' needs to be provided per subscriber`.
*   `errorCode` (_integer_)  
    Example: `10002`.
*   `documentation` (_string_) Documentation link to follow.

_Example_

```
{
  "message": "MCMS_UTM_Validation_MissingRequiredField: Both 'contactKey' and 'to' needs to be provided per subscriber",
  "errorcode": 10002,
  "documentation": ""
}
```

### messageSendStatusResponse

message send status object

*   `requestId` (_string_) The system-generated unique identifier for the message send request.  
    Example: `a52119c5-9a53-43f0-a547-bf628f3604af`.
*   `messageKey` (_string_) Unique identifier for the definition.  
    Example: `vySeaLEvak6IXh6QNwwClg`.
*   `eventCategoryType` (_string_) The status of the message.  
    Allowed values: `TransactionalSendEvents.OttQueued: The message is queued and yet to be sent to the device.`, `TransactionalSendEvents.OttSent: The message is sent to device.`, `TransactionalSendEvents.OttDelivered: The message is delivered to device.`, `TransactionalSendEvents.OttRead: The message is read by device owner.`, `TransactionalSendEvents.OttFailed: The message failed to be sent.`. Example: `TransactionalSendEvents.OttQueued`.
*   `info` (_object_) Defines the information about the message send status.
    *   `contactKey` (_string_) The unique Marketing Cloud Engagement identifier for the subscriber  
        Example: `Astro25`.
    *   `to` (_string_) The recipient's mobile number  
        Example: `919716313285`.
    *   `errorMessage` (_string_) Error message related to the request  
        Example: `131047 Message failed to send because more than 24 hours have passed since the customer last replied to this number.`.
    *   `timestamp` (_string_) The time the event occurred (in UTC format)  
        Example: `2024-02-22T06:53:26.4166667`.
    *   `definitionkey` (_string_) Unique key to access the definition object.  
        Example: `account-reset`.

### ErrorResponse

*   `success` (_boolean_) Indicates if the request was successful.
*   `message` (_string_) Error message describing the reason for the failure.