{"openapi":"3.0.0","info":{"version":"1.0","title":"Engage API","description":"This spec contains details about the Telesign Engage API.","contact":{"name":"Telesign Customer Support Team","email":"support@telesign.com"}},"paths":{"/v1/messaging":{"post":{"summary":"Send an SMS message","description":"Send an SMS message. Use request parameters to specify the type of message, what phase of the account lifecycle the message is being sent in, and additional details about the transaction.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Accepts:** `application/x-www-form-urlencoded`\n* **Required headers:** `Content-Type - application/x-www-form-urlencoded`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"phone_number":{"description":"The end user's phone number with country code included. Avoid use of special characters and spaces.","type":"string","example":"15558675309"},"message":{"description":"Text of the message to be sent to the end user. You are limited to 1600 characters. If you send a very long message, Telesign splits your message into separate parts. Telesign recommends against sending messages that require multiple SMSes when possible.","type":"string"},"message_type":{"description":"This parameter specifies the traffic type being sent in the message. You can provide one of the following values -\n* OTP (One time passwords)\n* ARN (Alerts, reminders, and notifications)\n* MKT (Marketing traffic)\n","type":"string"},"account_lifecycle_event":{"description":"This parameter allows you to indicate what phase of the lifecycle you are in when you send a transaction. The options for this parameter are - \n* create - For the creation of a new account)\n* sign-in For when an end user signs in to their account.\n* transact - For when an end user completes a transaction within their account\n* update - For when an update is performed, such as an update of account information or similar. \n* delete - For when an account is deleted.\n","type":"string"},"sender_id":{"description":"This parameter allows you to set a specific sender ID to be used on an SMS message sent to the end user. In order to use a specific sender ID, Telesign must whitelist your selected sender ID values. Be aware that 100% preservation of a sender ID value is not guaranteed. Telesign may override the sender ID value that your end user will receive in order to improve delivery quality or follow SMS regulations in particular countries. In order to use this feature, you must contact Telesign Support and have them enable it for you. We recommend limiting values to 0-9 and A-Z, as support for other ASCII characters varies by carrier.","type":"string","maxLength":20},"external_id":{"description":"A customer-generated ID for this transaction. The response simply echoes the value provided for this parameter.","type":"string"},"originating_ip":{"type":"string","description":"Your end user's IP address (do not send your own IP address). This is used to help Telesign improve our services. IPv4 and IPv6 are supported. For IPv4, the value must be in the format defined by the Internet Engineering Task Force (IETF) in the Internet-Draft document titled [Internet Protocol](https://tools.ietf.org/html/rfc791). For IPv6, the value must be in the format defined by the IETF in the Internet-Draft document titled [IP Version 6 Addressing Architecture](https://tools.ietf.org/html/rfc4291#section-2.2)."},"callback_url":{"description":"A URL where you want delivery reports to be sent related to your request. This overrides any default callback URL that you’ve previously set. The override only lasts for this request.","type":"string"},"is_primary":{"description":"Whether you are using this service as your primary provider to send this message (`”true”`) or as a backup after your primary provider failed (`”false”`). We use this data to optimize message routing.","type":"string","default":"true"},"dlt_template_id":{"description":"**(India-local traffic only)**. The ID of the DLT template used for this message. See *[India DLT Update](https://support.telesign.com/s/article/India-DLT-Update)* for more details on the relevant regulations.","type":"string","maxLength":40},"dlt_entity_id":{"description":"**(India-local traffic only)**. The ID of the entity sending this message. See *[India DLT Update](https://support.telesign.com/s/article/India-DLT-Update)* for more details on the relevant regulations. ","type":"string","maxLength":40}},"required":["phone_number","message","message_type"]}}}},"responses":{"200":{"description":"**Success.** Your request was fulfilled and resulted in a new resource being created. If you want to code against a response, you should retrieve the status code and use that rather than the HTTP status response. \n \n| Status code | Associated text string | Description |\n|-------------|------------------------|-------------|\n| 290         | Message in progress    | The message is being sent to the SMS gateway.    |","content":{"application/json":{"schema":{"$ref":"#/components/schemas/postSMSSuccessResponse"},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":290,"description":"Message in progress","updated_on":"2022-31-03T14:51:28.709526Z"}}}}}}},"400":{"$ref":"#/components/responses/StandardMSG400ErrorResponse"},"401":{"description":"Unauthorized, the request requires user authentication. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response. \n\n  Status code | Associated Text String \n -------------|------------------------\n 10002 | 'x-ts-nonce' header value has been used recently\n 10003 | 'x-ts-nonce' header value is either too long or too short\n 10004 | 'Date' or 'x-ts-date' header is not within tolerable range\n 10005 | 'Date' or 'x-ts-date' header is not RFC822 compliant\n 10006 | Invalid 'x-ts-auth-method' header.\n 10007 | Missing required 'Date' or 'x-ts-date' header\n 10008 | Invalid Signature.\n 10009 | Missing required 'Authorization' header\n 10010 | CustomerID Account Suspended\n 10011 | This product is not enabled for this CustomerID.\n 10014 | Invalid source IP address.\n 10015 | Invalid Customer ID.\n 10022 | Invalid API Key.\n 10028 | Required 'Authorization' header is not in the correct format\n 10031 | Not Allowed Host\n 10033 | {phone_number} has not been verified for this trial account.\n 10035 | The requested API host is not allowed for this CustomerID.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"$ref":"#/components/schemas/401ResponseSchema"},{"type":"object","properties":{"signature_string":{"type":"string","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly.","example":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nphone_number=11234567890&message=Your message here.&message_type=MKT\\n/v1/messaging"}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10022,"description":"Invalid API key","updated_on":"2022-31-03T14:51:28.709526Z"},"external_id":"CustomExternalID7349"}}}}}},"429":{"description":"Too Many Requests, the user sent too many requests in a given amount of time. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n Status code | Associated text string \n-------------|-----------------------\n 10019       | Rate Limit Exceeded    \n 10020       | Generic messaging exceeded transaction hard cap. Request denied.        \n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":10019},"description":{"type":"string","example":"Rate Limit Exceeded"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10019,"description":"Rate Limit Exceeded","updated_on":"2022-31-03T14:51:28.709526Z"}}}}}}},"500":{"$ref":"#/components/responses/StandardMSG500ErrorResponse"}},"tags":["SMS"],"operationId":"sendSMS"}},"/v1/messaging/{reference_id}":{"get":{"summary":"Get transaction status","description":"Get delivery status and other details for an SMS transaction that you have created.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Accepts:** `application/x-www-form-urlencoded`\n* **Required headers:** `Content-Type - application/x-www-form-urlencoded`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","parameters":[{"in":"path","name":"reference_id","required":true,"description":"A unique identifier you can use to query the Messaging API and find out the status of your transaction.","schema":{"type":"string"}}],"responses":{"200":{"description":"Your request was fulfilled and resulted in a new resource being created. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response. \n\n\n | Status Code | Associated Text String | Description                                      |\n |-------------|------------------------|--------------------------------------------------|\n | 200         | Delivered to handset   | The SMS was delivered to the end user's phone. (Final)                                          |\n | 201         | Transaction successfully completed, suspicious activity detected   | Telesign's internal anti-fraud mechanisms identified potentially suspicious activity related to the destination phone number.   |\n | 203         | Delivered to gateway   | The SMS was delivered to the gateway. If the gateway responds with further information (including successful delivery to handset or delivery failure), the status is updated. (Intermediate)                                   |\n | 207         | Error delivering SMS to handset (reason unknown)   | The SMS could not be delivered to the end user's handset for an unknown reason. (Final)           |\n | 210         | Temporary phone error  | The SMS could not be delivered to the handset due to a temporary error with the phone. Examples - phone is turned off, not enough memory to store the message. (Final)                             |\n | 211         | Permanent phone error  | The SMS could not be delivered to the handset due to a permanent error with the phone. For example, the phone is incompatible with SMS, or illegally registered on the network. This can happen when a phone number is blacklisted, or is incorrectly provisioned. (Final)                             |\n | 220         | Gateway/network cannot route message | The network cannot route the message to the handset. (Final)                                 |\n | 221         | Message expired before delivery | The message was queued by the mobile provider and timed out before it could be delivered to the handset. (Final)                             |\n | 222         | SMS not supported      | SMS is not supported by this phone, carrier,    plan, or user.                                   |\n | 231         | Invalid/unsupported    | Invalid/unsupported message content  |\n | 237         | Message blocked in requested country    | You requested that messages in a specific country be blocked, and the message was being sent to this country                                    |\n | 238         | Destination blocked by prefix | You requested that phone numbers with a   particular prefix be blocked.                    |\n | 250         | Final status unknown   | The final status of the SMS cannot be determined.|\n | 251         | Message successfully sent out for delivery, however final confirmation of delivery to handset was not received. | Telesign successfully delivered the message through our gateway and it passed downstream. However, Telesign did not receive a delivery receipt within 12 hours of transmission. We cannot confirm delivery to the handset. The end user most likely did not receive the message. |\n | 290         | Message in progress    | The message is being sent to the SMS gateway.    |\n | 292         | Queued by gateway      | The SMS gateway has queued the message.          |\n | 295         | Status delayed         | The status of the SMS is temporarily unavailable.|\n | 502         | Campaign error         | This error can be generated if there is a problem with the short code used.                        |\n | 503         | Carrier rejected - temporary problem    | This error is generated if there is an error on the carrier or operator side that is temporary and the message can be retried.                  |\n | 504         | Carrier rejected - permanent error    | This error is generated if there is an error on the carrier or operator side that is permanent and the message should not be retried.           |\n | 505         | Error on gateway - temporary error   | This error is generated if there is an error on Telesign's partner side that is considered temporary and the message can be retried.        |\n | 506         | Error on gateway - permanent error    | This error is generated if there is an error on Telesign's partner side that is considered permanent and the message should not be retried. |\n | 507         | Invalid destination address   | There is a problem with the destination address used. Either the format is not valid, or the number is not associated with any carrier, or if MSC is used it does not know about this MSISDN.  |\n | 508         | Invalid source address | The message requires a source address. Verify    that one is provided and correct.                |\n | 509         | Parameters problem | One or more parameters used in the request is not supported.|\n | 510         | Message blocked by subscriber action or  request     | The end user has blocked receiving SMS with their carrier plan or by request or from the particular short code used.                                 |\n | 511         | Subscriber low on credit    | The end user exceeded their spending limits and cannot receive SMS.                              |\n | 512         | Roaming error          | End user cannot receive SMS because their device that receives the messages is roaming.           |\n | 513         | Mobile number portability error         | SMS failed because ported combinations are unreachable.                                     |\n | 514         | Subscriber absent      | The operator/carrier is temporarily unable to reach the end user.       |\n | 515         | Suspected spam         | This message is considered to be spam by carrier or operator.                                     |\n | 517         | Selected DLT details for India not supported | The DLT template ID or entity ID in the request cannot be found by the end operator.|\n | 520         | Content sent is not allowed | The content in this message is not permitted by the carrier.|\n | 521         | Requested Sender ID is not allowed for destination  | The sender ID submitted in request is not allowed in destination country/operator. |\n \n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"additional_info":{"$ref":"#/components/schemas/additionalInfo"}}}]},"examples":{"Success":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":290,"description":"Message in progress","updated_on":"2022-31-03T14:51:28.709526Z"},"additional_info":{"message_part_sequence_number":1,"message_parts_count":2,"message_parts_reference_ids":"35E63E88CB000E049196AD1CFCFFB89C,35E63E88CC7C050491613443467F3F12"}}}}}}},"400":{"description":"Bad request, the request could not be understood by the server due to malformed syntax. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response. \n\n | Status Code | Associated Text String | \n |-------------|------------------------|\n | 11011       | Invalid value for parameter reference_id | \n","content":{"application/json":{"schema":{"type":"object","items":{"$ref":"#/components/schemas/postMessagingResponse"}}}}},"401":{"description":"Unauthorized, the request requires user authentication. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response. \n\n  Status code | Associated Text String \n -------------|------------------------\n 10002 | 'x-ts-nonce' header value has been used recently\n 10003 |'x-ts-nonce' header value is either too long or too short\n 10004 | 'Date' or 'x-ts-date' header is not within tolerable range\n 10005 | Date' or 'x-ts-date' header is not RFC822 compliant\n 10006 | Invalid 'x-ts-auth-method' header.\n 10007 | Missing required 'Date' or 'x-ts-date' header\n 10008 | Invalid Signature.\n 10009 | Missing required 'Authorization' header\n 10010 | CustomerID Account Suspended.\n 10011 | This product is not enabled for this CustomerID.\n 10013 | CustomerID Account Not Found\n 10014 | Invalid source IP address.\n 10015 | Invalid Customer ID.\n 10022 | Invalid API Key.\n 10028 | Required 'Authorization' header is not in the correct format\n 10031 | Not Allowed Host\n 10035 | The requested API host is not allowed for this CustomerID.\n\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"$ref":"#/components/schemas/401ResponseSchema"},{"type":"object","properties":{"signature_string":{"type":"string","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly.","example":"GET\\n\\nTue, 31 Jan 2024 19:36:42 GMT\\nx-ts-auth-method: HMAC-SHA256\\n/v1/messaging/0123456789ABCDEF0123456789ABCDEF"}}}]},"examples":{"Unauthorized":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10022,"description":"Invalid API key","updated_on":"2022-31-03T14:51:28.709526Z"},"external_id":"CustomExternalID7349"}},"Invalid signature string":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10008,"description":"Invalid Signature.","updated_on":"2022-31-03T14:51:28.709526Z"},"external_id":"CustomExternalID7349","signature_string":"GET\\n\\nTue, 31 Jan 2024 19:36:42 GMT\\nx-ts-auth-method: HMAC-SHA256\\n/v1/messaging/0123456789ABCDEF0123456789ABCDEF"}}}}}},"404":{"$ref":"#/components/responses/StandardMSG404ErrorResponse"},"429":{"description":"Too Many Requests, the user sent too many requests in a given amount of time. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n Status code | Associated text string \n-------------|-----------------------\n 10019       | Rate Limit Exceeded ","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":10019},"description":{"type":"string","example":"Rate Limit Exceeded"}}}}}]},"examples":{"Rate limit exceeded":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10019,"description":"Rate Limit Exceeded","updated_on":"2022-31-03T14:51:28.709526Z"}}}}}}},"503":{"$ref":"#/components/responses/StandardMSG503ErrorResponse"}},"tags":["SMS"],"operationId":"getSMSStatus"},"parameters":[{"name":"reference_id","in":"path","required":true,"schema":{"type":"string"}}]},"/v1/verify/completion/{reference_id}":{"put":{"description":"Use this action to notify Telesign that an end-user has received your SMS.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","parameters":[{"in":"path","name":"reference_id","required":true,"description":"The reference ID for the transaction you want to provide completion data about.\n","schema":{"type":"string"}}],"responses":{"200":{"description":"Success. Your request was fulfilled and resulted in a new resource being created. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n           \n| Status code | Description                                      |\n|-------------|--------------------------------------------------|\n| 1900        | Verify completion successfully recorded  |\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/putCompletionResponse"}}}},"400":{"description":"Bad request. The request could not be understood by the server due to malformed syntax. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n\n| Status Code | Associated text string |\n|--|--|\n| -10001 | Invalid parameter passed |\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorObject"}}}},"401":{"description":"Unauthorized. The request requires user authentication. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n\n | Status Code | Associated text string | \n |-------------|------------------------|\n | -30000 | Invalid customer ID |\n | -30001 | Account suspended | \n | -30002 | Account not activated |\n | -30003 | Account limit reached | \n | -30004 | Missing required Authorization header |\n | -30005 | Required Authorization header is not in the correct format | \n | -30006 | Invalid signature | \n | -30007 | Missing required Date or X-TS-Date header | \n | -30008 | Invalid X-TS-Auth-Method header | \n | -30009 | Date or X-TS-Date header is not [RFC822 compliant](https://www.w3.org/Protocols/rfc822/) | \n | -30010 | Date or X-TS-Date header is not within tolerable range |\n | -30011 | X-TS-Nonce header value is either too long or too short | \n | -30012 | X-TS-Nonce header value has been used recently |\n | -30013 | Invalid ReferenceID for Verify Completion |\n \n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/errorObject"},{"type":"object","properties":{"signature_string":{"type":"string","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly.","example":"PUT\\n\\nTue, 31 Jan 2024 19:36:42 GMT\\nx-ts-auth-method: HMAC-SHA256\\n/v1/verify/completion/0123456789ABCDEF0123456789ABCDEF"}}}]}}}},"404":{"description":"Not found. The server has not found anything matching the request URI. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n\n| Status Code | Associated text string | \n|-------------|------------------------|\n| -10001       | Customer ID / Reference ID not found           |\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorObject"}}}},"503":{"description":"Service unavailable. The system is unavailable, try again. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorObject"},"examples":{"System Unavailable":{"value":{"code":500,"description":"Transaction not attempted"}}}}}}},"summary":"Report completion","tags":["SMS"],"operationId":"reportSMSCompletion"},"parameters":[{"name":"reference_id","in":"path","required":true,"schema":{"type":"string"}}]},"/v1/verify/bulk_sms":{"post":{"description":"Use this endpoint to send the same SMS message to multiple recipients.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Accepts:** `application/x-www-form-urlencoded`\n* **Responds with:** `application/json`\n* **Required headers:** `Content-Type - application/x-www-form-urlencoded`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"recipients":{"type":"string","description":"Comma separated list of recipient phone numbers (maximum of 1000). Optionally append a session ID to each phone number separated by a colon.","example":"381606878232:255E3E34382C0E049046BF14FF7F3435,381647559476:255DEBF29DA410049042F97AF48F3D04"},"template":{"type":"string","description":"The text of the message to your recipients.","example":"Your message here."},"ucid":{"description":"A string specifying a use case code. Choices include -\n* ATCK - for use in a 2FA situation like updating an account or logging in\n* BACF - for creating an account where the service may be vulnerable to bulk attacks and fraudsters\n* BACS - for creating an account where the service may be vulnerable to bulk attacks or individual spammers\n* CHBK - for use when someone is trying to buy something expensive or unusual and you want to verify it is really them\n* CLDR - calendar event\n* LEAD - for use in a situation where you require a person to enter personal information in order to obtain information about something like a loan or realty or school, and you want to check if the person is bogus or not\n* OTHR - if you have a situation not addressed by other tags\n* PWRT - for use in a situation where a password reset is required\n* RESV - for use when you have end users making reservations and not showing up, and you want to be able to include phone verification in the loop\n* RXPF - for use when you are trying to prevent prescription fraud\n* SHIP - for use when you are sending a shipping notification\n* THEF - for use when you are trying to prevent an end user from deactivating or redirecting a phone number in order to take over someone else's identity\n* TRVF - for use when you are transferring money and you want to check to see if it is approved by sending a text message or phone call to your end user. This is similar to CHBK, but is specifically for a money transaction\n* UNKN - if you have a situation not addressed by other tags (same as OTHR)\n","type":"string"},"sender_id":{"description":"The phone number from which to send these SMS messages.","type":"string"}},"required":["recipients","template"]}}}},"responses":{"200":{"description":"**Success.** Your request to the service was created.\n\n| Status Code | Associated text string | Description|\n|-------------|------------------------|------------|\n| 293 | Bulk request accepted | The bulk request was accepted by Telesign. |   \n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/postBulkSMSResponse"},"examples":{"Example":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":293,"description":"Bulk request accepted","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[]}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n|Status Code | Status Description     | Error Code |Error Description |\n|------------|------------------------|------------|------------------|\n|500|Transaction not attempted|-10001|Invalid Request: Missing parameter Parameter: Template|\n|500|Transaction not attempted|-10002|Empty recipients list|\n|500|Transaction not attempted|-10003|Max number of recipients exceeded|\n|500|Transaction not attempted|-40006|Bad Request|\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/postBulkSMSResponse"},"examples":{"Example":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":500,"description":"Transaction not attempted","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[{"code":-10002,"description":"Empty recipients list"}]}}}}}},"401":{"description":"**Unauthorized.** The request requires user authentication. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n\n|Status Code | Status Description     | Error Code |Error Description |\n|------------|------------------------|------------|------------------|\n|500|Transaction not attempted|-10009|Invalid source IP address|\n|501|Not authorized|-20002|This product is not enabled for this Customer ID.|\n|501|Not authorized|-30000|Invalid Customer ID.|\n|501|Not authorized|-30001|Customer ID Account Suspended.|\n|501|Not authorized|-30006| Invalid Signature.|","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/postBulkSMSResponse"},{"type":"object","properties":{"signature_string":{"type":"string","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly.","example":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nrecipients=11234567890:0123456789ABCDEF0123456789ABCDEG,11234567891:0123456789ABCDEF0123456789ABCDEH&template=Your message here.&session_id=CustomExternalID1234\\n/v1/verify/bulk_sms"}}}]},"examples":{"Unauthorized":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":500,"description":"Transaction not attempted","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[{"code":-20002,"description":"This product is not enabled for this Customer ID."}]}},"Invalid signature string":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":501,"description":"Not authorized","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[{"code":-30006,"description":"Invalid Signature."}],"signature_string":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nrecipients=11234567890:0123456789ABCDEF0123456789ABCDEG,11234567891:0123456789ABCDEF0123456789ABCDEH&template=Your message here.&session_id=CustomExternalID1234\\n/v1/verify/bulk_sms"}}}}}},"429":{"description":"**Too Many Requests.** The user sent too many requests in a given amount of time. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n\n\n|Status Code | Status Description     | Error Code |Error Description |\n|------------|------------------------|------------|------------------|\n|500|Transaction not attempted|-40007|Rate Limit Exceeded|\n|500|Transaction not attempted|-40008|Verify SMS exceeded transaction hard cap. Request denied.|\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/postBulkSMSResponse"},"examples":{"Example":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":500,"description":"Transaction not attempted","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[{"code":-40007,"description":"Rate Limit Exceeded"}]}}}}}},"500":{"description":"**Service Unavailable.** System unavailable, try again.\n\n\n|Status Code | Status Description     | Error Code |Error Description |\n|------------|------------------------|------------|------------------|\n|500|Transaction not attempted|-90001|System Unavailable, please try again later.|\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/postBulkSMSResponse"},{"type":"object","properties":{"signature_string":{"type":"string","example":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nrecipients=11234567890:0123456789ABCDEF0123456789ABCDEG,11234567891:0123456789ABCDEF0123456789ABCDEH&template=Your message here.&session_id=CustomExternalID1234\\n/v1/verify/bulk_sms","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly."}}}]},"examples":{"Example":{"value":{"reference_id":"B562A981D0E0010488434B07861B1862","sub_resource":"bulk_sms","status":{"code":500,"description":"Transaction not attempted","updated_on":"2022-06-14T23:36:56.164428Z"},"errors":[{"code":-90001,"description":"System Unavailable, please try again later."}]}}}}}}},"summary":"Send bulk SMS","operationId":"sendBulkSMS","tags":["Bulk SMS"]}},"/v1/omnichannel":{"post":{"responses":{"200":{"description":"**Success.** Your request was fulfilled and resulted in a message being sent. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n \n | Status Code | Text String | Description |\n |-------------|-------------|-------------|\n | 3001     | Message in progress  | Telesign successfully received this message request and is processing it. (Intermediate)|\n \n \n \n ","content":{"application/json":{"schema":{"type":"object","properties":{"reference_id":{"type":"string","example":"35C8B5D509BC10689196FED2AD551B8A","description":"A unique, 32-digit hex value randomly generated by Telesign to identify this request."},"status":{"type":"object","description":"Contains properties related to the request status.","required":["code","description"],"properties":{"code":{"type":"integer","example":3001,"description":"This code describes the status of your transaction. You can use this code to programmatically respond. This can be either a status code or an error code. "},"description":{"type":"string","example":"Message in progress","description":"A text description of the status code."}}},"external_id":{"type":"string","example":"MKT432538","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","default":"MKT432538"}},"required":["reference_id","status","external_id"]},"examples":{"response":{"value":{"reference_id":"35C8B5D509BC10689196FED2AD551B8A","status":{"code":3001,"description":"Message in progress"},"external_id":"MKT432538"}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\n | Status Code | Text String | Description |\n |-------------|------------------------|--|\n |3102|Invalid value for parameter message_type: {message_type}|The value of parameter `message_type` is not one of the supported values: `ARN`, `MKT`, `OTP`. (Final)|\n |3103|Unsupported value for parameter external_id: {external_id}|The value of parameter `external_id` is longer than 100 or contains non-ASCII characters. (Final)|\n |3104|Invalid value for parameter account_lifecycle_event: {account_lifecycle_event}|The value of parameter `account_lifecycle_event` is not one of the supported values: `create`, `sign-in`, `transact`, `update`, `delete`. (Final)|\n |3105|Invalid value for parameter originating_ip: {originating_ip}|Parameter originating_ip is improperly formatted. (Final)|\n |  3106 |Invalid value for parameter callback_url: {callback_url}|The value of parameter `callback_url` is empty. (Final)|\n |  3110  |Invalid request|The API request or its JSON payload is improperly formatted. (Final)|\n |  3113  |Invalid value for parameter channel: {channels}|The value of the parameter `channels` contains the same `channel` more than once or is improperly formatted. (Final)|\n  |  3116  |Payload limit size exceeded|Allowed payload size is limited to 10KB |\n |  3300  |Missing parameter channels|The API request does not contain mandatory parameter `channels`. (Final)|\n |  3301  |Missing parameter channel|The value of the parameter `channels` does not contain any instances of the mandatory sub-property `channel`. (Final)|\n |  3302  |Missing parameter phone_number|The API request does not contain the mandatory parameter `phone_number`. (Final)|\n |  3303  |Missing parameter message|The  API request does not contain the mandatory parameter `message`. (Final)|\n |  3304  |Missing parameter message_type|The API request does not contain the mandatory parameter `message_type`. (Final)|","content":{"application/json":{"schema":{"type":"object","properties":{"reference_id":{"type":"string","example":"35C8B5D509BC10689196FED2AD551B8A","description":"A unique, 32-digit hex value randomly generated by Telesign to identify this request."},"status":{"type":"object","description":"Contains properties related to the request status.","required":["code","description"],"properties":{"code":{"type":"integer","example":3001,"description":"This code describes the status of your transaction. You can use this code to programmatically respond. This can be either a status code or an error code. \n"},"description":{"type":"string","example":"Message in progress","description":"A text description of the status code.\n"}}},"external_id":{"type":"string","example":"MKT432538","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","default":"null"}},"required":["reference_id","status","external_id"]},"examples":{"response":{"value":{"reference_id":"35C8B5D509BC10689196FED2AD551B8A","status":{"code":3102,"description":"Invalid value for parameter message_type: {message_type}"},"external_id":"MKT432538"}}}}}},"401":{"description":"**Unauthorized.** The request requires user authentication. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\n | Status Code | Text String | Description|\n |-------------|------------------------|--|\n | 3400       | Not authorized |No permissions for this resource or authorization failed. (Final)|","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"object","description":"Contains properties related to the request status.","required":["code","description"],"properties":{"code":{"type":"integer","example":3400,"description":"This code describes the status of your transaction. You can use this code to programmatically respond. This can be either a status code or an error code. \n"},"description":{"type":"string","example":"Not authorized","description":"A text description of the status code."}}},"external_id":{"type":"string","example":"MKT432538","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","default":null,"nullable":true}},"required":["status","external_id"]},"examples":{"response":{"value":{"status":{"code":3400,"description":"Not authorized"},"external_id":"MKT432538"}}}}}},"413":{"description":"Request entity too large. Allowed payload size is limited to 10KB."},"429":{"description":"**Too many requests.** The user sent too many requests in a given amount of time. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\n | Status code | Text string | Description |\n |-------------|-------------|-------------|\n | 3203 |Callback URL parameter not enabled for Customer ID|Using `callback_url` in the API request is not allowed for this customer. (Final)|\n | 3204 |Rate limit exceeded|Allowed number of requests per second to the Telesign Messaging API has been exceeded. (Final)|\n | 3206\t|Omnichnnel Product not enabled for Customer ID|Telesign Messaging is not enabled for this customer. (Final)|","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"object","description":"Contains properties related to the request status.","required":["code","description"],"properties":{"code":{"type":"integer","example":3400,"description":"This code describes the status of your transaction. You can use this code to programmatically respond. This can be either a status code or an error code. \n"},"description":{"type":"string","example":"Not authorized","description":"A text description of the status code."}}},"external_id":{"type":"string","example":"MKT432538","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","default":"null"}},"required":["status","external_id"]},"examples":{"response":{"value":{"status":{"code":3203,"description":"Callback URL parameter not enabled for Customer ID"},"external_id":"MKT432538"}}}}}},"503":{"description":"**Service unavailable.** The system is unavailable, try again. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\n | Status Code | Text String | Description|\n |-------------|------------------------|--|\n | 3500 |System Unavailable|The system is currently unavailable. The request should be resubmitted. (Final)|","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"object","description":"Contains properties related to the request status.","required":["code","description"],"properties":{"code":{"type":"integer","example":3400,"description":"This code describes the status of your transaction. You can use this code to programmatically respond. This can be either a status code or an error code. \n"},"description":{"type":"string","example":"Not authorized","description":"A text description of the status code."}}},"external_id":{"type":"string","example":"MKT432538","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","default":"null"}},"required":["status","external_id"]},"examples":{"response":{"value":{"status":{"code":3500,"description":"System Unavailable"},"external_id":"MKT432538"}}}}}}},"description":"Use this action to send a message with advanced features through your specified channel (optionally with cascading backup channels) to a recipient phone number or email address. \n\nTo add this product to your account, [contact a Telesign expert](https://www.telesign.com/contact-sales?utm_campaign=contact%20sales%20form&utm_source=developer_portal&utm_medium=Referrer&utm_content=messaging). This product is available for full-service accounts only.\n\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Accepts:** `application/json`\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channels":{"type":"array","description":"All the potential channels you want the service to be able to try and details on how to use those channels. If the first channel attempted fails, you have specified a fallback channel, and the fallback timeout has elapsed, the service looks to the next channel object here for details on what to do.","items":{"$ref":"#/components/schemas/OmniReqChannelObj"}},"recipient":{"$ref":"#/components/schemas/OmniReqRecipient"},"message":{"type":"object","description":"Contains properties specifying to the service how to construct the message for each channel. There should be one object in here for each channel, plus a default object with configuration to be applied if none of the specified channels can be used.","properties":{"rcs":{"$ref":"#/components/schemas/OmniReqDetailsForRCS"},"whatsapp":{"$ref":"#/components/schemas/OmniReqDetailsForWA"},"viber":{"$ref":"#/components/schemas/OmniReqDetailsForViber"},"mms":{"$ref":"#/components/schemas/OmniReqDetailsForMMS"},"sms":{"$ref":"#/components/schemas/OmniReqDetailsForSMS"},"email":{"$ref":"#/components/schemas/OmniReqDetailsForEmail"},"default":{"$ref":"#/components/schemas/OmniReqDetailsForDefault"}}},"message_type":{"type":"string","enum":["ARN","MKT","OTP"],"example":"ARN","description":"The purpose for which the message is being sent. Choose from `OTP` - one-time passwords, `ARN` - alerts, reminders, and notifications, or `MKT` - marketing messages."},"external_id":{"type":"string","description":"Your own identifier, used to refer to this transaction.","maxLength":100,"example":"MKT432538"},"callback_url":{"type":"string","description":"Your URL that you want Telesign to send callbacks to for this transaction. Overrides any previously set callback URL for your account.","example":"https://acme.co/mkt_omni_callbacks"},"account_lifecycle_event":{"type":"string","description":"The phase of the customer life-cycle the end user is in when this transaction is sent. Choices include: \n* `create` - Create a new account. \n* `sign-in` - End user signs-in to their account. \n* `transact` - End user completes a transaction. \n* `update` - End user updates contact details or other info related to their account. \n* `delete` - Delete an account. \n","enum":["create","sign-in","transact","update","delete"]},"sender_id":{"type":"string","example":"15558675310","description":"Specifies the  [sender ID](https://support.telesign.com/s/article/What-is-a-Sender-ID) to be displayed to the end user on the generated message. Before using this, give any sender IDs you might want to use to our Customer Support Team, so we can add them to our allow list. If the sender ID in this field is not on this list, it is not used. We do not guarantee that the sender ID you specify will be used; Telesign may override this value to improve delivery quality or to follow the regulations of particular countries."},"originating_ip":{"type":"string","description":"The IP address of the end user the message is sent to. Must be in the format defined by the Internet Engineering Task Force (IETF). \n","example":"160.199.219.47"},"phone_number":{"type":"string","example":"15558675309","deprecated":true,"description":"The end user's phone number you want to send this message to, as digits without spaces or special characters, beginning with the country dialing code. If the `recipient` parameter is not included in this request, this parameter is required."}},"required":["channels","message","message_type"]}}},"x-examples":{"application/json":{"channels":[{"channel":"rcs","fallback_time":600},{"channel":"whatsapp","fallback_time":600},{"channel":"sms"}],"phone_number":"15558675309","message":{"rcs":{"template":"url_action","parameters":{"text":"All purchases today are 20% off!","url_text":"See all deals here.","url_id":"mktUrl1","url":"https://acme.co/summer_deals"}},"default":{"template":"text","parameters":{"text":"All purchases today are 20% off!"}}},"message_type":"MKT","external_id":"MKT432538","callback_URL":"https://acme.co/mkt_omni_callbacks","sender_id":"15558675310","originating_ip":"160.199.219.47"}}},"summary":"Send a message with advanced features","operationId":"sendAdvancedMessage","parameters":[{"schema":{"type":"string"},"in":"header","name":"Content-Type - application/json"}],"tags":["Messaging"]}},"/v1/omnichannel/templates":{"get":{"summary":"Get all messaging templates","tags":["Templates"],"responses":{"200":{"description":"**Success.** Your request was fulfilled and resulted in data being retrieved.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TemplateRecord"}},"examples":{"Example":{"value":[{"name":"wa_bogo","type":"verified","channel":"whatsapp","category":"marketing","language":"en_US","status":"Approved","mandatory_parameters":["header_url","body_text_1"]},{"name":"wa_purchase_conf","type":"verified","channel":"whatsapp","category":"utility","language":"en_US","status":"Approved","mandatory_parameters":["header_url","body_text_1","body_text_2"]}]}}}}},"401":{"$ref":"#/components/responses/shared401Response"},"429":{"$ref":"#/components/responses/shared429Response"},"503":{"$ref":"#/components/responses/shared503Response"}},"operationId":"getAllMsgTemplates","description":"Use this action to get details for all Telesign Messaging templates associated with this Customer ID.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)"},"post":{"summary":"Create messaging template","operationId":"createMsgTemplate","responses":{"200":{"description":"**Success.** Your request was successful and the service is processing your new template. Code against the Telesign status code from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n \nStatus code | Text string | Description \n------------|-------------|------------\n3801|Request succesful|This template is being processed by the service. Additional updates on the status of this transaction will be sent to your transaction callback service endpoint.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"status":{"$ref":"#/components/schemas/Status"},"id":{"type":"string","example":"B5862A14363C016C8832D53625270015","description":"The service's unique identifier for this transaction."}}},{"$ref":"#/components/schemas/Template"}]},"examples":{"Example":{"value":{"status":{"code":3800,"description":"Request successful","updated_on":"2022-02-12T14:57:11.765723Z"},"id":"B5862A14363C016C8832D53625270015","name":"wa_bogo"}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3110|Invalid request|The API request or its JSON payload is improperly formatted. (Final)\n3301|Missing parameter channel|The API request does not contain the mandatory parameter `channel`. (Final)\n3802|Missing parameter name|The API request does not contain the mandatory parameter `name`. (Final)\n3803|Missing parameter type|The API request does not contain the mandatory parameter `type`. (Final)\n3815|Missing parameter content|The API request does not contain the mandatory parameter `content`. (Final)\n3816|Invalid value for parameter category: {category}|The value of parameter `category` is not one of the supported values. See request schema for a list of supported values. (Final)\n3817|Invalid value for parameter category: {language}|The value of parameter `language` is not one of the supported values. See request schema for a list of supported values. (Final)\n3819|Invalid value for parameter sample_text|The value for the `sample_text` parameter is missing or the number of values does not match the number of variables in the body or header.\n3856|Invalid value for parameter name: {name}|Template name already exists, or it is missing, or it is not valid. (Final)","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/Status"},{"type":"object","properties":{"code":{"type":"integer","example":3110},"description":{"type":"string","example":"Invalid request"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3110,"description":"Invalid request","updated_on":"2022-02-12T14:57:11.765723Z"}}}}}}},"401":{"$ref":"#/components/responses/shared401Response"},"429":{"$ref":"#/components/responses/shared429Response"},"503":{"$ref":"#/components/responses/shared503Response"}},"description":"Use this action to create a Telesign Messaging template.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Accepts:** `application/json`\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateCreationDetails"},"examples":{"Image":{"value":{"name":"name_of_the_template","type":"verified","channel":"whatsapp","content":[{"header":{"type":"image","sample_url":"https://s3.amazonaws.com/vero-finto-mktg/small-logo.jpg"}},{"body":{"type":"text","text":"Hello, welcome to {{1}}.","sample_text":["Vero-Finto"]}}],"category":"marketing","language":"en"}},"Dynamic link button":{"value":{"type":"verified","channel":"whatsapp","name":"wa_purchase_conf_track","category":"marketing","language":"en_US","content":[{"body":{"type":"text","text":"Thanks for your purchase on verofinto.com! Track your order status here:"}},{"suggested_action":[{"otp":{"zero_tap_terms_accepted":true},"url_dynamic":{"url":"https://verofintoshop.com/orders?id=","url_text":"Track Order"},"action_type":"url_dynamic"}]}]}},"Copy code button":{"value":{"name":"copy_code_template","type":"verified","channel":"whatsapp","content":[{"body":{"type":"text"}},{"suggested_action":[{"action_type":"otp","otp":{"otp_text":"Copy code"}}]}],"category":"authentication","language":"en"}},"Location header":{"value":{"name":"location_header_template","type":"verified","channel":"whatsapp","content":[{"header":{"type":"location"}},{"body":{"type":"text","text":"This is example of Location header template."}}],"category":"marketing","language":"en"}},"One-tap autofill":{"value":{"name":"one_tap_template","type":"verified","channel":"whatsapp","content":[{"body":{"type":"text"}},{"suggested_action":[{"action_type":"otp","otp":{"otp_text":"Autofill","package_name":"com.example.myapplication","signature_hash":"2FAINcGX7"}}]}],"category":"authentication","language":"en"}},"Zero-tap":{"value":{"name":"zero_tap_template","type":"verified","channel":"whatsapp","content":[{"body":{"type":"text"}},{"suggested_action":[{"action_type":"otp","otp":{"otp_text":"Autofill","package_name":"com.example.myapplication","signature_hash":"2FAINcGX7","zero_tap_terms_accepted":true}}]}],"category":"authentication","language":"en"}},"SMS":{"value":{"name":"name_of_the_template","type":"standard","channel":"sms","content":[{"body":{"type":"text","text":"Hello {{}}, this is {{}} template"}}]}},"Dial action":{"value":{"type":"verified","channel":"whatsapp","name":"name_dial_template","category":"marketing","language":"en_US","content":[{"body":{"type":"text","text":"Buy one get one free!"}},{"suggested_action":[{"dial":{"phone_number_to_dial":"18003334444","dial_text":"Call us"},"action_type":"dial"}]}]}},"Suggested Replies":{"value":{"type":"standard","channel":"whatsapp","name":"name_suggested_reply_template","content":[{"body":{"type":"text","text":"Hi, welcome to {{1}}!","sample_text":["Vero-Finto"]}},{"suggested_reply":{"reply_type":"button","button_number":2,"buttons":[{"button_text":"Email us"},{"button_text":"Call us"}]}}]}}}}},"description":""},"tags":["Templates"]}},"/v1/omnichannel/templates/{channel}/{name}":{"parameters":[{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/name"}],"get":{"summary":"Get messaging template","tags":["Templates"],"responses":{"200":{"description":"**Success.** Your request was fulfilled and resulted in data being retrieved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplateRecord"},"examples":{"Example":{"value":{"name":"wa_bogo","type":"verified","channel":"whatsapp","category":"marketing","language":"en_US","status":"Approved","mandatory_parameters":["body_text_1"]}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3856|Invalid value for parameter name: {name}|The value of parameter name is missing or not valid.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/Status"},{"type":"object","properties":{"code":{"type":"integer","example":3856},"description":{"type":"string","example":"Invalid value for parameter name: name"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3856,"description":"Invalid value for parameter name: name","updated_on":"2022-02-12T14:57:11.765723Z"}}}}}}},"401":{"$ref":"#/components/responses/shared401Response"},"429":{"$ref":"#/components/responses/shared429Response"},"503":{"$ref":"#/components/responses/shared503Response"}},"operationId":"getMsgTemplate","description":"Use this action to get details for the specified Telesign Messaging template.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)"},"delete":{"summary":"Delete template","operationId":"deleteMsgTemplate","responses":{"200":{"description":"**Success.** Your request was successful and the service is processing your deletion. Code against the Telesign status code from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n \nStatus code | Text string | Description \n------------|-------------|------------\n3801|Request succesful|This deletion request is being processed by the service. Additional updates on the status ofthis transaction will be sent to your transaction callback service endpoint.","content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"status":{"$ref":"#/components/schemas/Status"}}},{"type":"object","properties":{"id":{"type":"string","example":"B5862A14363C016C8832D53625270015","description":"The service's unique identifier for this transaction."}}},{"$ref":"#/components/schemas/Template"}]},"examples":{"Example":{"value":{"status":{"code":3800,"description":"Request successful","updated_on":"2022-02-12T14:57:11.765723Z"},"id":"B5862A14363C016C8832D53625270015","name":"wa_bogo"}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3856|Invalid value for parameter name: {name}|The value of parameter name is missing or not valid.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/Status"},{"type":"object","properties":{"code":{"type":"integer","example":3856},"description":{"type":"string","example":"Invalid value for parameter name: name"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3856,"description":"Invalid value for parameter name: name","updated_on":"2022-02-12T14:57:11.765723Z"}}}}}}},"401":{"$ref":"#/components/responses/shared401Response"},"429":{"$ref":"#/components/responses/shared429Response"},"503":{"$ref":"#/components/responses/shared503Response"}},"description":"Use this action to delete a Telesign Messaging template.\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","tags":["Templates"]}},"/capability/{channel}/{phone_number}":{"get":{"summary":"Check channel-capability of a phone number","tags":["Messaging"],"responses":{"200":{"$ref":"#/components/responses/SharedMsgCapCheck200Res"},"400":{"$ref":"#/components/responses/SharedMsgCapCheck400Res"},"401":{"$ref":"#/components/responses/SharedMsgCapCheck401Res"},"429":{"$ref":"#/components/responses/SharedMsgCapCheck429Res"},"503":{"$ref":"#/components/responses/SharedMsgCapCheck503Res"}},"operationId":"checkPhoneNumberChannelCapability","description":"Use this action to check capability of a phone number to use the specified channel.\n\nTo enable this feature for your account, contact our [Customer Support Team](mailto:support@telesign.com).\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)"},"parameters":[{"schema":{"type":"string"},"name":"phone_number","in":"path","required":true,"description":"The phone number that the service should check for capability to use the specified channel."},{"schema":{"type":"string","enum":["rcs"]},"name":"channel","in":"path","required":true,"description":"The service checks the phone number for capability to use this channel."}]},"/capability/rcs/{phone_number}/{agent_id}":{"get":{"summary":"Check capability of a phone number for an RBM agent","tags":["Messaging"],"responses":{"200":{"$ref":"#/components/responses/SharedMsgCapCheck200Res"},"400":{"$ref":"#/components/responses/SharedMsgCapCheck400Res"},"401":{"$ref":"#/components/responses/SharedMsgCapCheck401Res"},"429":{"$ref":"#/components/responses/SharedMsgCapCheck429Res"},"503":{"$ref":"#/components/responses/SharedMsgCapCheck503Res"}},"operationId":"checkPhoneNumberRBMCapability","description":"Use this action to check capability of a phone number to receive messages from the specified RBM agent.\n\nTo enable this feature for your account, contact our [Customer Support Team](mailto:support@telesign.com).\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)"},"parameters":[{"schema":{"type":"string"},"name":"phone_number","in":"path","required":true,"description":"The phone number that the service should check for capability to receive messages from the specified RBM agent."},{"schema":{"type":"string","maxLength":20,"example":"my_rbm_id"},"name":"agent_id","in":"path","required":true,"description":"Narrows the check to the phone number's capability to use the RBM agent specified by this unique identifier."}]},"/v1/omnichannel/{reference_id}":{"parameters":[{"schema":{"type":"string"},"name":"reference_id","in":"path","required":true,"description":"A unique identifier you can use to query Messaging to find out the status of your transaction."}],"get":{"summary":"Get transaction status","tags":["Messaging"],"responses":{"200":{"description":"**Success.** Your request was fulfilled and resulted in a new resource being created. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                                      |\n|-------------|------------------------|--------------------------------------------------|\n| 3002 | Delivered to Gateway | The message is in the process of delivery. Once all delivery options are exhausted, the status will be updated. (Intermediate) |\n| 3000 | Delivered | The message was delivered to the end user. (Final if the last channel used doesn't support Read status. Intermediate otherwise) |\n| 3003 | Delivery error | The message could not be delivered to the end-user. (Final) |\n| 3005 | Message is read | The message has been read by the end user. (Final) |\n| 3006 | None of the channels is enabled for the customer | None of the channels specified in the request is enabled for the customer or has valid value. (Final) |","content":{"application/json":{"schema":{"type":"object","properties":{"reference_id":{"type":"string","description":"A unique, 32-digit hex value randomly generated by Telesign to identify this request.","example":"0123456789ABCDEF0123456789ABCDEF"},"external_id":{"type":"string","description":"Your own identifier, used to refer to this transaction. If you did not supply an external ID in your request, the value of this response property is `null`.","example":"7c8832a1-ab0c-4f12-89f3-0bfbfb7f9645"},"status":{"allOf":[{"$ref":"#/components/schemas/SlimStatus"},{"type":"object","properties":{"last_channel":{"type":"string","description":"The name of the channel, or the last channel from `channel_status` array.","example":"sms"},"updated_on":{"type":"string","description":"A timestamp showing when your transaction status was updated last.","example":"2020-05-04 22:07:01:226"}},"required":["last_channel","updated_on"]}],"description":"Contains details about the request status."},"additional_info":{"type":"object","description":"Contains properties about mobile country code and the mobile network code associated with the mobile device.","properties":{"price":{"type":"string","description":"The cost incurred for sending the message. For the `sms` channel, this field is present if “Send customer price” (SMS feature) and “Report Enrichment Enabled” (Messaging feature) are enabled for your account. For other channels, this field is present if “Send Price in DLR” (Channel feature) and “Report Enrichment Enabled” (Messaging feature) are enabled for your account. ","example":"0.0050"},"currency":{"type":"string","example":"USD","description":"The currency in which the price is expressed (e.g., 'USD'). This field is present if the 'Report Enrichment Enabled' feature is active on your account."},"mcc":{"type":"string","description":"Returns the mobile country code (MCC) for the current carrier associated with the mobile device if this feature is enabled for Messaging. The MCC is used in conjunction with the mobile network code (MNC) to uniquely identify a carrier.","example":"310"},"mnc":{"type":"string","description":"Returns the mobile network code (MNC) value(s) for the current carrier associated with the device if this feature is enabled for Messaging. The MNC is used in conjunction with the mobile country code (MCC) to uniquely identify a carrier.","example":"012"}}},"verify":{"type":"object","description":"Contains properties about the status of the verification attempt by the end user (if any). Only returned in the get transaction status response when an OTP code is auto-generated by Telesign.","properties":{"code_state":{"type":"string","example":"VALID","description":"Indicates whether the verification code you provided in your request matches that sent by Telesign to the end user. Possible values are:\n* `VALID` - The codes match. The offered code is valid. Used for get transaction status by reference ID and OTP code.\n* `INVALID` - The codes do not match and the offered code is not valid. Used for get transaction status by reference ID and OTP code.\n* `UNKNOWN` - Any other state. Used for get transaction status by reference ID."},"code_entered":{"type":"string","description":"When an OTP code is auto-generated by Telesign (eg. get transactio status by reference ID and OTP code), If the end user entered a code, what they entered is provided here. When get transaction status by reference ID is used, `null` is returned instead. ","example":"9321041"}},"required":["code_state","code_entered"]},"channel_status":{"type":"array","description":"Contains details about the status of each channel specified for sending OTP codes.","items":{"type":"object","properties":{"viber":{"type":"object","description":"Contains details about the status of the viber channel if specified for sending OTP codes.","properties":{"code":{"type":"integer","description":"The status code that pertains to the channel.","example":3000},"description":{"type":"string","description":"The description for the channel's status code.","example":"Delivered"},"reference_id":{"type":"string","description":"A unique, randomly generated hex value that identifies your web service request. In case of channel status code 3001, reference_id will not be returned.","example":"0123456789ABCDEF0123456789ABCDEF"},"updated_on":{"type":"string","description":"The timestamp indicating when the transaction status is logged.","example":"2020-05-04 22:07:01:226"}},"required":["code","description","updated_on"]},"whatsapp":{"type":"object","description":"Contains details about the status of the whatsapp channel if specified for sending OTP codes.","properties":{"code":{"type":"integer","description":"The status code that pertains to the channel.","example":3000},"description":{"type":"string","description":"The description for the channel's status code.","example":"Delivered"},"reference_id":{"type":"string","description":"A unique, randomly generated hex value that identifies your web service request. In case of channel status code 3001, reference_id will not be returned.","example":"0123456789ABCDEF0123456789ABCDEF"},"updated_on":{"type":"string","description":"The timestamp indicating when the transaction status is logged.","example":"2020-05-04 22:07:01:226"}},"required":["code","description","updated_on"]},"rcs":{"type":"object","description":"Contains details about the status of the rcs channel if specified for sending OTP codes.","properties":{"code":{"type":"integer","description":"The status code that pertains to the channel.","example":3000},"description":{"type":"string","description":"The description for the channel's status code.","example":"Delivered"},"reference_id":{"type":"string","description":"A unique, randomly generated hex value that identifies your web service request. In case of channel status code 3001, reference_id will not be returned.","example":"0123456789ABCDEF0123456789ABCDEF"},"updated_on":{"type":"string","description":"The timestamp indicating when the transaction status is logged.","example":"2020-05-04 22:07:01:226"}},"required":["code","description","updated_on"]},"sms":{"type":"object","description":"Contains details about the status of the sms channel if specified for sending OTP codes.","properties":{"code":{"type":"integer","description":"The status code that pertains to the channel.","example":3000},"description":{"type":"string","description":"The description for the channel's status code.","example":"Delivered"},"reference_id":{"type":"string","description":"A unique, randomly generated hex value that identifies your web service request. In case of channel status code 3001, reference_id will not be returned.","example":"0123456789ABCDEF0123456789ABCDEF"},"updated_on":{"type":"string","description":"The timestamp indicating when the transaction status is logged.","example":"2020-05-04 22:07:01:226"}},"required":["code","description","updated_on"]},"email":{"type":"object","description":"Contains details about the status of the email channel if specified for sending OTP codes.","properties":{"code":{"type":"integer","description":"The status code that pertains to the channel.","example":3000},"description":{"type":"string","description":"The description for the channel's status code.","example":"Delivered"},"reference_id":{"type":"string","description":"A unique, randomly generated hex value that identifies your web service request. In case of channel status code 3001, reference_id will not be returned.","example":"0123456789ABCDEF0123456789ABCDEF"},"updated_on":{"type":"string","description":"The timestamp indicating when the transaction status is logged.","example":"2020-05-04 22:07:01:226"}},"required":["code","description","updated_on"]}}}}},"required":["reference_id","additional_info","channel_status"]},"examples":{"By reference ID with auto-generated OTP":{"value":{"status":{"updated_on":"2024-11-12T13:08:37.000000Z","code":3000,"description":"Delivered","last_channel":"whatsapp"},"reference_id":"364C81F5F3D0020C91E7A731DE93A777","currency":"USD","price":"0.0050","additional_info":{"mcc":"310","mnc":"012"},"channel_status":[{"viber":{"code":3112,"description":"Specified template does not exist for selected channel","reference_id":"364C81F5F40C0120923096EEAF73053E","updated_on":"2024-11-12T13:08:35.212526Z"}},{"whatsapp":{"code":3000,"description":"Delivered","reference_id":"364C81F5F46402189211BDE408330A86","updated_on":"2024-11-12T13:08:37.000000Z"}}],"verify":{"code_entered":"50361","code_state":"VALID"}}},"By reference ID and OTP code with auto-generated OTP":{"value":{"status":{"updated_on":"2024-11-12T13:08:37.000000Z","code":3000,"description":"Delivered","last_channel":"whatsapp"},"reference_id":"364C81F5F3D0020C91E7A731DE93A777","currency":"USD","price":"0.0050","additional_info":{"mcc":"310","mnc":"012"},"channel_status":[{"viber":{"code":3112,"description":"Specified template does not exist for selected channel","reference_id":"364C81F5F40C0120923096EEAF73053E","updated_on":"2024-11-12T13:08:35.212526Z"}},{"whatsapp":{"code":3000,"description":"Delivered","reference_id":"364C81F5F46402189211BDE408330A86","updated_on":"2024-11-12T13:08:37.000000Z"}}],"verify":{"code_entered":"50361","code_state":"VALID"}}},"By reference ID when OTP is not auto-generated":{"value":{"status":{"updated_on":"2024-11-12T13:12:29.551105Z","code":3000,"description":"Delivered","last_channel":"viber"},"reference_id":"364C82042F68010C91E2B8633BE34860","currency":"USD","price":"0.0050","additional_info":{"mcc":"310","mnc":"012"},"channel_status":[{"rcs":{"code":3112,"description":"Specified template does not exist for selected channel","reference_id":"364C82042FB0020C91F68825B573C43D","updated_on":"2024-11-12T13:12:28.000000Z"}},{"viber":{"code":3000,"description":"Delivered","reference_id":"364C820430640120923096E4E213053F","updated_on":"2024-11-12T13:12:29.551105Z"}}]}}}}}},"400":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                                      |\n|--------|----------------------------------|---------------------------------|\n| 3311   | Invalid value for parameter reference_id | Invalid value entered as `reference_id`. (Final) |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MsgGetStatusRes"}]},"examples":{"Invalid value for reference_id":{"value":{"status":{"code":3311,"description":"Invalid value for parameter reference_id"}}}}}}},"401":{"description":"**Unauthorized.** The request requires user authentication. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                                      |\n|--------|----------------------------------|---------------------------------|\n| 3206   | Omnichannel Product not enabled for Customer ID | The get transaction status feature is not enabled. (Final) |\n| 3400  | Not authorized | No permissions for this resource or the authorization failed. (Final) |Unauthorized |\n| 3411 | Invalid API Key. | Invalid API Key.| \n| 3412 | Required 'Authorization' header is not in the correct format | Required 'Authorization' header is not in the correct format |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MsgGetStatusRes"}]},"examples":{"Invalid API Key":{"value":{"status":{"code":3411,"description":"Invalid API Key."}}}}}}},"404":{"description":"**Not Found.** The server has not found anything matching the Request-URI. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                                      |\n|--------|----------------------------------|---------------------------------|\n| -10004 | ReferenceID expired. | Returned when get transaction status is invoked for a reference ID that was processed more than 12 hours ago. |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MsgGetStatusRes"}]},"examples":{"Reference ID expired":{"value":{"status":{"code":-10004,"description":"ReferenceID expired."}}}}}}},"429":{"description":"**Too Many Requests.** The user sent too many requests in a given amount of time. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                          |\n|--------|----------------------------------|---------------------------------|\n| 3204   | Rate limit exceeded | Rate limit exceeded. |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MsgGetStatusRes"}]},"examples":{"Rate limit exceeded":{"value":{"status":{"code":3204,"description":"Rate limit exceeded"}}}}}}},"503":{"description":"**Service Unavailable.** The system is unavailable, try again. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status Code | Associated Text String | Description                                      |\n|--------|----------------------------------|---------------------------------|\n| 3041 | System unavailable | The system is unavailable, try again later. |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/MsgGetStatusRes"}]},"examples":{"System unavailable":{"value":{"status":{"code":3041,"description":"System unavailable"}}}}}}}},"operationId":"getMessagingStatus","description":"Get delivery status and other details for a Telesign Messaging transaction that you have created. Get transaction status can be used for all Messaging API transactions. Also use this endpoint to complete verification, if Telesign generated your code. \n\nTo enable this feature for your account, contact our [Customer Support Team](mailto:support@telesign.com).\n\n## General requirements\n* **Authentication:** [Basic](/enterprise/docs/authentication#basic-authentication) (easiest to implement) or [Digest](/enterprise/docs/authentication#digest-authentication)\n* **Encoding:** Accepts only **UTF-8 unicode** characters as inputs.\n* **Responds with:** `application/json`\n* **Rate limit:** [Default rate limits by product](https://support.telesign.com/s/article/do-you-have-any-rate-limits)","parameters":[{"schema":{"type":"string","example":"57244"},"in":"query","description":"If Telesign generated the code sent to your end user, include the asserted verification code from your end user here. ","name":"verify_code"}]}}},"servers":[{"url":"https://rest-ww.telesign.com"}],"components":{"responses":{"StandardMSG400ErrorResponse":{"description":"Bad request, the request could not be understood by the server due to malformed syntax. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response. \n\n Status code | Associated text string \n ------------|------------------------\n 11000 | Invalid value for parameter phone_number.\n 11001 | Invalid country code for parameter phone_number.\n 11003 | Invalid value for parameter account_lifecycle_event\n 11004 | Invalid value for parameter callback_url\n 11009 | Invalid value for parameter message.\n 11010 | Invalid value for parameter originating_ip.\n 11013 | Invalid value for parameter sender_id.\n 11016 | Invalid value for parameter external_id\n 11017 | Invalid value for parameter message_type.\n 11027 | Invalid value for parameter integration_name.\n 11034 | Invalid value for parameter dlt_template_id\n 11035 | Invalid value for parameter dlt_entity_id\n 12000 | Missing Required Parameter phone_number\n 12009 | Missing Required Parameter message\n 12017 | Missing Required Parameter message_type","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"external_id":{"type":"string","example":"CustomExternalID7349","description":"A customer-generated ID for this transaction that was included in the request. "},"status":{"type":"object","properties":{"code":{"type":"integer","example":12000},"description":{"type":"string","example":"Missing Required Parameter phone_number"}}},"signature_string":{"type":"string","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly.","example":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nphone_number=11234567890&message=Your message here.&message_type=MKT\\n/v1/messaging"}}}]},"examples":{"Missing required parameter":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":12000,"description":"Missing Required Parameter phone_number","updated_on":"2022-31-03T14:51:28.709526Z"},"external_id":"CustomExternalID7349"}}}}}},"StandardMSG404ErrorResponse":{"description":" Not Found, the server has not found anything matching the Request-URI. If you want to code against a response, you should retrieve the status or error code and use that rather than the HTTP status response.\n\n| Status code | Description | \n|-------------|------------------------|\n| 10017       | Customer ID / Reference ID not found           | \n| 10036       |\tReference ID expired |","content":{"application/json":{"schema":{"type":"object","properties":{}},"examples":{}}}},"StandardMSG503ErrorResponse":{"description":"**Service unavailable.** The system is unavailable, try again. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n\n| Status code | Associated text string | \n|-------------|------------------------|\n| 10000       |  System Unavailable, Please try again later. |\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":10000},"description":{"type":"string","example":"System Unavailable, Please try again later."}}}}}]},"examples":{"System unavailable":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10000,"description":"System Unavailable, Please try again later.","updated_on":"2022-31-03T14:51:28.709526Z"}}}}}}},"SharedMsgCapCheck200Res":{"description":"**Success.** The service successfully processed this request. Code against the Telesign `status.code` property in the response payload, rather than the HTTP status code of the response.\n\nStatus code | Text string | Description\n--|--|--\n3055|Delivery channel not supported by the end user's device|The device associated with this phone number cannot use the selected channel.\n3060|Delivery channel supported by the end user's device|The device associated with this phone number can use the selected channel.\n3115|Destination phone number not in coverage|The device associated with this phone number can use the selected channel, but it is not in coverage for Telesign Messaging.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":3060},"description":{"type":"string","example":"Delivery channel supported by the end user's device"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":3060,"description":"Delivery channel supported by the end user's device"}}}}}}},"SharedMsgCapCheck400Res":{"description":"**Bad request.** The request could not be understood by the server due to malformed syntax. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\nStatus code | Text string | Description\n--|--|--\n3109|Invalid value for parameter sender_id: {sender_id}|The value of the sender_id parameter in your request is invalid.\n3110|Invalid request|This API request was not properly formatted. (Final)","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":3110},"description":{"type":"string","example":"Invalid request"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":3110,"description":"Invalid request"}}}}}}},"SharedMsgCapCheck401Res":{"description":"**Unauthorized.** The request requires user authentication. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\nStatus code | Text string | Description\n--|--|--\n3210|Capability Check not enabled for Customer ID|This feature (Capability Check) is not enabled for this Customer ID. (Final)","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":3210},"description":{"type":"string","example":"Capability Check not enabled for Customer ID"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":3210,"description":"Capability Check not enabled for Customer ID"}}}}}}},"SharedMsgCapCheck429Res":{"description":"**Too many requests.** Too many requests sent to this API in a given amount of time. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\nStatus code | Text string | Description\n--|--|--\n3204|Rate limit exceeded|Allowed number of requests per second on the Telesign Messaging API has been exceeded. (Final)\n","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":3204},"description":{"type":"string","example":"Rate limit exceeded"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":3204,"description":"Rate limit exceeded"}}}}}}},"SharedMsgCapCheck503Res":{"description":"**Service unavailable.** The system is unavailable, try again. Code against the Telesign status or error codes from the `status.code` property in the response payload, rather than the HTTP status code of the response.\n\nStatus code | Text string | Description\n--|--|--\n3041|Carrier rejected - temporary problem|The channel provider failed to respond. The request should be resubmitted.\n3500 | System Unavailable | The system is currently unavailable. The request should be resubmitted. (Final)","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":3041},"description":{"type":"string","example":"Carrier rejected - temporary problem"}}}}}]},"examples":{"Example":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":3041,"description":"Carrier rejected - temporary problem"}}}}}}},"StandardMSG500ErrorResponse":{"description":"**Service unavailable.** The system is unavailable, try again. Code against the Telesign status or error codes from the `status.code` and `errors.code` properties in the response payload, rather than the HTTP status code of the response.\n\n| Status code | Associated text string | \n|-------------|------------------------|\n| 10000       |  System Unavailable, Please try again later. |","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":10000},"description":{"type":"string","example":"System Unavailable, Please try again later."}}},"signature_string":{"type":"string","example":"POST\\napplication/x-www-form-urlencoded\\n\\nx-ts-auth-method: HMAC-SHA256\\nx-ts-date:Tue, 31 Jan 2024 11:36:42 GMT\\nx-ts-nonce:ab$CDef/gh123+II4jk\\nphone_number=11234567890&message=Your message here.&message_type=MKT\\n/v1/messaging","description":"Returned when request signature is not valid. Signature from failed authorization requests - doesn’t contain all required data (like x-ts-auth-method), or it’s not ordered properly."}}}]},"examples":{"System unavailable":{"value":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":10000,"description":"System Unavailable, Please try again later.","updated_on":"2022-31-03T14:51:28.709526Z"}}}}}}},"shared401Response":{"description":"**Unauthorized.** The request requires user authentication. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3400|Not authorized|Insufficient permissions to access this resource or authorization failed.\n3818|Template Management Product not enabled for Customer ID|Omnichannel product is not enabled. (Final)","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/SlimStatus"},{"type":"object","properties":{"code":{"type":"integer","example":3400},"description":{"type":"string","example":"Not authorized"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3400,"description":"Not authorized"}}}}}}},"shared429Response":{"description":"**Too many requests.** Too many requests sent to this service in a given amount of time. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3204|Rate limit exceeded|Allowed number of requests per second for this product or feature has been exceeded.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/SlimStatus"},{"type":"object","properties":{"code":{"type":"integer","example":3204},"description":{"type":"string","example":"Rate limit exceeded"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3204,"description":"Rate limit exceeded"}}}}}}},"shared503Response":{"description":"**Service unavailable.** The system is unavailable, try again. Code against the value of the Telesign `status.code` property in the response payload, rather than the HTTP status code.\n\n\nStatus code | Text string        | Description\n------------|--------------------|------------\n3500|System Unavailable|The system is currently unavailable. The request should be resubmitted.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"allOf":[{"$ref":"#/components/schemas/SlimStatus"},{"type":"object","properties":{"code":{"type":"integer","example":3500},"description":{"type":"string","example":"System Unavailable"}}}]}}},"examples":{"Example":{"value":{"status":{"code":3500,"description":"System Unavailable"}}}}}}}},"securitySchemes":{"Basic":{"type":"http","description":"Easiest to implement. See [Basic Authentication](/enterprise/docs/authentication#basic-authentication) for more details.","scheme":"basic"},"Digest":{"type":"apiKey","name":"Authorization","in":"header","description":"See [Digest Authentication](/enterprise/docs/authentication#basic-authentication) for more details."}},"schemas":{"errorObject":{"type":"object","title":"errorObject","description":"Contains properties related to an error that occurred during processing of the request.","properties":{"code":{"type":"integer","description":"A numeric code specifying which error occurred.","example":-10001},"description":{"type":"string","description":"Text describing the error that occurred.","example":"Invalid Request: PhoneNumber Parameter"}}},"OmniReqChannelObj":{"type":"object","description":"Specifies a potential channel to use when sending this message, and any other details related to use of that channel.","title":"OmniReqChannelObj","properties":{"channel":{"type":"string","description":"A potential channel you want the service to use for sending this message. The order in which channels are tried depends on the order they are defined in the request. For example, if you specify `rcs` and then `sms`, the service tries RCS and then attempts to use SMS as a fallback if the RCS message fails.","enum":["rcs","whatsapp","sms","mms","viber","email"]},"fallback_time":{"type":"integer","description":"The duration of time (in seconds) that the service should wait before it concludes that the message has failed on this channel and attempts to send on the backup channel if one is provided.","default":300,"example":600,"minimum":30,"maximum":3600}},"required":["channel"]},"OmniReqDetailsForRCS":{"type":"object","title":"OmniReqDetailsForRCS","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","example":"url_action"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"text":{"type":"string","description":"The main text of your message. <br/>**Required for:** `text`,`dial_action`,`url_action`,`2_suggested_replies`, `3_suggested_replies` templates.","example":"All purchases today are 20% off!"},"button_text_1":{"type":"string","description":"The text of the first suggested reply. <br/>**Required for:** `2_suggested_replies`, `3_suggested_replies` templates.","example":"Yes"},"button_payload_1":{"type":"string","description":"Unique identifier for the first reply. <br/>**Required for:** `2_suggested_replies`, `3_suggested_replies` templates.","example":"r1id"},"button_text_2":{"type":"string","description":"The text of the second suggested reply. <br/>**Required for:** `2_suggested_replies`, `3_suggested_replies` templates.","example":"No"},"button_payload_2":{"type":"string","description":"Unique identifier for the second reply. <br/>**Required for:** `2_suggested_replies`, `3_suggested_replies` templates.","example":"r2id"},"button_text_3":{"type":"string","description":"The text of the third suggested reply. <br/>**Required for:** `3_suggested_replies` template.","example":"Not sure"},"button_payload_3":{"type":"string","description":"Unique identifier for the third reply. <br/>**Required for:** `3_suggested_replies` template.","example":"r3id"},"url_text":{"type":"string","description":"Text for the link in the message. <br/>**Required for:** `url_action`, `rc_url_action_vertical`, `rc_url_action_horizontal` templates.","example":"See all deals here."},"url_payload":{"type":"string","description":"Unique identifier for the link in the message. <br/>**Required for:** `url_action`, `rc_url_action_vertical`, `rc_url_action_horizontal` templates.","example":"mktUrl1"},"url":{"type":"string","description":"Depending on the template being used, this is either the URL for the link in the message or the URL for a media file or file attachment to embed in the message. <br/>**Required for:** \n`media`, `url_action`, `rc_url_action_vertical`, `rc_url_action_horizontal`, `file`","example":"https://acme.co/summer_deals"},"dial_text":{"type":"string","description":"Text on the click-to-call button. <br/>**Required for:** `dial_action`, `rc_dial_action_vertical`, `rc_dial_action_horizontal` templates.","example":"Call agent"},"phone_number_to_dial":{"type":"string","description":"The complete phone number to call when the button is selected. Include `+` at the beginning of international numbers. <br/>**Required for:** `dial_action`, `rc_dial_action_vertical`, `rc_dial_action_horizontal` templates.","example":"+15555551212"},"dial_payload":{"type":"string","description":"Unique identifier for the click-to-call phone number in the message. <br/>**Required for:** `dial_action`, `rc_dial_action_vertical`, `rc_dial_action_horizontal` templates.","example":"dial_id"},"media_url":{"type":"string","description":"The URL reference for the image to include in the rich card in your message.  <br/>\n**Required for:** `rc_url_action_vertical`, `rc_dial_action_vertical`, `rc_url_action_horizontal`, `rc_dial_action_horizontal` templates.","example":"https://s3.amazonaws.com/acmeco-content/group_photo.jpg"},"latitude":{"type":"string","example":"37.423021","description":"The latitude coordinate of your location as a positive or negative number.<br/>**Required for:** \n`location`"},"longitude":{"type":"string","example":"-122.083739","description":"The longitude coordinate of your location as a positive or negative number.<br/>**Required for:** \n`location`"}}}}},"OmniReqDetailsForSMS":{"type":"object","title":"OmniReqDetailsForSMS","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","example":"text"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"text":{"type":"string","description":"The main text of your message. <br/>**Required for:** `text`,`dial_action`,`url_action`,`2_suggested_replies`, `3_suggested_replies` templates.","example":"All purchases today are 20% off!"}}}}},"OmniReqDetailsForDefault":{"type":"object","title":"OmniReqDetailsForDefault","description":"Contains properties specifying to the service how to construct the message for any channel where the equivalent details under `message` are not provided for it.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","example":"text"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"text":{"type":"string","description":"The main text of your message. <br/>**Required for:** `text`,`dial_action`,`url_action`,`2_suggested_replies`, `3_suggested_replies` templates.","example":"All purchases today are 20% off!"}}}}},"OmniReqDetailsForWA":{"type":"object","title":"OmniReqDetailsForWA","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","example":"url_action"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"text":{"type":"string","example":"All purchases today are 20% off!","description":"The main text of your message. <br/>**Required for:** `text`"},"header_url":{"type":"string","example":"https://acme.co/summer_deals.png","description":"The source URL for a media file or file attachment to embed in the message. <br/>**Required for:** \n`image`, `video`, `audio`, `file`"},"file_name":{"type":"string","example":"Instruction for payment.pdf","description":"The display name of the file on end-user device. If you do not include a value for this parameter, the service uses a default value of \"file\". <br/>**Required for:** \n`file`"},"latitude":{"type":"string","example":"37.423021","description":"The latitude coordinate of your location (number only).<br/>**Required for:** \n`location`"},"longitude":{"type":"string","example":"-122.083739","description":"The longitude coordinate of your location (number only).<br/>**Required for:** \n`location`"}}}}},"OmniReqDetailsForMMS":{"type":"object","title":"OmniReqDetailsForMMS","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","example":"image"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"url":{"type":"string","description":"The source URL for a media file to embed in the message. <br/>**Required for:** \n`image`, `video`, `audio`","example":"https://acme.co/summer_deals.png"}}}}},"OmniReqDetailsForViber":{"type":"object","title":"OmniReqDetailsForViber","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","description":"The name of the template to use for this message.","enum":["text","text_session","image","image_session","video","text_video","url_action_video","url_action","otp_verify"]},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on which template you have selected.","properties":{"text":{"type":"string","example":"All purchases today are 20% off!","description":"The main text of your message. <br/>**Required for:** `text`, `text_session`, `url_action`,  `text_video` and `url_action_video`."},"url":{"type":"string","example":"https://vero-finto/summer_deals.png","description":"Depending on the template being used, this is the URL for the link in the message or the URL where you are hosting an image or video file in the message.<br/>**Required for:** \n`image`, `image_session`, `url_action`, `video`, `text_video`, and `url_action_video`."},"url_id":{"type":"string","description":"Unique identifier for the link in the message. **Required for:** `url_action`","example":"mktUrl1"},"url_text":{"type":"string","example":"Learn more about our deals here.","description":"Text for the link button in the message. <br/>**Required for:** `url_action`"},"open_url":{"type":"string","description":"The URL end users are directed to or the action performed when pressing the action button. ","example":"https://example.com/vero-finto/video_placeholder_name.jpg"},"url_thumbnail":{"type":"string","description":"A static image that acts as the preview image for the video. <br/>**Required for:** `text_video`.","example":"https://vero-finto-test.com"},"otp_code":{"type":"string","description":"The OTP code of your verified template message. <br/>**Required for:** `otp_verify`","example":"12345"},"language":{"type":"string","example":"en","description":"ISO 639-1 two-letter language code. For more details, see [Messaging - Send Viber verification message](/enterprise/docs/messaging-send-viber-verification-message). If not specified, the default value will be English language. <br/>**Optional for:** `otp_verify`"},"reply_id":{"type":"string","description":"This is sent back to the provider when a message sent to a end user is answered. The end user’s reply is linked to the tracking data value that is set in the request.","example":"nxjs634!"},"button_text":{"type":"string","description":"The text that appears on the action button. ","example":"Click here for video"}}}}},"OmniReqDetailsForEmail":{"title":"OmniReqDetailsForEmail","type":"object","description":"Contains properties specifying to the service how to construct the message for this channel.","properties":{"template":{"type":"string","maxLength":64,"description":"The name of the custom template to use for this message.","example":"your-custom-template-name"},"parameters":{"type":"object","description":"Contains sub-properties with values for variables in the message template. Which sub-properties to include here depends on what is defined in your custom template."}}},"OmniReqRecipient":{"title":"OmniReqRecipient","type":"object","description":"Contains properties specifying the contact information needed to communicate with a recipient for a particular channel. At least one sub-property must be included. If the `phone_number` parameter is not included in this request, this parameter is required.","properties":{"phone_number":{"type":"string","description":"The recipient's phone number, as digits without spaces or special characters, beginning with the country dialing code. **Required if RCS, SMS, WA, Viber, or MMS is selected as the channel.**","example":"11234567890"},"email":{"type":"string","description":"The recipient's email address. **Required if email is selected as the channel.**","example":"jsmith@vero-finto.com"}}},"postBulkSMSResponse":{"type":"object","title":"postBulkSMSResponse","properties":{"reference_id":{"type":"string","minLength":32,"maxLength":32,"description":"The service's unique identifier for this transaction.","example":"B562A981D0E0010488434B07861B1862"},"sub_resource":{"type":"string","example":"bulk_sms","description":"The Telesign service you made this request to."},"status":{"$ref":"#/components/schemas/BulkSMSStatus"},"errors":{"type":"array","description":"Each object in this array describes an error that occurred during the processing of this request.","items":{"$ref":"#/components/schemas/BulkSMSError"}}},"required":["reference_id"]},"BulkSMSStatus":{"title":"BulkSMSStatus","type":"object","description":"Contains properties related to the processing status of the transaction.","properties":{"code":{"type":"integer","description":"One of the status codes or error codes.","example":293},"description":{"type":"string","description":"Text describing the transaction status.","example":"Bulk request accepted"},"updated_on":{"type":"string","description":"An [RFC 3339](http://www.ietf.org/rfc/rfc3339.txt) timestamp indicating when the transaction status was updated. ","example":"2022-06-14T23:36:56.164428Z"}}},"BulkSMSError":{"title":"BulkSMSError","type":"object","properties":{"code":{"type":"integer","example":-10002,"description":"A 1 to 5-digit error code (possibly negative) that indicates the type of error that occurred."},"description":{"type":"string","example":"Empty recipients list","description":"Text describing the error that occurred."}},"required":["code","description"]},"putCompletionResponse":{"type":"object","title":"putCompletionResponse","description":"","properties":{"reference_id":{"type":"string","description":"A 32-digit hex value used to identify the web service request. The value is unique to each web service request, is randomly generated by Telesign, and is returned in the response message immediately following the web service request.\n"},"subresource":{"type":"string","description":"The subresource in the URI path from your original request to initiate this transaction. Indicates which form of verification you used.","example":"sms"},"errors":{"type":"array","description":"Contains an object for each error that resulted from the request.","items":{"$ref":"#/components/schemas/errorObject"}},"status":{"type":"object","properties":{"code":{"type":"string","description":"A numeric code describing the processing status of your transaction. See [All status and error codes](/enterprise/docs/all-status-and-error-codes)\n"},"description":{"type":"string","description":"A text description of the status code."},"updated_on":{"type":"string","description":"This is a timestamp showing when your transaction status was updated last."}},"required":["code","description","updated_on"]}}},"postSMSSuccessResponse":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"phone_number_modified":{"type":"string","description":"Indicates whether the end user's phone number provided in the request was modified before processing by Telesign to increase message deliverability.\nContact our [Customer Support Team](mailto:support@telesign.com) to enable this feature. Possible values are `\"True\"` and `\"False\"`."},"external_id":{"description":"The customer-generated ID for this transaction that was provided in the request. If the `external_id` parameter was not included in the request, the value here is `null`.","example":"CustomExternalID7349","type":"string"},"cleansed_phone_number":{"type":"string","description":"The corrected version of the submitted phone number returned in the response after common formatting issues are fixed to improve deliverability. If there are no changes, the original phone number from the request is returned. Contact our [Customer Support Team](support@telesign.com) to enable this feature."}}}],"x-examples":{"Example":{"reference_id":"0123456789ABCDEF0123456789ABCDEF","status":{"code":290,"description":"Message in progress","updated_on":"2022-31-03T14:51:28.709526Z"},"external_id":"CustomExternalID7349"}}},"additionalInfo":{"type":"object","title":"additionalInfo","description":"Contains properties relevant when the message sent with this transaction is one of several parts of a longer message that was split. Only appears if message-splitting is enabled for your account. Contact our [Customer Support Team](mailto:support@telesign.com) to request this feature.","properties":{"message_part_sequence_number":{"type":"integer","example":1,"description":"Indicates this message's position in the series of split parts."},"message_parts_count":{"type":"integer","example":2,"description":"The total number of split parts for the longer message. If the message is not split, this value is `1`."},"message_parts_reference_ids":{"type":"string","example":"35E63E88CB000E049196AD1CFCFFB89C,35E63E88CC7C050491613443467F3F12","description":"The reference IDs for each part of the longer message, separated by commas."}}},"SharedResponse":{"allOf":[{"$ref":"#/components/schemas/SharedResponseSlim"},{"type":"object","properties":{"status":{"type":"object","properties":{"updated_on":{"type":"string","description":"A timestamp showing when your transaction status was updated last.","example":"2022-31-03T14:51:28.709526Z"}}}}}]},"401ResponseSchema":{"title":"401ResponseSchema","type":"object","properties":{"status":{"type":"object","properties":{"code":{"type":"integer","example":10022},"description":{"type":"string","example":"Invalid API key"}}}}},"postMessagingResponse":{"allOf":[{"$ref":"#/components/schemas/SharedResponse"},{"type":"object","properties":{"external_id":{"type":"string","description":"A customer-generated ID for this transaction that was included in the request. ","example":"4142b474-d65d-4265-a5fa-a581b1fe6101"},"phone_number_modified":{"type":"string","description":"Indicates whether Telesign modified the recipient phone number to help with deliverability. Only included if you have this optional feature enabled. Contact our [Customer Support Team](mailto:support@telesign.com) to request this feature.","example":"15558675309"}}}],"x-examples":{"Example":{"status":{"updated_on":"2017-31-03T14:51:28.709526Z","code":290,"description":"Message in progress"},"reference_id":"0123456789ABCDEF0123456789ABCDEF","external_id":"4142b474-d65d-4265-a5fa-a581b1fe6101","phone_number_modified":"15558675309"}}},"SharedResponseSlim":{"title":"SharedResponseSlim","type":"object","properties":{"reference_id":{"type":"string","example":"0123456789ABCDEF0123456789ABCDEF","description":"A unique, randomly generated hex value that identifies your web service request."},"status":{"$ref":"#/components/schemas/SlimStatus"}},"required":["reference_id","status"]},"SlimStatus":{"title":"SlimStatus","type":"object","properties":{"code":{"type":"integer","description":"A numeric code that indicates the status of your transaction.","example":290},"description":{"type":"string","description":"Text describing the status of your transaction.","example":"Message in progress"}},"required":["code","description"]},"Status":{"allOf":[{"$ref":"#/components/schemas/SlimStatus"},{"type":"object","properties":{"updated_on":{"type":"string","description":"A timestamp showing when your transaction status was updated last.","example":"2022-31-03T14:51:28.709526Z"}},"required":["updated_on"]}],"description":"Contains properties related to the request status.","title":"Status"},"Template":{"title":"Template","type":"object","properties":{"name":{"type":"string","example":"wa_bogo","pattern":"^[a-z_]*","description":"The name of this template. Use only lowercase alpha characters and underscores. For WhatsApp, the name must include \"telesign_otp\" if you want Telesign to generate the OTP for you. For example: \"verofinto_telesign_otp_wa_template\". To enable this feature and create SMS templates with the OTP auto-generated by Telesign, contact our [Customer Support Team](mailto:support@telesign.com).","maxLength":512}},"required":["name"]},"TemplateButton":{"title":"TemplateButton","type":"object","description":"Contains properties defining a button included in this template.","properties":{"button_text":{"type":"string","description":"Text to display on this button. This cannot be changed in individual Messaging requests using this template.","example":"Yes","maxLength":25}},"required":["button_text"]},"TemplateCreationDetails":{"title":"TemplateCreationDetails","allOf":[{"$ref":"#/components/schemas/TemplateDetails"},{"type":"object","properties":{"content":{"type":"array","description":"Contains properties defining the new template. The array can contain up to one instance of each object type: `header`, `body`, `footer`, `suggested_action`, and `suggested_reply`. A `body` object must be included. To add the first object, select the `Add` button. To add more objects, scroll past the `suggested_reply` object and select the `Add` button again. If you select a different object without using the `Add` button, it will replace your previous selection with the new one.","uniqueItems":true,"maxItems":5,"items":{"$ref":"#/components/schemas/ContentObject"}}},"required":["content"]}],"x-examples":{}},"TemplateDetails":{"title":"TemplateDetails","allOf":[{"$ref":"#/components/schemas/Template"},{"type":"object","properties":{"type":{"type":"string","description":"Specifies whether the template requires verification by the channel provider or not.","enum":["standard","verified"],"example":"verified"},"channel":{"type":"string","example":"whatsapp","enum":["whatsapp","sms"],"description":"The channel the template is used with. Each template can only be used with one channel. "},"category":{"type":"string","description":"The category name specifying this template's use case. Only required for WhatsApp templates. Do not include any whitespace characters.","example":"marketing","enum":["marketing","utility","authentication","1way"]},"language":{"type":"string","example":"en_US","description":"An abbreviation specifying the language of the text in the template. This is required for WhatsApp templates and not supported for other templates. See  [Messaging - Supported languages for WhatsApp templates](/enterprise/docs/messaging-supported-languages-for-whatsapp-templates) for a list of valid abbreviations. "}},"required":["type","channel"]}],"x-examples":{}},"TemplateRecord":{"title":"TemplateRecord","allOf":[{"$ref":"#/components/schemas/TemplateDetails"},{"type":"object","properties":{"status":{"type":"string","description":"The place of this template in Telesign's approval process. Note that WhatsApp templates used to initiate a conversation with a user also must be approved by WhatsApp. Telesign submits these templates for approval on your behalf and passes through the WhatsApp approval status in this same property.","example":"Approved"},"mandatory_parameters":{"type":"array","description":"Lists each parameter you must include when you use this template in a Telesign Messaging request.","items":{"type":"string"}}},"required":["status","mandatory_parameters"]}]},"TemplateSection":{"title":"TemplateSection","type":"object","description":"Contains properties defining a section in a list of options included in this template.","properties":{"row_number":{"type":"integer","example":1,"description":"he number of rows included in this section. A maximum of 10 rows can be included across **all** sections in this template. ","maximum":10}}},"TemplateSuggestedAction":{"title":"TemplateSuggestedAction","type":"object","description":"Contains properties that define a call-to-action element to include in this template. Supported for WhatsApp templates only. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here.","properties":{"action_type":{"type":"string","description":"The type of call-to-action this button provides. A button of type `dial` and one of type `url` can only be included in the same template if it is a WhatsApp template. Button types `url` and `url_dynamic` are only supported for WhatsApp templates.","enum":["dial","url","url_dynamic","otp"],"example":"dial"},"otp":{"type":"object","description":"Contains properties defining the parts of the template related to presenting a one-time passcode (OTP) so an end-user can copy it. ","properties":{"otp_text":{"type":"string","maxLength":25,"description":"Defines the text shown on a copy code button below a one-time passcode when a WhatsApp copy code authentication template is used. The button allows the end-user to copy a one-time passcode. Use `Autofill` when a WhatsApp one-tap autofill or zero-tap authentication template is used. Required when using the authentication category for WhatsApp verified templates.  ","example":"Autofill"},"package_name":{"type":"string","example":"com.example.myapplication","pattern":"^[a-zA-Z0-9_]+","description":"Lists your Android app's package name. It must match the package name set on the intent in Android and will have at least two segments (one or more dots), and each segment must start with a letter. All characters must be alphanumeric or an underscore. Required when using a WhatsApp [one-tap autofill](https://developers.facebook.com/docs/whatsapp/business-management-api/authentication-templates/autofill-button-authentication-templates) or [zero-tap](https://developers.facebook.com/docs/whatsapp/business-management-api/authentication-templates/zero-tap-authentication-templates) OTP template."},"signature_hash":{"type":"string","pattern":"^[a-zA-Z0-9+/=]+","example":"28aFAINcGX7","description":"Lists your Android app's signing key hash. It must match the installed app's signing key hash. All characters must be either alphanumeric, +, /, or = (a-zA-Z0-9+/=). Required when using a WhatsApp [one-tap autofill](https://developers.facebook.com/docs/whatsapp/business-management-api/authentication-templates/autofill-button-authentication-templates) or [zero-tap](https://developers.facebook.com/docs/whatsapp/business-management-api/authentication-templates/zero-tap-authentication-templates) OTP template.","minLength":11,"maxLength":11},"zero_tap_terms_accepted":{"type":"boolean","description":"Set to `true` to indicate that you understand that your use of [zero-tap](https://developers.facebook.com/docs/whatsapp/business-management-api/authentication-templates/zero-tap-authentication-templates) is subject to the [WhatsApp Business Terms of Service](https://www.whatsapp.com/legal/business-terms), and that it's your responsibility to ensure your end users expect that the code will be automatically filled in on their behalf when they choose to receive the zero-tap code through WhatsApp. If it is set to `false`, the template will **not** be created because you need to accept WhatsApp’s zero-tap terms before creating zero-tap enabled message templates."}}},"dial":{"type":"object","description":"Contains properties defining a click-to-call button.","properties":{"phone_number_to_dial":{"type":"string","example":"18003334444","description":"The phone number for the end user's device to call when this button is selected. This is required when using click-to-call buttons."},"dial_text":{"type":"string","example":"Call us","description":"Text to display on this button. This is required when using click-to-call buttons."}}},"url":{"type":"object","description":"Contains properties defining a link button.","properties":{"url":{"type":"string","example":"https://verofintoshop.com/orders","maxLength":2000,"description":"The complete URL of the destination of this link button. This cannot be modified by individual sends with this template. Required when using link buttons."},"url_text":{"type":"string","example":"Track Order","maxLength":25,"description":"Text to display on this button. Required when using link buttons."}}},"url_dynamic":{"type":"object","description":"Contains properties defining a link button with a URL that can be dynamically modified in each message sent with this template.","properties":{"url":{"type":"string","example":"https://verofintoshop.com/orders?id=","maxLength":2000,"description":"The base URL for the destination of this link button. Can be a static or dynamic url. In each message sent with this template you can add to this path for that send. Note that the maximum length for this value *includes the characters added to the path in any message using this template*. WhatsApp reserves 50 of the 200 characters for its own use. So you should stay far enough below this maximum to leave room for the length of characters you expect each message to add. Required when using link buttons."},"url_text":{"type":"string","example":"Track Order","maxLength":25,"description":"Text to display on this button. Required when using link buttons."}}}}},"MsgGetStatusRes":{"title":"MsgGetStatusRes","allOf":[{"properties":{"status":{"type":"object","properties":{"code":{"type":"integer","description":"Corresponding status code in case of failure."},"description":{"type":"string","description":"Corresponding status description in case of failure."}},"required":["code","description"]}}}],"type":"object"},"header":{"title":"header","type":"object","properties":{"header":{"type":"object","description":"Contains properties related to the header of this template. Not supported for SMS templates. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here.","properties":{"type":{"type":"string","description":"The type of content to display in the header of this template. Required when using a template header. ","enum":["text","image","video","file","location"],"example":"image"},"text":{"type":"string","maxLength":60,"description":"Text to display in the header of this template. This is required if the value of `type` in this object is `text`. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here.","example":"Welcome to {{}} "},"sample_url":{"type":"string","example":"https://s3.amazonaws.com/verofinto-mktg/small-logo.jpg","description":"The source URL for a sample media file or file for download of the type to be displayed in the messages created with this template. This is required for verified templates if the value of the `type` property in this object is `image`, `video`, or `file`."},"sample_text":{"type":"array","description":"A list of the sample values for each of the variables in `text`. This parameter is required if a variable is used in `text`. Use double curly brackets to include a variable name in a parameter value. See [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) for more information about formatting variables.","items":{"type":"string"}}}}}},"body":{"title":"body","type":"object","properties":{"body":{"type":"object","description":"Contains properties related to the body of this template. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here.","required":["type"],"properties":{"type":{"type":"string","description":"The type of content to display in the body of this template.","enum":["text"],"example":"text"},"text":{"type":"string","maxLength":1024,"example":"Buy one get one free!","description":"Text to display in the body of this template. This is required if the value of `type` in this object is `text`. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here."},"sample_text":{"type":"array","description":"A list of the sample values for each of the variables in `text`. This parameter is required if a variable is used in `text`. Use double curly brackets to include a variable name in a parameter value. See [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) for more information about formatting variables.","items":{"type":"string"}}}}},"required":["body"]},"footer":{"title":"footer","type":"object","properties":{"footer":{"type":"object","description":"Contains properties related to the footer of this template. Not supported for SMS templates. Variables are not supported in the footer.","properties":{"type":{"type":"string","enum":["text"],"example":"text","description":"The type of content to display in the footer of this template. Required when using a template footer. "},"text":{"type":"string","maxLength":60,"description":"Text to display in the footer of this template. This is required if the value of `type` in this object is `text`. Variables are not supported in the footer.","example":"Reply STOP to unsubscribe"}}}}},"SuggestedAction":{"title":"Suggested action","type":"object","properties":{"suggested_action":{"type":"array","description":"Each item contains properties that define a call-to-action element to include in this template. Not supported for SMS templates.","maxItems":2,"minItems":1,"items":{"$ref":"#/components/schemas/TemplateSuggestedAction"}}}},"SuggestedReply":{"title":"Suggested reply","type":"object","properties":{"suggested_reply":{"type":"object","description":"Contains properties that define suggested replies to include in this template. Supported for WhatsApp templates only. [Variables](/enterprise/docs/messaging-create-whatsapp-template#variables) can be included here.","properties":{"reply_type":{"type":"string","enum":["button","list"],"example":"button","description":"The type of suggested replies to display in this template. Use `button` for WhatsApp [quick replies](https://developers.facebook.com/docs/messenger-platform/reference/buttons/quick-replies) and `list` for WhatsApp [list messages](https://developers.facebook.com/docs/whatsapp/guides/interactive-messages/#list-messages)."},"button_number":{"type":"integer","description":"The number of buttons to include in this template. Required for suggested replies with type `buttons`.","example":2,"maximum":3},"buttons":{"type":"array","maxItems":3,"minItems":1,"description":"Each item contains properties that define a suggested reply button to include in this template. Required when `suggested_reply.reply_type` has the value `button`. See WhatsApp [quick replies](https://developers.facebook.com/docs/messenger-platform/reference/buttons/quick-replies).","items":{"$ref":"#/components/schemas/TemplateButton"}},"sections":{"type":"array","description":"Each item contains properties that define a suggested reply section to include in this template. Required for suggested replies with type `list`. See WhatsApp [list messages](https://developers.facebook.com/docs/whatsapp/guides/interactive-messages/#list-messages).","minItems":1,"maxItems":10,"items":{"$ref":"#/components/schemas/TemplateSection"}}}}}},"ContentObject":{"title":"ContentObject","anyOf":[{"$ref":"#/components/schemas/header"},{"$ref":"#/components/schemas/body"},{"$ref":"#/components/schemas/footer"},{"$ref":"#/components/schemas/SuggestedAction"},{"$ref":"#/components/schemas/SuggestedReply"}],"description":""}},"parameters":{"channel":{"name":"channel","in":"path","required":true,"schema":{"type":"string","enum":["whatsapp","sms"],"example":"whatsapp"},"description":"One of the Telesign Messaging channels for which programmatic template management is supported."},"name":{"name":"name","in":"path","required":true,"schema":{"type":"string","example":"wa_bogo"},"description":" The name of this template."}}},"x-readme":{"explorer-enabled":true,"proxy-enabled":true,"samples-enabled":true},"security":[{"Basic":[]}],"tags":[{"name":"Bulk SMS"},{"name":"Messaging"},{"name":"SMS"},{"name":"Templates"}]}