{ "openapi": "3.0.1", "info": { "title": "sms", "description": "The SMS API is a restful HTTP API that allows you to send text messages to mobile phones.\nMessages can be delivered to one or multiple recipients, and the state of an underway \nmessage can be checked after transmission.\n\n# Product selection\n\nSMS over API offers different product flavors. Product selection is done during token \ngeneration by specifying the proper product scope in addition to the default *sms* scope. \nProduct scope is granted based on the actual bought product(s). Only one product scope, \nat a time, can be specified during token generation.\n\n| Product | Scope |\n|---------------------------|---------------------------|\n| SMS A2P Banking | sms-a2p-banking |\n| SMS A2P Business Class | sms-a2p-business-class |\n| SMS A2P Enterprise | sms-a2p-enterprise |\n| SMS A2P First Class | sms-a2p-first-class |\n| SMS Global Mobile Numbers | sms-global-mobile-numbers |\n| SMS A2P Marketing | sms-a2p-marketing |\n| SMS A2P OTT | sms-a2p-ott |\n\n## Example\n\n```\nPOST /auth/realms/mybics/protocol/openid-connect/token HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\nAccept: */*\nCache-Control: no-cache\nHost: idm.bics.com\nAccept-Encoding: gzip, deflate, br\nConnection: keep-alive\nContent-Length: 133\n\ngrant_type=client_credentials&scope=sms%20sms-global-mobile-numbers&client_id={{clientId}}&client_secret={{clientSecret}}\n```\n", "version": "v3" }, "servers": [ { "url": "https://api.bics.com/sms/v3" } ], "paths": { "/inbound/subscriptions": { "get": { "description": "Your subscription for Inbound Messages", "operationId": "Get Inbound Messages Subscription", "parameters": [], "responses": { "200": { "description": "subscription", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboundCallback" }, "example": "{\n \"callback\": {\n \"url\": \"string\",\n \"securityToken\": \"string\",\n \"concat\": true\n }\n}\n" } } }, "401": { "description": "Not authorized", "content": {} }, "404": { "description": "No subscription found", "content": {} } }, "x-request-id-header": true }, "post": { "description": "Subscribe for Inbound Messages. This is an alternative way to the Get Inbound Messages method to retrieve Inbound Messages.\n\nAn Inbound Message will be sent to the specified URL whenever the message arrives to OpenSMS API Server.\n\n### Be aware that\n\n* There is a retry mechanism if the URL is not reachable:\n\n * During the first 10 minutes, retry every 2 minutes\n\n * Then during 2 hours, retry every hour\n\n * Then until reaching the max retry time (3 days), retry every 6 hours\n\n * After that the message will be deleted\n\n* For the subscriptions with enabled concatenation:\n\n * Although you may receive a long concatenated message, you will be charged for each individual part of the message. All messaging parts, regardless of how they are grouped, are subject to separate charges.\n\n\n### Example of the request sent to the client:\n```yaml\n\"Authorization\" : \"Bearer \"\n\"Content-type\" : \"application/json; charset=UTF-8\"\n```\n* **\\** - security token given during the subscription creation\n\n```yaml\nbody:\n {\n \"InboundSmsMessage\": {\n \"dateTime\": \"2021-11-24T09:13:40.639\",\n \"destinationAddress\": \"1234567890\",\n \"senderAddress\": \"1234567899\",\n \"messageId\": \"e7e34bb7-91a9-443e-a7e1-5257f6cf8d42\",\n \"message\": \"Test Inbound Message\"\n }\n }\n```\n", "operationId": "Create Inbound Messages Subscription", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboundCallback" }, "example": "{\n \"callback\": {\n \"concat\": false,\n \"url\": \"https://your-callback-url.com\",\n \"securityToken\": \"string\"\n }\n}\n" } }, "required": true }, "responses": { "201": { "description": "subscription created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboundCallback" }, "example": "{\n \"callback\": {\n \"concat\": false,\n \"url\": \"https://your-callback-url.com\",\n \"securityToken\": \"string\"\n }\n}\n" } } }, "400": { "description": "The request is not well formed.", "content": {} }, "406": { "description": "The request is not accepted.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotAcceptableCallback" }, "example": null } } } }, "x-request-id-header": true }, "delete": { "description": "Delete your subscription for Inbound Messages", "operationId": "Delete Inbound Messages Subscription", "parameters": [], "responses": { "401": { "description": "Not authorized", "content": {} }, "204": { "description": "Subscription removed", "content": {} }, "404": { "description": "Delivery subscription not found", "content": {} } }, "x-request-id-header": true }, "parameters": [] }, "/conversions": { "post": { "description": "Process SMS conversion info from customer. One of the fields is required, address or customerReference.", "operationId": "Process SMS Conversion info", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversionRequest" }, "example": "{\"conversionRequest\":{\"address\":\"32410300011\"}}" } }, "required": true }, "responses": { "200": { "description": "SMS conversion submitted", "content": {} }, "400": { "description": "The request is not well formed.", "content": {} }, "403": { "description": "Forbidden: this service cannot be used according to your API Key", "content": {} } } }, "parameters": [] }, "/conversionsinfos": { "post": { "description": "Process an array of conversion info ids from customer.\n\nHTTP request should contain authorization bearer token with assigned 'conversion' role\n", "operationId": "Process SMS Conversion infos", "parameters": [], "requestBody": { "description": "List of customer references.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageIdsDTO" }, "example": "" } }, "required": true }, "responses": { "200": { "description": "* Empty body, in case all conversion message ids were processed correctly\n\n* List of address_ids, which are not valid\n", "content": {} }, "400": { "description": "The request is not well formed", "content": {} }, "403": { "description": "Forbidden: this service cannot be used according to your API Key", "content": {} } } }, "parameters": [] }, "/outbound/{senderAddress}/requests": { "post": { "description": "Sends a text message to one or more destination numbers.", "operationId": "Send Message", "parameters": [ { "name": "senderAddress", "in": "path", "description": "The address to use as the sender of the message. This can be\neither a number up to 15 characters, or an alphanumeric text up to 11\ncharacters from the GSM 7bit alphabet. However, most destination networks\nwill only allow valid phone numbers or short codes. Keep in mind that\nany replies will end up being delivered to this address. If the address\nis a phone number, you can optionally prefix it with tel: for clarity\n(e.g. tel:+1234567). senderAddress path variable must be a valid URL chars\nsequence. If it contains non-latin letters or special/punctuation characters,\nthey are required to be URL-encoded (e.g. /outbound/ALPHA NUMERIC/requests\n-> /outbound/ALPHA%20NUMERIC/requests).\n", "required": true, "allowEmptyValue": false, "style": "simple", "explode": false, "schema": { "type": "string", "example": null }, "example": "321234567" } ], "requestBody": { "description": "Request Parameters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutboundRequest" }, "example": "{\"outboundSMSMessageRequest\":{\"address\":[\"tel:+13500000991\",\"tel:+13500000992\"],\"senderAddress\":\"tel:321234567\",\"outboundSMSTextMessage\":{\"message\":\"Hello World\"},\"senderName\":\"web app name\"}}" } }, "required": true }, "responses": { "201": { "description": "CREATED", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutboundRequest" }, "examples": { "async": { "value": "{\n \"outboundSMSMessageRequest\": {\n \"resourceURL\": \"https://opensms.api.bics.com/sms/v3/outbound/321234567/requests/4c279a5f-1502-4679-8077-a63fa399369e\",\n \"address\": [\"tel:+13500000991\", \"tel:+13500000992\"],\n \"senderAddress\": \"tel:321234567\",\n \"outboundSMSTextMessage\": {\"message\": \"Hello World\"},\n \"senderName\": \"web app name\",\n \"callbackData\":\"xxxx-xxxxxxx-xxxxxxx-xxx\",\n \"notifyURL\":\"https://some-address.url/some-endpoint\",\n \"asynchronous\" : true\n }\n}\n" }, "sync": { "value": "{\n \"outboundSMSMessageRequest\": {\n \"resourceURL\": \"https://opensms.api.bics.com/sms/v3/outbound/321234567/requests/4c279a5f-1502-4679-8077-a63fa399369e\",\n \"address\": [\"tel:+13500000991\", \"tel:+13500000992\"],\n \"senderAddress\": \"tel:321234567\",\n \"outboundSMSTextMessage\": {\"message\": \"Hello World\"},\n \"senderName\": \"web app name\",\n \"asynchronous\" : false\n }\n}\n" } }, "example": null } } }, "400": { "description": "Bad request: request validation failed, or initial response from SMS HUB fails with delivery impossible. (For asynchronous requests - if initial request validation failed, or message contains correlationId for which previous response from SMS HUB failed with delivery impossible)", "content": {} }, "401": { "description": "Unauthorized: the API Key was not mentioned or is invalid (see authentication)", "content": {} }, "403": { "description": "Forbidden: this service cannot be used according to your API Key", "content": {} }, "429": { "description": "Too Many Requests: more requests were made in the last hour than is permitted with your API key", "content": {} } }, "x-request-id-header": true }, "parameters": [] }, "/outbound/subscriptions": { "get": { "description": "Your subscription for delivery infos", "operationId": "Get Delivery Info Subscription", "parameters": [], "responses": { "200": { "description": "subscription", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Callback" }, "example": "{\n \"callback\": {\n \"finalDelivery\": true,\n \"url\": \"string\",\n \"securityToken\": \"string\"\n }\n}\n" } } }, "401": { "description": "Not authorized", "content": {} }, "404": { "description": "No subscription found", "content": {} } }, "x-request-id-header": true }, "post": { "description": "Subscribe for delivery info notifications. This is an alternative way to the Get Delivery Infos method to\nretrieve delivery infos.\n\nA delivery infos will be sent to the specified URL whenever the message's state changes.\nYou will typically receive 2 notifications with the states DeliveredToNetwork and DeliveredToTerminal\nrespectively for each sent message.\nFor large messages that are split into parts, you will receive a notification for each part with the state\nPartiallyDelivered except for the last part which will have the state DeliveredToTerminal.\nEach notification will also contain the total number of parts and the number of parts that arrived at the recipient.\n\nAdditionally \"finalDelivery\" : This flag will determine if customer wants to only receive some of the delivery status that he considers \u201cfinal\u201d.\n\n### Be aware that\n\n* There is no retry mechanism on the delivery notifications. If we fail to send the notification to your URL\n(e.g. 404 not found, timeout, network issues) we will not send it again.\n\n* The notifications might arrive in random order. E.g. for a message split in 3 parts, you might\nreceive the notification of the 3rd part with the state DeliveredToTerminal before the notification of the 2nd\npart with the state PartiallyDelivered. This requires you to build some\nlogic on your end to not simply overwrite the state DeliveredToTerminal with PartiallyDelivered\nand wrongfully conclude that the message is still in the state PartiallyDelivered.\n", "operationId": "Create Delivery Info Subscription", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeliveryCallback" }, "example": "{\n \"callback\": {\n \"finalDelivery\": true,\n \"url\": \"https: //your-callback-url.com\",\n \"securityToken\": \"string\"\n }\n}\n" } }, "required": true }, "responses": { "201": { "description": "subscription created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeliveryCallback" }, "example": "{\n \"callback\": {\n \"finalDelivery\": true,\n \"url\": \"https://your-callback-url.com\",\n \"securityToken\": \"string\"\n }\n}\n" } } }, "400": { "description": "The request is not well formed.", "content": {} }, "406": { "description": "The request is not accepted.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotAcceptableCallback" }, "example": null } } } }, "x-request-id-header": true }, "delete": { "description": "Delete your subscription for delivery infos", "operationId": "Delete Delivery Info Subscription", "parameters": [], "responses": { "401": { "description": "Not authorized", "content": {} }, "204": { "description": "Subscription removed", "content": {} }, "404": { "description": "Delivery subscription not found", "content": {} } }, "x-request-id-header": true }, "parameters": [] }, "/inbound/registrations/{inboundNumber}/messages": { "get": { "description": "Return the messages of your inbound number.\n", "operationId": "Get Inbound Messages", "parameters": [ { "name": "inboundNumber", "in": "path", "description": "The inbound number's inbox to check.", "required": true, "allowEmptyValue": false, "style": "simple", "explode": false, "schema": { "type": "string", "example": null }, "example": "abc123" }, { "name": "maxBatchSize", "in": "query", "description": "The number of messages to retrieve. This must be a number between 0 and 200. The default is 20 if this parameter is not specified.", "required": false, "allowEmptyValue": false, "style": "form", "explode": true, "schema": { "type": "integer", "example": null }, "example": "200" } ], "responses": { "200": { "description": "A list of incoming messages for the given number", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboundSMSMessageList" }, "example": null } } } }, "x-request-id-header": true }, "parameters": [] }, "/outbound/{senderAddress}/requests/{requestId}/deliveryInfos": { "get": { "description": "Retrieves the delivery information per recipient for a previously transmitted message. For each message sent, you can poll this URL until the message has one of the 2 final states:\n\n* DeliveredToTerminal : the message arrived on the recipient's device\n\n* DeliveryImpossible : the message could not be delivered (e.g. the recipient's number is not an active number)\n\nPolling for the status can be resource intensive, alternatively you can also create a delivery subscription which will post the same delivery info to a URL you specify.\n", "operationId": "Get Delivery Infos", "parameters": [ { "name": "senderAddress", "in": "path", "description": "The sender of the message used in the original SendMessage request", "required": true, "allowEmptyValue": false, "style": "simple", "explode": false, "schema": { "type": "string", "example": null }, "example": "321234567" }, { "name": "requestId", "in": "path", "description": "The requestId of the submitted message which can be found in the reponse or the location header of the original SendMessage request", "required": true, "allowEmptyValue": false, "style": "simple", "explode": false, "schema": { "type": "string", "example": null }, "example": "4c279a5f-1502-4679-8077-a63fa399369e" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeliveryInfoList" }, "example": "{\"deliveryInfoList\":{\"resourceURL\":\"https://opensms.api.bics.com/sms/v3/outbound/%2B321234567/requests/4c279a5f-1502-4679-8077-a63fa399369e/deliveryInfos\",\"smsParts\":3,\"deliveryInfo\":[{\"address\":\"tel:+331234568\",\"deliveryStatus\":\"PartiallyDelivered\",\"deliveryStatusCode\":13,\"smsPartsDeliveredToTerminal\":2,\"callbackData\":\"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx\"},{\"address\":\"tel:+331234567\",\"deliveryStatus\":\"DeliveredToNetwork\",\"deliveryStatusCode\":6,\"smsPartsDeliveredToTerminal\":0,\"callbackData\":\"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx\"}]}}" } } }, "401": { "description": "Unauthorized: the API Key was not mentioned or is invalid (see authentication)", "content": {} }, "403": { "description": "Forbidden: this service cannot be used according to your API Key", "content": {} }, "404": { "description": "no such message was found", "content": {} }, "429": { "description": "Too Many Requests: more requests were made in the last hour than is permitted with your API key", "content": {} } }, "x-request-id-header": true }, "parameters": [] } }, "components": { "schemas": { "SmsTextMessage": { "type": "object", "properties": { "message": { "type": "string", "example": null } }, "description": "The text message to send. It will be encoded using the GSM 7-bit encoding standard.\nNote: The tab character (\\t) will be replaced by four space characters during encoding.\nThe backspace character (\\b) will be omitted, as neither has a direct representation in GSM 7-bit encoding.\n", "example": null }, "DeliveryCallback": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/Callback" }, { "type": "object", "properties": { "finalDelivery": { "type": "boolean", "description": "This flag will determine if customer wants to only receive some of the delivery status that he considers \u201cfinal\u201d.", "example": null } }, "example": null } ], "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"callback\")", "example": null }, "InboundSMSMessageList": { "type": "object", "properties": { "totalNumberOfPendingMessages": { "type": "integer", "description": "Number of messages that can be retrieved, including the ones that are currently being retrieved.", "example": null }, "resourceURL": { "type": "string", "description": "A resouce URL with which this message list can be retrieved.", "example": null }, "numberOfMessagesInThisBatch": { "type": "integer", "example": null }, "inboundSMSMessage": { "type": "array", "items": { "$ref": "#/components/schemas/InboundSmsMessage" }, "example": null } }, "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"inboundSMSMessageList\")", "example": null }, "InboundCallback": { "type": "object", "allOf": [ { "$ref": "#/components/schemas/Callback" }, { "type": "object", "properties": { "concat": { "type": "boolean", "description": "Determines how multipart messages are handled:\n\n- **true**: The API waits for all parts of a multipart message, concatenates them into a single message, and then sends the complete message to the customer.\n- **false**: The API sends message parts individually, including metadata such as `udhMessageId`, `concatPart`, and `concatTotal`, allowing the client to perform concatenation.\n- **absent**: Maintains the legacy behavior, where each message part is sent as a separate message without concatenation.\n", "example": null } }, "example": null } ], "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"callback\")", "example": null }, "OutboundRequest": { "required": [ "address", "outboundSMSTextMessage", "senderAddress" ], "type": "object", "properties": { "senderAddress": { "type": "string", "description": "For the sender address, we allow both numeric and alphanumeric senders. Keep in mind that not all destination networks accept alphanumeric senders, and some will even refuse to terminate messages if you try to use it.", "example": null }, "senderName": { "type": "string", "example": null }, "finalDelivery": { "type": "boolean", "example": null }, "address": { "type": "array", "description": "Recipient addresses", "nullable": false, "items": { "type": "string", "description": "Required. Recipient address", "example": null }, "example": null }, "resourceURL": { "type": "string", "description": "A resource URL for this specific request.", "example": null }, "deliveryInfoList": { "$ref": "#/components/schemas/DeliveryInfoList" }, "outboundSMSTextMessage": { "$ref": "#/components/schemas/SmsTextMessage" }, "asynchronous": { "type": "boolean", "description": "Optional, default value is false. Reduces HTTP response time by acknowledging the message directly as it enters our system, doesn't influence on actual sending time of message to destination, HTTP response is sent before message validation by the routing engine. Delivery results are available on subscription, by calling 'getDeliveryResults' endpoint or by using notifyURL field.", "default": false, "example": null }, "clientCorrelator": { "type": "string", "description": "Suppose a network issue occurs just as you're sending a message, and you did not receive your http response. In this case you will not know whether the sms was effectively sent or not. You could send the message again, but then you risk the recipient receiving the message twice. The solution for this is the clientCorrelator. Add this optional parameter with a unique value for each message you transmit. If you transmit the message again with the same correlator, bics will not send the message again. Instead, if the message was sent before, you will simply receive the response as you would've received it in the original sending. Correlators stay valid for 24 hours.\n", "example": null }, "callbackData": { "type": "string", "description": "Optional. Will be passed back in this notification, so you can use it to identify the message the receipt relates to or any other useful data, such as a function name.", "example": null }, "notifyURL": { "type": "string", "description": "Optional. The URL-escaped URL to which a notification of delivery sent. notifyURL has presedence over delivery notification subscription that may already exist for the senderAddress.", "example": null } }, "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"outboundSMSMessageRequest\")", "example": null }, "ConversionRequest": { "type": "object", "properties": { "address": { "type": "string", "description": "The b-number which has been converted to a customer.", "example": null }, "customerReference": { "type": "string", "description": "Customer reference.", "example": null } }, "description": "Either address or customerReference is required.\n", "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"conversionRequest\")", "example": null }, "DeliveryInfo": { "type": "object", "properties": { "smsPartsUncertain": { "type": "integer", "description": "The number of parts that is uncertain of delivery for messages split into multiple parts.", "x-include-if-not-null": true, "example": null }, "address": { "type": "string", "description": "The recipient address.", "example": null }, "smsPartsUndeliverable": { "type": "integer", "description": "The number of parts undeliverable to terminal for messages split into multiple parts.", "x-include-if-not-null": true, "example": null }, "callbackData": { "type": "string", "description": "Data from original sendMessage request", "example": null }, "deliveryStatus": { "$ref": "#/components/schemas/DeliveryState" }, "smsPartsDeliveredToTerminal": { "type": "integer", "description": "The number of parts delivered to terminal for messages split into multiple parts.", "example": null }, "deliveryStatusCode": { "type": "integer", "example": null } }, "example": null }, "MessageIdsDTO": { "required": [ "message_id" ], "type": "object", "properties": { "message_id": { "type": "array", "description": "List of customer references.", "example": "[\"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx\",\"yyyy-yyyy-yyyy-yyyy-yyyy-yyyy\",\"zzzz-zzzz-zzzz-zzzz-zzzz-zzzz\"]", "items": { "type": "string", "description": "Customer reference.", "example": null }, "x-jsonproperty": "message_id" }, "type": { "type": "string", "description": "The protocol used during sending of message(s) to be marked as converted", "example": null } }, "example": null }, "Callback": { "required": [ "securityToken", "url" ], "type": "object", "properties": { "securityToken": { "type": "string", "description": "This token will be sent in the delivery info or used as an authorization header in the inbound message as a means to secure the callback.", "nullable": false, "example": null }, "url": { "type": "string", "description": "The URL to which the delivery info or an inbound message will be sent. The method will be POST and the content type application/json.", "nullable": false, "example": null } }, "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"callback\")", "example": null }, "DeliveryState": { "type": "string", "description": "\nStatus codes for the delivery state:\n\n", "enum": [ "MessageAccepted", "DeliveredToNetwork", "PartiallyDelivered", "DeliveredToTerminal", "DeliveryUncertain", "DeliveryImpossible", "InvalidSrcAddress", "InvalidDestAddress" ], "example": null }, "InboundSmsMessage": { "type": "object", "properties": { "dateTime": { "type": "string", "description": "The time that the message was sent out to the customer.", "format": "date-time", "example": null }, "udhMessageId": { "type": "integer", "description": "The identifier (1 byte [0..255]) of the concatenated message:.", "example": null }, "senderAddress": { "type": "string", "description": "The address of the sender of the message.", "example": null }, "destinationAddress": { "type": "string", "description": "The destination address of the message. This will usually always be the number associated with your inbox.", "example": null }, "resourceURL": { "type": "string", "description": "A resource URL for this specific message (Returned only for get inbound messages endpoint, not in case of subscription).", "example": null }, "concatTotal": { "type": "integer", "description": "The total number of parts in the concatenated message.", "example": null }, "messageId": { "type": "string", "description": "A unique identifier of the message.", "example": null }, "message": { "type": "string", "description": "The message itself.", "example": null }, "concatPart": { "type": "integer", "description": "The part number of the concatenated message.", "example": null } }, "example": null }, "DeliveryInfoList": { "type": "object", "properties": { "securityToken": { "type": "string", "description": "Present if this delivery info is sent as part of a delivery info subscription callback. It will contain the same value as the securityToken used to create the delivery subscription.", "example": null }, "deliveryInfo": { "type": "array", "items": { "$ref": "#/components/schemas/DeliveryInfo" }, "example": null }, "resourceURL": { "type": "string", "description": "The DeliveryInfoList can also be accessed on this resource URL.", "example": null }, "smsParts": { "type": "integer", "description": "The number of SMS'es sent to deliver this message. An SMS has a maximum length, if your message exceeds this length, it will be split into multiple SMS'es and merged again on the recipient's device.", "example": null } }, "description": "When a message was sent, the response contains a list of deliveryInfos. Use the ResourceURL of the DeliveryInfoList section of the response to check back later for updates on this list.\n(keep in mind that this URL will not contain your ApiKey, so if you come back for the delivery receipts you will still need to authenticate. Delivery receipts are kept for 7 days.\n", "x-class-extra-annotation": "@com.fasterxml.jackson.annotation.JsonRootName(\"deliveryInfoList\")", "example": null }, "NotAcceptableCallback": { "type": "object", "properties": { "code": { "type": "string", "enum": [ "NOT_HTTPS" ], "example": null }, "description": { "type": "string", "example": null } }, "example": null } } } }