{"_id":"56a0a29cd847b50d00a275f0","user":"55116f88e2990b0d00fb0552","__v":0,"editedParams":true,"version":{"_id":"568fce2b04440a1700e4cb4a","project":"568fce2a04440a1700e4cb47","__v":20,"createdAt":"2016-01-08T14:56:43.101Z","releaseDate":"2016-01-08T14:56:43.101Z","categories":["568fce2b04440a1700e4cb4b","568fd1b8b700ce0d002f4b1c","568fd23804440a1700e4cb5b","568fd2444719c119002ce5d8","568ff21204440a1700e4cbc1","5693732c8aa8040d009f2c28","5693738393445b0d00abdad0","5693740093445b0d00abdad1","56937445974aaa0d001ca699","5693b82173f48f0d0075c90d","5694c4cd1005590d0062cb25","569f854466a5640d00efa54c","56a264cdd15dd70d008d825b","56aa56bf318e6c1700a19ddb","56b0e6347ae4550d000627bd","56b200c0f48f270d00e0de6f","56b200c6f48f270d00e0de70","56b22a9665ddf50d0076ba40","56e92ef71996862200fd7f42","574d6577fb835c0e00ca316a"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"parentDoc":null,"project":"568fce2a04440a1700e4cb47","category":{"_id":"5694c4cd1005590d0062cb25","pages":["569f8c611082520d005c703a","569fa534a454d2230002cb72","569fa79197472b1700201634","569fb65c27af53210043231d","569fb6931082520d005c7085","56a0a29cd847b50d00a275f0","56a0ae0ac29eb50d00e33e05","56b9e47cb77e261700bc1425","56bb05b7fb70442b003683ee","56bb06ec959bd90d00afb0a2","56d41bbed3f4650b007496df"],"version":"568fce2b04440a1700e4cb4a","__v":11,"project":"568fce2a04440a1700e4cb47","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-01-12T09:18:05.741Z","from_sync":false,"order":5,"slug":"rest-services","title":"REST API"},"editedParams2":true,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-01-21T09:19:24.367Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"name":"","code":"[\n  {\n  },\n  {\n  }\n]","language":"json","status":200},{"language":"json","status":202,"name":"","code":"[{\n\t\"failureDescription\":\"Unable to logon with credentials given\",\n}]"},{"code":"[\n  {\n    \"property\": \"message[0].toa\",\n    \"details\": \"Could not find member 'toa' on object of type 'Message'. Path '[0].toa', line 3, position 10.\",\n    \"failureKey\": \"ErrBadJson\"\n  },\n  {\n    \"property\": \"message[1].toa\",\n    \"details\": \"Could not find member 'toa' on object of type 'Message'. Path '[1].toa', line 7, position 10.\",\n    \"failureKey\": \"ErrBadJson\"\n  },\n  {\n    \"property\": \"message[1].body\",\n    \"details\": \"After parsing a value an unexpected character was encountered: \\\". Path '[1].body', line 9, position 4.\\nAfter parsing a value an unexpected character was encountered: \\\". Path '[1].body', line 9, position 4.\",\n    \"failureKey\": \"ErrBadJson\"\n  }\n]","language":"json","status":400},{"status":401,"code":"No authorization header supplied or invalid username or password","language":"text"}]},"settings":"","examples":{"codes":[{"code":"var parameters = new[]\n{\n\tnew\n\t{\n\t    from = \"Test\",\n\t    to = \"447979080215\",\n\t    body = \"Hello, this is a test message\",\n\t    deliverAfter = \"2015-10-05T12:57:00.543Z\",\n\t    clientRef = \"124546\"\n\t}\n};\n\nvar client = new RestClient(\"https://services.dynmark.com/webapi/message/send\");\nvar request = new RestRequest(Method.POST);\nrequest.Authenticator = new HttpBasicAuthenticator(userName, password);\nrequest.AddHeader(\"accept\", \"application/json\");\nrequest.AddHeader(\"content-type\", \"application/json\");\nrequest.AddParameter(\"application/json\", \"[{\\n    \\\"from\\\": \\\"Test\\\",\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\"\\n}]\\n\", ParameterType.RequestBody);\nIRestResponse response = client.Execute(request);\n","language":"csharp","name":null},{"code":"curl -X POST -H \"Content-Type: application/json\" -H \"Accept: application/json\" -user #USER#:#PASSWORD# -H \"Cache-Control: no-cache\" -H \"Postman-Token: 30948295-e763-a276-525c-b83a1b948447\" -d '{\n    \"from\": \"Test\",\n    \"to\": \"447979080215\",\n    \"body\": \"Hello, this is a test message\"\n    \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n    \"clientRef\": \"124546\"\n}' 'https://services.dynmark.com/webapi/message/send'","language":"curl"},{"code":"String userName = \"#USERNAME#\";\nString password = \"#PASSWORD#\";\n\nHttpResponse<String> response = Unirest.post(\"https://services.dynmark.com/webapi/message/send\")\n  .header(\"content-type\", \"application/json\")\n  .header(\"accept\", \"application/json\")\n  .header(\"authorization\", \"Basic c3RnZHlubGl2ZXNjOlBhc3N3MHJkIQ==\")\n  .header(\"cache-control\", \"no-cache\")\n  .basicAuth(\"username\", \"password\")\n  .body(\"{\\n    \\\"from\\\": \\\"Test\\\",\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\"\\n    \\\"deliverAfter\\\": \\\"2015-10-05T12:57:00.543Z\\\",\\n    \\\"clientRef\\\": \\\"124546\\\"\\n}\\n\")\n  .asString();\n","language":"java"},{"code":"var messages = [{\n    \"from\": \"Test\",\n    \"to\": \"447979080215\",\n    \"body\": \"Hello, this is a test message\"\n    \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n    \"clientRef\": \"124546\"\n}];\n\nvar settings = {\n  \"async\": true,\n  \"crossDomain\": true,\n  \"url\": \"https://services.dynmark.com/webapi/message/send\",\n  \"method\": \"POST\",\n  \"headers\": {\n    \"content-type\": \"application/json\",\n    \"accept\": \"application/json\",\n    \"username\": \"#USERNAME#\",\n    \"password\": \"#PASSWORD#\",\n    \"cache-control\": \"no-cache\"\n  },\n  \"processData\": false,\n  \"data\": messages\n}\n\n$.ajax(settings).done(function (response) {\n  console.log(response);\n});","language":"javascript"},{"language":"php","code":"<?php\n\n$username = \"#USERNAME#\";\n$password = \"#PASSWORD#\";\n\n$request = new HttpRequest();\n$request->setUrl('https://services.dynmark.com/webapi/message/send');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setHeaders(array(\n  'cache-control' => 'no-cache',\n  'authorization' => 'Basic ' . base64_encode(\"$username:$password\")\n  'accept' => 'application/json',\n  'content-type' => 'application/json'\n));\n\n$request->setBody('{\n    \"from\": \"Test\",\n    \"to\": \"447979080215\",\n    \"body\": \"Hello, this is a test message\"\n    \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n    \"clientRef\": \"124546\"\n}\n');\n\ntry {\n  $response = $request->send();\n\n  echo $response->getBody();\n} catch (HttpException $ex) {\n  echo $ex;\n}"}]},"auth":"required","params":[{"_id":"568fd82b21fcf0190071d8db","ref":"","in":"body","required":true,"desc":"The phone number to send to. This should be in international format (e.g. 447123123456), or if countryIsoCode is specified, in local format (e.g. 07123123456)","default":"","type":"string","name":"to"},{"_id":"568fd82b21fcf0190071d8d9","ref":"","in":"body","required":true,"desc":"A string containing the from value. This can be either: Numeric: between 2-15 characters, permitted characters 0-9 Alphanumeric: between 2-11 characters 0-9, a-z, A-Z, hyphen, underscore, full-stop and space e.g. MAYFLOWER or +447740101097. If no originator is set this will automatically assign a default number so that the recipient may reply to the message. If you have purchased a dedicated number this can be used as the originator","default":"","type":"string","name":"from"},{"_id":"56992cd4d342d51900438665","ref":"","in":"body","required":false,"desc":"An optional country in <a href=\"https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\">ISO 3166-1 alpha-3</a> format. If specfied, the <b>to</b> field can contain a number in local format, e.g. GBR would allow 07123123456","default":"","type":"string","name":"countryIsoCode"},{"_id":"568fd82b21fcf0190071d8da","ref":"","in":"body","required":true,"desc":"The message text","default":"","type":"string","name":"body"},{"_id":"5694caf9c5c5ce0d00058df4","ref":"","in":"body","required":false,"desc":"A date time specifying when we should try to deliver the message.","default":"","type":"datetime","name":"deliverAfter"},{"_id":"568fd82b21fcf0190071d8d8","ref":"","in":"body","required":false,"desc":"A date time specifying how long we should try to deliver the message for.","default":"","type":"datetime","name":"validiUntil"},{"_id":"568fd82b21fcf0190071d8d6","ref":"","in":"body","required":false,"desc":"This can contain an optional string value (with a maximum length of 64 characters) that will be returned with the delivery status to allow you to pass integration information.","default":"","type":"string","name":"clientRef"},{"_id":"568fd82b21fcf0190071d8d7","ref":"","in":"body","required":false,"desc":"A callback URL that will have the delivery status for the SMS sent to it. The page located at the URL will need to return a HTTP status code of 200 to indicate it has accepted the data within 10 seconds. See the <a href=\"receipt-handler\">Receipt handler documentation</a> for more details","default":"","type":"string","name":"deliveryStatusUrl"},{"_id":"568fd82b21fcf0190071d8d5","ref":"","in":"body","required":false,"desc":"If you have enabled Intelligent Filtering on your account, in the user portal, you can specify which filter set is applied to this message.","default":"","type":"string","name":"filterSetName"},{"_id":"5697d9023503e40d0061f49b","ref":"","in":"body","required":false,"desc":"If set to true, any messages containing unicode characters will not be sent.","default":"false","type":"boolean","name":"rejectUnicode"},{"_id":"5694caf9c5c5ce0d00058df1","ref":"","in":"body","required":false,"desc":"If you are a reseller and have requested the send as client feature, you can specify the username of one of your clients to send messages using that client’s account.","default":"","type":"string","name":"impersonateUserName"},{"_id":"569fc90fc0864f1700565155","ref":"","in":"body","required":false,"desc":"","default":"","type":"array_object","name":"x"}],"url":"/WebApi/Messaging/Send"},"isReference":false,"order":1,"body":"The Send method allows you to send one or more messages to international or local phone numbers.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"We recommended a maximum of 250 messages are submitted in a single call to this method.\"\n}\n[/block]\n<div class=\"alert alert-success\"><div class=\"label label-success\">POST</div> &nbsp; **https://services.dynmark.com/webapi/message/send**</div>\n\n##Parameters\nSend requires an array of one or more Message objects.\n\n##Message Object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"<code>to</code><span class=\\\"c-danger\\\">*</span>\",\n    \"0-1\": \"string\",\n    \"0-2\": \"The phone number to send to. This should be in international format (e.g. 447123123456), or if **countryIsoCode** is specified, in local format (e.g. 07123123456)\",\n    \"1-0\": \"<code>from</code><span class=\\\"c-danger\\\">*</span>\",\n    \"1-1\": \"string\",\n    \"1-2\": \"A string containing the from value. This can be either: Numeric: between 2-15 characters, permitted characters 0-9 Alphanumeric: between 2-11 characters 0-9, a-z, A-Z, hyphen, underscore, full-stop and space e.g. MAYFLOWER. If no originator is set this will automatically assign a default number so that the recipient may reply to the message. If you have purchased a dedicated number this can be used as the originator\",\n    \"2-2\": \"An optional country in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format. If specified, the **to** field can contain a number in local format, e.g. GBR would allow 07123123456\",\n    \"2-1\": \"string\",\n    \"2-0\": \"<code>countryIsoCode</code>\",\n    \"3-0\": \"<code>body</code><span class=\\\"c-danger\\\">*</span>\",\n    \"3-1\": \"string\",\n    \"3-2\": \"The message text\",\n    \"4-0\": \"<code>deliverAfter</code>\",\n    \"5-0\": \"<code>validUntil</code>\",\n    \"6-0\": \"<code>clientRef</code>\",\n    \"4-1\": \"DateTime\",\n    \"4-2\": \"A date time specifying when we should try to deliver the message. This must be a UTC time in ISO 8601 format, e.g. 2015-10-21T13:28:06.419Z\",\n    \"5-2\": \"A date time specifying how long we should try to deliver the message for. This must be a UTC time in ISO 8601 format, e.g. 2015-10-21T13:28:06.419Z\",\n    \"5-1\": \"DateTime\",\n    \"6-2\": \"An optional string value (with a maximum length of 64 characters) that will be returned with the delivery status to allow you to pass integration information.\\nSee [Tracking Conversations](doc:tracking-converstations) for more details.\",\n    \"6-1\": \"string\",\n    \"7-0\": \"<code>deliveryStatusUrl</code>\",\n    \"8-0\": \"<code>filterSetName</code>\",\n    \"9-0\": \"<code>rejectUnicode</code>\",\n    \"8-2\": \"If you have enabled Intelligent Filtering on your account, in the user portal, you can specify which filter set is applied to this message.\",\n    \"9-2\": \"If set to true, any messages containing Unicode characters will not be sent.\",\n    \"7-2\": \"A callback URL that will have the delivery status for the SMS sent to it. The page located at the URL will need to return a HTTP status code of 200 to indicate it has accepted the data within 10 seconds. See the Receipt handler documentation for more details\",\n    \"h-0\": \"Property\",\n    \"h-1\": \"Type\",\n    \"h-2\": \"Description\",\n    \"7-1\": \"string\",\n    \"8-1\": \"string\",\n    \"9-1\": \"boolean\",\n    \"10-0\": \"<code>impersonateUserName</code>\",\n    \"10-1\": \"string\",\n    \"10-2\": \"If you are a reseller and have requested the send as client feature, you can specify the username of one of your clients to send messages using that client’s account.\"\n  },\n  \"cols\": 3,\n  \"rows\": 11\n}\n[/block]\n##Request Examples\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"447700900000\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"clientRef\\\": \\\"Your reference\\\"\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"Simple Send\"\n    },\n    {\n      \"code\": \"[\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"447700900000\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"deliveryStatusUrl\\\": \\\"https://inbound.example.com/SmsReceipts\\\",\\n    \\\"clientRef\\\": \\\"Your reference\\\"\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"Send with Receipts\"\n    },\n    {\n      \"code\": \"[\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"07777 123123\\\",\\n    \\\"countryIsoCode\\\": \\\"GBR\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"clientRef\\\": \\\"Your reference\\\"\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"Using Local Numbers\"\n    },\n    {\n      \"code\": \"[\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"447700900000\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"clientRef\\\": \\\"Your reference\\\"\\n  },\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"447700900111\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"clientRef\\\": \\\"Your second reference\\\"\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"Multiple recipients\"\n    },\n    {\n      \"code\": \"POST /webapi/message/send HTTP/1.1\\nHost: services.dynmark.com\\nContent-Type: application/json\\nAuthorization: Basic RGF2ZUJhZGRh8765OkYxNkZhbGNvbg==\\nCache-Control: no-cache\\n\\n[\\n  {\\n    \\\"from\\\": \\\"Example\\\",\\n    \\\"to\\\": \\\"447700900000\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\",\\n    \\\"clientRef\\\": \\\"Your reference\\\"\\n  }\\n]\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n##Response\nThe response format varies depending on the success of the call. If the payload is well formed, a 202 Accepted status code is returned and the body contains an array of MessageResult objects corresponding to the input array of Messge objects. \n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"<code>to</code><span class=\\\"c-danger\\\">*</span>\",\n    \"0-1\": \"The to field of the message to assist with correlation\",\n    \"1-0\": \"<code>successful</code><span class=\\\"c-danger\\\">*</span>\",\n    \"1-1\": \"A boolean indicating successful submission of the message\",\n    \"2-0\": \"<code>validationFailures</code>\",\n    \"2-1\": \"If not successful, an array of [ValidationFailure ](#section-validationfailure-object) objects describing the reason for the failure.\",\n    \"h-0\": \"Property\",\n    \"h-1\": \"Description\"\n  },\n  \"cols\": 2,\n  \"rows\": 3\n}\n[/block]\n##ValidationFailure Object\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"<code>property</code>\",\n    \"1-0\": \"<code>failureCode</code><span class=\\\"c-danger\\\">*</span>\",\n    \"2-0\": \"<code>details</code><span class=\\\"c-danger\\\">*</span>\",\n    \"2-1\": \"A human readable description of the validation failure.\",\n    \"1-1\": \"A string containing a short machine readable failure code. See [Error Codes](doc:rest-messaging-error-codes) for more details.\",\n    \"0-1\": \"The property that the validation failure applies to, or empty if the failure applies to the entire submitted payload.\",\n    \"h-0\": \"Property\",\n    \"h-1\": \"Description\"\n  },\n  \"cols\": 2,\n  \"rows\": 3\n}\n[/block]\n##Response Examples\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[\\n  {\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"successful\\\": true\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"202 Accepted - Success\"\n    },\n    {\n      \"code\": \"[\\n  {\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"successful\\\": false,\\n    \\\"validationFailures\\\": [\\n      {\\n        \\\"property\\\": \\\"from\\\",\\n        \\\"failureCode\\\": \\\"FromEmpty\\\",\\n        \\\"details\\\": \\\"from is not valid. No value was specified.\\\"\\n      }\\n    ]\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"202 Accepted - Error\"\n    },\n    {\n      \"code\": \"[\\n  {\\n    \\\"property\\\": \\\"message[0].toa\\\",\\n    \\\"failureCode\\\": \\\"InvalidJson\\\",\\n    \\\"details\\\": \\\"Could not find member 'typo' on object of type 'Message'. Path '[0].toa', line 3, position 10.\\\"\\n  },\\n  {\\n    \\\"property\\\": \\\"message[1].body\\\",\\n    \\\"failureCode\\\": \\\"InvalidJson\\\",\\n    \\\"details\\\": \\\"After parsing a value an unexpected character was encountered: \\\\\\\". Path '[1].body', line 9, position 4.\\\\nAfter parsing a value an unexpected character was encountered: \\\\\\\". Path '[1].body', line 9, position 4.\\\"\\n  }\\n]\",\n      \"language\": \"json\",\n      \"name\": \"400 Bad Request\"\n    },\n    {\n      \"code\": \"No authorization header supplied or invalid username or password\",\n      \"language\": \"text\",\n      \"name\": \"401 Unauthorized\"\n    }\n  ]\n}\n[/block]\n##Examples\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"var body = new[]\\n{\\n  new\\n  {\\n      from = \\\"Test\\\",\\n      to = \\\"447979080215\\\",\\n      body = \\\"Hello, this is a test message\\\",\\n      deliverAfter = \\\"2015-10-05T12:57:00.543Z\\\",\\n      clientRef = \\\"124546\\\"\\n  }\\n};\\n\\nvar client = new RestClient(\\\"https://services.dynmark.com/webapi/message/send\\\");\\nclient.Authenticator = new HttpBasicAuthenticator(username, password);\\nclient.Timeout = 130000;\\n\\nvar request = new RestRequest();\\nrequest.AddJsonBody(body);\\nIRestResponse response = client.Post(request);\",\n      \"language\": \"csharp\"\n    },\n    {\n      \"code\": \"curl -X POST -H \\\"Content-Type: application/json\\\" -H \\\"Accept: application/json\\\" -user #USER#:#PASSWORD# -d '[{\\n    \\\"from\\\": \\\"Test\\\",\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\"\\n    \\\"deliverAfter\\\": \\\"2015-10-05T12:57:00.543Z\\\",\\n    \\\"clientRef\\\": \\\"124546\\\"\\n}]' 'https://services.dynmark.com/webapi/message/send'\",\n      \"language\": \"curl\"\n    },\n    {\n      \"code\": \"String userName = \\\"#USERNAME#\\\";\\nString password = \\\"#PASSWORD#\\\";\\n\\nHttpResponse<String> response = Unirest.post(\\\"https://services.dynmark.com/webapi/message/send\\\")\\n  .header(\\\"content-type\\\", \\\"application/json\\\")\\n  .header(\\\"accept\\\", \\\"application/json\\\")\\n  .basicAuth(userName, password)\\n  .body(\\\"[{\\\\n    \\\\\\\"from\\\\\\\": \\\\\\\"Test\\\\\\\",\\\\n    \\\\\\\"to\\\\\\\": \\\\\\\"447979080215\\\\\\\",\\\\n    \\\\\\\"body\\\\\\\": \\\\\\\"Hello, this is a test message\\\\\\\"\\\\n    \\\\\\\"deliverAfter\\\\\\\": \\\\\\\"2015-10-05T12:57:00.543Z\\\\\\\",\\\\n    \\\\\\\"clientRef\\\\\\\": \\\\\\\"124546\\\\\\\"\\\\n}]\\\")\\n  .asString();\",\n      \"language\": \"java\"\n    },\n    {\n      \"code\": \"var messages = [{\\n    \\\"from\\\": \\\"Test\\\",\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\"\\n    \\\"deliverAfter\\\": \\\"2015-10-05T12:57:00.543Z\\\",\\n    \\\"clientRef\\\": \\\"124546\\\"\\n}];\\n\\nvar settings = {\\n  \\\"async\\\": true,\\n  \\\"crossDomain\\\": true,\\n  \\\"url\\\": \\\"https://services.dynmark.com/webapi/message/send\\\",\\n  \\\"method\\\": \\\"POST\\\",\\n  \\\"headers\\\": {\\n    \\\"content-type\\\": \\\"application/json\\\",\\n    \\\"accept\\\": \\\"application/json\\\",\\n    \\\"username\\\": \\\"#USERNAME#\\\",\\n    \\\"password\\\": \\\"#PASSWORD#\\\"\\n  },\\n  \\\"processData\\\": false,\\n  \\\"data\\\": messages\\n}\\n\\n$.ajax(settings).done(function (response) {\\n  console.log(response);\\n});\",\n      \"language\": \"javascript\"\n    },\n    {\n      \"code\": \"<?php\\n\\n$username = \\\"#USERNAME#\\\";\\n$password = \\\"#PASSWORD#\\\";\\n\\n$request = new HttpRequest();\\n$request->setUrl('https://services.dynmark.com/webapi/message/send');\\n$request->setMethod(HTTP_METH_POST);\\n\\n$request->setHeaders(array(\\n  'authorization' => 'Basic ' . base64_encode(\\\"$username:$password\\\")\\n  'accept' => 'application/json',\\n  'content-type' => 'application/json'\\n));\\n\\n$request->setBody('[{\\n    \\\"from\\\": \\\"Test\\\",\\n    \\\"to\\\": \\\"447979080215\\\",\\n    \\\"body\\\": \\\"Hello, this is a test message\\\"\\n    \\\"deliverAfter\\\": \\\"2015-10-05T12:57:00.543Z\\\",\\n    \\\"clientRef\\\": \\\"124546\\\"\\n}]\\n');\\n\\ntry {\\n  $response = $request->send();\\n\\n  echo $response->getBody();\\n} catch (HttpException $ex) {\\n  echo $ex;\\n}\\n\",\n      \"language\": \"php\"\n    }\n  ]\n}\n[/block]","excerpt":"Send one or more SMS messages to international or local phone numbers.","slug":"rest-messaging-send-messages","type":"fn","title":"Send Messages"}

Send Messages

Send one or more SMS messages to international or local phone numbers.

The Send method allows you to send one or more messages to international or local phone numbers. [block:callout] { "type": "info", "title": "We recommended a maximum of 250 messages are submitted in a single call to this method." } [/block] <div class="alert alert-success"><div class="label label-success">POST</div> &nbsp; **https://services.dynmark.com/webapi/message/send**</div> ##Parameters Send requires an array of one or more Message objects. ##Message Object [block:parameters] { "data": { "0-0": "<code>to</code><span class=\"c-danger\">*</span>", "0-1": "string", "0-2": "The phone number to send to. This should be in international format (e.g. 447123123456), or if **countryIsoCode** is specified, in local format (e.g. 07123123456)", "1-0": "<code>from</code><span class=\"c-danger\">*</span>", "1-1": "string", "1-2": "A string containing the from value. This can be either: Numeric: between 2-15 characters, permitted characters 0-9 Alphanumeric: between 2-11 characters 0-9, a-z, A-Z, hyphen, underscore, full-stop and space e.g. MAYFLOWER. If no originator is set this will automatically assign a default number so that the recipient may reply to the message. If you have purchased a dedicated number this can be used as the originator", "2-2": "An optional country in [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) format. If specified, the **to** field can contain a number in local format, e.g. GBR would allow 07123123456", "2-1": "string", "2-0": "<code>countryIsoCode</code>", "3-0": "<code>body</code><span class=\"c-danger\">*</span>", "3-1": "string", "3-2": "The message text", "4-0": "<code>deliverAfter</code>", "5-0": "<code>validUntil</code>", "6-0": "<code>clientRef</code>", "4-1": "DateTime", "4-2": "A date time specifying when we should try to deliver the message. This must be a UTC time in ISO 8601 format, e.g. 2015-10-21T13:28:06.419Z", "5-2": "A date time specifying how long we should try to deliver the message for. This must be a UTC time in ISO 8601 format, e.g. 2015-10-21T13:28:06.419Z", "5-1": "DateTime", "6-2": "An optional string value (with a maximum length of 64 characters) that will be returned with the delivery status to allow you to pass integration information.\nSee [Tracking Conversations](doc:tracking-converstations) for more details.", "6-1": "string", "7-0": "<code>deliveryStatusUrl</code>", "8-0": "<code>filterSetName</code>", "9-0": "<code>rejectUnicode</code>", "8-2": "If you have enabled Intelligent Filtering on your account, in the user portal, you can specify which filter set is applied to this message.", "9-2": "If set to true, any messages containing Unicode characters will not be sent.", "7-2": "A callback URL that will have the delivery status for the SMS sent to it. The page located at the URL will need to return a HTTP status code of 200 to indicate it has accepted the data within 10 seconds. See the Receipt handler documentation for more details", "h-0": "Property", "h-1": "Type", "h-2": "Description", "7-1": "string", "8-1": "string", "9-1": "boolean", "10-0": "<code>impersonateUserName</code>", "10-1": "string", "10-2": "If you are a reseller and have requested the send as client feature, you can specify the username of one of your clients to send messages using that client’s account." }, "cols": 3, "rows": 11 } [/block] ##Request Examples [block:code] { "codes": [ { "code": "[\n {\n \"from\": \"Example\",\n \"to\": \"447700900000\",\n \"body\": \"Hello, this is a test message\",\n \"clientRef\": \"Your reference\"\n }\n]", "language": "json", "name": "Simple Send" }, { "code": "[\n {\n \"from\": \"Example\",\n \"to\": \"447700900000\",\n \"body\": \"Hello, this is a test message\",\n \"deliveryStatusUrl\": \"https://inbound.example.com/SmsReceipts\",\n \"clientRef\": \"Your reference\"\n }\n]", "language": "json", "name": "Send with Receipts" }, { "code": "[\n {\n \"from\": \"Example\",\n \"to\": \"07777 123123\",\n \"countryIsoCode\": \"GBR\",\n \"body\": \"Hello, this is a test message\",\n \"clientRef\": \"Your reference\"\n }\n]", "language": "json", "name": "Using Local Numbers" }, { "code": "[\n {\n \"from\": \"Example\",\n \"to\": \"447700900000\",\n \"body\": \"Hello, this is a test message\",\n \"clientRef\": \"Your reference\"\n },\n {\n \"from\": \"Example\",\n \"to\": \"447700900111\",\n \"body\": \"Hello, this is a test message\",\n \"clientRef\": \"Your second reference\"\n }\n]", "language": "json", "name": "Multiple recipients" }, { "code": "POST /webapi/message/send HTTP/1.1\nHost: services.dynmark.com\nContent-Type: application/json\nAuthorization: Basic RGF2ZUJhZGRh8765OkYxNkZhbGNvbg==\nCache-Control: no-cache\n\n[\n {\n \"from\": \"Example\",\n \"to\": \"447700900000\",\n \"body\": \"Hello, this is a test message\",\n \"clientRef\": \"Your reference\"\n }\n]", "language": "http" } ] } [/block] ##Response The response format varies depending on the success of the call. If the payload is well formed, a 202 Accepted status code is returned and the body contains an array of MessageResult objects corresponding to the input array of Messge objects. [block:parameters] { "data": { "0-0": "<code>to</code><span class=\"c-danger\">*</span>", "0-1": "The to field of the message to assist with correlation", "1-0": "<code>successful</code><span class=\"c-danger\">*</span>", "1-1": "A boolean indicating successful submission of the message", "2-0": "<code>validationFailures</code>", "2-1": "If not successful, an array of [ValidationFailure ](#section-validationfailure-object) objects describing the reason for the failure.", "h-0": "Property", "h-1": "Description" }, "cols": 2, "rows": 3 } [/block] ##ValidationFailure Object [block:parameters] { "data": { "0-0": "<code>property</code>", "1-0": "<code>failureCode</code><span class=\"c-danger\">*</span>", "2-0": "<code>details</code><span class=\"c-danger\">*</span>", "2-1": "A human readable description of the validation failure.", "1-1": "A string containing a short machine readable failure code. See [Error Codes](doc:rest-messaging-error-codes) for more details.", "0-1": "The property that the validation failure applies to, or empty if the failure applies to the entire submitted payload.", "h-0": "Property", "h-1": "Description" }, "cols": 2, "rows": 3 } [/block] ##Response Examples [block:code] { "codes": [ { "code": "[\n {\n \"to\": \"447979080215\",\n \"successful\": true\n }\n]", "language": "json", "name": "202 Accepted - Success" }, { "code": "[\n {\n \"to\": \"447979080215\",\n \"successful\": false,\n \"validationFailures\": [\n {\n \"property\": \"from\",\n \"failureCode\": \"FromEmpty\",\n \"details\": \"from is not valid. No value was specified.\"\n }\n ]\n }\n]", "language": "json", "name": "202 Accepted - Error" }, { "code": "[\n {\n \"property\": \"message[0].toa\",\n \"failureCode\": \"InvalidJson\",\n \"details\": \"Could not find member 'typo' on object of type 'Message'. Path '[0].toa', line 3, position 10.\"\n },\n {\n \"property\": \"message[1].body\",\n \"failureCode\": \"InvalidJson\",\n \"details\": \"After parsing a value an unexpected character was encountered: \\\". Path '[1].body', line 9, position 4.\\nAfter parsing a value an unexpected character was encountered: \\\". Path '[1].body', line 9, position 4.\"\n }\n]", "language": "json", "name": "400 Bad Request" }, { "code": "No authorization header supplied or invalid username or password", "language": "text", "name": "401 Unauthorized" } ] } [/block] ##Examples [block:code] { "codes": [ { "code": "var body = new[]\n{\n new\n {\n from = \"Test\",\n to = \"447979080215\",\n body = \"Hello, this is a test message\",\n deliverAfter = \"2015-10-05T12:57:00.543Z\",\n clientRef = \"124546\"\n }\n};\n\nvar client = new RestClient(\"https://services.dynmark.com/webapi/message/send\");\nclient.Authenticator = new HttpBasicAuthenticator(username, password);\nclient.Timeout = 130000;\n\nvar request = new RestRequest();\nrequest.AddJsonBody(body);\nIRestResponse response = client.Post(request);", "language": "csharp" }, { "code": "curl -X POST -H \"Content-Type: application/json\" -H \"Accept: application/json\" -user #USER#:#PASSWORD# -d '[{\n \"from\": \"Test\",\n \"to\": \"447979080215\",\n \"body\": \"Hello, this is a test message\"\n \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n \"clientRef\": \"124546\"\n}]' 'https://services.dynmark.com/webapi/message/send'", "language": "curl" }, { "code": "String userName = \"#USERNAME#\";\nString password = \"#PASSWORD#\";\n\nHttpResponse<String> response = Unirest.post(\"https://services.dynmark.com/webapi/message/send\")\n .header(\"content-type\", \"application/json\")\n .header(\"accept\", \"application/json\")\n .basicAuth(userName, password)\n .body(\"[{\\n \\\"from\\\": \\\"Test\\\",\\n \\\"to\\\": \\\"447979080215\\\",\\n \\\"body\\\": \\\"Hello, this is a test message\\\"\\n \\\"deliverAfter\\\": \\\"2015-10-05T12:57:00.543Z\\\",\\n \\\"clientRef\\\": \\\"124546\\\"\\n}]\")\n .asString();", "language": "java" }, { "code": "var messages = [{\n \"from\": \"Test\",\n \"to\": \"447979080215\",\n \"body\": \"Hello, this is a test message\"\n \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n \"clientRef\": \"124546\"\n}];\n\nvar settings = {\n \"async\": true,\n \"crossDomain\": true,\n \"url\": \"https://services.dynmark.com/webapi/message/send\",\n \"method\": \"POST\",\n \"headers\": {\n \"content-type\": \"application/json\",\n \"accept\": \"application/json\",\n \"username\": \"#USERNAME#\",\n \"password\": \"#PASSWORD#\"\n },\n \"processData\": false,\n \"data\": messages\n}\n\n$.ajax(settings).done(function (response) {\n console.log(response);\n});", "language": "javascript" }, { "code": "<?php\n\n$username = \"#USERNAME#\";\n$password = \"#PASSWORD#\";\n\n$request = new HttpRequest();\n$request->setUrl('https://services.dynmark.com/webapi/message/send');\n$request->setMethod(HTTP_METH_POST);\n\n$request->setHeaders(array(\n 'authorization' => 'Basic ' . base64_encode(\"$username:$password\")\n 'accept' => 'application/json',\n 'content-type' => 'application/json'\n));\n\n$request->setBody('[{\n \"from\": \"Test\",\n \"to\": \"447979080215\",\n \"body\": \"Hello, this is a test message\"\n \"deliverAfter\": \"2015-10-05T12:57:00.543Z\",\n \"clientRef\": \"124546\"\n}]\n');\n\ntry {\n $response = $request->send();\n\n echo $response->getBody();\n} catch (HttpException $ex) {\n echo $ex;\n}\n", "language": "php" } ] } [/block]