---
title: "Send click-to-call message"
method: POST
path: "/voice/ctc/1/send"
tags: ["channels", "voice", "click-to-call"]
---

# Send click-to-call message

`POST /voice/ctc/1/send`

## Request

- Base URL: `https://api.infobip.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infobip.com/voice/ctc/1/send`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.infobip.com/auth/1/oauth2/token`
  - API key in header `Authorization`
  - API key in header `Authorization`
  - HTTP basic

This method allows you to send click-to-call voice messages.

## Request body

- 977e3573b6848c404863a30ecae06e08186a75a9070af48acc4b4f99a371a9b7ClickToCallApiRequest: Click-to-call request object.
  - `bulkId` string: The ID which uniquely identifies the request.
  - `messages` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8ClickToCallApiMessage[], required: Array of click to call messages to be sent.
    - `from` string, required: Numeric sender ID. Will be shown to _destinationA_.
    - `fromB` string: Numeric sender ID in E.164 format. If set, it will be shown to _destinationB_. If not set, _from_ or _destinationA_ will be shown to _destinationB_, depending on the value of _anonymization_.
    - `destinationA` string, required: Original destination address. Address must be in the international format (Example: `41793026727`).
    - `destinationB` string, required: Destination address to which the call will be transferred after successful answering. Address must be in the international format (Example: `41793026727`).
    - `messageId` string: The ID that uniquely identifies the message sent. It can be defined by you or Infobip will generate unique message ID for this specific call. The field is not mandatory.
    - `audioFileUrl` string: An audio file can be delivered as a voice message to the recipients. An audio file must be uploaded online, so that the existing URL can be available for file download. Size of the audio file must be below 4 MB. Supported formats of the provided file are aac, aiff, m4a, mp2, mp3, mp4 (audio only), ogg, wav and wma. Our platform needs to have permission to make GET and HEAD HTTP requests on the provided URL. Standard http ports (like 80, 8080, etc.) are advised.
    - `text` string: Text of the message that will be played before call transfer. SSML (Speech Synthesis Markup Language) is supported and can be used to fully customize pronunciation of the provided text.
    - `language` string: If the message is in text format, language in which the message is written must be defined for correct pronunciation. In the Languages section, you can find the list of languages that we support. If not set, default language is `English [en].`
    - `voice` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8Voice: Used to define voice in which text would be synthesized. It has two parameters: _name_ and _gender_. When only _name_ is provided, then that exact voice with that name will be used to synthesize text. If only _gender_ is provided, then text is synthesized with first voice in given gender. If voice is not set, then default voice for that specific language is used.
      - `gender` string: Gender of the voice. Can be `male` or `female`.
      - `name` string: Name of the voice. Example: `Joanna`
    - `anonymization` boolean: If set, same numeric sender (defined in _from_) is used for both calls (towards _destinationA_ and _destinationB_). If not set, _destinationA_ will be shown to _destinationB_. If _fromB_ is set up, _anonymization_ will not be applied; _from_ will be shown to _destinationA_ and _fromB_ will be shown to _destinationB_. Default value is `false`.
    - `notifyUrl` string: The URL on your callback server on which the Delivery report will be sent.
    - `notifyContentType` string: Preferred Delivery report content type. Can be `application/json` or `application/xml`.
    - `notifyContentVersion` integer: Specifies the version of the report model to be sent. Can be `1` ([deprecated version 1](#programmable-communications/voice/receive-voice-delivery-reports-deprecated)) or `2` ([current version 2](#programmable-communications/voice/receive-voice-delivery-reports)). The default is version 2.
    - `maxDuration` integer: Maximum duration of transferred call in seconds. If set, when _maxDuration_ is reached call will be terminated.
    - `warningTime` integer: Time before the end of the transferred call, in seconds, when warning beep sound will be played. For example, if _maxDuration_ is set to `60` and warningTime is set to `5`, this means that warning beep will be played on `55.` second of the transferred call, or `5` seconds before it's end.
    - `retry` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8Retry: Used to define if the delivery of the Voice messages should be retried in case the first try doesn't succeed. Additional retries will be made according to the schedule defined by _minPeriod_ and _maxPeriod_ parameters and platform's internal retry logic. If the _minPeriod_ differs _maxPeriod_, delivery will be retried in the following manner: after 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours or until maxPeriod is reached. If the retry attempt for the _maxPeriod_ is reached, the _maxPeriod_ will be used for all subsequent retries. If the _minPeriod_ and the _maxPeriod_ are defined as equal values, the period of time between retries will be equal to this value. Message delivery will be retried until the successful delivery or message validity or _maxCount_ value is reached.
      - `minPeriod` integer, required: Defines the minimal waiting time (in minutes) after the previous failed attempt to try to deliver the message again. Supported values are 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours. If entered a value that isn't from the previous list but that's smaller than 24 hours, it is used the next bigger value from the list. If entered value that is bigger than 24 hours than it is used 24 hours.
      - `maxPeriod` integer, required: Defines the maximum waiting time (in minutes) after the previous failed attempt to try to deliver the message again. Supported values are 1 min, 2 min, 5 min, 10 min, 20 min, 30 min, 1 hour, 2 hours, 4 hours, 8 hours, 16 hours, 24 hours. If entered a value that isn't from the previous list but that's smaller than 24 hours, it is used the next bigger value from the list. If entered value that is bigger than 24 hours than it is used 24 hours.
      - `maxCount` integer, required: Specify the maximum number of retry attempts. Maximum value of the maxCount is `4`. If the value is higher than `4`, it will be set to `4`.
    - `machineDetection` string: Used for enabling detection of answering machine after the call has been answered on `destinationA`. It can be set to `hangup` which means if a machine is detected, the call is hung up. If `machineDetection` is used, there is a minimum of 4 seconds detection time, which can result in delay of playing the message. Answering machine detection is additionally charged. For more information please contact your account manager.
    - `deliveryTimeWindow` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8DeliveryTimeWindow: Scheduling object that allows setting up detailed time windows in which the message can be sent. Consists of from, to and days properties. Days in the week are written as their full names: Monday-Sunday. Days parameter must be populated as a list, between two square brackets. `Example: ['MONDAY', 'TUESDAY', 'WEDNESDAY']`. From and to properties should be either both included, to allow finer time window granulation or both omitted, to include whole days in the delivery time window. From and to parameters are objects, that consist of hour and minute fields that hold integer values. For example, ` from: [ hour: 15, minute:45 ]`. For complete json, please check out our example. Note: delivery time window is set in UTC timezone.
      - `days` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8DeliveryDay[], required
      - `from` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8DeliveryTime, required
        - `hour` integer, required
        - `minute` integer, required
      - `to` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8DeliveryTime, required
        - `hour` integer, required
        - `minute` integer, required

## Response `200`

Success

- 97cb4ba23432eb0e600ef0617ae1982d499839ef41226973c71dfb335b3071b8StandardVoiceResponse: Voice response object
  - `bulkId` string: The ID that uniquely identifies the request. Bulk ID will be received only when you send a message to more than one destination address.
  - `messages` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8ResponseDetails[]: Array of sent messages, one object per every message.
    - `to` string: The message destination address.
    - `status` 287f18f04e9f129a7bc94ed3ae48e2480e2673b8fdf041ab5125fde9674634b8SingleMessageStatus: Indicates whether the message has been successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.
      - `groupId` integer: Status group ID.
      - `groupName` string: Status group name that describes which category the status code belongs to, e.g. PENDING, UNDELIVERABLE, DELIVERED, EXPIRED, REJECTED.
      - `id` integer: Status ID.
      - `name` string: Status name.
      - `description` string: Human-readable description of the status.
    - `messageId` string: The ID that uniquely identifies the message sent.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/infobip/apis/infobip-openapi-specification.md) - [All operations](https://skmtc.dev/infobip/apis/infobip-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/infobip/apis/infobip-openapi-specification/revisions/9dcbbaf902de?raw)
