![]() |
This API is designed to be as flexible as possible.
Using just one API, your software will be configured for sending various types of messages. The MessageType parameter specifies which type of message is sent (eg Email).
SendMode parameter in your message object to skip message delivery. The message will be accepted and processed with a simulated delivery result displayed. Head to https://www.tnz.co.nz/Customer/SignUp to create a new account.
A test account is possible, however creating a commerical account and using the Mode=Test function of the API is simpler to use when you’re ready to push your application live.
After completing the sign up form, a sales consultant will manually activate your account. This may take one business day. Once the account has been activated, you will be able to Create a new API user token.
Using the API will require a Sender and APIKey pair to authenticate with the API.
You can generate this using the Web Dashboard under: Users | Outbound Users | Create
User Email Address = Sender
User Token = APIKey
The API is designed to be as flexible as possible. This means you can use the same API URL to send a variety of message types.
https://www.tnz.co.nz/api/json/send/
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Email",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" : %%https://www.tnz.co.nz/api/json/send/
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "SMS",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" : %%
The base parameters are: Sender, APIKey, APIVersion, MessageType, MessageData
| Parameter | Example Value | Description |
|---|---|---|
| Sender | [email protected] | Sender value set up in Create a new API user token |
| APIKey | ta8wr7ymd | APIKey value set up in Create a new API user token |
| APIVersion | 1.03 | Version of the API used; can differ based on MessageType |
| MessageID (Optional) |
ID123456 | A message tracking identifier (maximum 40 characters, alphanumeric). If you do not supply this field, the API will return one for you in the response body (UUID v4 of 36 characters) |
| MessageType | Available message types referenced in Adding variables based on the MessageType, eg Email, Fax, SMS, Voice, TextToSpeech | |
| MessageData | %Variable% | String of values based on the MessageType referenced in Adding variables to MessageData based on MessageType |
The possible POST response values are:
200 OK, Job %JOBNUMBER%
400 BAD REQUEST, %ERROR REASON%
500 Internal Server Error
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Email",
"APIVersion": "1.03",
"MessageData" :
{
"EmailSubject": "Test Email Subject",
"MessagePlain": "Hello, This is a test message. Thank you.",
"Destinations" :
[
"[email protected]"
]
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Email",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"EmailSubject": "Test Email Subject",
"SMTPFrom": "[email protected]",
"From": "noreply",
"FromEmail": "[email protected]",
"ReplyTo": "[email protected]",
"MessagePlain": "Hello,\r\nThis is a test message.\r\nThank you.",
"MessageHTML": "<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>",
"Destinations" :
[
{
"Recipient": "[email protected]",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"[email protected]",
"[email protected]",
"[email protected]"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Email",
"APIVersion": "1.03",
"MessageData" :
{
"EmailSubject": "Test Email Subject",
"MessagePlain": "Hello, This is a test message. Thank you.",
"Destinations" :
[
"[email protected]"
]
}
}'
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Email",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"EmailSubject": "Test Email Subject",
"SMTPFrom": "[email protected]",
"From": "noreply",
"FromEmail": "[email protected]",
"ReplyTo": "[email protected]",
"MessagePlain": "Hello,\r\nThis is a test message.\r\nThank you.",
"MessageHTML": "<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>",
"Destinations" :
[
{
"Recipient": "[email protected]",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"[email protected]",
"[email protected]",
"[email protected]"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}'
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$data = array(
"Sender" => "[email protected]", // your user id
"APIKey" => "ta8wr7ymd", // your api key
"MessageType" => "Email",
"APIVersion" => "1.03",
"MessageData" => array(
"EmailSubject" => "Test Email Subject",
"MessagePlain" => "Hello, This is a test message. Thank you.",
"Destinations" => array(
"[email protected]"
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]"; // your user id
$apikey = "ta8wr7ymd"; // your api key
$type = "Email";
$version = "1.03";
$message_id = "ID123456"; //optional
$file1 = "Sample.pdf";
$file2 = "Sample2.pdf";
if( file_exsits($file1) )
{
$fp = fopen($file1,"r");
$file_content1 = fread($fp,filesize($file1));
fclose($fp);
}
if( file_exists($file2) )
{
$fp = fopen($file2,"r");
$file_content2 = fread($fp,filesize($file2));
fclose($fp);
}
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"MessageType" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
"MessageData" => array(
"Reference" => "Test1",
"SendTime" => "",
"TimeZone" => "New Zealand",
"SubAccount" => "SubAccount01",
"Department" => "Department01",
"ChargeCode" => "BillingGroup01",
"EmailSubject" => "Test Email Subject",
"SMTPFrom" => "[email protected]",
"From" => "noreply",
"FromEmail" => "[email protected]",
"ReplyTo" => "[email protected]",
"MessagePlain" => "Hello,\r\nThis is a test message.\r\nThank you.",
"MessageHTML" => "Hello,
This is a test message.
Thank you.",
"Destinations" => array(
array(
"Recipient" => "[email protected]",
"Attention" => "Recipient One",
"Company" => "Example Corp",
"Custom1" => "",
"Custom2" => ""
),
"[email protected]",
"[email protected]",
"[email protected]"
),
"Files" => array(
array(
"Name" => $file1,
"Data" => base64_encode($file_content1)
),
array(
"Name" => $file2,
"Data" => base64_encode($file_content2)
)
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Text;
using System.IO;
using System.Net;
namespace EmailSimple
{
class Program
{
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
//
// Build JSON Data
//
string strJSONData = @"{
""Sender"": ""[email protected]"",
""APIKey"": ""ta8wr7ymd"",
""MessageType"": ""Email"",
""APIVersion"": ""1.03"",
""MessageData"": {
""EmailSubject"": ""Test Email Subject"",
""MessagePlain"": ""Hello, This is a test message. Thank you."",
""Destinations"":
[
""[email protected]""
]
}
}";
//
// Send HTTP Request to TNZ Rest API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
Console.WriteLine(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Text;
using System.IO;
using System.Net;
namespace EmailAdvanced
{
class Program
{
private static string GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in string
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
ASCIIEncoding encoding = new ASCIIEncoding();
return Encoding.ASCII.GetString(encoding.GetBytes(strContent));
}
}
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string file1 = "C:\\File1.pdf";
string file2 = "C:\\File2.pdf";
string file1_data = GetFileContents(file1);
string file2_data = GetFileContents(file2);
//
// Build JSON Data
//
string strJSONData = [email protected]"{{
""Sender"": ""[email protected]"",
""APIKey"": ""ta8wr7ymd"",
""MessageType"": ""Email"",
""APIVersion"": ""1.03"",
""MessageID"": ""ID123456"",
""MessageData"": {{
""Reference"": ""Test1"",
""SendTime"": """",
""TimeZone"": ""New Zealand"",
""SubAccount"": ""SubAccount01"",
""Department"": ""Department01"",
""ChargeCode"": ""BillingGroup01"",
""EmailSubject"": ""Test Email Subject"",
""SMTPFrom"": ""[email protected]"",
""From"": ""noreply"",
""FromEmail"": ""[email protected]"",
""ReplyTo"": ""[email protected]"",
""MessagePlain"": ""Hello,\r\nThis is a test message.\r\nThank you."",
""MessageHTML"": ""<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>"",
""Destinations"":
[
{{
""Recipient"": ""recipient.one @example.com"",
""Attention"": ""Recipient One"",
""Company"": ""Example Corp""
}},
""[email protected]"",
""[email protected]"",
""[email protected]""
],
""Files"":
[
{{
""Name"": ""File1.pdf"",
""Data"": ""{file1_data}""
}},
{{
""Name"": ""File2.pdf"",
""Data"": ""{file2_data}""
}}
]
}}
}}";
//
// Send HTTP Request to TNZ Rest API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
//
// More code to handle 400 Bad Request errors
//
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
catch (WebException wex)
{
if (wex.Response != null)
{
using (var errorResponse = (HttpWebResponse)wex.Response)
{
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
Console.WriteLine(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Email</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<EmailSubject>Test Email Subject</EmailSubject>
<MessagePlain>Hello, This is a test message. Thank you.</MessagePlain>
<Destinations>[email protected]</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Email</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<EmailSubject>Test Email Subject</EmailSubject>
<SMTPFrom>[email protected]</SMTPFrom>
<From>noreply</From>
<FromEmail>noreply</FromEmail>
<ReplyTo>[email protected]</ReplyTo>
<MessagePlain>Hello,\r\nThis is a test message.\r\nThank you.</MessagePlain>
<MessageHTML><![CDATA[<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>]]></MessageHTML>
<Destinations>
<Recipient>[email protected]</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>[email protected]</Destinations>
<Destinations>[email protected]</Destinations>
<Destinations>[email protected]</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Email</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<EmailSubject>Test Email Subject</EmailSubject>
<MessagePlain>Hello, This is a test message. Thank you.</MessagePlain>
<Destinations>[email protected]</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Email</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<EmailSubject>Test Email Subject</EmailSubject>
<SMTPFrom>[email protected]</SMTPFrom>
<From>noreply</From>
<FromEmail>[email protected]</FromEmail>
<ReplyTo>[email protected]</ReplyTo>
<MessagePlain>Hello,\r\nThis is a test message.\r\nThank you.</MessagePlain>
<MessageHTML><![CDATA[<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>]]></MessageHTML>
<Destinations>
<Recipient>[email protected]</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>[email protected]</Destinations>
<Destinations>[email protected]</Destinations>
<Destinations>[email protected]</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$data = new SimpleXMLExtended("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender","[email protected]");
$data->addChild("APIKey","ta8wr7ymd");
$data->addChild("MessageType","1.03");
$data->addChild("APIVersion","Email");
$data->addChild("MessageData");
$data->MessageData->addChild("EmailSubject","Test Email Subject");
$data->MessageData->addChild("MessaePlain","Hello, This is a test message. Thank you.");
$data->MessageData->addChild("Destinations","[email protected]");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
class SimpleXMLExtended extends SimpleXMLElement {
//
// this class extends SimplXMLElement to insert CDATA if necessary.
// for example, XML is not validated if HTML tag is inside XML Element,
// so we want to wrap inside CDATA, <![CDATA[<html>...</html>]]>
//
public function addCData($cdata_text) {
$node = dom_import_simplexml($this);
$no = $node->ownerDocument;
$node->appendChild($no->createCDATASection($cdata_text));
}
}
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Email";
$version = "1.03";
$message_id = "ID123456"; //optional
$file_name1 = "Sample.pdf";
$file_name2 = "Sample2.pdf";
if( file_exists($file_name1) )
{
$fp = fopen($file_name1,"r");
$file_content1 = fread($fp,filesize($file_name1));
fclose($fp);
}
if( file_exists($file_name2) )
{
$fp = fopen($file_name2,"r");
$file_content2 = fread($fp,filesize($file_name2));
fclose($fp);
}
$data = new SimpleXMLExtended("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$data->addChild("MessageData");
$data->MessageData->addChild("Reference","Test1");
$data->MessageData->addChild("SendTime");
$data->MessageData->addChild("TimeZone","New Zealand");
$data->MessageData->addChild("SubAccount","SubAccount01");
$data->MessageData->addChild("Department","Department01");
$data->MessageData->addChild("ChargeCode","BillingGroup01");
$data->MessageData->addChild("EmailSubject","Test Email Subject");
$data->MessageData->addChild("SMTPFrom","[email protected]");
$data->MessageData->addChild("From","noreply");
$data->MessageData->addChild("FromEmail","[email protected]");
$data->MessageData->addChild("ReplyTo","[email protected]");
$data->MessageData->addChild("MessaePlain","Hello,\r\nThis is a test message.\r\nThank you.");
$data->MessageData->addChild("MessageHTML");
$data->MessageData->MessageHTML->addCData("<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>"); // wrap CDATA for HTML Tags
$destination1 = $data->MessageData->addChild("Destinations");
$destination1->addChild("Recipient","[email protected]");
$destination1->addChild("Attention","Recipient One");
$destination1->addChild("Company","Example Corp");
$destination1->addChild("Custom1","");
$destination1->addChild("Custom2","");
$destination2 = $data->MessageData->addChild("Destinations","[email protected]");
$destination3 = $data->MessageData->addChild("Destinations","[email protected]");
$destination4 = $data->MessageData->addChild("Destinations","[email protected]");
if( file_exists($file_name1) )
{
$fileElement1 = $data->MessageData->addChild("Files");
$fileElement1->addChild("Name",basename($file_name1));
$fileElement1->addChild("Data",base64_encode($file_content1));
}
if( file_exists($file_name2) )
{
$fileElement2 = $data->MessageData->addChild("Files");
$fileElement2->addChild("Name",basename($file_name2));
$fileElement2->addChild("Data",base64_encode($file_content2));
}
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.IO;
using System.Text;
using System.Net;
using System.Xml;
namespace EmailSimple
{
class Program
{
private static XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "Email"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "EmailSubject", "Test Email Subject"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessagePlain", "Hello,\r\nThis is a test message.\r\nThank you."));
//
// Add Destination
//
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "[email protected]"));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send HTTP Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
//
// More code to handle 400 Bad Request errors
//
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
catch (WebException wex)
{
if (wex.Response != null)
{
using (var errorResponse = (HttpWebResponse)wex.Response)
{
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
Console.WriteLine(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.IO;
using System.Text;
using System.Net;
using System.Xml;
namespace EmailAdvanced
{
class Program
{
private static string GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in string
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
ASCIIEncoding encoding = new ASCIIEncoding();
return Encoding.ASCII.GetString(encoding.GetBytes(strContent));
}
}
private static XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private static XmlNode addChildNodeCDATA(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerXml = @"<![CDATA[" + val + "]]>";
return workingNode;
}
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
string file1 = "C:\\File1.pdf";
string file2 = "C:\\File2.pdf";
string file1_data = GetFileContents(file1);
string file2_data = GetFileContents(file2);
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "Email"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", "ID123456"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Reference", "Test1"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SendTime", ""));
messageDataNode.AppendChild(addChildNode(xmlDoc, "TimeZone", "New Zealand"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SubAccount", "SubAccount01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Department", "Department01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ChargeCode", "BillingGroup01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "EmailSubject", "Test Email Subject"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SMTPFrom", "[email protected]"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "From", "noreply"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "FromEmail", "[email protected]"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ReplyTo", "[email protected]"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessagePlain", "Hello,\r\nThis is a test message.\r\nThank you."));
messageDataNode.AppendChild(addChildNodeCDATA(xmlDoc, "MessageHTML", "<html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html>")); // wrap with <![CDATA[]]>
//
// Add Destinations 1 - Add with details
//
workingNode = xmlDoc.CreateElement("Destinations");
workingNode.AppendChild(addChildNode(xmlDoc, "Recipient", "[email protected]"));
workingNode.AppendChild(addChildNode(xmlDoc, "Attention", "Recipient One"));
workingNode.AppendChild(addChildNode(xmlDoc, "Company", "Example Corp"));
workingNode.AppendChild(addChildNode(xmlDoc, "Custom1", "Custom1"));
workingNode.AppendChild(addChildNode(xmlDoc, "Custom2", "Custom2"));
messageDataNode.AppendChild(workingNode);
//
// Add Destinations 2 - Add numbers only
//
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "[email protected]"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "[email protected]"));
//
// Attach File 1
//
workingNode = xmlDoc.CreateElement("Files");
workingNode.AppendChild(addChildNode(xmlDoc, "Name", "File1.pdf"));
workingNode.AppendChild(addChildNode(xmlDoc, "Data", file1_data));
messageDataNode.AppendChild(workingNode);
//
// Attach File 2
//
workingNode = xmlDoc.CreateElement("Files");
workingNode.AppendChild(addChildNode(xmlDoc, "Name", "File2.pdf"));
workingNode.AppendChild(addChildNode(xmlDoc, "Data", file2_data));
messageDataNode.AppendChild(workingNode);
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send HTTP Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
//
// More code to handle 400 Bad Request errors
//
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
catch (WebException wex)
{
if (wex.Response != null)
{
using (var errorResponse = (HttpWebResponse)wex.Response)
{
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
Console.WriteLine(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| EmailSubject | Test Email Subject | Subject field used in the email | |
| SMTPFrom | [email protected] | Sets the email Sender/Return-Path at the SMTP level (this address receives bounce-back emails and is used for SPF/DKIM type authentication; 'FromEmail' is used if not specified) | |
| From | noreply | Sets the email sender's Friendly Name (seen by the email recipient) | |
| FromEmail | [email protected] | Sets the email sender's Email Address (seen by the email recipient; API 'Sender' is used if not specified) | |
| ReplyTo | [email protected] | Sets the email sender's Reply-To Address (if the recipient replies, the Reply To will receive the reply) | |
| MessagePlain | Hello, This is a test message. Thank you. |
Content used for the message/plain section of the email (overrides 'Template') | |
| Destinations | [email protected] [email protected] [email protected] |
Simpler formatting for Destinations parameter. For more options, refer to Optional MessageData Parameter Destinations section | |
| Parameter | Example Value | Description | |
|---|---|---|---|
| Reference | Test1 | Tracking ID or message description | |
| SendTime | 08/12/2019 13:04 | Delay sending until the specified date/time (dd/mm/yyyy HH:mm in your local timezone, specified by your Sender setting or overridden using the TimeZone command) | |
| TimeZone | New Zealand | Timezone specified using Windows timezone value (default set using Web Dashboard can be overridden here) See Microsoft Timezones (use the Country value) |
|
| SubAccount | SubAccount01 | Used for reporting, billing and Web Dashboard segmentation | |
| Department | Department01 | Used for reporting, billing and Web Dashboard segmentation | |
| ChargeCode | BillingGroup01 | Cost allocation for billing | |
| TemplateLocation | Folder 01 | Directory/location of Template to use | |
| Template | Template File Name | Preloaded Template to use for email body (overridden by MessagePlain and/or MessageHTML parameters) | |
| MessageHTML | <html>Hello,<br /><br />This is a test message.<br /><br />Thank you.</html> | Content used for the message/html section of the email (overrides 'Template' and 'MessagePlain') | |
| Destinations | > Recipient | [email protected] | Recipient of the email |
| > Attention | Recipient One | Recipient's friendly name | |
| > Company | Example Corp | Recipient's company | |
| > Custom1 | Recipient One | Customisable field | |
| > Custom2 | Recipient One | Customisable field | |
| Files | > Name | Sample.pdf | Attachment's filename |
| > Data | %%Base-64%% | Base-64 encoded value of the attached file | |
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "sms",
"APIVersion": "1.03",
"MessageData" :
{
"Message": "Hello, this is a test message from Department01. Thank you.",
"Destinations" :
[
"6421000002"
]
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "sms",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"FromNumber": "6422000001",
"SMSEmailReply": "[email protected]",
"ForceGSMChars": true,
"Message": "Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]",
"Destinations" :
[
{
"Recipient": "6421000001",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"6421000002",
"6421000003",
"6421000004"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "sms",
"APIVersion": "1.03",
"MessageData" :
{
"Message": "Hello, this is a test message from Department01. Thank you.",
"Destinations" :
[
"6421000001"
]
}
}'
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "sms",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"FromNumber": "6422000001",
"SMSEmailReply": "[email protected]",
"ForceGSMChars": true,
"Message": "Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]",
"Destinations" :
[
{
"Recipient": "6421000001",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"6421000002",
"6421000003",
"6421000004"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}'
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$data = array(
"Sender" => "[email protected]",
"APIKey" => "ta8wr7ymd",
"MessageType" => "sms",
"APIVersion" => "1.03",
"MessageData" => array(
"Message" => "Hello, this is a test message from Department01. Thank you.",
"Destinations" => array(
"6421000001",
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "sms";
$version = "1.03";
$message_id = "ID123456"; // optional
$file1 = "Sample.pdf";
$file2 = "Sample2.pdf";
if( file_exsits($file1) )
{
$fp = fopen($file1,"r");
$file_content1 = fread($fp,filesize($file1));
fclose($fp);
}
if( file_exists($file2) )
{
$fp = fopen($file2,"r");
$file_content2 = fread($fp,filesize($file2));
fclose($fp);
}
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"MessageType" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
"MessageData" => array(
"Reference" => "Test1",
"SendTime" => "",
"TimeZone" => "New Zealand",
"SubAccount" => "SubAccount01",
"Department" => "Department01",
"ChargeCode" => "BillingGroup01",
"FromNumber" => "6422000001",
"SMSEmailReply" => "[email protected]",
"ForceGSMChars" => true,
"Message" => "Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]",
"Destinations" => array(
array(
"Recipient" => "6421000001",
"Attention" => "Recipient One",
"Company" => "Example Corp",
"Custom1" => "",
"Custom2" => ""
),
"6421000002",
"6421000003",
"6421000004"
),
"Files" => array(
array(
"Name" => $file1,
"Data" => base64_encode($file_content1)
),
array(
"Name" => $file2,
"Data" => base64_encode($file_content2)
)
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace SMSJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void SendSMSByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strJSONData = "{" +
"\"Sender\": \"[email protected]\"," +
"\"APIKey\": \"ta8wr7ymd\"," +
"\"MessageType\":\"SMS\"," +
"\"APIVersion\":\"1.03\"," +
"\"MessageData\": {" +
"\"Message\": \"Hello, this is a test message from Department01. Thank you.\"," +
"\"Destinations\" : [" +
"\"6421000001\"" +
"]" +
"}" +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace SMSJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private string addslashes(string str)
{
string ret = "";
foreach (char c in str)
{
switch (c)
{
case '\'': ret += "\\\'"; break;
case '\"': ret += "\\\""; break;
case '\0': ret += "\\0"; break;
case '\r': ret += "\\r"; break;
case '\n': ret += "\\n"; break;
case '\\': ret += "\\\\"; break;
default: ret += c.ToString(); break;
}
}
return ret;
}
private void SendSMSByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strMessageType = "SMS";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strFromNumber = "6422000001";
string strSMSEmailReply = "[email protected]";
string strMessage = addslashes("Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]");
string strRecipient = "6421000001";
string strForceGSMChars = "true";
string strFileName1 = "Sample.PDF";
string strFileName2 = "Sample2.PDF";
Dictionary<int, String> FileNames = new Dictionary<int, String>();
Dictionary<int, String> FileContents = new Dictionary<int, String>();
//
// Retrieve file(s) to sms - MessageLink
//
if ( File.Exists(strFileName1))
{
FileNames.Add(1,GetFileName(strFileName1));
FileContents.Add(1,System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName1)));
}
if ( File.Exists(strFileName2) )
{
FileNames.Add(2, GetFileName(strFileName2));
FileContents.Add(2, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName2)));
}
StringBuilder sb = new StringBuilder();
string strFiles = "";
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
sb.Append("{").AppendFormat("\"Name\":\"{0}\", \"Data\": \"{1}\"", FileNames[i], FileContents[i]).Append("}");
if (FileNames.ContainsKey(i + 1))
{
sb.Append(",");
}
}
}
strFiles = "\"Files\": [" + sb.ToString() + "]," + EOL;
}
string strJSONData = "{" +
"\"Sender\": \"" + strSender + "\"," +
"\"APIKey\": \"" + strAPIKey + "\"," +
"\"MessageType\":\"" + strMessageType + "\"," +
"\"APIVersion\":\"" + strAPIVersion + "\"," +
"\"MessageID\":\"" + strMessageID + "\"," +
"\"MessageData\": {" +
"\"Reference\": \"" + strReference + "\"," +
"\"SendTime\": \"" + strSendTime + "\"," +
"\"TimeZone\": \"" + strTimeZone + "\"," +
"\"SubAccount\": \"" + strSubAccount + "\"," +
"\"Department\": \"" + strDepartment + "\"," +
"\"ChargeCode\": \"" + strChargeCode + "\"," +
"\"FromNumber\":\"" + strFromNumber + "\","+
"\"SMSEmailReply\":\"" + strSMSEmailReply + "\","+
"\"strForceGSMChars\":" + strForceGSMChars + ","+
"\"Message\": \"" + strMessage + "\"," + // escape special characters (ie. \r\n to \\r\\n)
strFiles +
"\"Destinations\" : [" +
"\"" + strRecipient + "\"" +
"]" +
"}" +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>SMS</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<Message>Hello, this is a test message from Department01. Thank you.</Message>
<Destinations>6421000001</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>SMS</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<FromNumber>6422000001</FromNumber>
<SMSEmailReply>[email protected]</SMSEmailReply>
<ForceGSMChars>true</ForceGSMChars>
<Message>Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]</Message>
<Destinations>
<Recipient>6421000001</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6421000002</Destinations>
<Destinations>6421000003</Destinations>
<Destinations>6421000004</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>SMS</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<Message>Hello, this is a test message from Department01. Thank you.</Message>
<Destinations>6421000001</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>SMS</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<FromNumber>6422000001</FromNumber>
<SMSEmailReply>[email protected]</SMSEmailReply>
<ForceGSMChars>true</ForceGSMChars>
<Message>Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]</Message>
<Destinations>
<Recipient>6421000001</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6421000002</Destinations>
<Destinations>6421000003</Destinations>
<Destinations>6421000004</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMS";
$version = "1.03";
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageData");
$data->MessageData->addChild("Message","Hello, this is a test message from Department01. Thank you.");
$data->MessageData->addChild("Destinations","6421000001");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMS";
$version = "1.03";
$message_id = "ID123456"; // optional
$file_name1 = "Sample.pdf";
$file_name2 = "Sample2.pdf";
if( file_exists($file_name1) )
{
$fp = fopen($file_name1,"r");
$file_content1 = fread($fp,filesize($file_name1));
fclose($fp);
}
if( file_exists($file_name2) )
{
$fp = fopen($file_name2,"r");
$file_content2 = fread($fp,filesize($file_name2));
fclose($fp);
}
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$data->addChild("MessageData");
$data->MessageData->addChild("Reference","Test1");
$data->MessageData->addChild("SendTime");
$data->MessageData->addChild("TimeZone","New Zealand");
$data->MessageData->addChild("SubAccount","SubAccount01");
$data->MessageData->addChild("Department","Department01");
$data->MessageData->addChild("ChargeCode","BillingGroup01");
$data->MessageData->addChild("FromNumber","6422000001");
$data->MessageData->addChild("SMSEmailReply","[email protected]");
$data->MessageData->addChild("ForceGSMChars",true);
$data->MessageData->addChild("Message","Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]");
$destination1 = $data->MessageData->addChild("Destinations");
$destination1->addChild("Recipient","6421000001");
$destination1->addChild("Attention","Recipient One");
$destination1->addChild("Company","Example Corp");
$destination1->addChild("Custom1","");
$destination1->addChild("Custom2","");
$destination2 = $data->MessageData->addChild("Destinations","6421000002");
$destination3 = $data->MessageData->addChild("Destinations","6421000003");
$destination4 = $data->MessageData->addChild("Destinations","6421000004");
if( file_exists($file_name1) )
{
$fileElement1 = $data->MessageData->addChild("Files");
$fileElement1->addChild("Name",basename($file_name1));
$fileElement1->addChild("Data",base64_encode($file_content1));
}
if( file_exists($file_name2) )
{
$fileElement2 = $data->MessageData->addChild("Files");
$fileElement2->addChild("Name",basename($file_name2));
$fileElement2->addChild("Data",base64_encode($file_content2));
}
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "SMS"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Message", "Hello, this is a test message from Department01. Thank you."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "6421000001"));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string GetFileName(string strFileLocation)
{
return System.IO.Path.GetFileName(strFileLocation);
}
private byte[] GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in byte[]
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(strContent);
}
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strMessageType = "SMS";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strFromNumber = "6422000001";
string strSMSEmailReply = "[email protected]";
string strMessage = "Hello, this is a test message. Click the link to download file1 [[File1]], and file2 [[File2]]";
string strRecipient = "6421000001";
string strForceGSMChars = "true";
string strFileName1 = "Sample.PDF";
string strFileName2 = "Sample2.PDF";
Dictionary<int, String> FileNames = new Dictionary<int, String>();
Dictionary<int, String> FileContents = new Dictionary<int, String>();
//
// Retrieve file(s) to email
//
if ( File.Exists(strFileName1) )
{
FileNames.Add(1, GetFileName(strFileName1));
FileContents.Add(1, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName1)));
}
if ( File.Exists(strFileName2) )
{
FileNames.Add(2, GetFileName(strFileName2));
FileContents.Add(2, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName2)));
}
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", strMessageType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "FromNumber", strFromNumber));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Reference", strReference));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SendTime", strSendTime));
messageDataNode.AppendChild(addChildNode(xmlDoc, "TimeZone", strTimeZone));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SubAccount", strSubAccount));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Department", strDepartment));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ChargeCode", strChargeCode));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SMSEmailReply", strSMSEmailReply));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ForceGSMChars", strForceGSMChars));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Message", strMessage));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", strRecipient));
//
// MessageData -> Files
//
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
workingNode = xmlDoc.CreateElement("Files");
workingNode.AppendChild(addChildNode(xmlDoc, "Name", FileNames[i]));
workingNode.AppendChild(addChildNode(xmlDoc, "Data", FileContents[i]));
messageDataNode.AppendChild(workingNode);
}
}
}
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| Message | Hello, this is a test message from Department01. Thank you. | Plain or UTF-8 formatted SMS message | |
| Destinations | 6421000002 6421000003 6421000004 |
Simpler formatting for Destinations parameter. For more options, refer to Optional MessageData Parameter Destinations section | |
| Parameter | Example Value | Description | |
|---|---|---|---|
| Reference | Test1 | Tracking ID or message description | |
| SendTime | 08/12/2019 13:04 | Delay sending until the specified date/time (dd/mm/yyyy HH:mm in your local timezone, specified by your Sender setting or overridden using the TimeZone command) | |
| TimeZone | New Zealand | Timezone specified using Windows timezone value (default set using Web Dashboard can be overridden here) See Microsoft Timezones (use the Country value) |
|
| SubAccount | SubAccount01 | Used for reporting, billing and Web Dashboard segmentation | |
| Department | Department01 | Used for reporting, billing and Web Dashboard segmentation | |
| ChargeCode | BillingGroup01 | Cost allocation for billing | |
| FromNumber | 6421000001 | Setting SMS origination number, short code(s) will override in New Zealand - Not for New Zealand. | |
| SMSEmailReply | [email protected] | For email (SMTP) reply receipt notifications | |
| ForceGSMChars | true | Convert multi-byte characters into normalised GSM character format. ie. © to (C) | |
| Destinations | > Recipient | 6421000001 | Recipient of the SMS in E.164 internationalised format |
| > Attention | Recipient One | Recipient's friendly name | |
| > Company | Example Corp | Recipient's company | |
| > Custom1 | Recipient One | Customisable field | |
| > Custom2 | Recipient One | Customisable field | |
| Files | > Name | File Name.pdf | Files referenced in [[File1]] commands (for MessageLink) |
| > Data | %%Base-64%% | Base-64 encoded value of the attached file | |
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Fax",
"APIVersion": "1.03",
"MessageData" :
{
"Destinations" :
[
"6495005001",
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Fax",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"Resolution": "high",
"CSID": "Station ID",
"Destinations" :
[
{
"Recipient": "6495005000",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"6495005001",
"6495005002",
"6495005003"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Fax",
"APIVersion": "1.03",
"MessageData" :
{
"Destinations" :
[
"6495005001"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}'
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Fax",
"APIVersion": "1.03",
"MessageID" : "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"Resolution": "high",
"CSID": "Station ID",
"Destinations" :
[
{
"Recipient": "6495005000",
"Attention": "Recipient One",
"Company": "Example Corp",
"Custom1": "",
"Custom2": ""
},
"6495005001",
"6495005002",
"6495005003"
],
"Files":
[
{
"Name": "Sample.pdf",
"Data": "%%BASE-64 CONTENT%%"
},
{
"Name": "Sample2.pdf",
"Data": "%%BASE-64 CONTENT%%"
}
]
}
}'
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$file1 = "Sample.pdf";
$fp = fopen($file1,"r");
$file_content1 = fread($fp,filesize($file1));
fclose($fp);
$data = array(
"Sender" => "[email protected]",
"APIKey" => "ta8wr7ymd",
"MessageType" => "Fax",
"APIVersion" => "1.03",
"MessageData" => array(
"Destinations" => array(
"6495005001"
),
"Files" => array(
array(
"Name" => $file1,
"Data" => base64_encode($file_content1)
)
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Fax";
$version = "1.03";
$message_id = "ID123456"; //optional
$file1 = "Sample.pdf";
$fp = fopen($file1,"r");
$file_content1 = fread($fp,filesize($file1));
fclose($fp);
$file2 = "Sample2.pdf";
$fp = fopen($file2,"r");
$file_content2 = fread($fp,filesize($file2));
fclose($fp);
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"MessageType" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
"MessageData" => array(
"Reference" => "Test1",
"SendTime" => "",
"TimeZone" => "New Zealand",
"SubAccount" => "SubAccount01",
"Department" => "Department01",
"ChargeCode" => "BillingGroup01",
"Resolution" => "high",
"CSID" => "Station ID",
"Destinations" => array(
array(
"Recipient" => "6495005000",
"Attention" => "Recipient One",
"Company" => "Example Corp",
"Custom1" => "",
"Custom2" => ""
),
"6495005001",
"6495005002",
"6495005003"
),
"Files" => array(
array(
"Name" => $file1,
"Data" => base64_encode($file_content1)
),
array(
"Name" => $file2,
"Data" => base64_encode($file_content2)
)
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace FaxJSON
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private string GetFileName(string strFileLocation)
{
return System.IO.Path.GetFileName(strFileLocation);
}
private byte[] GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in byte[]
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(strContent);
}
}
private void SendFax()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strFile1 = "Sample.PDF";
Dictionary FileNames = new Dictionary();
Dictionary FileContents = new Dictionary();
//
// Retrieve file(s) to fax
//
if ( File.Exists(strFile1))
{
FileNames.Add(1,GetFileName(strFile1));
FileContents.Add(1,System.Text.Encoding.ASCII.GetString(GetFileContents(strFile1)));
}
//
// Send Fax by JSON API interface
//
string EOL = "\r\n";
StringBuilder sb = new StringBuilder();
string strFiles = "";
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
sb.Append("{").AppendFormat("\"Name\":\"{0}\", \"Data\": \"{1}\"", FileNames[i], FileContents[i]).Append("}");
if (FileNames.ContainsKey(i + 1))
{
sb.Append(",");
}
}
}
strFiles = "\"Files\": [" + sb.ToString() + "]," + EOL;
}
string strJSONData = "{" + EOL +
"\"Sender\": \"[email protected]\"," + EOL +
"\"APIKey\": \"ta8wr7ymd\"," + EOL +
"\"APIVersion\": \"1.03\"," + EOL +
"\"MessageType\": \"Fax\"," + EOL +
"\"MessageData\": {" + EOL +
strFiles +
"\"Destinations\" : [\"6495005000\"]" + EOL +
"}" + EOL +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace FaxJSON
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private string GetFileName(string strFileLocation)
{
return System.IO.Path.GetFileName(strFileLocation);
}
private byte[] GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in byte[]
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(strContent);
}
}
private string addslashes(string str)
{
string ret = "";
foreach (char c in str)
{
switch (c)
{
case '\'': ret += "\\\'"; break;
case '\"': ret += "\\\""; break;
case '\0': ret += "\\0"; break;
case '\r': ret += "\\r"; break;
case '\n': ret += "\\n"; break;
case '\\': ret += "\\\\"; break;
default: ret += c.ToString(); break;
}
}
return ret;
}
private void SendFax()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strSender = "[email protected]";
string strToken = "ta8wr7ymd";
string strMessageType = "Fax";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; //optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strResolution = "high";
string strCSID = "Station ID";
string strRecipient = "6495005000";
string strFile1 = "Sample.PDF";
string strFile2 = "Sample2.PDF";
Dictionary FileNames = new Dictionary();
Dictionary FileContents = new Dictionary();
//
// Retrieve file(s) to fax
//
if ( File.Exists(strFile1))
{
FileNames.Add(1,GetFileName(strFile1));
FileContents.Add(1,System.Text.Encoding.ASCII.GetString(GetFileContents(strFile1)));
}
if ( File.Exists(strFile2))
{
FileNames.Add(2, GetFileName(strFile2));
FileContents.Add(2, System.Text.Encoding.ASCII.GetString(GetFileContents(strFile2)));
}
//
// Send Fax by JSON API interface
//
string EOL = "\r\n";
StringBuilder sb = new StringBuilder();
string strFiles = "";
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
sb.Append("{").AppendFormat("\"Name\":\"{0}\", \"Data\": \"{1}\"", FileNames[i], FileContents[i]).Append("}");
if (FileNames.ContainsKey(i + 1))
{
sb.Append(",");
}
}
}
strFiles = "\"Files\": [" + sb.ToString() + "]," + EOL;
}
string strJSONData = "{" + EOL +
"\"Sender\": \"" + strSender + "\"," + EOL +
"\"APIKey\": \"" + strToken + "\"," + EOL +
"\"MessageType\": \"" + strMessageType + "\"," + EOL +
"\"APIVersion\": \"" + strAPIVersion + "\"," + EOL +
"\"MessageID\": \"" + strMessageID + "\"," + EOL +
"\"MessageData\": {" + EOL +
"\"Reference\": \"" + strReference + "\"," + EOL +
"\"SendTime\": \"" + strSendTime + "\"," + EOL +
"\"TimeZone\": \"" + strTimeZone + "\"," + EOL +
"\"SubAccount\": \"" + strSubAccount + "\"," + EOL +
"\"Department\": \"" + strDepartment + "\"," + EOL +
"\"ChargeCode\": \"" + strChargeCode + "\"," + EOL +
"\"Resolution\": \"" + strResolution + "\"," + EOL +
"\"CSID\": \"" + strCSID + "\"," + EOL +
strFiles +
"\"Destinations\" :" + EOL +
"[" + EOL +
"\"" + strRecipient + "\"" + EOL +
"]" + EOL +
"}" + EOL +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Fax</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<Destinations>6495005001</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Fax</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<Resolution>High</Resolution>
<CSID>Station ID</CSID>
<Destinations>
<Recipient>6495005000</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005001</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6495005003</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Fax</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<Destinations>6495005001</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Fax</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<Resolution>High</Resolution>
<CSID>Station ID</CSID>
<Destinations>
<Recipient>6495005000</Recipient>
<Attention>Recipient One</Attention>
<Company>Example Corp</Company>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005001</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6495005003</Destinations>
<Files>
<Name>Sample.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
<Files>
<Name>Sample2.pdf</Name>
<Data>%%BASE-64 CONTENT%%</Data>
</Files>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$file_name1 = "Sample.pdf";
if( file_exists($file_name1) )
{
$fp = fopen($file_name1,"r");
$file_content1 = fread($fp,filesize($file_name1));
fclose($fp);
}
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender","[email protected]");
$data->addChild("APIKey","ta8wr7ymd");
$data->addChild("APIVersion","1.03");
$data->addChild("MessageType","Fax");
$data->addChild("MessageData");
$data->MessageData->addChild("Destinations","6495005001");
if( file_exists($file_name1) )
{
$fileElement1 = $data->MessageData->addChild("Files");
$fileElement1->addChild("Name",basename($file_name1));
$fileElement1->addChild("Data",base64_encode($file_content1));
}
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Fax";
$version = "1.03";
$message_id = "ID123456"; // optional
$file_name1 = "Sample.pdf";
$file_name2 = "Sample2.pdf";
if( file_exists($file_name1) )
{
$fp = fopen($file_name1,"r");
$file_content1 = fread($fp,filesize($file_name1));
fclose($fp);
}
if( file_exists($file_name2) )
{
$fp = fopen($file_name2,"r");
$file_content2 = fread($fp,filesize($file_name2));
fclose($fp);
}
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$data->addChild("MessageData");
$data->MessageData->addChild("Reference","Test1");
$data->MessageData->addChild("SendTime");
$data->MessageData->addChild("TimeZone","New Zealand");
$data->MessageData->addChild("SubAccount","SubAccount01");
$data->MessageData->addChild("Department","Department01");
$data->MessageData->addChild("ChargeCode","BillingGroup01");
$data->MessageData->addChild("Resolution","high");
$data->MessageData->addChild("CSID","Station ID");
$destination1 = $data->MessageData->addChild("Destinations");
$destination1->addChild("Recipient","6495005000");
$destination1->addChild("Attention","Recipient One");
$destination1->addChild("Company","Example Corp");
$destination1->addChild("Custom1","");
$destination1->addChild("Custom2","");
$destination2 = $data->MessageData->addChild("Destinations","6495005001");
$destination3 = $data->MessageData->addChild("Destinations","6495005002");
$destination4 = $data->MessageData->addChild("Destinations","6495005003");
if( file_exists($file_name1) )
{
$fileElement1 = $data->MessageData->addChild("Files");
$fileElement1->addChild("Name",basename($file_name1));
$fileElement1->addChild("Data",base64_encode($file_content1));
}
if( file_exists($file_name2) )
{
$fileElement2 = $data->MessageData->addChild("Files");
$fileElement2->addChild("Name",basename($file_name2));
$fileElement2->addChild("Data",base64_encode($file_content2));
}
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string GetFileName(string strFileLocation)
{
return System.IO.Path.GetFileName(strFileLocation);
}
private byte[] GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in byte[]
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(strContent);
}
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendFax_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
//
// Retrieve Fax Destination based on multi or single target
//
string strFileName1 = "Sample.PDF";
Dictionary<int, String> FileNames = new Dictionary<int, String>();
Dictionary<int, String> FileContents = new Dictionary<int, String>();
//
// Retrieve file(s) to fax
//
if (File.Exists(strFileName1))
{
FileNames.Add(1, GetFileName(strFileName1));
FileContents.Add(1, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName1)));
}
//
// Send Fax by XML API interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "Fax"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "6495005000"));
//
// MessageData -> Files
//
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
workingNode = xmlDoc.CreateElement("Files");
workingNode.AppendChild(addChildNode(xmlDoc, "Name", FileNames[i]));
workingNode.AppendChild(addChildNode(xmlDoc, "Data", FileContents[i]));
messageDataNode.AppendChild(workingNode);
}
}
}
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string GetFileName(string strFileLocation)
{
return System.IO.Path.GetFileName(strFileLocation);
}
private byte[] GetFileContents(string strFileLocation)
{
//
// Read files in bytes, convert to Base64String and return in byte[]
//
using (FileStream reader = new FileStream(strFileLocation, FileMode.Open))
{
byte[] buffer = new byte[reader.Length];
reader.Read(buffer, 0, (int)reader.Length);
string strContent = Convert.ToBase64String(buffer);
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(strContent);
}
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendFax_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/send";
string strMessageType = "Fax";
string strAPIVersion = "1.03";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strMessageID = "ID123456"; // optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strResolution = "High";
string strCSID = "Station ID";
//
// Retrieve Fax Destination based on multi or single target
//
string strRecipient = "6495005000";
string strFileName1 = "Sample.PDF";
string strFileName2 = "Sample2.PDF";
Dictionary<int, String> FileNames = new Dictionary<int, String>();
Dictionary<int, String> FileContents = new Dictionary<int, String>();
//
// Retrieve file(s) to fax
//
if (File.Exists(strFileName1))
{
FileNames.Add(1, GetFileName(strFileName1));
FileContents.Add(1, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName1)));
}
if (File.Exists(strFileName2))
{
FileNames.Add(2, GetFileName(strFileName2));
FileContents.Add(2, System.Text.Encoding.ASCII.GetString(GetFileContents(strFileName2)));
}
//
// Send Fax by XML API interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", strMessageType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Reference", strReference));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SendTime", strSendTime));
messageDataNode.AppendChild(addChildNode(xmlDoc, "TimeZone", strTimeZone));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SubAccount", strSubAccount));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Department", strDepartment));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ChargeCode", strChargeCode));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Resolution", strResolution));
messageDataNode.AppendChild(addChildNode(xmlDoc, "CSID", strCSID));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", strRecipient));
//
// MessageData -> Files
//
if (FileNames.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (FileNames.ContainsKey(i))
{
workingNode = xmlDoc.CreateElement("Files");
workingNode.AppendChild(addChildNode(xmlDoc, "Name", FileNames[i]));
workingNode.AppendChild(addChildNode(xmlDoc, "Data", FileContents[i]));
messageDataNode.AppendChild(workingNode);
}
}
}
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| Destinations | 6495005001 6495005002 6495005003 |
Simpler formatting for Destinations parameter. For more options, refer to Optional MessageData Parameter Destinations section | |
| Files | > Name | Sample.pdf | Fax document's filename |
| > Data | %%Base-64%% | Base-64 encoded value of the document | |
| Parameter | Example Value | Description | |
|---|---|---|---|
| Reference | Test1 | Tracking ID or message description | |
| SendTime | 08/12/2019 13:04 | Delay sending until the specified date/time (dd/mm/yyyy HH:mm in your local timezone, specified by your Sender setting or overridden using the TimeZone command) | |
| TimeZone | New Zealand | Timezone specified using Windows timezone value (default set using Web Dashboard can be overridden here) See Microsoft Timezones (use the Country value) |
|
| SubAccount | SubAccount01 | Used for reporting, billing and Web Dashboard segmentation | |
| Department | Department01 | Used for reporting, billing and Web Dashboard segmentation | |
| ChargeCode | BillingGroup01 | Cost allocation for billing | |
| WatermarkFolder | Folder01 | Directory/location of Watermark file to use | |
| WatermarkFirstPage | Watermark File Name | Watermark file to apply to the first page only | |
| WatermarkAllPages | Watermark File Name | Watermark file to apply to all pages | |
| Resolution | High | Quality of the fax image. High for better quality, low for lower quality (faster delivery speed) | |
| CSID | Station ID | Called Subscriber Identification - Maximum 30 characters | |
| Destinations | > Recipient | 6495005000 | Recipient of the Fax in E.164 internationalised format |
| > Attention | Recipient One | Recipient's friendly name | |
| > Company | Example Corp | Recipient's company | |
| > Custom1 | Recipient One | Customisable field | |
| > Custom2 | Recipient One | Customisable field | |
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Voice",
"APIVersion": "1.03",
"MessageData" :
{
"MessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Destinations" :
[
"6495005001"
]
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Voice",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"MessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"MessageToAnswerphones": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Keypads":
[
{
"Tone": "1",
"RouteNumber": "64800123123"
},
{
"Tone": "2",
"RouteNumber": "6498008000"
}
],
"CallRouteMessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageToOperators": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageOnWrongKey": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"NumberOfOperators": "5",
"Options": "",
"Destinations" :
[
{
"Recipient": "6421000001",
"Custom1": "",
"Custom2": ""
},
"6495005002",
"6421000003"
]
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Voice",
"APIVersion": "1.03",
"MessageData" :
{
"MessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Destinations" :
[
"6495005001"
]
}
}'
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "Voice",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"MessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"MessageToAnswerphones": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Keypads":
[
{
"Tone": "1",
"RouteNumber": "64800123123"
},
{
"Tone": "2",
"RouteNumber": "6498008000"
}
],
"CallRouteMessageToPeople": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageToOperators": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageOnWrongKey": "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"NumberOfOperators": "5",
"Options": "",
"Destinations" :
[
{
"Recipient": "6421000001",
"Custom1": "",
"Custom2": ""
},
"6495005002",
"6421000003"
]
}
}'
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$data = array(
"Sender" => "[email protected]",
"APIKey" => "ta8wr7ymd",
"MessageType" => "Voice",
"APIVersion" => "1.03",
"MessageData" => array(
"MessageToPeople" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Destinations" => array(
"6495005001"
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Voice";
$version = "1.03";
$message_id = "ID123456"; // optional
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"MessageType" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
"MessageData" => array(
"Reference" => "Test1",
"SendTime" => "",
"TimeZone" => "New Zealand",
"SubAccount" => "SubAccount01",
"Department" => "Department01",
"ChargeCode" => "BillingGroup01",
"MessageToPeople" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"MessageToAnswerphones" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"Keypads" => array(
array(
"Tone" => 1,
"RouteNumber" => "64800123123"
),
array(
"Tone" => 2,
"RouteNumber" => "6498008000"
)
),
"CallRouteMessageToPeople" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageToOperators" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"CallRouteMessageOnWrongKey" => "[base64 encoded WAV audio data, 16-bit, 8000hz]",
"NumberOfOperators" => "5",
"Options" => "",
"Destinations" => array(
array(
"Recipient" => "6421000001",
"Custom1" => "",
"Custom2" => ""
),
"6495005002",
"6495005003"
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace SendVoiceJSON
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void SendVoice()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strSender = "[email protected]";
string strToken = "ta8wr7ymd";
string strMessageType = "Voice";
string strAPIVersion = "1.03";
string strMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strRecipient = "6421000001";
//
// Send Voice by REST API Interface
//
string EOL = "\r\n";
string strJSONData = "{" + EOL +
"\"Sender\": \"" + strSender + "\"," + EOL +
"\"APIKey\": \"" + strToken + "\"," + EOL +
"\"MessageType\": \"" + strMessageType + "\"," + EOL +
"\"APIVersion\": \"" + strAPIVersion + "\"," + EOL +
"\"MessageData\": {" + EOL +
"\"MessageToPeople\": \"" + strMsgToPeople + "\"," + EOL +
"\"Destinations\" :" + EOL +
"[" + EOL +
"\"" + strRecipient + "\"" + EOL +
"]" + EOL +
"}" + EOL +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace SendVoiceJSON
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void SendVoice()
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
string strSender = "[email protected]";
string strToken = "ta8wr7ymd";
string strMessageType = "Voice";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strMsgToAnswerPhones = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strKeypads = "";
Dictionary<int,string> Keypads = new Dictionary<int,string>();
Keypads.Add(1,"64800123123");
Keypads.Add(2,"6498008000");
if (Keypads.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (Keypads.ContainsKey(i))
{
sb.Append("{").AppendFormat("\"Tone\":{0}, \"RouteNumber\": \"{1}\"", i.ToString(), Keypads[i]).Append("}");
if (Keypads.ContainsKey(i + 1))
{
sb.Append(",");
}
}
}
strKeypads = "\"Keypads\": [" + sb.ToString() + "]," + EOL;
}
string strCallRouteMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strCallRouteMsgToOperators = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strCallRouteMsgOnWrongKey = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strNumberOfOperators = "5";
string strOptions = "";
string strRecipient = "6421000001";
//
// Send Voice by REST API Interface
//
string EOL = "\r\n";
string strJSONData = "{" + EOL +
"\"Sender\": \"" + strSender + "\"," + EOL +
"\"APIKey\": \"" + strToken + "\"," + EOL +
"\"MessageType\": \"" + strMessageType + "\"," + EOL +
"\"APIVersion\": \"" + strAPIVersion + "\"," + EOL +
"\"MessageID\": \"" + strMessageID + "\"," + EOL +
"\"MessageData\": {" + EOL +
"\"Reference\": \"" + strReference + "\"," + EOL +
"\"SendTime\": \"" + strSendTime + "\"," + EOL +
"\"TimeZone\": \"" + strTimeZone + "\"," + EOL +
"\"SubAccount\": \"" + strSubAccount + "\"," + EOL +
"\"Department\": \"" + strDepartment + "\"," + EOL +
"\"ChargeCode\": \"" + strChargeCode + "\"," + EOL +
"\"MessageToPeople\": \"" + strMsgToPeople + "\"," + EOL +
"\"MessageToAnswerphones\": \"" + strMsgToAnswerPhones + "\"," + EOL +
strKeypads +
"\"CallRouteMessageToPeople\": \"" + strCallRouteMsgToPeople + "\"," + EOL +
"\"CallRouteMessageToOperators\": \"" + strCallRouteMsgToOperators + "\"," + EOL +
"\"CallRouteMessageOnWrongKey\": \"" + strCallRouteMsgOnWrongKey + "\"," + EOL +
"\"NumberOfOperators\": \"" + strNumberOfOperators + "\"," + EOL +
"\"Voice\": \"" + strVoice + "\"," + EOL +
"\"Options\":\"\"," + EOL +
"\"Destinations\" :" + EOL +
"[" + EOL +
"\"" + strRecipient + "\"" + EOL +
"]" + EOL +
"}" + EOL +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Voice</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<MessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToPeople>
<Destinations>6495005001</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Voice</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<MessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToPeople>
<MessageToAnswerphones>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToAnswerphones>
<Keypads>
<Tone>1</Tone>
<RouteNumber>64800123123</RouteNumber>
</Keypads>
<Keypads>
<Tone>2</Tone>
<RouteNumber>6498008000</RouteNumber>
</Keypads>
<CallRouteMessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageToPeople>
<CallRouteMessageToOperators>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageToOperators>
<CallRouteMessageOnWrongKey>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageOnWrongKey>
<NumberOfOperators>5</NumberOfOperators>
<Options></Options>
<Destinations>
<Recipient>6421000001</Recipient>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6421000003</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Voice</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<MessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToPeople>
<Destinations>6495005001</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>Voice</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<MessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToPeople>
<MessageToAnswerphones>[base64 encoded WAV audio data, 16-bit, 8000hz]</MessageToAnswerphones>
<Keypads>
<Tone>1</Tone>
<RouteNumber>64800123123</RouteNumber>
</Keypads>
<Keypads>
<Tone>2</Tone>
<RouteNumber>6498008000</RouteNumber>
</Keypads>
<CallRouteMessageToPeople>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageToPeople>
<CallRouteMessageToOperators>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageToOperators>
<CallRouteMessageOnWrongKey>[base64 encoded WAV audio data, 16-bit, 8000hz]</CallRouteMessageOnWrongKey>
<NumberOfOperators>5</NumberOfOperators>
<Options></Options>
<Destinations>
<Recipient>6421000001</Recipient>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6421000003</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Voice";
$version = "1.03";
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageData");
$data->MessageData->addChild("MessageToPeople","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$data->MessageData->addChild("Destinations","6495005001");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "Voice";
$version = "1.03";
$message_id = "ID123456";
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$data->addChild("MessageData");
$data->MessageData->addChild("Reference","Test1");
$data->MessageData->addChild("SendTime");
$data->MessageData->addChild("TimeZone","New Zealand");
$data->MessageData->addChild("SubAccount","SubAccount01");
$data->MessageData->addChild("Department","Department01");
$data->MessageData->addChild("ChargeCode","BillingGroup01");
$data->MessageData->addChild("MessageToPeople","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$data->MessageData->addChild("MessageToAnswerphones","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$keypad1 = $data->MessageData->addChild("Keypads");
$keypad1->addChild("Tone",1);
$keypad1->addChild("RouteNumber","64800123123");
$keypad2 = $data->MessageData->addChild("Keypads");
$keypad2->addChild("Tone",2);
$keypad2->addChild("RouteNumber","6498008000");
$data->MessageData->addChild("CallRouteMessageToPeople","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$data->MessageData->addChild("CallRouteMessageToOperators","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$data->MessageData->addChild("CallRouteMessageOnWrongKey","[base64 encoded WAV audio data, 16-bit, 8000hz]");
$data->MessageData->addChild("NumberOfOperators",5);
$data->MessageData->addChild("Options","");
$destination1 = $data->MessageData->addChild("Destinations");
$destination1->addChild("Recipient","6421000001");
$destination1->addChild("Custom1","");
$destination1->addChild("Custom2","");
$destination2 = $data->MessageData->addChild("Destinations","6495005002");
$destination3 = $data->MessageData->addChild("Destinations","6421000003");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendVoice_Click(object sender, EventArgs e)
{
//
// Populating values from frmMain
//
string apiURL = "https://www.tnz.co.nz/api/xml/send";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strMessageType = "Voice";
string strAPIVersion = "1.03";
string strMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strRecipient = "6421000001";
//
// Send Voice by XML API Interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", strMessageType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToPeople", strMsgToPeople));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", strRecipient));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send Raw XML API Request to REST API
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendVoice_Click(object sender, EventArgs e)
{
//
// Populating values from frmMain
//
string apiURL = "https://www.tnz.co.nz/api/xml/send";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strMessageType = "Voice";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // optional
string strReference = "Test1";
string strSendTime = "";
string strTimeZone = "New Zealand";
string strSubAccount = "SubAccount01";
string strDepartment = "Department01";
string strChargeCode = "BillingGroup01";
string strMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strMsgToAnswerPhones = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
Dictionary<int, string> Keypads = new Dictionary<int, string>();
Keypads.Add(1, "64800123123");
Keypads.Add(2, "6498008000");
string strCallRouteMsgToPeople = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strCallRouteMsgToOperators = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strCallRouteMsgOnWrongKey = "[base64 encoded WAV audio data, 16-bit, 8000hz]";
string strNumberOfOperators = "5";
string strOptions = "";
string strRecipient = "6421000001";
//
// Send Voice by XML API Interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", strMessageType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Reference", strReference));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SendTime", strSendTime));
messageDataNode.AppendChild(addChildNode(xmlDoc, "TimeZone", strTimeZone));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SubAccount", strSubAccount));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Department", strDepartment));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ChargeCode", strChargeCode));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToPeople", strMsgToPeople));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToAnswerphones", strMsgToAnswerPhones));
//
// MessageData -> Keypads
//
if (Keypads.Count > 0)
{
for (int i = 1; i < 10; i++)
{
if (Keypads.ContainsKey(i))
{
workingNode = xmlDoc.CreateElement("Keypads");
workingNode.AppendChild(addChildNode(xmlDoc, "Tone", i.ToString()));
workingNode.AppendChild(addChildNode(xmlDoc, "RouteNumber", Keypads[i]));
messageDataNode.AppendChild(workingNode);
}
}
}
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageToPeople", strCallRouteMsgToPeople));
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageToOperators", strCallRouteMsgToOperators));
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageOnWrongKey", strCallRouteMsgOnWrongKey));
messageDataNode.AppendChild(addChildNode(xmlDoc, "NumberOfOperators", strNumberOfOperators));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Voice", strVoice));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Options", strOptions));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", strRecipient));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send Raw XML API Request to REST API
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| MessageToPeople | [Base64 encoded data] | The audio data played if the call is answered by a human (WAV format, 16-bit, 8000hz) | |
| Destinations | 6495005001 6495005002 6495005003 |
Simpler formatting for Destinations parameter. For more options, refer to Optional MessageData Parameter Destinations section | |
| Parameter | Example Value | Description | |
|---|---|---|---|
| Reference | Test1 | Tracking ID or message description | |
| SendTime | 08/12/2019 13:04 | Delay sending until the specified date/time (dd/mm/yyyy HH:mm in your local timezone, specified by your Sender setting or overridden using the TimeZone command) | |
| TimeZone | New Zealand | Timezone specified using Windows timezone value (default set using Web Dashboard can be overridden here) See Microsoft Timezones (use the Country value) |
|
| SubAccount | SubAccount01 | Used for reporting, billing and Web Dashboard segmentation | |
| Department | Department01 | Used for reporting, billing and Web Dashboard segmentation | |
| ChargeCode | BillingGroup01 | Cost allocation for billing | |
| MessageToAnswerphones | [Base64 encoded data] | The audio data played when the call is answered by an answering machine/voicemail service (WAV format, 16-bit, 8000hz) | |
| Keypads | > Tone | 1 | Keypad for call connection (supports buttons 1-9) |
| > RouteNumber | +64800123123 | Telephone number for call routing in dialling format | |
| CallRouteMessageToPeople | [Base64 encoded data] | Audio data played when a keypad option is pressed (WAV format, 16-bit, 8000hz), eg "Connecting you now." | |
| CallRouteMessageToOperators | [Base64 encoded data] | Audio data played to the call centre representative answering the connected call (WAV format, 16-bit, 8000hz), eg "Incoming Text To Speech call." | |
| CallRouteMessageOnWrongKey | [Base64 encoded data] | Audio data played when an unregistered keypad button is pressed (WAV format, 16-bit, 8000hz), eg "Sorry, you have pressed an invalid key. Please try again" | |
| NumberOfOperators | 5 | Limits the maximum simultaneous calls (where multiple 'Destinations' are listed) | |
| CallerID | 6495005000 | Sets the Caller ID used on the call (must be E.164 format) | |
| Options | Customisable field | ||
| Destinations | > Recipient | 6495005000 | Recipient of the call in E.164 internationalised format |
| > Attention | Recipient One | Recipient's friendly name | |
| > Company | Example Corp | Recipient's company | |
| > Custom1 | Recipient One | Customisable field | |
| > Custom2 | Recipient One | Customisable field | |
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "TextToSpeech",
"APIVersion": "1.03",
"MessageData" :
{
"MessageToPeople": "Hello, this is a call from test. This is relevant information.",
"Destinations" :
[
"6495005001"
]
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "TextToSpeech",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"MessageToPeople": "Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.",
"MessageToAnswerphones": "Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.",
"Keypads":
[
{
"Tone": "1",
"RouteNumber": "64800123123"
},
{
"Tone": "2",
"Play": "You pressed Keypad 2",
"RouteNumber": "6498008000"
}
],
"CallRouteMessageToPeople": "Connecting you now.",
"CallRouteMessageToOperators": "Incoming Text To Speech call.",
"CallRouteMessageOnWrongKey": "Sorry, you have pressed an invalid key. Please try again.",
"NumberOfOperators": "5",
"Voice": "Female2",
"Options": "",
"Destinations" :
[
{
"Recipient": "6421000001",
"Custom1": "",
"Custom2": ""
},
"6495005002",
"6421000003"
]
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "TextToSpeech",
"APIVersion": "1.03",
"MessageData" :
{
"MessageToPeople": "Hello, this is a call from test. This is relevant information.",
"Destinations" :
[
"6495005001"
]
}
}'
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/send \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"MessageType": "TextToSpeech",
"APIVersion": "1.03",
"MessageID": "ID123456",
"MessageData" :
{
"Reference": "Test1",
"SendTime": "",
"TimeZone": "New Zealand",
"SubAccount": "SubAccount01",
"Department": "Department01",
"ChargeCode": "BillingGroup01",
"MessageToPeople": "Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.",
"MessageToAnswerphones": "Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.",
"Keypads":
[
{
"Tone": "1",
"RouteNumber": "64800123123"
},
{
"Tone": "2",
"Play": "You pressed Keypad 2",
"RouteNumber": "6498008000"
}
],
"CallRouteMessageToPeople": "Connecting you now.",
"CallRouteMessageToOperators": "Incoming Text To Speech call.",
"CallRouteMessageOnWrongKey": "Sorry, you have pressed an invalid key. Please try again.",
"NumberOfOperators": "5",
"Voice": "Female2",
"Options": "",
"Destinations" :
[
{
"Recipient": "6421000001",
"Custom1": "",
"Custom2": ""
},
"6495005002",
"6421000003"
]
}
}'
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$data = array(
"Sender" => "[email protected]",
"APIKey" => "ta8wr7ymd",
"MessageType" => "TextToSpeech",
"APIVersion" => "1.03",
"MessageData" => array(
"MessageToPeople" => "Hello, this is a call from test. This is relevant information.",
"Destinations" => array(
"6495005001"
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "TextToSpeech";
$version = "1.03";
$message_id = "ID123456"; // optional
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"MessageType" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
"MessageData" => array(
"Reference" => "Test1",
"SendTime" => "",
"TimeZone" => "New Zealand",
"SubAccount" => "SubAccount01",
"Department" => "Department01",
"ChargeCode" => "BillingGroup01",
"MessageToPeople" => "Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.",
"MessageToAnswerphones" => "Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.",
"Keypads" => array(
array(
"Tone" => 1,
"RouteNumber" => "64800123123"
),
array(
"Tone" => 2,
"Play" => "You pressed Keypad 2",
"RouteNumber" => "6498008000"
)
),
"CallRouteMessageToPeople" => "Connecting you now.",
"CallRouteMessageToOperators" => "Incoming Text To Speech call.",
"CallRouteMessageOnWrongKey" => "Sorry, you have pressed an invalid key. Please try again.",
"NumberOfOperators" => "5",
"Voice" => "Female2",
"Options" => "",
"Destinations" => array(
array(
"Recipient" => "6421000001",
"Custom1" => "",
"Custom2" => ""
),
"6495005002",
"6495005003"
),
)
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Text;
using System.IO;
using System.Net;
namespace TTSSimple
{
class Program
{
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
//
// Send TTS by REST API Interface
//
string strJSONData = @"{
""Sender"": ""[email protected]"",
""APIKey"": ""ta8wr7ymd"",
""MessageType"": ""TextToSpeech"",
""APIVersion"": ""1.03"",
""MessageData"": {
""MessageToPeople"": ""Hello, this is a call from test. This is relevant information."",
""Destinations"":
[
""6495005001""
]
}
}";
//
// Send API Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
Console.WriteLine(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD"
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/send/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Text;
using System.IO;
using System.Net;
namespace TTSAdvanced
{
class Program
{
static void Main(string[] args)
{
string apiURL = "https://www.tnz.co.nz/api/json/send";
//
// Send TTS by REST API Interface
//
string strJSONData = @"{
""Sender"": ""[email protected]"",
""APIKey"": ""ta8wr7ymd"",
""MessageType"": ""TextToSpeech"",
""APIVersion"": ""1.03"",
""MessageID"": ""ID123456"",
""MessageData"": {
""Reference"": ""Test1"",
""SendTime"": """",
""TimeZone"": ""New Zealand"",
""SubAccount"": ""SubAccount01"",
""Department"": ""Department01"",
""ChargeCode"": ""BillingGroup01"",
""MessageToPeople"": ""Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre."",
""MessageToAnswerphones"": ""Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123."",
""Keypads"":
[
{
""Tone"": ""1"",
""RouteNumber"": ""64800123123""
},
{
""Tone"": ""2"",
""Play"": ""You pressed Keypad 2"",
""RouteNumber"": ""6498008000""
}
],
""CallRouteMessageToPeople"": ""Connecting you now."",
""CallRouteMessageToOperators"": ""Incoming Text To Speech call."",
""CallRouteMessageOnWrongKey"": ""Sorry, you have pressed an invalid key. Please try again."",
""NumberOfOperators"": ""5"",
""Voice"": ""Female2"",
""Options"": """",
""Destinations"":
[
{
""Recipient"": ""6421000001"",
""Custom1"": """",
""Custom2"": """"
},
""6495005002"",
""6421000003""
]
}
}";
//
// Send API Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
//
// More code to handle 400 Bad Request errors
//
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
catch (WebException wex)
{
if (wex.Response != null)
{
using (var errorResponse = (HttpWebResponse)wex.Response)
{
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
Console.WriteLine(strResponse);
}
}
}
{
"Result": "Success",
"MessageID": "ID123456"
}
{
"Result": "Failed",
"MessageID": "ID123456",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>TextToSpeech</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<MessageToPeople>Hello, this is a call from test. This is relevant information.</MessageToPeople>
<Destinations>6495005001</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>TextToSpeech</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<MessageToPeople>Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.</MessageToPeople>
<MessageToAnswerphones>Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.</MessageToAnswerphones>
<Keypads>
<Tone>1</Tone>
<RouteNumber>64800123123</RouteNumber>
</Keypads>
<Keypads>
<Tone>2</Tone>
<Play>You pressed Keypad 2</Play>
<RouteNumber>6498008000</RouteNumber>
</Keypads>
<CallRouteMessageToPeople>Connecting you now.</CallRouteMessageToPeople>
<CallRouteMessageToOperators>Incoming Text To Speech call.</CallRouteMessageToOperators>
<CallRouteMessageOnWrongKey>Sorry, you have pressed an invalid key. Please try again.</CallRouteMessageOnWrongKey>
<NumberOfOperators>5</NumberOfOperators>
<Voice>Female2</Voice>
<Options></Options>
<Destinations>
<Recipient>6421000001</Recipient>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6421000003</Destinations>
</MessageData>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>TextToSpeech</MessageType>
<APIVersion>1.03</APIVersion>
<MessageData>
<MessageToPeople>Hello, this is a call from test. This is relevant information.</MessageToPeople>
<Destinations>6495005001</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/send \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<MessageType>TextToSpeech</MessageType>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
<MessageData>
<Reference>Test1</Reference>
<SendTime></SendTime>
<TimeZone>New Zealand</TimeZone>
<SubAccount>SubAccount01</SubAccount>
<Department>Department01</Department>
<ChargeCode>BillingGroup01</ChargeCode>
<MessageToPeople>Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.</MessageToPeople>
<MessageToAnswerphones>Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.</MessageToAnswerphones>
<Keypads>
<Tone>1</Tone>
<RouteNumber>64800123123</RouteNumber>
</Keypads>
<Keypads>
<Tone>2</Tone>
<Play>You pressed Keypad 2</Play>
<RouteNumber>6498008000</RouteNumber>
</Keypads>
<CallRouteMessageToPeople>Connecting you now.</CallRouteMessageToPeople>
<CallRouteMessageToOperators>Incoming Text To Speech call.</CallRouteMessageToOperators>
<CallRouteMessageOnWrongKey>Sorry, you have pressed an invalid key. Please try again.</CallRouteMessageOnWrongKey>
<NumberOfOperators>5</NumberOfOperators>
<Voice>Female2</Voice>
<Options></Options>
<Destinations>
<Recipient>6421000001</Recipient>
<Custom1></Custom1>
<Custom2></Custom2>
</Destinations>
<Destinations>6495005002</Destinations>
<Destinations>6421000003</Destinations>
</MessageData>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "TextToSpeech";
$version = "1.03";
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageData");
$data->MessageData->addChild("MessageToPeople","Hello, this is a call from test. This is relevant information.");
$data->MessageData->addChild("Destinations","6495005001");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "TextToSpeech";
$version = "1.03";
$message_id = "ID123456";
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("MessageType",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$data->addChild("MessageData");
$data->MessageData->addChild("Reference","Test1");
$data->MessageData->addChild("SendTime");
$data->MessageData->addChild("TimeZone","New Zealand");
$data->MessageData->addChild("SubAccount","SubAccount01");
$data->MessageData->addChild("Department","Department01");
$data->MessageData->addChild("ChargeCode","BillingGroup01");
$data->MessageData->addChild("MessageToPeople","Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre.");
$data->MessageData->addChild("MessageToAnswerphones","Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123.");
$keypad1 = $data->MessageData->addChild("Keypads");
$keypad1->addChild("Tone",1);
$keypad1->addChild("RouteNumber","64800123123");
$keypad2 = $data->MessageData->addChild("Keypads");
$keypad2->addChild("Tone",2);
$keypad2->addChild("Play","You pressed Keypad 2");
$keypad2->addChild("RouteNumber","6498008000");
$data->MessageData->addChild("CallRouteMessageToPeople","Connecting you now.");
$data->MessageData->addChild("CallRouteMessageToOperators","Incoming Text To Speech call.");
$data->MessageData->addChild("CallRouteMessageOnWrongKey","Sorry, you have pressed an invalid key. Please try again.");
$data->MessageData->addChild("NumberOfOperators",5);
$data->MessageData->addChild("Voice","Female2");
$data->MessageData->addChild("Options","");
$destination1 = $data->MessageData->addChild("Destinations");
$destination1->addChild("Recipient","6421000001");
$destination1->addChild("Custom1","");
$destination1->addChild("Custom2","");
$destination2 = $data->MessageData->addChild("Destinations","6495005002");
$destination3 = $data->MessageData->addChild("Destinations","6421000003");
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Text;
using System.Xml;
using System.IO;
using System.Net;
namespace TTSSimple
{
class Program
{
private static XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
static void Main(string[] args)
{
//
// Populating values from frmMain
//
string apiURL = "https://www.tnz.co.nz/api/xml/send";
//
// Send TTS by XML API Interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "TextToSpeech"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToPeople", "Hello, this is a call from test. This is relevant information."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "6495005001"));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send API Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
Console.WriteLine(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/send/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Text;
using System.Xml;
using System.IO;
using System.Net;
namespace TTSAdvanced
{
class Program
{
private static XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
static void Main(string[] args)
{
//
// Populating values from frmMain
//
string apiURL = "https://www.tnz.co.nz/api/xml/send";
//
// Send TTS by XML API Interface
//
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", "[email protected]"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", "ta8wr7ymd"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageType", "TextToSpeech"));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", "1.03"));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", "ID123456"));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// MessageData
//
XmlNode messageDataNode = xmlDoc.CreateElement("MessageData");
messageDataNode.AppendChild(addChildNode(xmlDoc, "Reference", "Test1"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SendTime", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")));
messageDataNode.AppendChild(addChildNode(xmlDoc, "TimeZone", "New Zealand"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "SubAccount", "SubAccount01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Department", "Department01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "ChargeCode", "BillingGroup01"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToPeople", "Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "MessageToAnswerphones", "Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123."));
//
// Add Keypad 1 - RouteNumber
//
workingNode = xmlDoc.CreateElement("Keypads");
workingNode.AppendChild(addChildNode(xmlDoc, "Tone", "1"));
workingNode.AppendChild(addChildNode(xmlDoc, "RouteNumber", "64800123123"));
messageDataNode.AppendChild(workingNode);
//
// Add Keypad 2 - RouteNumber + Play
//
workingNode = xmlDoc.CreateElement("Keypads");
workingNode.AppendChild(addChildNode(xmlDoc, "Tone", "2"));
workingNode.AppendChild(addChildNode(xmlDoc, "Play", "You pressed Keypad 2"));
workingNode.AppendChild(addChildNode(xmlDoc, "RouteNumber", "6498008000"));
messageDataNode.AppendChild(workingNode);
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageToPeople", "Connecting you now."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageToOperators", "Incoming Text To Speech call."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "CallRouteMessageOnWrongKey", "Sorry, you have pressed an invalid key. Please try again."));
messageDataNode.AppendChild(addChildNode(xmlDoc, "NumberOfOperators", "5"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Voice", "Female2"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Options", ""));
//
// Add Destinations 1 - Add with details
//
workingNode = xmlDoc.CreateElement("Destinations");
workingNode.AppendChild(addChildNode(xmlDoc, "Recipient", "6421000001"));
workingNode.AppendChild(addChildNode(xmlDoc, "Custom1", "Custom1"));
workingNode.AppendChild(addChildNode(xmlDoc, "Custom2", "Custom2"));
messageDataNode.AppendChild(workingNode);
//
// Add Destinations 2 - Add numbers only
//
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "6495005002"));
messageDataNode.AppendChild(addChildNode(xmlDoc, "Destinations", "6421000003"));
//
// Set MessageData into root node
//
rootNode.AppendChild(messageDataNode);
//
// Send API Request to REST API
//
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiURL);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
request.ContentLength = byteArray.Length;
Stream stream = request.GetRequestStream(); //open connection
stream.Write(byteArray, 0, byteArray.Length); // Send the data.
stream.Close();
string strResponse = "";
//
// More code to handle 400 Bad Request errors
//
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (request.HaveResponse && response != null)
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
catch (WebException wex)
{
if (wex.Response != null)
{
using (var errorResponse = (HttpWebResponse)wex.Response)
{
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
strResponse = reader.ReadToEnd();
}
}
}
}
Console.WriteLine(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>ID123456</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| MessageToPeople | Hello, this is a call from Department01. This is relevant information. Press one to be connected to our call centre. | The text-to-speech message played if the call is answered by a human | |
| Destinations | 6495005001 6495005002 6495005003 |
Simpler formatting for Destinations parameter. For more options, refer to Optional MessageData Parameter Destinations section | |
| Parameter | Example Value | Description | |
|---|---|---|---|
| Reference | Test1 | Tracking ID or message description | |
| SendTime | 08/12/2019 13:04 | Delay sending until the specified date/time (dd/mm/yyyy HH:mm in your local timezone, specified by your Sender setting or overridden using the TimeZone command) | |
| TimeZone | New Zealand | Timezone specified using Windows timezone value (default set using Web Dashboard can be overridden here) See Microsoft Timezones (use the Country value) |
|
| SubAccount | SubAccount01 | Used for reporting, billing and Web Dashboard segmentation | |
| Department | Department01 | Used for reporting, billing and Web Dashboard segmentation | |
| ChargeCode | BillingGroup01 | Cost allocation for billing | |
| MessageToAnswerphones | Hello, sorry we missed you. This is a call from Department 01. Please contact us on 0800 123123. | The text-to-speech message played when the call is answered by an answering machine/voicemail service | |
| Keypads | > Tone | 1 | Keypad for call connection (supports buttons 1-9) |
| > Play | You pressed Keypad 1 | Message played when the keypad is pressed | |
| > RouteNumber | +64800123123 | Telephone number for call routing in dialling format | |
| CallRouteMessageToPeople | Connecting you now. | Text-to-speech message played when a keypad option is pressed | |
| CallRouteMessageToOperators | Incoming Text To Speech call. | Text-to-speech message played to the call centre representative answering the connected call | |
| CallRouteMessageOnWrongKey | Sorry, you have pressed an invalid key. Please try again. | Text-to-speech message played when an unregistered keypad button is pressed | |
| NumberOfOperators | 5 | Limits the maximum simultaneous calls (where multiple 'Destinations' are listed) | |
| CallerID | 6495005000 | Sets the Caller ID used on the call (must be E.164 format) | |
| Voice | Female2 | Text-to-Speech voice to use (Male1, Female1, Female2, Female3, Female4) | |
| Options | Customisable field | ||
| Destinations | > Recipient | 6495005000 | Recipient of the call in E.164 internationalised format |
| > Attention | Recipient One | Recipient's friendly name | |
| > Company | Example Corp | Recipient's company | |
| > Custom1 | Recipient One | Customisable field | |
| > Custom2 | Recipient One | Customisable field | |
To resend or retry sending a message via the REST API, this will need to be submitted as a new, unique message.
To resend or retry sending a message via the Web Dashboard, once logged in and viewing an individual message, you will see Resubmit and Forward buttons.
Under MessageData you can specify an additional Mode=Test parameter.
Mode=Test means any messages will be handled by the API, instantly called a SUCCESS and the success report will be delivered to you. This is a useful way to end-to-end test without sending a live message.
"MessageData" :
{
"Mode": "Test"
}
Delivery Reports advise whether delivery was successful. If not, it will describe why.
Each delivery report type is optional and multiple delivery report times can be used.
You will be supplied with a Web Dashboard login at registration. The Dashboard can be used to set up new sender/token pairs, as well as track sent and replied messages. You can drill into specific messages to view individual events, such as delivery attempts, retries, replies, results, clicks, etc.
Delivery reports are emailed as an HTML email for viewing by an end-user. Your sales representative can enable this for you.
Whitelabelling of SMTP Email reports is available.
To receive Delivery Reports via Webhook, please advise the URL to submit to.
Webhooks are provided as an HTTP POST in either XML or JSON format (your preference).
Supplied parameters are:
| Parameter | Example Value | Description |
|---|---|---|
| Sender | [email protected] | Webhook sender authentication (can configure a unique Sender if required) |
| APIKey | ta8wr7ymd | Webhook token authentication (can configure a unique APIKey if required) |
| Type | SMS | Type of Message ('Email', 'SMS', 'Fax', 'Voice', 'TextToSpeech', or 'SMSReply') |
| Destination | +6421000001 | Destination that the webhook is for (alphanumeric field, where telephone/mobile numbers are supplied in E.164 internationalised format) |
| MessageID | js82hn8n | MessageID parameter supplied when sending your original API call |
| JobNumber | 10C7B9A0 | Eight digit alphanumeric tracking number (our internal Job Number) |
| SentTime | 16/10/2019 13:43 p.m. | Time message was completed (Sender's local time time in 'dd/MM/yyyy HH:mm tt' format) |
| Status | SUCCESS | For submission results, values are SUCCESS, FAILED, PENDING For reply reports, this will be RECEIVED For additional analytics, this will be UPDATED |
| Result | Sent OK | Final delivery result and/or the cause for a message delivery failure For reply reports, this will be RECEIVED For additional analytics, this will be the event description |
| Message | This field will only contain data if 'Type=SMSReply' | |
| Price | 0.20 | Your cost for this transaction, charged by us to you |
| Detail | SMSParts:2 | Additional billing detail: "SMSParts", "FaxPages", "VoiceMinutes", "Size", "Prompts" |
API users are able to poll for the status of a message via the GET Status API.
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "status",
"APIVersion": "1.03",
"MessageID": "ID123456",
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "status",
"APIVersion": "1.03",
"MessageID": "ID123456",
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/get \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "status",
"APIVersion": "1.03",
"MessageID": "ID123456",
}'
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/get \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "status",
"APIVersion": "1.03",
"MessageID": "ID123456",
}'
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "status";
$version = "1.03";
$message_id = "ID123456"; // required
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"Type" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "status";
$version = "1.03";
$message_id = "ID123456"; // required
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"Type" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace GetStatusJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void GetStatusByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strAPIVersion = "1.03";
string strType = "Status";
string strMessageID = "ID123456"; // required
string strJSONData = "{" +
"\"Sender\": \"" + strSender + "\"," +
"\"APIKey\": \"" + strAPIKey + "\"," +
"\"Type\":\"" + strType + "\"," +
"\"APIVersion\":\"" + strAPIVersion + "\"," +
"\"MessageID\":\"" + strMessageID + "\"," +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace GetStatusJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void GetStatusByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strAPIVersion = "1.03";
string strType = "Status";
string strMessageID = "ID123456"; // required
string strJSONData = "{" +
"\"Sender\": \"" + strSender + "\"," +
"\"APIKey\": \"" + strAPIKey + "\"," +
"\"Type\":\"" + strType + "\"," +
"\"APIVersion\":\"" + strAPIVersion + "\"," +
"\"MessageID\":\"" + strMessageID + "\"," +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Completed",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"Count": "1",
"Complete": "1",
"Success": "1",
"Failed": "0"
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>status</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>status</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/get \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>status</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/get \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>status</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "status";
$version = "1.03";
$message_id = "ID123456"; // required
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("Type",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "status";
$version = "1.03";
$message_id = "ID123456"; // required
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("Type",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$options = array(
'http' => array(
'method' => 'POST',
'content' => $data->asXML(),
'header' => "Content-Type: text/xml; encoding='utf-8'\n"
)
);
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strType = "status";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // required
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "Type", strType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strType = "status";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // required
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "Type", strType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Completed</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<Count>1</Count>
<Complete>1</Complete>
<Success>1</Success>
<Failed>0</Failed>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| Sender | [email protected] | Sender value set up in Create a new API user token | |
| APIKey | ta8wr7ymd | APIKey value set up in Create a new API user token | |
| APIVersion | 1.03 | Version of the API used; can differ based on MessageType | |
| Type | Status | Type of this API request | |
| MessageID | ID123456 | Your provided Message ID or TNZ Group generated Message ID | |
Currently, tracking SMS Received is supported.
Tracking of faxes and voicemail received is scheduled for a future release. Let your account manager know if this interests you.
You will be supplied with a Web Dashboard login at registration. The Dashboard can be used to set up new sender/token pairs, as well as track sent and replied messages. You can drill into specific messages to view individual events, such as delivery attempts, retries, replies, results, clicks, etc.
Reply message reports are emailed as an HTML email for viewing by an end-user.
Whitelabelling of SMTP Email reports is available.
When submitting SMS messages, specify the SMSEmailReply parameter.
If you are set up to receive Status webhooks, you will also be receiving SMS Received webhooks.
To receive SMS replies via Webhook, please advise the URL to submit to.
Webhooks are provided as an HTTP POST in either XML or JSON format (your preference).
Supplied parameters are:
| Parameter | Example Value | Description |
|---|---|---|
| Sender | [email protected] | Webhook sender authentication (can configure a unique Sender if required) |
| APIKey | ta8wr7ymd | Webhook token authentication (can configure a unique APIKey if required) |
| Type | SMSReply | Type of Message ('Email', 'SMS', 'Fax', 'Voice', 'TextToSpeech', or 'SMSReply') |
| Destination | +6421000001 | Destination that the webhook is for (alphanumeric field, where telephone/mobile numbers are supplied in E.164 internationalised format) |
| MessageID | js82hn8n | MessageID parameter supplied when sending your original API call |
| JobNumber | 10C7B9A0 | Eight digit alphanumeric tracking number (our internal Job Number) |
| SentTime | 16/10/2019 13:43 p.m. | Time message was completed (local time time in 'dd/MM/yyyy HH:mm tt' format) |
| Status | RECEIVED | For submission results, values are SUCCESS, FAILED, PENDING For reply reports, this will be RECEIVED For additional analytics, this will be UPDATED |
| Result | RECEIVED | Final delivery result and/or the cause for a message delivery failure For reply reports, this will be RECEIVED For additional analytics, this will be the event description |
| Message | This is a reply. | This field will only contain data if 'Type=SMSReply' |
| Price | 0.20 | Your cost for the outbound message sent, charged by us to you (no cost for the reply received) |
| Detail | SMSParts:2 | Additional billing detail: "SMSParts", "FaxPages", "VoiceMinutes", "Size", "Prompts" on the outbound message sent (not the SMS Received) |
API users are able to poll for the status of a message received via the GET Received API.
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "SMSReceived",
"APIVersion": "1.03",
"MessageID": "ID123456",
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "SMSReceived",
"APIVersion": "1.03",
"MessageID": "ID123456",
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/get \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "SMSReceived",
"APIVersion": "1.03",
"MessageID": "ID123456",
}'
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/json/get \
--header "Content-Type: application/json; encoding='utf-8'" \
--data '{
"Sender": "[email protected]",
"APIKey": "ta8wr7ymd",
"Type": "SMSReceived",
"APIVersion": "1.03",
"MessageID": "ID123456",
}'
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMSReceived";
$version = "1.03";
$message_id = "ID123456"; // required
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"Type" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMSReceived";
$version = "1.03";
$message_id = "ID123456"; // required
$data = array(
"Sender" => $sender,
"APIKey" => $apikey,
"Type" => $type,
"APIVersion" => $version,
"MessageID" => $message_id,
);
$headers = array(
"Content-Type: application/json",
"encoding='utf-8'",
"Content-length: ".strlen(json_encode($data)),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/json/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header('Content-Type: application/json');
echo $response;
break;
case "400": // error
header('Content-Type: application/json');
echo $response;
break;
case "500": // critical error
echo $response;
echo $err;
break;
default:
echo $response;
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace GetSMSReceivedJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void GetSMSReceivedByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strAPIVersion = "1.03";
string strType = "SMSReceived";
string strMessageID = "ID123456"; // required
string strJSONData = "{" +
"\"Sender\": \"" + strSender + "\"," +
"\"APIKey\": \"" + strAPIKey + "\"," +
"\"Type\":\"" + strType + "\"," +
"\"APIVersion\":\"" + strAPIVersion + "\"," +
"\"MessageID\":\"" + strMessageID + "\"," +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/json/get/
HTTP Header: Content-Type="application/json; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace GetSMSReceivedJSON
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void GetSMSReceivedByJSONAPI()
{
string apiURL = "https://www.tnz.co.nz/api/json/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strAPIVersion = "1.03";
string strType = "SMSReceived";
string strMessageID = "ID123456"; // required
string strJSONData = "{" +
"\"Sender\": \"" + strSender + "\"," +
"\"APIKey\": \"" + strAPIKey + "\"," +
"\"Type\":\"" + strType + "\"," +
"\"APIVersion\":\"" + strAPIVersion + "\"," +
"\"MessageID\":\"" + strMessageID + "\"," +
"}";
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "application/json; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(strJSONData);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
{
"Result": "Success",
"Data": {
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Status": "Received",
"JobNum": "10AB20CD",
"Account": "Account#",
"SubAccount": "",
"Department": "",
"MessageSent": {
"Date": "2019-12-01 13:45:54",
"Destination": 6421000001,
"MessageText": "This is an outbound message sent via API."
},
"MessageReceived": [
{
"Date": "2019-12-01 14:02:03",
"From": "+6421000001",
"MessageText": "This is a reply back from the mobile phone."
},
{
"Date": "2019-12-01 14:04:14",
"From": "+6421000001",
"MessageText": "This is a second reply."
}
]
}
}
{
"Result": "Failed",
"MessageID": "AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD",
"Message": "Missing Sender"
}
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>SMSReceived</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>SMSReceived</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/get \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>SMSReceived</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
curl --request POST \
--url https://www.tnz.co.nz/api/xml/get \
--header "Content-Type: text/xml; encoding='utf-8'" \
--data '
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Sender>[email protected]</Sender>
<APIKey>ta8wr7ymd</APIKey>
<Type>SMSReceived</Type>
<APIVersion>1.03</APIVersion>
<MessageID>ID123456</MessageID>
</root>
'
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMSReceived";
$version = "1.03";
$message_id = "ID123456"; // required
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("Type",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
<?php
$sender = "[email protected]";
$apikey = "ta8wr7ymd";
$type = "SMSReceived";
$version = "1.03";
$message_id = "ID123456"; // required
$data = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><root></root>");
$data->addChild("Sender",$sender);
$data->addChild("APIKey",$apikey);
$data->addChild("Type",$type);
$data->addChild("APIVersion",$version);
$data->addChild("MessageID",$message_id);
$options = array(
'http' => array(
'method' => 'POST',
'content' => $data->asXML(),
'header' => "Content-Type: text/xml; encoding='utf-8'\n"
)
);
$headers = array(
"Content-Type: text/xml",
"encoding='utf-8'",
"Content-length: ".strlen($data->asXML()),
"Connection: close"
);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.tnz.co.nz/api/xml/get");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data->asXML());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
$err = "";
if(curl_errno($ch))
{
$err = curl_error($ch);
}
else
{
curl_close($ch);
}
switch( $info['http_code'] )
{
case "200": // success;
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "400": // error
header("Content-Type: text/xml; encoding='utf-8'");
echo $response;
break;
case "500": // critical error
echo $response."\n";
echo $err;
break;
default:
echo $response."\n";
echo $err;
break;
}
}
catch(Exception $e)
{
echo 'Caught exception: ', $e->getMessage();
}
?>
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strType = "SMSReceived";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // required
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "Type", strType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
API URL: https://www.tnz.co.nz/api/xml/get/
HTTP Header: Content-Type="text/xml; encoding='utf-8'"
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace TestXML
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private XmlNode addChildNode(XmlDocument xmlDoc, string name, string val)
{
XmlNode workingNode = xmlDoc.CreateElement(name);
workingNode.InnerText = val;
return workingNode;
}
private void btnSendSMS_Click(object sender, EventArgs e)
{
string apiURL = "https://www.tnz.co.nz/api/xml/get";
string strSender = "[email protected]";
string strAPIKey = "ta8wr7ymd";
string strType = "SMSReceived";
string strAPIVersion = "1.03";
string strMessageID = "ID123456"; // required
XmlDocument xmlDoc = new XmlDocument();
XmlNode docNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); // <?xml version="1.0" encoding="UTF-8"?>
xmlDoc.AppendChild(docNode);
XmlNode rootNode = xmlDoc.CreateElement("root");
xmlDoc.AppendChild(rootNode);
rootNode.AppendChild(addChildNode(xmlDoc, "Sender", strSender));
rootNode.AppendChild(addChildNode(xmlDoc, "APIKey", strAPIKey));
rootNode.AppendChild(addChildNode(xmlDoc, "Type", strType));
rootNode.AppendChild(addChildNode(xmlDoc, "APIVersion", strAPIVersion));
rootNode.AppendChild(addChildNode(xmlDoc, "MessageID", strMessageID));
XmlNode workingNode = xmlDoc.CreateElement("Sender");
//
// Send Raw XML Request
//
HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(apiURL);
getRequest.Method = WebRequestMethods.Http.Post;
getRequest.ContentType = "text/xml; encoding='utf-8'";
byte[] byteArray = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
getRequest.ContentLength = byteArray.Length;
Stream newStream = getRequest.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close();
string strResponse = "";
HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
using (StreamReader sr = new StreamReader(getResponse.GetResponseStream()))
{
strResponse = sr.ReadToEnd();
}
MessageBox.Show(strResponse);
}
}
}
<?xml version="1.0"?>
<root>
<Result>Success</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Status>Received</Status>
<JobNum>10AB20CD</JobNum>
<Account>Account#</Account>
<SubAccount></SubAccount>
<Department></Department>
<MessageSent>
<Date>2019-12-01 13:45:54</Date>
<Destination>6421000001</Destination>
<MessageText>This is an outbound message sent via API.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:02:03</Date>
<From>+6421000001</Destination>
<MessageText>This is a reply back from the mobile phone.</MessageText>
</MessageSent>
<MessageReceived>
<Date>2019-12-01 14:04:14</Date>
<From>+6421000001</Destination>
<MessageText>This is a second reply.</MessageText>
</MessageSent>
</root>
<?xml version="1.0"?>
<root>
<Result>Failed</Result>
<MessageID>AAAAAAAA-BBBB-BBBB-CCCC-DDDDDDDDDDDD</MessageID>
<Message>Missing or empty sender</Message>
</root>
| Parameter | Example Value | Description | |
|---|---|---|---|
| Sender | [email protected] | Sender value set up in Create a new API user token | |
| APIKey | ta8wr7ymd | APIKey value set up in Create a new API user token | |
| APIVersion | 1.03 | Version of the API used; can differ based on MessageType | |
| Type | Status | Type of this API request | |
| MessageID | ID123456 | Your provided Message ID or TNZ Group generated Message ID | |
When a new version of the API is released, the APIVersion parameter is incremented.
This allows you to use a different API version based on the MessageType, limiting the testing you require should you wish to update one MessageType to a later version of the API.
Want to upgrade to a new version for SMS but don't want to break and retest Email? Use the newer APIVersion for SMS while using the older APIVersion for Email.
"MessageType": "SMS",
"APIVersion": "1.03",
"MessageType": "Email",
"APIVersion": "1.01",
As new versions of the API are released, this API reference guide will be updated to reflect the latest version and features supported:
API Version ChangeLog