{
  "openapi": "3.0.1",
  "info": {
    "title": "Webhooks",
    "description": "Webhooks are how Telgorithm notifies your system about events in real time, such as inbound messages and delivery status changes, without you having to poll our API. You configure a callback URL per event type at the account level, and Telgorithm pushes each event to that URL as it happens. This section provides sample payloads for each webhook event type so you know what to expect and can build your handler accordingly.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "/samples"
    }
  ],
  "paths": {
    "/v1/Webhooks/OutboundMessageWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Outbound Message status",
        "description": "`OutboundMessageWebhook` is sent to the `MessagingConfig.OutboundCallbackUrl`\n            when an Outbound Message is sent, delivered or undelivered to the recipient.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OutboundMessageWebhook"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OutboundMessageWebhook"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OutboundMessageWebhook"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OutboundMessageWebhook"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/InboundMessageWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Inbound Message",
        "description": "`InboundMessageWebhook` is sent to the `MessagingConfig.InboundCallbackUrl`\n            when an Inbound Message is received for one of your Phone Numbers.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundMessageWebhook"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundMessageWebhook"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundMessageWebhook"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundMessageWebhook"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/RcsOutboundMessageStatusChangedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "RCS Outbound Message status",
        "description": "`RcsOutboundMessageStatusChangedWebhook` is sent to the account-level URL configured for the `RcsOutboundMessageStatusChanged` type\n            when an RCS message is delivered, failed, or triggers an SMS/MMS fallback.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutboundMessageStatusChangedWebhook"
                  }
                ],
                "description": "RCS outbound message status changed event."
              },
              "example": {"type":"RcsOutboundMessageStatusChanged","sid":"WH08df05aece6d92ac1d871be3812e353fd230e9546f75bc42","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z","status":"Delivered","conversationMetadata":null}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutboundMessageStatusChangedWebhook"
                  }
                ],
                "description": "RCS outbound message status changed event."
              },
              "example": {"type":"RcsOutboundMessageStatusChanged","sid":"WH08df05aece6d92ac1d871be3812e353fd230e9546f75bc42","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z","status":"Delivered","conversationMetadata":null}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutboundMessageStatusChangedWebhook"
                  }
                ],
                "description": "RCS outbound message status changed event."
              },
              "example": {"type":"RcsOutboundMessageStatusChanged","sid":"WH08df05aece6d92ac1d871be3812e353fd230e9546f75bc42","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z","status":"Delivered","conversationMetadata":null}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsOutboundMessageStatusChangedWebhook"
                  }
                ],
                "description": "RCS outbound message status changed event."
              },
              "example": {"type":"RcsOutboundMessageStatusChanged","sid":"WH08df05aece6d92ac1d871be3812e353fd230e9546f75bc42","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z","status":"Delivered","conversationMetadata":null}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/RcsInboundMessageReceivedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "RCS Inbound Message",
        "description": "`RcsInboundMessageReceivedWebhook` is sent to the account-level URL configured for the\n            `RcsInboundMessageReceived` type when an end user sends a message to one of your RCS agents.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundMessageReceivedWebhook"
                  }
                ],
                "description": "RCS inbound message received event."
              },
              "example": {"type":"RcsInboundMessageReceived","sid":"WH08df05aece7d09ba909e3ccbded253e594a8b4d38509249a","payload":{"sid":"RIXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","content":{"type":"Text","text":"Hello from RCS"},"conversationMetadata":null}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundMessageReceivedWebhook"
                  }
                ],
                "description": "RCS inbound message received event."
              },
              "example": {"type":"RcsInboundMessageReceived","sid":"WH08df05aece7d09ba909e3ccbded253e594a8b4d38509249a","payload":{"sid":"RIXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","content":{"type":"Text","text":"Hello from RCS"},"conversationMetadata":null}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundMessageReceivedWebhook"
                  }
                ],
                "description": "RCS inbound message received event."
              },
              "example": {"type":"RcsInboundMessageReceived","sid":"WH08df05aece7d09ba909e3ccbded253e594a8b4d38509249a","payload":{"sid":"RIXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","content":{"type":"Text","text":"Hello from RCS"},"conversationMetadata":null}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundMessageReceivedWebhook"
                  }
                ],
                "description": "RCS inbound message received event."
              },
              "example": {"type":"RcsInboundMessageReceived","sid":"WH08df05aece7d09ba909e3ccbded253e594a8b4d38509249a","payload":{"sid":"RIXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","content":{"type":"Text","text":"Hello from RCS"},"conversationMetadata":null}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/RcsMessageSeenWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "RCS Message Seen",
        "description": "`RcsMessageSeenWebhook` is sent to the account-level URL configured for the `RcsMessageSeen` type\n            when the recipient device confirms that an outbound RCS message has been read.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsMessageSeenWebhook"
                  }
                ],
                "description": "RCS message seen event."
              },
              "example": {"type":"RcsMessageSeen","sid":"WH08df05aece7e4a433337f476a687be1ae250c3a15636e722","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsMessageSeenWebhook"
                  }
                ],
                "description": "RCS message seen event."
              },
              "example": {"type":"RcsMessageSeen","sid":"WH08df05aece7e4a433337f476a687be1ae250c3a15636e722","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsMessageSeenWebhook"
                  }
                ],
                "description": "RCS message seen event."
              },
              "example": {"type":"RcsMessageSeen","sid":"WH08df05aece7e4a433337f476a687be1ae250c3a15636e722","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsMessageSeenWebhook"
                  }
                ],
                "description": "RCS message seen event."
              },
              "example": {"type":"RcsMessageSeen","sid":"WH08df05aece7e4a433337f476a687be1ae250c3a15636e722","payload":{"sid":"ROXXXXXXXX","agentId":"MyAgent","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/RcsTypingIndicatorWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "RCS Typing Indicator",
        "description": "`RcsTypingIndicatorWebhook` is sent to the account-level URL configured for the\n            `RcsTypingIndicator` type when an end user starts typing to one of registered RCS agents.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsTypingIndicatorWebhook"
                  }
                ],
                "description": "RCS typing indicator event."
              },
              "example": {"type":"RcsTypingIndicator","sid":"WH08df05aece7f29219ae8f8e3b4f8434942ecf7ca64913383","payload":{"from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsTypingIndicatorWebhook"
                  }
                ],
                "description": "RCS typing indicator event."
              },
              "example": {"type":"RcsTypingIndicator","sid":"WH08df05aece7f29219ae8f8e3b4f8434942ecf7ca64913383","payload":{"from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsTypingIndicatorWebhook"
                  }
                ],
                "description": "RCS typing indicator event."
              },
              "example": {"type":"RcsTypingIndicator","sid":"WH08df05aece7f29219ae8f8e3b4f8434942ecf7ca64913383","payload":{"from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsTypingIndicatorWebhook"
                  }
                ],
                "description": "RCS typing indicator event."
              },
              "example": {"type":"RcsTypingIndicator","sid":"WH08df05aece7f29219ae8f8e3b4f8434942ecf7ca64913383","payload":{"from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/RcsInboundUserActionWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "RCS User Action",
        "description": "`RcsInboundUserActionWebhook` is sent to the account-level URL configured for the\n            `RcsInboundUserAction` type when a user has acted over a suggestion sent with an RCS outbound message.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundUserActionWebhook"
                  }
                ],
                "description": "RCS inbound user action event."
              },
              "example": {"type":"RcsInboundUserAction","sid":"WH08df05aece8113e6b46c3c442e95df6d1622c377bb201fed","payload":{"sid":"ROXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","type":"Suggestion","text":"Reply suggestion text","postbackData":"PostbackData specified for the reply suggestion"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundUserActionWebhook"
                  }
                ],
                "description": "RCS inbound user action event."
              },
              "example": {"type":"RcsInboundUserAction","sid":"WH08df05aece8113e6b46c3c442e95df6d1622c377bb201fed","payload":{"sid":"ROXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","type":"Suggestion","text":"Reply suggestion text","postbackData":"PostbackData specified for the reply suggestion"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundUserActionWebhook"
                  }
                ],
                "description": "RCS inbound user action event."
              },
              "example": {"type":"RcsInboundUserAction","sid":"WH08df05aece8113e6b46c3c442e95df6d1622c377bb201fed","payload":{"sid":"ROXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","type":"Suggestion","text":"Reply suggestion text","postbackData":"PostbackData specified for the reply suggestion"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RcsInboundUserActionWebhook"
                  }
                ],
                "description": "RCS inbound user action event."
              },
              "example": {"type":"RcsInboundUserAction","sid":"WH08df05aece8113e6b46c3c442e95df6d1622c377bb201fed","payload":{"sid":"ROXXXXXXXX","from":"+19876543210","agentId":"MyAgent","eventDate":"2023-03-22T16:44:55.123Z","type":"Suggestion","text":"Reply suggestion text","postbackData":"PostbackData specified for the reply suggestion"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/OptInOutWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Opt-In/Out",
        "description": "`OptInOutWebhook` is sent to the `MessagingConfig.OptInOutCallbackUrl`\n            when an Opt-In/Out is received from the recipient TN.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OptInOutWebhook"
                  }
                ]
              }
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OptInOutWebhook"
                  }
                ]
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OptInOutWebhook"
                  }
                ]
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OptInOutWebhook"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/TcrCampaignImportedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "TCR Campaign",
        "description": "`TcrCampaignImportedWebhook` is sent to the URL set up with the `/webhooks` endpoint for webhook type\n            `TcrCampaignImported` when a TCR campaign (which you shared with Telgorithm) is imported.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TcrCampaignImportedWebhook"
                  }
                ],
                "description": "New TCR campaign was imported event."
              },
              "example": {"type":"TcrCampaignImported","sid":"WH08df05aece874a9de196c24b2122a7f00b1c6c6e207a5607","payload":{"campaignId":"CXXXXXX","brandId":"BXXXXXX"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TcrCampaignImportedWebhook"
                  }
                ],
                "description": "New TCR campaign was imported event."
              },
              "example": {"type":"TcrCampaignImported","sid":"WH08df05aece874a9de196c24b2122a7f00b1c6c6e207a5607","payload":{"campaignId":"CXXXXXX","brandId":"BXXXXXX"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TcrCampaignImportedWebhook"
                  }
                ],
                "description": "New TCR campaign was imported event."
              },
              "example": {"type":"TcrCampaignImported","sid":"WH08df05aece874a9de196c24b2122a7f00b1c6c6e207a5607","payload":{"campaignId":"CXXXXXX","brandId":"BXXXXXX"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TcrCampaignImportedWebhook"
                  }
                ],
                "description": "New TCR campaign was imported event."
              },
              "example": {"type":"TcrCampaignImported","sid":"WH08df05aece874a9de196c24b2122a7f00b1c6c6e207a5607","payload":{"campaignId":"CXXXXXX","brandId":"BXXXXXX"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/PhoneNumberStatusChangedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Phone Number status",
        "description": "`PhoneNumberStatusChangedWebhook` is sent to the URL set up with the `/webhooks` endpoint for webhook\n            type `PhoneNumberStatusChanged` when a Phone Number status has been changed.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberStatusChanged","sid":"WH08df05aece89abc3ee63c553a79084cc14e827d53159d61d","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"PendingMessagingConfigAdd"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberStatusChanged","sid":"WH08df05aece89abc3ee63c553a79084cc14e827d53159d61d","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"PendingMessagingConfigAdd"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberStatusChanged","sid":"WH08df05aece89abc3ee63c553a79084cc14e827d53159d61d","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"PendingMessagingConfigAdd"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberStatusChanged","sid":"WH08df05aece89abc3ee63c553a79084cc14e827d53159d61d","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"PendingMessagingConfigAdd"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/InboundCallReceivedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Inbound Call",
        "description": "`InboundCallReceivedWebhook` is sent to the URL set up with the `/webhooks` endpoint for webhook type\n            `InboundCallReceived` when an Inbound Call is received.\n            <p>\n            In order to proceed with the Inbound Call, you need to respond to this webhook with a Call Script.\n            Examples of the Call Scripts:\n            </p><ul><li><p>Forward the Inbound Call to the specific Phone Number:\n`<Response><Dial>+1234567890</Dial></Response>`</p></li><li><p>Or forward to the specific SIP URI:\n`<Response><Dial>sip:username@server.com</Dial></Response>`</p><p>Examples of valid SIP URI:\n            <ul><li>`sip:user@server.com:5060`</li><li>`sip:user@server.com;transport=TLS`</li><li>`sip:user@server.com?header1=value1&header2=value2`</li><li>`sip:user@server.com:5060;transport=TCP?header=value`</li></ul></p><p>\n            ⚠️ <b>To use SIP destinations with Static Forwarding</b>, the receiving system must be configured to accept SIP\n            traffic from the IP addresses below:\n            <ul><li>`137.192.78.201`</li><li>`137.192.80.201`</li></ul></p><p>\n            These IPs should be added to the receiving system’s allowlist or firewall rules to ensure successful call\n            delivery.\n            </p></li><li><p>Read the specified text and hangup:</p>`<Response><Hangup>Hello voice</Hangup></Response>`</li><li><p>Hangup:</p>`<Response><Hangup/></Response>`\n            or any other response\n            </li></ul>",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundCallReceivedWebhook"
                  }
                ],
                "description": "Inbound call received event."
              },
              "example": {"type":"InboundCallReceived","sid":"WH08df05aece8ad387f692d964d22c25599dfcd6cdc0457184","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundCallReceivedWebhook"
                  }
                ],
                "description": "Inbound call received event."
              },
              "example": {"type":"InboundCallReceived","sid":"WH08df05aece8ad387f692d964d22c25599dfcd6cdc0457184","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundCallReceivedWebhook"
                  }
                ],
                "description": "Inbound call received event."
              },
              "example": {"type":"InboundCallReceived","sid":"WH08df05aece8ad387f692d964d22c25599dfcd6cdc0457184","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InboundCallReceivedWebhook"
                  }
                ],
                "description": "Inbound call received event."
              },
              "example": {"type":"InboundCallReceived","sid":"WH08df05aece8ad387f692d964d22c25599dfcd6cdc0457184","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/CallStatusChangedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Call status",
        "description": "`CallStatusChangedWebhook` is sent to the URL set up with `/webhooks` endpoint for webhook type\n            `CallStatusChanged` when a Call status is changed.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallLegStatusChangedWebhook"
                  }
                ],
                "description": "Call status changed event."
              },
              "example": {"type":"CallStatusChanged","sid":"WH08df05aece9144f963d76c356a478973dfe010b35c6c51b6","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","callDirection":"Inbound","legDirection":"Inbound","legStatus":"Completed","legDuration":"00:01:30","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallLegStatusChangedWebhook"
                  }
                ],
                "description": "Call status changed event."
              },
              "example": {"type":"CallStatusChanged","sid":"WH08df05aece9144f963d76c356a478973dfe010b35c6c51b6","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","callDirection":"Inbound","legDirection":"Inbound","legStatus":"Completed","legDuration":"00:01:30","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallLegStatusChangedWebhook"
                  }
                ],
                "description": "Call status changed event."
              },
              "example": {"type":"CallStatusChanged","sid":"WH08df05aece9144f963d76c356a478973dfe010b35c6c51b6","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","callDirection":"Inbound","legDirection":"Inbound","legStatus":"Completed","legDuration":"00:01:30","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallLegStatusChangedWebhook"
                  }
                ],
                "description": "Call status changed event."
              },
              "example": {"type":"CallStatusChanged","sid":"WH08df05aece9144f963d76c356a478973dfe010b35c6c51b6","payload":{"callSid":"CAXXXXXXXX","legSid":"CLXXXXXXXX","callDirection":"Inbound","legDirection":"Inbound","legStatus":"Completed","legDuration":"00:01:30","from":"+13234567890","to":"+19876543210","eventDate":"2023-03-22T16:44:55.123Z"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/CallRecordingCompletedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Call recording",
        "description": "`CallRecordingCompletedWebhook` is sent to the URL set up with `/webhooks` endpoint for webhook type\n            `CallRecordingCompleted` when a Call recording is completed and available for download.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallRecordingCompletedWebhook"
                  }
                ],
                "description": "Call recording completed and available for download event.\nThis webhook is sent once all call recording parts are available for download."
              },
              "example": {"type":"CallRecordingCompleted","sid":"WH08df05aece931ab2c96fd5c920446ac21944465ca3ad032e","payload":{"callSid":"CA08df05aece9306724c398c928701c3f0c15034fff1576906","callDirection":"Inbound","callInternalNumber":"+19876543210","callExternalNumber":"+13234567890","callRecordingParts":[{"startedOn":"2026-08-29T09:20:45.8097883Z","duration":"00:01:30","url":"https://api.telgorithm.com:443/messaging/v1/Calls/CA08df05aece9306724c398c928701c3f0c15034fff1576906/recordings/1/download"}]}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallRecordingCompletedWebhook"
                  }
                ],
                "description": "Call recording completed and available for download event.\nThis webhook is sent once all call recording parts are available for download."
              },
              "example": {"type":"CallRecordingCompleted","sid":"WH08df05aece931ab2c96fd5c920446ac21944465ca3ad032e","payload":{"callSid":"CA08df05aece9306724c398c928701c3f0c15034fff1576906","callDirection":"Inbound","callInternalNumber":"+19876543210","callExternalNumber":"+13234567890","callRecordingParts":[{"startedOn":"2026-08-29T09:20:45.8097883Z","duration":"00:01:30","url":"https://api.telgorithm.com:443/messaging/v1/Calls/CA08df05aece9306724c398c928701c3f0c15034fff1576906/recordings/1/download"}]}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallRecordingCompletedWebhook"
                  }
                ],
                "description": "Call recording completed and available for download event.\nThis webhook is sent once all call recording parts are available for download."
              },
              "example": {"type":"CallRecordingCompleted","sid":"WH08df05aece931ab2c96fd5c920446ac21944465ca3ad032e","payload":{"callSid":"CA08df05aece9306724c398c928701c3f0c15034fff1576906","callDirection":"Inbound","callInternalNumber":"+19876543210","callExternalNumber":"+13234567890","callRecordingParts":[{"startedOn":"2026-08-29T09:20:45.8097883Z","duration":"00:01:30","url":"https://api.telgorithm.com:443/messaging/v1/Calls/CA08df05aece9306724c398c928701c3f0c15034fff1576906/recordings/1/download"}]}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CallRecordingCompletedWebhook"
                  }
                ],
                "description": "Call recording completed and available for download event.\nThis webhook is sent once all call recording parts are available for download."
              },
              "example": {"type":"CallRecordingCompleted","sid":"WH08df05aece931ab2c96fd5c920446ac21944465ca3ad032e","payload":{"callSid":"CA08df05aece9306724c398c928701c3f0c15034fff1576906","callDirection":"Inbound","callInternalNumber":"+19876543210","callExternalNumber":"+13234567890","callRecordingParts":[{"startedOn":"2026-08-29T09:20:45.8097883Z","duration":"00:01:30","url":"https://api.telgorithm.com:443/messaging/v1/Calls/CA08df05aece9306724c398c928701c3f0c15034fff1576906/recordings/1/download"}]}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/PhoneNumberVoiceStatusChangedWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Phone Number Voice Status",
        "description": "`PhoneNumberVoiceStatusChangedWebhook` is sent to the URL set up with `/webhooks` endpoint for webhook type\n            `PhoneNumberVoiceStatusChanged` when a Phone Number Voice Status has been changed.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberVoiceStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberVoiceStatusChanged","sid":"WH08df05aece9681f4526af61335561f5f0755869c3f5aa38c","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"Active"}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberVoiceStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberVoiceStatusChanged","sid":"WH08df05aece9681f4526af61335561f5f0755869c3f5aa38c","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"Active"}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberVoiceStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberVoiceStatusChanged","sid":"WH08df05aece9681f4526af61335561f5f0755869c3f5aa38c","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"Active"}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PhoneNumberVoiceStatusChangedWebhook"
                  }
                ],
                "description": "Phone Number Status Has Changed event."
              },
              "example": {"type":"PhoneNumberVoiceStatusChanged","sid":"WH08df05aece9681f4526af61335561f5f0755869c3f5aa38c","payload":{"number":"+13234567890","oldStatus":"Pending","newStatus":"Active"}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    },
    "/v1/Webhooks/TrafficLimitAlertWebhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Traffic Limit Alert",
        "description": "`TrafficLimitAlertWebhook` is sent to the URL set up with the `/webhooks` endpoint for webhook type\n            `TrafficLimitAlert` when a traffic limit is reached or nearly reached.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TrafficLimitAlertWebhook"
                  }
                ],
                "description": "Traffic Limit Alert event."
              },
              "example": {"type":"TrafficLimitAlert","sid":"WH08df05aece9d839d7199ef5136514c3a37422682d0e36fe6","payload":{"eventDate":"2026-08-29T09:20:45.8776182Z","entityType":"Campaign","brandId":"BXXXXXX","campaignId":"CXXXXXX","phone":null,"mno":"AT&T","throughput":100,"throughputTimeWindow":"Min","messageType":"SMS","dailyUsagePercentage":75.5}}
            },
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TrafficLimitAlertWebhook"
                  }
                ],
                "description": "Traffic Limit Alert event."
              },
              "example": {"type":"TrafficLimitAlert","sid":"WH08df05aece9d839d7199ef5136514c3a37422682d0e36fe6","payload":{"eventDate":"2026-08-29T09:20:45.8776182Z","entityType":"Campaign","brandId":"BXXXXXX","campaignId":"CXXXXXX","phone":null,"mno":"AT&T","throughput":100,"throughputTimeWindow":"Min","messageType":"SMS","dailyUsagePercentage":75.5}}
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TrafficLimitAlertWebhook"
                  }
                ],
                "description": "Traffic Limit Alert event."
              },
              "example": {"type":"TrafficLimitAlert","sid":"WH08df05aece9d839d7199ef5136514c3a37422682d0e36fe6","payload":{"eventDate":"2026-08-29T09:20:45.8776182Z","entityType":"Campaign","brandId":"BXXXXXX","campaignId":"CXXXXXX","phone":null,"mno":"AT&T","throughput":100,"throughputTimeWindow":"Min","messageType":"SMS","dailyUsagePercentage":75.5}}
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TrafficLimitAlertWebhook"
                  }
                ],
                "description": "Traffic Limit Alert event."
              },
              "example": {"type":"TrafficLimitAlert","sid":"WH08df05aece9d839d7199ef5136514c3a37422682d0e36fe6","payload":{"eventDate":"2026-08-29T09:20:45.8776182Z","entityType":"Campaign","brandId":"BXXXXXX","campaignId":"CXXXXXX","phone":null,"mno":"AT&T","throughput":100,"throughputTimeWindow":"Min","messageType":"SMS","dailyUsagePercentage":75.5}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Correlation ID for the request",
                "schema": {
                  "type": "string",
                  "description": "Correlation ID for the request"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CallDirection": {
        "enum": [
          "Inbound",
          "Outbound"
        ],
        "type": "string",
        "description": "\n<p>Possible values:</p>\n<ul>\n<li><b>Inbound</b></li>\n<li><b>Outbound</b></li>\n</ul>\n"
      },
      "CallLegStatus": {
        "enum": [
          "Ringing",
          "Answered",
          "Completed"
        ],
        "type": "string",
        "description": "\n<p>Possible values:</p>\n<ul>\n<li><b>Ringing</b>: The call leg is ringing, not connected to the called party yet.</li>\n<li><b>Answered</b>: The call leg is answered by the called party. Both parties are connected.</li>\n<li><b>Completed</b>: The call leg is hang up.</li>\n</ul>\n"
      },
      "CallLegStatusChangedPayload": {
        "required": [
          "callDirection",
          "callSid",
          "eventDate",
          "from",
          "legDirection",
          "legDuration",
          "legSid",
          "legStatus",
          "to"
        ],
        "type": "object",
        "properties": {
          "callSid": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of the Call which the Call Leg belongs to.",
            "example": "CA1234567890abcdef1234567890abcdef1234567890abcdef"
          },
          "legSid": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Call Leg unique identifier.",
            "example": "CL1234567890abcdef1234567890abcdef1234567890abcdef"
          },
          "callDirection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallDirection"
              }
            ],
            "description": "Direction of the Call which the Call Leg belongs to.\n<p>Possible values:</p>\n<ul>\n<li><b>Inbound</b></li>\n<li><b>Outbound</b></li>\n</ul>\n"
          },
          "legDirection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallDirection"
              }
            ],
            "description": "Call Leg direction.\n<p>Possible values:</p>\n<ul>\n<li><b>Inbound</b></li>\n<li><b>Outbound</b></li>\n</ul>\n"
          },
          "legStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallLegStatus"
              }
            ],
            "description": "Call Leg status.\n<p>Possible values:</p>\n<ul>\n<li><b>Ringing</b>: The call leg is ringing, not connected to the called party yet.</li>\n<li><b>Answered</b>: The call leg is answered by the called party. Both parties are connected.</li>\n<li><b>Completed</b>: The call leg is hang up.</li>\n</ul>\n"
          },
          "legDuration": {
            "type": "string",
            "description": "Call Leg duration. It has meaningful value only for `Completed` leg status.\nFor other values it is zero.",
            "format": "date-span"
          },
          "from": {
            "type": "string",
            "description": "The originating (caller) Phone Number or SIP URI of the Call Leg.\n\n\nFor `Inbound` Call Legs it represents an external party.\n\n\nFor `Outbound` Call Legs it represents the Phone Number, which belongs to your Telgorithm account.",
            "example": "+12145678900"
          },
          "to": {
            "type": "string",
            "description": "The terminating (callee) Phone Number or SIP URI of the Call Leg.\n\n\nFor `Inbound` Call Legs it represents the Phone Number, which belongs to your Telgorithm account.\n\n\nFor `Outbound` Call Legs it represents an external party.",
            "example": "+19876543210"
          },
          "eventDate": {
            "type": "string",
            "description": "Timestamp when the last Call Leg status change occurred.",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CallLegStatusChangedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallLegStatusChangedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Call status changed event."
      },
      "CallRecordingCompletedPayload": {
        "required": [
          "callDirection",
          "callExternalNumber",
          "callInternalNumber",
          "callRecordingParts",
          "callSid"
        ],
        "type": "object",
        "properties": {
          "callSid": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Call unique identifier.",
            "example": "CA1234567890abcdef1234567890abcdef1234567890abcdef"
          },
          "callDirection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallDirection"
              }
            ],
            "description": "Call direction.\n\n\nIf it is `Inbound`, the call was made from `CallExternalNumber` to `CallInternalNumber`.\n\n\nIf it is `Outbound`, the call was made from `CallInternalNumber` to `CallExternalNumber`.\n<p>Possible values:</p>\n<ul>\n<li><b>Inbound</b></li>\n<li><b>Outbound</b></li>\n</ul>\n"
          },
          "callInternalNumber": {
            "type": "string",
            "description": "The Phone Number which belongs to your Telgorithm account and which was the originating (caller) or\nterminating (callee) party of the Call, depending on the `Direction`.",
            "example": "+12145678900"
          },
          "callExternalNumber": {
            "type": "string",
            "description": "The external Phone Number or SIP URI which was the originating (caller) or terminating (callee) party\nof the Call, depending on the `Direction`.",
            "example": "+19876543210"
          },
          "callRecordingParts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordingPart"
            },
            "description": "Provides information about Call Recording parts."
          }
        },
        "additionalProperties": false
      },
      "CallRecordingCompletedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallRecordingCompletedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Call recording completed and available for download event.\nThis webhook is sent once all call recording parts are available for download."
      },
      "DisplayPhoneStatus": {
        "enum": [
          "Active",
          "Pending",
          "PendingPortIn",
          "PendingTcrCampaignChange",
          "PendingMessagingConfigAdd",
          "PendingTcrCampaignAdd",
          "CanadianTrafficOnly",
          "Removed"
        ],
        "type": "string",
        "description": "Phone Status, used in API response models.\n<p>Possible values:</p>\n<ul>\n<li><b>Active</b>: Phone number is ordered and active.</li>\n<li><b>Pending</b>: Phone number is ordering, but not active yet.</li>\n<li><b>PendingPortIn</b>: Phone number is in port-in process.</li>\n<li><b>PendingTcrCampaignChange</b>: Phone number is in process of changing TCR Campaign.</li>\n<li><b>PendingMessagingConfigAdd</b>: Phone number is ordered, but it's not associated with any MessagingConfig.</li>\n<li><b>PendingTcrCampaignAdd</b>: Phone number is ordered, but it's not associated with an approved TCR Campaign.</li>\n<li><b>CanadianTrafficOnly</b>: Phone number belongs to Canada and has no approved TCR Campaign. Only messages to Canada are allowed.</li>\n<li><b>Removed</b>: Phone number is Removed.</li>\n</ul>\n",
        "example": "Active"
      },
      "InboundCallReceivedPayload": {
        "required": [
          "callSid",
          "eventDate",
          "from",
          "legSid",
          "to"
        ],
        "type": "object",
        "properties": {
          "callSid": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of the inbound Call which the inbound Call Leg belongs to.",
            "example": "CA1234567890abcdef1234567890abcdef1234567890abcdef"
          },
          "legSid": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Inbound Call Leg unique identifier.",
            "example": "CL1234567890abcdef1234567890abcdef1234567890abcdef"
          },
          "from": {
            "type": "string",
            "description": "The originating (caller) Phone Number or SIP URI of the Call Leg, which represents an external party.",
            "example": "+12145678900"
          },
          "to": {
            "type": "string",
            "description": "The terminating (callee) Phone Number of the Call Leg, which belongs to your Telgorithm account.",
            "example": "+19876543210"
          },
          "eventDate": {
            "type": "string",
            "description": "Timestamp when the inbound Call Leg started ringing.",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "InboundCallReceivedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InboundCallReceivedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Inbound call received event."
      },
      "InboundMessageWebhook": {
        "required": [
          "AdditionalRecipients",
          "EventDate",
          "SegmentCount",
          "Sid",
          "To",
          "WebhookSid"
        ],
        "type": "object",
        "properties": {
          "WebhookSid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "Sid": {
            "minLength": 1,
            "type": "string",
            "description": "Message unique identifier.",
            "example": "IM99d9812a055b3da13d3faa216fcf4574b64b19be32626243"
          },
          "From": {
            "type": "string",
            "description": "Sender phone number",
            "nullable": true,
            "example": "+19876543210"
          },
          "To": {
            "minLength": 1,
            "type": "string",
            "description": "Recipient phone number",
            "example": "+11234567890"
          },
          "AdditionalRecipients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other recipients phone numbers. Not empty when the message represents a group MMS message.",
            "example": [
              "+11234567891",
              "+11234567892"
            ]
          },
          "EventDate": {
            "type": "string",
            "description": "UTC date time of event",
            "format": "date-time"
          },
          "Text": {
            "type": "string",
            "description": "Message text",
            "nullable": true,
            "example": "Glad to see you!"
          },
          "MediaUrls": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Media urls. Used for MMS",
            "nullable": true
          },
          "SegmentCount": {
            "type": "integer",
            "description": "Message segment count.",
            "format": "int32",
            "example": 1
          },
          "ConversationMetadata": {
            "type": "string",
            "description": "Conversation metadata for this message.",
            "nullable": true
          },
          "BrandSid": {
            "type": "string",
            "description": "TCR Brand SID if the recipient Phone Number was attached to TCR campaign at the receiving moment.",
            "nullable": true
          },
          "CampaignSid": {
            "type": "string",
            "description": "TCR Campaign SID if the recipient Phone Number was attached to TCR campaign at the receiving moment.",
            "nullable": true
          },
          "MessagingConfigSid": {
            "type": "string",
            "description": "Messaging Config SID at message receiving moment.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessagingLimitScope": {
        "enum": [
          "Unknown",
          "Brand",
          "Campaign",
          "SenderPhoneNumber"
        ],
        "type": "string",
        "description": "Specifies the scope particular limit is applied within.\n<p>Possible values:</p>\n<ul>\n<li><b>Unknown</b>: Unknown</li>\n<li><b>Brand</b>: Per TCR Brand.</li>\n<li><b>Campaign</b>: Per TCR Campaign.</li>\n<li><b>SenderPhoneNumber</b>: Per Sender phone number.</li>\n</ul>\n"
      },
      "OptInOutType": {
        "enum": [
          "OptIn",
          "OptOut"
        ],
        "type": "string",
        "description": "\n<p>Possible values:</p>\n<ul>\n<li><b>OptIn</b></li>\n<li><b>OptOut</b></li>\n</ul>\n"
      },
      "OptInOutWebhook": {
        "required": [
          "EventDate",
          "Number",
          "Scope",
          "ScopeType",
          "Type",
          "WebhookSid",
          "WebhookType"
        ],
        "type": "object",
        "properties": {
          "WebhookSid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "WebhookType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OptInOutType"
              }
            ],
            "description": "Defines user is opting in or out\n<p>Possible values:</p>\n<ul>\n<li><b>OptIn</b></li>\n<li><b>OptOut</b></li>\n</ul>\n"
          },
          "Number": {
            "maxLength": 16,
            "minLength": 1,
            "type": "string",
            "description": "End-user number that opted In/Out",
            "example": "+19876543210"
          },
          "Type": {
            "minLength": 1,
            "type": "string",
            "description": "Obsolete, please use ScopeType instead",
            "deprecated": true
          },
          "ScopeType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OptOutType"
              }
            ],
            "description": "Scope type\n<p>Possible values:</p>\n<ul>\n<li><b>SenderPhoneNumber</b></li>\n<li><b>TcrCampaign</b></li>\n</ul>\n"
          },
          "Scope": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string",
            "description": "Depending on the `ScopeType` field, value can be\nPhone Number or TCR Campaign Sid",
            "example": "+11234567890"
          },
          "EventDate": {
            "type": "string",
            "description": "UTC date time of event",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "OptOutType": {
        "enum": [
          "SenderPhoneNumber",
          "TcrCampaign"
        ],
        "type": "string",
        "description": "Represents what end-user is being opted out from: sender phone number or TCR Campaign.\n<p>Possible values:</p>\n<ul>\n<li><b>SenderPhoneNumber</b></li>\n<li><b>TcrCampaign</b></li>\n</ul>\n"
      },
      "OutboundMessageDcaStatusModel": {
        "type": "object",
        "properties": {
          "providerId": {
            "type": "integer",
            "description": "Abstract provider identifier.",
            "format": "int32"
          },
          "code": {
            "type": "string",
            "description": "Provider-specific status or error code.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Provider-specific symbolic status/error name.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Human-readable description from the provider.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Unified delivery status reported by the DCA."
      },
      "OutboundMessageErrorCode": {
        "enum": [
          "NoError",
          "SenderIsInvalid",
          "SenderNotInTheCompany",
          "SenderNotInTcrCampaign",
          "SenderPhoneNotActiveYet",
          "SenderPhonePendingTcrCampaignChange",
          "SenderAllMNOsUnapproved",
          "RecipientIsInvalid",
          "RecipientOptedOut",
          "DestinationError",
          "DestinationTxtInactive",
          "DestinationMmsInactive",
          "TooManyRecipients",
          "RecipientsAreNotUnique",
          "TextIsEmpty",
          "TextIsTooLong",
          "CallbackUrlIsTooLong",
          "PastExpirationTime",
          "InvalidDateFormat",
          "BothToAndRecipientsAreDefined",
          "ConversationMetadataIsTooLong",
          "ConversationMetadataIsNotSupportedForGroupMessages",
          "MediaUrlsInvalid",
          "TooManyMediaUrls",
          "MediaSizeAboveLimit",
          "InvalidCallbackUrl",
          "TcrLimitIsNotEnough",
          "BlockedAsSpam",
          "Rejected",
          "DeliveryFailure",
          "MessageQueueIsFull",
          "MessageSubmittingFailed",
          "UnknownPriority",
          "TollFreeMsgNotSupported",
          "MsgTooLongDestProvider",
          "SourceTnError",
          "ExternalAggregatorNetworkError",
          "DestinationBillingError",
          "NonCompliantUrl",
          "TemporaryFailure",
          "TcrCampaignIsSuspended",
          "TcrCampaignNotApprovedYet",
          "TcrCampaignIsExpired",
          "TcrCampaignError",
          "AccountIsSuspended",
          "UnregisteredTrafficThroughputLimitReached",
          "UnknownError"
        ],
        "type": "string",
        "description": "Outbound message error code.\n<p>Possible values:</p>\n<ul>\n<li><b>NoError</b>: No error</li>\n<li><b>SenderIsInvalid</b>: Sender Phone Number is invalid or undefined</li>\n<li><b>SenderNotInTheCompany</b>: Sender phone number doesn't belong to your company</li>\n<li><b>SenderNotInTcrCampaign</b>: Sender phone number doesn't belong to any TCR campaign</li>\n<li><b>SenderPhoneNotActiveYet</b>: Sender phone number is not active yet</li>\n<li><b>SenderPhonePendingTcrCampaignChange</b>: Sender phone number is in process of changing TCR Campaign</li>\n<li><b>SenderAllMNOsUnapproved</b>: Not all MNO's were selected on currently attached TCR campaign, please re-create TCR campaign with all MNO's selected</li>\n<li><b>RecipientIsInvalid</b>: Recipient Phone Number is invalid or undefined</li>\n<li><b>RecipientOptedOut</b>: Message cannot be sent to the recipient because recipient has opted out</li>\n<li><b>DestinationError</b>: Destination number is currently unable to receive text messages (possibly no reception or handset is turned off). Check with the end user</li>\n<li><b>DestinationTxtInactive</b>: Destination address does not have text messaging services active</li>\n<li><b>DestinationMmsInactive</b>: The receiver's messaging provider likely does not support MMS messages, please check with the end user</li>\n<li><b>TooManyRecipients</b>: Too many recipient Phone Numbers were specified for group MMS, maximum 10 are allowed</li>\n<li><b>RecipientsAreNotUnique</b>: Recipients list contains duplicated elements</li>\n<li><b>TextIsEmpty</b>: Text cannot be empty</li>\n<li><b>TextIsTooLong</b>: Text cannot be longer than 8000 characters</li>\n<li><b>CallbackUrlIsTooLong</b>: Callback url cannot be longer than 512 characters</li>\n<li><b>PastExpirationTime</b>: Expiration time which was provided with the request is in the past</li>\n<li><b>InvalidDateFormat</b>: UTC date-time field in the request body was provided in invalid format</li>\n<li><b>BothToAndRecipientsAreDefined</b>: Both `to` and `recipients` fields are specified. Only one of them can be specified.</li>\n<li><b>ConversationMetadataIsTooLong</b>: Conversation metadata is longer than 2048 characters</li>\n<li><b>ConversationMetadataIsNotSupportedForGroupMessages</b>: Conversation metadata is not supported for group messages</li>\n<li><b>MediaUrlsInvalid</b>: MediaUrls field contains an invalid and/or unreachable URL</li>\n<li><b>TooManyMediaUrls</b>: MediaUrls field can contain up to five items</li>\n<li><b>MediaSizeAboveLimit</b>: Some of the attachments referenced by MediaUrls exceed maximum size limit</li>\n<li><b>InvalidCallbackUrl</b>: Callback url is badly formed, or its scheme is not HTTP nor HTTPS.</li>\n<li><b>TcrLimitIsNotEnough</b>: Message exceeds your Campaign Registry MNO approved throughput limits. The limit specified in TCR Campaign is too low to accomodate a single message</li>\n<li><b>BlockedAsSpam</b>: SPAM blocking: volume/velocity policies reached and content filtering</li>\n<li><b>Rejected</b>: Equivalent to not authorized. Usually because the number may not have SMS enabled for example</li>\n<li><b>DeliveryFailure</b>: Temporarily unable to deliver. Retry or check with the end user</li>\n<li><b>MessageQueueIsFull</b>: Message queue full</li>\n<li><b>MessageSubmittingFailed</b>: Message submitting failed</li>\n<li><b>UnknownPriority</b>: Priority is wrong</li>\n<li><b>TollFreeMsgNotSupported</b>: Destination address does not accept messages from Toll Free Numbers</li>\n<li><b>MsgTooLongDestProvider</b>: Message is too long for receiving provider</li>\n<li><b>SourceTnError</b>: Source phone number may not be configured correctly (also possible there may be an upstream carrier outage)</li>\n<li><b>ExternalAggregatorNetworkError</b>: Network error between aggregator & MNO, please contact support for further details</li>\n<li><b>DestinationBillingError</b>: Destination number out of carrier funds for texting at the time (Possibly prepaid user). Check with the end user</li>\n<li><b>NonCompliantUrl</b>: Message flagged due to non-compliant URL</li>\n<li><b>TemporaryFailure</b>: Temp TF failure likely due to maintenance update. Please retry sending again a bit later</li>\n<li><b>TcrCampaignIsSuspended</b>: TCR campaign, which the sender number belongs to, is suspended by MNO</li>\n<li><b>TcrCampaignNotApprovedYet</b>: TCR campaign, which the sender number belongs to, is not approved by DCA yet</li>\n<li><b>TcrCampaignIsExpired</b>: TCR campaign, which the sender number belongs to, expired or has not been shared with Telgorithm</li>\n<li><b>TcrCampaignError</b>: TCR campaign, which the sender number belongs to, is in erroneous state. Please contact support if the problem persists</li>\n<li><b>AccountIsSuspended</b>: Your Telgorithm account has insufficient funds. It has been suspended</li>\n<li><b>UnregisteredTrafficThroughputLimitReached</b>: You've reached a throughput allowance likely because of unregistered traffics, please resend or await full Campaign Approval</li>\n<li><b>UnknownError</b>: Unknown error</li>\n</ul>\n",
        "example": "RecipientIsInvalid"
      },
      "OutboundMessagePriority": {
        "enum": [
          "Urgent",
          "High",
          "Normal",
          "Low"
        ],
        "type": "string",
        "description": "\n<p>Possible values:</p>\n<ul>\n<li><b>Urgent</b>: Urgent</li>\n<li><b>High</b>: High</li>\n<li><b>Normal</b>: Normal</li>\n<li><b>Low</b>: Low</li>\n</ul>\n",
        "example": "Low"
      },
      "OutboundMessageStatus": {
        "enum": [
          "Queued",
          "Sent",
          "Delivered",
          "Failed",
          "Expired"
        ],
        "type": "string",
        "description": "Message sending status\n<p>Possible values:</p>\n<ul>\n<li><b>Queued</b>: Message is queued for sending</li>\n<li><b>Sent</b>: Message is sent</li>\n<li><b>Delivered</b>: Message is sent, and the message is delivered to the recipient</li>\n<li><b>Failed</b>: Sending is failed, the error message is filled</li>\n<li><b>Expired</b>: The message has expiration time and the message couldn't be sent before this time. This may occur due to throttling if lots of outbound messages was queued previously, or during messaging config's sending time periods when messaging is not active.</li>\n</ul>\n",
        "example": "Queued"
      },
      "OutboundMessageWebhook": {
        "required": [
          "ErrorCode",
          "EventDate",
          "From",
          "Recipients",
          "SegmentCount",
          "Sid",
          "Status",
          "WebhookSid"
        ],
        "type": "object",
        "properties": {
          "WebhookSid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "Sid": {
            "minLength": 1,
            "type": "string",
            "description": "Message unique identifier.",
            "example": "OM08d9704f044a2fa13d3faa216fcf4574b64b19be32626243"
          },
          "From": {
            "minLength": 1,
            "type": "string",
            "description": "Sender phone number",
            "example": "+11234567890"
          },
          "To": {
            "type": "string",
            "description": "Recipient Phone Number. For a group MMS this field is undefined, please use `recipients` instead.",
            "nullable": true,
            "example": "+19876543210"
          },
          "Recipients": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OutboundMessageWebhookRecipient"
            },
            "description": "Recipients' information which includes Phone Numbers and Carrier names.\nThis field contains more than one element for a group MMS."
          },
          "EventDate": {
            "type": "string",
            "description": "UTC date time of event",
            "format": "date-time"
          },
          "Status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OutboundMessageStatus"
              }
            ],
            "description": "New message status\n<p>Possible values:</p>\n<ul>\n<li><b>Queued</b>: Message is queued for sending</li>\n<li><b>Sent</b>: Message is sent</li>\n<li><b>Delivered</b>: Message is sent, and the message is delivered to the recipient</li>\n<li><b>Failed</b>: Sending is failed, the error message is filled</li>\n<li><b>Expired</b>: The message has expiration time and the message couldn't be sent before this time. This may occur due to throttling if lots of outbound messages was queued previously, or during messaging config's sending time periods when messaging is not active.</li>\n</ul>\n"
          },
          "ErrorCode": {
            "type": "integer",
            "description": "Numeric identifier of error for `Failed` events.\nOtherwise it is 0 (stands for `NoError` ErrorCode).\n<p>Possible values:</p>\n<ul>\n<li><b>0</b>: No error</li>\n<li><b>1</b>: Sender Phone Number is invalid or undefined</li>\n<li><b>2</b>: Sender phone number doesn't belong to your company</li>\n<li><b>3</b>: Sender phone number doesn't belong to any TCR campaign</li>\n<li><b>4</b>: Sender phone number is not active yet</li>\n<li><b>5</b>: Sender phone number is in process of changing TCR Campaign</li>\n<li><b>6</b>: Not all MNO's were selected on currently attached TCR campaign, please re-create TCR campaign with all MNO's selected</li>\n<li><b>1001</b>: Recipient Phone Number is invalid or undefined</li>\n<li><b>1002</b>: Message cannot be sent to the recipient because recipient has opted out</li>\n<li><b>1003</b>: Destination number is currently unable to receive text messages (possibly no reception or handset is turned off). Check with the end user</li>\n<li><b>1004</b>: Destination address does not have text messaging services active</li>\n<li><b>1005</b>: The receiver's messaging provider likely does not support MMS messages, please check with the end user</li>\n<li><b>1006</b>: Too many recipient Phone Numbers were specified for group MMS, maximum 10 are allowed</li>\n<li><b>1007</b>: Recipients list contains duplicated elements</li>\n<li><b>2001</b>: Text cannot be empty</li>\n<li><b>2002</b>: Text cannot be longer than 8000 characters</li>\n<li><b>2003</b>: Callback url cannot be longer than 512 characters</li>\n<li><b>2004</b>: Expiration time which was provided with the request is in the past</li>\n<li><b>2005</b>: UTC date-time field in the request body was provided in invalid format</li>\n<li><b>2006</b>: Both `to` and `recipients` fields are specified. Only one of them can be specified.</li>\n<li><b>2007</b>: Conversation metadata is longer than 2048 characters</li>\n<li><b>2008</b>: Conversation metadata is not supported for group messages</li>\n<li><b>2009</b>: MediaUrls field contains an invalid and/or unreachable URL</li>\n<li><b>2010</b>: MediaUrls field can contain up to five items</li>\n<li><b>2011</b>: Some of the attachments referenced by MediaUrls exceed maximum size limit</li>\n<li><b>2012</b>: Callback url is badly formed, or its scheme is not HTTP nor HTTPS.</li>\n<li><b>3001</b>: Message exceeds your Campaign Registry MNO approved throughput limits. The limit specified in TCR Campaign is too low to accomodate a single message</li>\n<li><b>3002</b>: SPAM blocking: volume/velocity policies reached and content filtering</li>\n<li><b>3003</b>: Equivalent to not authorized. Usually because the number may not have SMS enabled for example</li>\n<li><b>3004</b>: Temporarily unable to deliver. Retry or check with the end user</li>\n<li><b>3005</b>: Message queue full</li>\n<li><b>3006</b>: Message submitting failed</li>\n<li><b>3007</b>: Priority is wrong</li>\n<li><b>3008</b>: Destination address does not accept messages from Toll Free Numbers</li>\n<li><b>3009</b>: Message is too long for receiving provider</li>\n<li><b>3010</b>: Source phone number may not be configured correctly (also possible there may be an upstream carrier outage)</li>\n<li><b>3011</b>: Network error between aggregator & MNO, please contact support for further details</li>\n<li><b>3012</b>: Destination number out of carrier funds for texting at the time (Possibly prepaid user). Check with the end user</li>\n<li><b>3013</b>: Message flagged due to non-compliant URL</li>\n<li><b>3014</b>: Temp TF failure likely due to maintenance update. Please retry sending again a bit later</li>\n<li><b>3015</b>: TCR campaign, which the sender number belongs to, is suspended by MNO</li>\n<li><b>3016</b>: TCR campaign, which the sender number belongs to, is not approved by DCA yet</li>\n<li><b>3017</b>: TCR campaign, which the sender number belongs to, expired or has not been shared with Telgorithm</li>\n<li><b>3018</b>: TCR campaign, which the sender number belongs to, is in erroneous state. Please contact support if the problem persists</li>\n<li><b>3019</b>: Your Telgorithm account has insufficient funds. It has been suspended</li>\n<li><b>3020</b>: You've reached a throughput allowance likely because of unregistered traffics, please resend or await full Campaign Approval</li>\n<li><b>2147483647</b>: Unknown error</li>\n</ul>\n",
            "format": "int32"
          },
          "ErrorDescription": {
            "type": "string",
            "description": "Error message description in case the event is `Failed`",
            "nullable": true
          },
          "SegmentCount": {
            "type": "integer",
            "description": "Message segment count.",
            "format": "int32",
            "example": 1
          },
          "Carrier": {
            "type": "string",
            "description": "Carrier name of the `to` Phone Number.\nFor group MMS this field is undefined, please use `recipients` instead.",
            "nullable": true,
            "example": "Verizon"
          },
          "ConversationMetadata": {
            "type": "string",
            "description": "Conversation metadata for this message.",
            "nullable": true
          },
          "DcaStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OutboundMessageDcaStatusModel"
              }
            ],
            "description": "Unified delivery status reported by the DCA.",
            "nullable": true
          },
          "Priority": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OutboundMessagePriority"
              }
            ],
            "description": "Message priority.\n<p>Possible values:</p>\n<ul>\n<li><b>Urgent</b>: Urgent</li>\n<li><b>High</b>: High</li>\n<li><b>Normal</b>: Normal</li>\n<li><b>Low</b>: Low</li>\n</ul>\n"
          },
          "BrandSid": {
            "type": "string",
            "description": "TCR Brand SID if the sender Phone Number was attached to TCR campaign at the sending moment.",
            "nullable": true
          },
          "CampaignSid": {
            "type": "string",
            "description": "TCR Campaign SID if the sender Phone Number was attached to TCR campaign at the sending moment.",
            "nullable": true
          },
          "MessagingConfigSid": {
            "type": "string",
            "description": "Messaging Config SID at message sending moment.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OutboundMessageWebhookRecipient": {
        "required": [
          "To"
        ],
        "type": "object",
        "properties": {
          "To": {
            "minLength": 1,
            "type": "string",
            "description": "Recipient Phone Number.",
            "example": "+19876543210"
          },
          "Carrier": {
            "type": "string",
            "description": "Carrier name of the `to` Phone Number.",
            "nullable": true,
            "example": "Verizon"
          }
        },
        "additionalProperties": false
      },
      "PhoneNumberStatusChangedPayload": {
        "required": [
          "newStatus",
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Phone Number."
          },
          "oldStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DisplayPhoneStatus"
              }
            ],
            "description": "Phone Number status before change.\n<p>Possible values:</p>\n<ul>\n<li><b>Active</b>: Phone number is ordered and active.</li>\n<li><b>Pending</b>: Phone number is ordering, but not active yet.</li>\n<li><b>PendingPortIn</b>: Phone number is in port-in process.</li>\n<li><b>PendingTcrCampaignChange</b>: Phone number is in process of changing TCR Campaign.</li>\n<li><b>PendingMessagingConfigAdd</b>: Phone number is ordered, but it's not associated with any MessagingConfig.</li>\n<li><b>PendingTcrCampaignAdd</b>: Phone number is ordered, but it's not associated with an approved TCR Campaign.</li>\n<li><b>CanadianTrafficOnly</b>: Phone number belongs to Canada and has no approved TCR Campaign. Only messages to Canada are allowed.</li>\n<li><b>Removed</b>: Phone number is Removed.</li>\n</ul>\n",
            "nullable": true
          },
          "newStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DisplayPhoneStatus"
              }
            ],
            "description": "Phone Number status after change.\n<p>Possible values:</p>\n<ul>\n<li><b>Active</b>: Phone number is ordered and active.</li>\n<li><b>Pending</b>: Phone number is ordering, but not active yet.</li>\n<li><b>PendingPortIn</b>: Phone number is in port-in process.</li>\n<li><b>PendingTcrCampaignChange</b>: Phone number is in process of changing TCR Campaign.</li>\n<li><b>PendingMessagingConfigAdd</b>: Phone number is ordered, but it's not associated with any MessagingConfig.</li>\n<li><b>PendingTcrCampaignAdd</b>: Phone number is ordered, but it's not associated with an approved TCR Campaign.</li>\n<li><b>CanadianTrafficOnly</b>: Phone number belongs to Canada and has no approved TCR Campaign. Only messages to Canada are allowed.</li>\n<li><b>Removed</b>: Phone number is Removed.</li>\n</ul>\n"
          }
        },
        "additionalProperties": false,
        "description": "Phone Number Status Has Changed."
      },
      "PhoneNumberStatusChangedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumberStatusChangedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Phone Number Status Has Changed event."
      },
      "PhoneNumberVoiceStatusChangedPayload": {
        "required": [
          "newStatus",
          "number",
          "oldStatus"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "string",
            "description": "Phone Number."
          },
          "oldStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneVoiceServiceStatus"
              }
            ],
            "description": "Phone Number voice status before change.\n<p>Possible values:</p>\n<ul>\n<li><b>OffPlatform</b>: Voice Service is not included in the Telgorithm platform for this Phone Number or Voice Feature is not enabled for your company.</li>\n<li><b>Active</b>: Voice Service is fully active</li>\n<li><b>Pending</b>: Phone Number (including Voice Service) purchase has been started, waiting for completion</li>\n<li><b>PendingPortIn</b>: Phone Number Voice port-in process has been started, waiting for completion</li>\n<li><b>FailedPortIn</b>: Phone Number Voice port-in process has failed: rejected by the carrier</li>\n</ul>\n"
          },
          "newStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneVoiceServiceStatus"
              }
            ],
            "description": "Phone Number voice status after change.\n<p>Possible values:</p>\n<ul>\n<li><b>OffPlatform</b>: Voice Service is not included in the Telgorithm platform for this Phone Number or Voice Feature is not enabled for your company.</li>\n<li><b>Active</b>: Voice Service is fully active</li>\n<li><b>Pending</b>: Phone Number (including Voice Service) purchase has been started, waiting for completion</li>\n<li><b>PendingPortIn</b>: Phone Number Voice port-in process has been started, waiting for completion</li>\n<li><b>FailedPortIn</b>: Phone Number Voice port-in process has failed: rejected by the carrier</li>\n</ul>\n"
          }
        },
        "additionalProperties": false,
        "description": "Phone Number Voice Status Has Changed."
      },
      "PhoneNumberVoiceStatusChangedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PhoneNumberVoiceStatusChangedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Phone Number Status Has Changed event."
      },
      "PhoneVoiceServiceStatus": {
        "enum": [
          "OffPlatform",
          "Active",
          "Pending",
          "PendingPortIn",
          "FailedPortIn"
        ],
        "type": "string",
        "description": "The status of the Voice Service of the Phone Number.\n<p>Possible values:</p>\n<ul>\n<li><b>OffPlatform</b>: Voice Service is not included in the Telgorithm platform for this Phone Number or Voice Feature is not enabled for your company.</li>\n<li><b>Active</b>: Voice Service is fully active</li>\n<li><b>Pending</b>: Phone Number (including Voice Service) purchase has been started, waiting for completion</li>\n<li><b>PendingPortIn</b>: Phone Number Voice port-in process has been started, waiting for completion</li>\n<li><b>FailedPortIn</b>: Phone Number Voice port-in process has failed: rejected by the carrier</li>\n</ul>\n"
      },
      "RcsInboundMessageContentPayload": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundMessageContentType"
              }
            ],
            "description": "Payload type.\n<p>Possible values:</p>\n<ul>\n<li><b>Text</b>: Text message content.</li>\n<li><b>Suggestion</b>: Suggestion reply content.</li>\n<li><b>File</b>: File message content.</li>\n<li><b>Location</b>: Location message content.</li>\n</ul>\n"
          },
          "text": {
            "maxLength": 10000,
            "type": "string",
            "description": "Message body for text and suggestion payloads.",
            "nullable": true
          },
          "postbackData": {
            "maxLength": 2048,
            "type": "string",
            "description": "Technical value associated with the button clicked.",
            "nullable": true
          },
          "latitude": {
            "maximum": 90,
            "minimum": -90,
            "type": "number",
            "description": "Latitude of the shared location.",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "maximum": 180,
            "minimum": -180,
            "type": "number",
            "description": "Longitude of the shared location.",
            "format": "double",
            "nullable": true
          },
          "file": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundMessageFilePayload"
              }
            ],
            "description": "File metadata for file payloads.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Content object for inbound RCS customer webhooks."
      },
      "RcsInboundMessageContentType": {
        "enum": [
          "Text",
          "Suggestion",
          "File",
          "Location"
        ],
        "type": "string",
        "description": "Supported inbound RCS customer webhook content types.\n<p>Possible values:</p>\n<ul>\n<li><b>Text</b>: Text message content.</li>\n<li><b>Suggestion</b>: Suggestion reply content.</li>\n<li><b>File</b>: File message content.</li>\n<li><b>Location</b>: Location message content.</li>\n</ul>\n"
      },
      "RcsInboundMessageFilePayload": {
        "required": [
          "contentType",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "maxLength": 1000,
            "minLength": 1,
            "type": "string",
            "description": "URL of the file sent in an incoming message."
          },
          "contentType": {
            "minLength": 1,
            "type": "string",
            "description": "Content type of the file."
          },
          "fileName": {
            "type": "string",
            "description": "Name of the file.",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "Size of the file in bytes.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "File metadata for inbound RCS customer webhooks."
      },
      "RcsInboundMessageReceivedPayload": {
        "required": [
          "agentId",
          "content",
          "eventDate",
          "from",
          "sid"
        ],
        "type": "object",
        "properties": {
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of the incoming message."
          },
          "from": {
            "type": "string",
            "description": "Phone number of the user who sent the message."
          },
          "agentId": {
            "minLength": 1,
            "type": "string",
            "description": "Registered agent ID that received the message."
          },
          "eventDate": {
            "type": "string",
            "description": "UTC date time of the event.",
            "format": "date-time"
          },
          "content": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundMessageContentPayload"
              }
            ],
            "description": "Actual content of the inbound RCS message."
          },
          "conversationMetadata": {
            "type": "string",
            "description": "Conversation metadata for this RCS message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Customer webhook payload for inbound RCS messages."
      },
      "RcsInboundMessageReceivedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundMessageReceivedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "RCS inbound message received event."
      },
      "RcsInboundUserActionPayload": {
        "required": [
          "agentId",
          "eventDate",
          "from",
          "postbackData",
          "sid",
          "text",
          "type"
        ],
        "type": "object",
        "properties": {
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of the related RCS message."
          },
          "from": {
            "type": "string",
            "description": "Phone number of the user who has performed the action."
          },
          "agentId": {
            "minLength": 1,
            "type": "string",
            "description": "Registered agent ID that received the event."
          },
          "eventDate": {
            "type": "string",
            "description": "UTC date time of the event.",
            "format": "date-time"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundUserActionType"
              }
            ],
            "description": "Type of the user action.\n<p>Possible values:</p>\n<ul>\n<li><b>Suggestion</b>: The end user has acted over a suggestion sent with an RCS message.</li>\n</ul>\n"
          },
          "text": {
            "minLength": 1,
            "type": "string",
            "description": "Incoming suggestion text (the label of the suggestion button)."
          },
          "postbackData": {
            "minLength": 1,
            "type": "string",
            "description": "`PostbackData` of the associated suggestion."
          }
        },
        "additionalProperties": false,
        "description": "Customer webhook payload for inbound RCS user actions."
      },
      "RcsInboundUserActionType": {
        "enum": [
          "Suggestion"
        ],
        "type": "string",
        "description": "Type of the user action.\n<p>Possible values:</p>\n<ul>\n<li><b>Suggestion</b>: The end user has acted over a suggestion sent with an RCS message.</li>\n</ul>\n"
      },
      "RcsInboundUserActionWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsInboundUserActionPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "RCS inbound user action event."
      },
      "RcsMessageSeenPayload": {
        "required": [
          "agentId",
          "eventDate",
          "sid",
          "to"
        ],
        "type": "object",
        "properties": {
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "The RCS message unique identifier."
          },
          "agentId": {
            "minLength": 1,
            "type": "string",
            "description": "Sender Agent ID."
          },
          "to": {
            "type": "string",
            "description": "Recipient phone number."
          },
          "eventDate": {
            "type": "string",
            "description": "UTC date and time when the message was seen.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Webhook payload for the RCS message-seen event."
      },
      "RcsMessageSeenWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsMessageSeenPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "RCS message seen event."
      },
      "RcsOutboundMessageStatus": {
        "enum": [
          "Queued",
          "Sent",
          "Delivered",
          "FallbackTriggered",
          "Failed"
        ],
        "type": "string",
        "description": "RCS outbound message sending status.\n<remarks>```\n                                 RCS Status diagram:\n╔═══════════════════════════════════════════════════════════════════════════════════╗\n║                                      ( POST /v1/Rcs )                             ║\n║                                             │                                     ║\n║                                        ┌────▼────┐                                ║\n║                                        │ Queued  │                                ║\n║                                        └─────────┘                                ║\n║                                        SPAM_filter                                ║\n║                          ┌──success───┘           └──Internal_spam_block─┐        ║\n║                          ▼                                               │        ║\n║                     ┌─────────┐                                          │        ║\n║                     │  Sent   │                                          │        ║\n║                     └────┬────┘                                          │        ║\n║                          │                                               │        ║\n║              ┌───────────┼───────────────────────────┐                   │        ║\n║              │           │                           │                   │        ║\n║        DLR_Delivered  DLR_Rejected          DLR_Spam_(7016,_607)         │        ║\n║              │         (Non-Spam)      or_(Sync_5xx_and_fallback=null)   │        ║\n║              │           │                           │                   │        ║\n║              ▼           ▼                           ▼                   ▼        ║\n║        ┌───────────┐ ┌───────────────────┐         ┌───────────────────────┐      ║\n║        │ Delivered │ │ FallbackTriggered │         │        Failed         │      ║\n║        └───(End)───┘ └───────(End)───────┘         └─────────(End)─────────┘      ║\n╚═══════════════════════════════════════════════════════════════════════════════════╝\n```</remarks>\n<p>Possible values:</p>\n<ul>\n<li><b>Queued</b>: Message is queued for sending.</li>\n<li><b>Sent</b>: Message was accepted by the upstream provider.</li>\n<li><b>Delivered</b>: Message was delivered to the recipient.</li>\n<li><b>FallbackTriggered</b>: RCS delivery failed and SMS/MMS fallback was triggered.</li>\n<li><b>Failed</b>: Sending failed: spam filter blocked, retries exhausted, or non-retryable provider error.</li>\n</ul>\n",
        "example": "Queued"
      },
      "RcsOutboundMessageStatusChangedPayload": {
        "required": [
          "agentId",
          "eventDate",
          "sid",
          "status",
          "to"
        ],
        "type": "object",
        "properties": {
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "The RCS message unique identifier."
          },
          "agentId": {
            "minLength": 1,
            "type": "string",
            "description": "Sender Agent ID (RCS identity)."
          },
          "to": {
            "type": "string",
            "description": "Recipient phone number."
          },
          "eventDate": {
            "type": "string",
            "description": "UTC timestamp of the event (ISO 8601).",
            "format": "date-time"
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsOutboundMessageStatus"
              }
            ],
            "description": "Current status of the RCS message.\n<p>Possible values:</p>\n<ul>\n<li><b>Queued</b>: Message is queued for sending.</li>\n<li><b>Sent</b>: Message was accepted by the upstream provider.</li>\n<li><b>Delivered</b>: Message was delivered to the recipient.</li>\n<li><b>FallbackTriggered</b>: RCS delivery failed and SMS/MMS fallback was triggered.</li>\n<li><b>Failed</b>: Sending failed: spam filter blocked, retries exhausted, or non-retryable provider error.</li>\n</ul>\n"
          },
          "conversationMetadata": {
            "type": "string",
            "description": "Conversation metadata for this RCS message.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Webhook payload for RCS outbound message status change events."
      },
      "RcsOutboundMessageStatusChangedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsOutboundMessageStatusChangedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "RCS outbound message status changed event."
      },
      "RcsTypingIndicatorReceivedPayload": {
        "required": [
          "agentId",
          "eventDate",
          "from"
        ],
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Phone number of the user who started typing."
          },
          "agentId": {
            "minLength": 1,
            "type": "string",
            "description": "Registered agent ID that should receive the event."
          },
          "eventDate": {
            "type": "string",
            "description": "UTC date time of the event.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Customer webhook payload for RCS typing indicators."
      },
      "RcsTypingIndicatorWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/RcsTypingIndicatorReceivedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "RCS typing indicator event."
      },
      "RecordingPart": {
        "required": [
          "duration",
          "startedOn",
          "url"
        ],
        "type": "object",
        "properties": {
          "startedOn": {
            "type": "string",
            "description": "Timestamp of the moment when the recording started.",
            "format": "date-time"
          },
          "duration": {
            "type": "string",
            "description": "Duration of the recording.",
            "format": "date-span"
          },
          "url": {
            "type": "string",
            "description": "The URL of the recording to download its contents.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "description": "Call Recording part."
      },
      "TcrCampaignImportedPayload": {
        "required": [
          "brandId",
          "campaignId"
        ],
        "type": "object",
        "properties": {
          "campaignId": {
            "minLength": 1,
            "type": "string",
            "description": "Campaign identifier in TCR.",
            "example": "CXXXXXX"
          },
          "brandId": {
            "minLength": 1,
            "type": "string",
            "description": "Brand identifier in TCR.",
            "example": "BXXXXXX"
          }
        },
        "additionalProperties": false,
        "description": "New TCR campaign was imported."
      },
      "TcrCampaignImportedWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TcrCampaignImportedPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "New TCR campaign was imported event."
      },
      "TrafficLimitAlertPayload": {
        "required": [
          "dailyUsagePercentage",
          "entityType",
          "eventDate",
          "messageType",
          "throughput",
          "throughputTimeWindow"
        ],
        "type": "object",
        "properties": {
          "eventDate": {
            "type": "string",
            "description": "Timestamp of the alert.",
            "format": "date-time"
          },
          "entityType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessagingLimitScope"
              }
            ],
            "description": "Type of limit scope.\n<p>Possible values:</p>\n<ul>\n<li><b>Unknown</b>: Unknown</li>\n<li><b>Brand</b>: Per TCR Brand.</li>\n<li><b>Campaign</b>: Per TCR Campaign.</li>\n<li><b>SenderPhoneNumber</b>: Per Sender phone number.</li>\n</ul>\n"
          },
          "brandId": {
            "type": "string",
            "description": "TCR Brand SID. Required if EntityType is Campaign or Brand.",
            "nullable": true
          },
          "campaignId": {
            "type": "string",
            "description": "TCR Campaign SID. null if EntityType is Brand or PhoneNumber",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Sender phone number. Required only if EntityType is PhoneNumber.",
            "nullable": true
          },
          "mno": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TrafficLimitAlertPayloadMno"
              }
            ],
            "description": "Carrier name.\n<p>Possible values:</p>\n<ul>\n<li><b>AT&T</b></li>\n<li><b>T-Mobile</b></li>\n<li><b>Verizon</b></li>\n<li><b>U.S. Cellular</b></li>\n</ul>\n",
            "nullable": true
          },
          "throughput": {
            "type": "integer",
            "description": "Configured limit value.",
            "format": "int32"
          },
          "throughputTimeWindow": {
            "minLength": 1,
            "type": "string",
            "description": "Time interval: Sec, Min, Day."
          },
          "messageType": {
            "minLength": 1,
            "type": "string",
            "description": "Message type: SMS, MMS."
          },
          "dailyUsagePercentage": {
            "type": "number",
            "description": "Current utilization percentage.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "TrafficLimitAlertPayloadMno": {
        "enum": [
          "AT&T",
          "T-Mobile",
          "Verizon",
          "U.S. Cellular"
        ],
        "type": "string",
        "description": "Represents a set of possible values for MNO returned in `TrafficLimitAlertPayload`.\n<p>Possible values:</p>\n<ul>\n<li><b>AT&T</b></li>\n<li><b>T-Mobile</b></li>\n<li><b>Verizon</b></li>\n<li><b>U.S. Cellular</b></li>\n</ul>\n"
      },
      "TrafficLimitAlertWebhook": {
        "required": [
          "payload",
          "sid",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WebhookType"
              }
            ],
            "description": "Webhook type.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
          },
          "sid": {
            "minLength": 1,
            "type": "string",
            "description": "Unique identifier of this webhook.\nThis value could be used as an idempotency key when processing this webhook.",
            "example": "WH08dba8f78b5eabd733eba3812a614e8e8257628ef32c888b"
          },
          "payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TrafficLimitAlertPayload"
              }
            ],
            "description": "Webhook payload."
          }
        },
        "additionalProperties": false,
        "description": "Traffic Limit Alert event."
      },
      "WebhookType": {
        "enum": [
          "TcrCampaignImported",
          "PhoneNumberStatusChanged",
          "PhoneNumberVoiceStatusChanged",
          "TrafficLimitAlert",
          "InboundCallReceived",
          "InboundCallReceivedFallback",
          "CallStatusChanged",
          "CallRecordingCompleted",
          "OutboundMessageStatusChanged",
          "InboundMessageReceived",
          "OptInOutReceived",
          "RcsOutboundMessageStatusChanged",
          "RcsInboundMessageReceived",
          "RcsInboundUserAction",
          "RcsMessageSeen",
          "RcsTypingIndicator"
        ],
        "type": "string",
        "description": "The list of the supported webhook types.\n<p>Possible values:</p>\n<ul>\n<li><b>TcrCampaignImported</b>: Notifies that new campaign was imported from TCR. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberStatusChanged</b>: Notifies that phone number changed its status. This webhook is configured at company level via webhook subscription.</li>\n<li><b>PhoneNumberVoiceStatusChanged</b>: Phone number voice status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>TrafficLimitAlert</b>: Traffic limit alert. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceived</b>: Inbound call received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>InboundCallReceivedFallback</b>: Inbound call received fallback. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallStatusChanged</b>: Call status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>CallRecordingCompleted</b>: Call recording completed and available for download. This webhook is configured at company level via webhook subscription.</li>\n<li><b>OutboundMessageStatusChanged</b>: Outbound message status is changed. This webhook is configured at messaging config level.</li>\n<li><b>InboundMessageReceived</b>: Inbound message is received. This webhook is configured at messaging config level.</li>\n<li><b>OptInOutReceived</b>: Opt-in or opt-out is received. This webhook is configured at messaging config level.</li>\n<li><b>RcsOutboundMessageStatusChanged</b>: RCS outbound message status changed. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundMessageReceived</b>: RCS inbound message received. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsInboundUserAction</b>: User has acted over a suggestion sent with the RCS message. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsMessageSeen</b>: The recipient device confirmed that an RCS outbound message was seen. This webhook is configured at company level via webhook subscription.</li>\n<li><b>RcsTypingIndicator</b>: End user started typing in an RCS conversation. This webhook is configured at company level via webhook subscription.</li>\n</ul>\n"
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "description": "Basic Authorization header using the BASIC scheme. Use a pair `companySid:token` to access the API.",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "basic": [ ]
    }
  ],
  "tags": [
    {
      "name": "Webhooks",
      "description": "This section contains the samples of the webhooks for the various events that are sent by Telgorithm."
    }
  ]
}