SMS API
Version: v1.0
Specification Release Notes Other versions
The SMS API enables you to send messages to your customers or to receive messages from your customers to phone numbers registered with tyntec.
Base URLs
SMS Messaging
tyntec’s SMS service is governed by two operations that allow you:
- to send an SMS and
- to query the status of a previously sent SMS
Important
tyntec stores status details for up to 3 months after the final delivery state is known.
Delivery states
State | Description |
---|---|
ACCEPTED | The message was accepted for delivery by Tyntec's platform and will be scheduled for delivery. |
DELIVERED | Message is delivered to destination. The message has been delivered to the destination. No further deliveries will occur. |
BUFFERED | The message is in buffered state. This is a general state used to describe a message as being active within the tyntec's platform. The message may be in retry or dispatched to a mobile network for delivery to the mobile. |
EXPIRED | Message validity period has expired. The message has failed to be delivered within its validity period and/or retry period. No further delivery attempts will be made. |
REJECTED | Message was rejected by the tyntec platform or destination network. Reasons for rejections can be insufficient funds, illegal content/senderId. More specific reasons are given on the errorCode . |
UNDELIVERABLE | Message is undeliverable. The message has encountered a delivery error and is deemed permanently undeliverable. No further delivery attempts will be made. Certain network or platform internal errors result in the permanent non-delivery of a message. Examples of such errors would be an unknown subscriber or network error that indicated that the given destination mobile was denied SMS service or could not support SMS. More specific reasons are given on the errorCode . |
Send SMS (POST)
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/messaging/v1/sms \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'apikey: API_KEY'
POST https://api.tyntec.com/messaging/v1/sms HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
Accept: application/json
apikey: API_KEY
const inputBody = '{
"to": "+123456789",
"from": "tyntec",
"message": "Hello world!"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'apikey':'API_KEY'
};
fetch('https://api.tyntec.com/messaging/v1/sms',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'apikey' => 'API_KEY'
}
result = RestClient.post 'https://api.tyntec.com/messaging/v1/sms',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'apikey': 'API_KEY'
}
r = requests.post('https://api.tyntec.com/messaging/v1/sms', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'apikey' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/messaging/v1/sms', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/messaging/v1/sms");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("apikey", "API_KEY");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"apikey": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/messaging/v1/sms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /messaging/v1/sms
Sends an SMS via the POST HTTP method with parameters defined in the request body.
Body parameter
{
"to": "+123456789",
"from": "tyntec",
"message": "Hello world!"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | SmsMessage | true | Message you would like to send |
Example responses
200 Response
{
"doneDate": "string",
"errorCode": "string",
"errorReason": "string",
"from": "+49123456789",
"href": "string",
"mccmnc": "string",
"parts": [
{
"currency": "EUR",
"deliveryState": "string",
"doneDate": "string",
"errorCode": "string",
"partId": "string",
"price": "0.005",
"priceEffective": "2018-06-01T00:00:00+0200",
"statusText": "string"
}
],
"overallPrice": "0.01",
"priceEffective": "2019-08-24T14:15:22Z",
"reference": "string",
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"status": "DELIVERED",
"submitDate": "2019-08-24T14:15:22Z",
"to": "+1987654321",
"ttid": 77292
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The messageIds of your request | RestMessageResponse |
201 | Created | Created | None |
400 | Bad Request | Invalid request | Problem |
401 | Unauthorized | Unauthorized | Problem |
403 | Forbidden | Forbidden | Problem |
404 | Not Found | Not Found | Problem |
500 | Internal Server Error | Something went wrong. :-( | Problem |
Send SMS (GET)
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/messaging/v1/sms?to=string&from=string&message=string \
-H 'Accept: application/json' \
-H 'apikey: API_KEY'
GET https://api.tyntec.com/messaging/v1/sms?to=string&from=string&message=string HTTP/1.1
Host: api.tyntec.com
Accept: application/json
apikey: API_KEY
const headers = {
'Accept':'application/json',
'apikey':'API_KEY'
};
fetch('https://api.tyntec.com/messaging/v1/sms?to=string&from=string&message=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'apikey' => 'API_KEY'
}
result = RestClient.get 'https://api.tyntec.com/messaging/v1/sms',
params: {
'to' => 'string',
'from' => 'string',
'message' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'apikey': 'API_KEY'
}
r = requests.get('https://api.tyntec.com/messaging/v1/sms', params={
'to': 'string', 'from': 'string', 'message': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'apikey' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/messaging/v1/sms', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/messaging/v1/sms?to=string&from=string&message=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("apikey", "API_KEY");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"apikey": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/messaging/v1/sms", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /messaging/v1/sms
Sends an SMS via the GET HTTP method with parameters defined in the query string.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
to | query | string | true | This parameter represents the receiving party’s phone number in the international phone format. |
from | query | string | true | This parameter gives the identification of the sending party, which can either be a phone number in the international format or an alphanumeric identifier with up to 11 characters. |
message | query | string | true | The message will be sent with characters encoded either in the GSM standard alphabet (GSM-7) or GSM Unicode alphabet (UCS-2). |
encoding | query | string | false | Encoding selection between GSM7, UNICODE, or the default AUTO selection |
gateway | query | string | false | Which gateway to use for the message delivery |
conversion | query | boolean | false | Whether the message is a subject to conversion ratio |
sendDateTime | query | string | false | Any future date in the format “yyyy-MM-ddT-HH:mm:ss+HH:mm” ISO 8601. If not set, the message will be sent immediately. The default time zone is UTC. |
validity | query | string | false | Validity in minutes for this message |
reference | query | string | false | A custom reference that will mark the Delivery Report |
callbackUrl | query | string | false | Your URL for delivering the Delivery Reports; leave empty for no Delivery Report. |
callbackMethod | query | string | false | Your prefered HTTP method for the Delivery Report callback; possible values POST/GET |
partLimit | query | integer(int32) | false | Up to how many parts you allow this message to be concatenated |
trate | query | number(double) | false | Up to how much you allow the transcoder to replace original characters to make it GSM-7 compatible; possible values: decimals from 0 to 1 |
mrate | query | number(double) | false | Up to how much you allow the transcoder to skip original characters to make it GSM-7 compatible; possible values: decimals from 0 to 1 |
upperCased | query | boolean | false | Whether you allow the transcoder to try an upper case version of the content in the case this improves the produced parts of the message |
keepEmojis | query | boolean | false | Instructs the transcoder to keep emojis or to replace them with text. By default the transcoder will keep emojis; thus text will result to UNICODE. |
flash | query | boolean | false | Whether this SMS will be delivered as flash. Some networks do not support this. |
Detailed description
from: This parameter gives the identification of the sending party, which can either be a phone number in the international format or an alphanumeric identifier with up to 11 characters.
Some destination networks impose restrictions on the sender ID format. Please check the coverage list and contact us for more information.
message: The message will be sent with characters encoded either in the GSM standard alphabet (GSM-7) or GSM Unicode alphabet (UCS-2).
- GSM standard alphabet GSM-7. Maximum length is 160 characters per single message and 152 characters per concatenated message.
- GSM Unicode alphabet UCS-2. Maximum length is 70 characters per single message and 66 characters per concatenated message.
tyntec automatically splits the sent message into concatenated messages if the message exceeds the given limits. These concatenated messages are unified by the handset once again and they are displayed as one message (if supported by the handset).
tyntec will charge for each part of the concatenated message as for an individual message.
Enumerated values
Parameter | Value |
---|---|
encoding | AUTO |
encoding | GSM7 |
encoding | UNICODE |
Example responses
200 Response
{
"doneDate": "string",
"errorCode": "string",
"errorReason": "string",
"from": "+49123456789",
"href": "string",
"mccmnc": "string",
"parts": [
{
"currency": "EUR",
"deliveryState": "string",
"doneDate": "string",
"errorCode": "string",
"partId": "string",
"price": "0.005",
"priceEffective": "2018-06-01T00:00:00+0200",
"statusText": "string"
}
],
"overallPrice": "0.01",
"priceEffective": "2019-08-24T14:15:22Z",
"reference": "string",
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"status": "DELIVERED",
"submitDate": "2019-08-24T14:15:22Z",
"to": "+1987654321",
"ttid": 77292
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The messageIds of your request | RestMessageResponse |
201 | Created | Created | None |
400 | Bad Request | Invalid request | Problem |
401 | Unauthorized | Unauthorized | Problem |
403 | Forbidden | Forbidden | Problem |
404 | Not Found | Not Found | Problem |
500 | Internal Server Error | Something went wrong. :-( | Problem |
Read SMS status
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/messaging/v1/messages/{requestId} \
-H 'Accept: application/json' \
-H 'apikey: API_KEY'
GET https://api.tyntec.com/messaging/v1/messages/{requestId} HTTP/1.1
Host: api.tyntec.com
Accept: application/json
apikey: API_KEY
const headers = {
'Accept':'application/json',
'apikey':'API_KEY'
};
fetch('https://api.tyntec.com/messaging/v1/messages/{requestId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'apikey' => 'API_KEY'
}
result = RestClient.get 'https://api.tyntec.com/messaging/v1/messages/{requestId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'apikey': 'API_KEY'
}
r = requests.get('https://api.tyntec.com/messaging/v1/messages/{requestId}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'apikey' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/messaging/v1/messages/{requestId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/messaging/v1/messages/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("apikey", "API_KEY");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"apikey": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/messaging/v1/messages/{requestId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /messaging/v1/messages/{requestId}
Returns the status of a sent SMS message.
You have the possibility to query the status of a message you sent through our systems. In the case the callback URL is configured, we will POST the status to the defined URL.
Important
The SMS Message Status is available for 3 months after a final delivery state is reached.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
requestId | path | string | true | The unique identifier provided for each request. |
Example responses
200 Response
{
"doneDate": "string",
"errorCode": "string",
"errorReason": "string",
"from": "+49123456789",
"href": "string",
"mccmnc": "string",
"parts": [
{
"currency": "EUR",
"deliveryState": "string",
"doneDate": "string",
"errorCode": "string",
"partId": "string",
"price": "0.005",
"priceEffective": "2018-06-01T00:00:00+0200",
"statusText": "string"
}
],
"overallPrice": "0.01",
"priceEffective": "2019-08-24T14:15:22Z",
"reference": "string",
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"status": "DELIVERED",
"submitDate": "2019-08-24T14:15:22Z",
"to": "+1987654321",
"ttid": 77292
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | RestMessageResponse |
401 | Unauthorized | Unauthorized | Problem |
403 | Forbidden | Forbidden | Problem |
404 | Not Found | Not Found | Problem |
500 | Internal Server Error | Something went wrong. :-( | Problem |
Receive SMS
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/incoming \
-H 'Content-Type: application/json'
POST https://api.tyntec.com/incoming HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
const inputBody = '{
"from": "+49123456789",
"to": "+1987654321",
"message": "This is an example, the data is garbage.",
"originMCC": 260,
"originMNC": 9,
"originTtId": 77292,
"totalPrice": -0.005,
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"missingParts": false,
"contentList": [
{
"msgId": "48799399408:0:cad578e86b324c0a80f8fe866bfdb2b6",
"sentDate": "2019-07-02T16:47:39+0200",
"sequenceNumber": 1,
"price": -0.005,
"currency": "EUR",
"priceEffective": "2018-06-01T00:00:00+0200"
}
]
}';
const headers = {
'Content-Type':'application/json'
};
fetch('https://api.tyntec.com/incoming',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json'
}
result = RestClient.post 'https://api.tyntec.com/incoming',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json'
}
r = requests.post('https://api.tyntec.com/incoming', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/incoming', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/incoming");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/incoming", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /incoming
Receive an SMS as a POST request from us to your server.
Note: The aforementioned path is only an example. You can choose the callback URL freely.
The SMS API allows you to automatically receive messages from your customers sent to your phone numbers that you have registered with tyntec.
For this service, you will need to provide tyntec with an URL
(callbackUrl
) at your webserver, e.g. https://rest.customer.com/inboundmessages/
.
tyntec's system will do either the POST
or GET
call to your server;
this can be configured by tyntec.
Retries
tyntec's system will retry delivery every 10 seconds in the case your application does not accept the inbound message. Retries are paused for 10 minutes after every 100 consecutive unsuccessful delivery attempts. tyntec's system will keep trying for a maximum of 48 hours.
Body parameter
{
"from": "+49123456789",
"to": "+1987654321",
"message": "This is an example, the data is garbage.",
"originMCC": 260,
"originMNC": 9,
"originTtId": 77292,
"totalPrice": -0.005,
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"missingParts": false,
"contentList": [
{
"msgId": "48799399408:0:cad578e86b324c0a80f8fe866bfdb2b6",
"sentDate": "2019-07-02T16:47:39+0200",
"sequenceNumber": 1,
"price": -0.005,
"currency": "EUR",
"priceEffective": "2018-06-01T00:00:00+0200"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | InboundMessage | true | The message that tyntec delivers to your system |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
2XX | Unknown | Message was accepted by your system. | None |
default | Default | Message was not accepted by your system. |
The tyntec's inbound system will retry the delivery.|None|
BYON Contact Service
Bring Your Own Number (BYON) Contacts Service gives the users the possibility to manage their contacts.
List all contacts
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/contacts/v1 \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/contacts/v1 HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/contacts/v1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/contacts/v1',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/contacts/v1', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/contacts/v1', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/contacts/v1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/contacts/v1", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/contacts/v1
Returns all contacts created with your API key; you can get the contact ID from the list for editing or deleting the contact. You can specify friendlyName
to filter the results.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
friendlyName | query | string | false | List filter based on the friendlyName field |
Example responses
200 Response
[
{
"contacts": [
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Returned the list of contacts | Inline |
204 | No Content | Empty list; no contacts were found for this friendly name. | Inline |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Not Found | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ContactArrayResponse] | false | none | [Contract Array Response schema] |
» contacts | [ContactEntity] | false | none | [Contract Entity schema] |
»» companyAddress | string | false | none | Company's postal address |
»» companyName | string | false | none | Company's name |
»» contactEmail | string | false | none | E-mail address |
»» contactName | string | false | none | Requestor's name |
»» contactPhone | string | false | none | Requestor's phone number |
»» contactTitle | string | false | none | Requestor's title |
»» friendlyName | string | false | none | List filter based on the friendlyName field |
» size | integer(int32) | false | none | none |
Status Code 204
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ContactArrayResponse] | false | none | [Contract Array Response schema] |
» contacts | [ContactEntity] | false | none | [Contract Entity schema] |
»» companyAddress | string | false | none | Company's postal address |
»» companyName | string | false | none | Company's name |
»» contactEmail | string | false | none | E-mail address |
»» contactName | string | false | none | Requestor's name |
»» contactPhone | string | false | none | Requestor's phone number |
»» contactTitle | string | false | none | Requestor's title |
»» friendlyName | string | false | none | List filter based on the friendlyName field |
» size | integer(int32) | false | none | none |
Create a contact
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/byon/contacts/v1 \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://api.tyntec.com/byon/contacts/v1 HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/contacts/v1',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://api.tyntec.com/byon/contacts/v1',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://api.tyntec.com/byon/contacts/v1', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/byon/contacts/v1', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/contacts/v1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/byon/contacts/v1", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /byon/contacts/v1
Creates a new contact.
Body parameter
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ContactEntity | true | Comma-separated list of contact details: |
Detailed description
body: Comma-separated list of contact details:
- companyAddress (optional)
- companyName
- contactEmail
- contactName
- contactPhone
- contactTitle (optional)
- friendlyName (optional)
Example responses
200 Response
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ContactEntity |
201 | Created | Created | None |
202 | Accepted | The contact was created. | ContactEntity |
400 | Bad Request | The provided contact is not valid. | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Contact was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Read a contact
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/contacts/v1/{contactId} \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/contacts/v1/{contactId} HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/contacts/v1/{contactId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/contacts/v1/{contactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/contacts/v1/{contactId}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/contacts/v1/{contactId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/contacts/v1/{contactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/contacts/v1/{contactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/contacts/v1/{contactId}
Returns the contact for the provided contactId.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
contactId | path | string | true | List filter based on the contactId field |
Example responses
200 Response
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The contact | ContactEntity |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Contact was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Edit a contact
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/byon/contacts/v1/{contactId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://api.tyntec.com/byon/contacts/v1/{contactId} HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/contacts/v1/{contactId}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://api.tyntec.com/byon/contacts/v1/{contactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://api.tyntec.com/byon/contacts/v1/{contactId}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/byon/contacts/v1/{contactId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/contacts/v1/{contactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/byon/contacts/v1/{contactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /byon/contacts/v1/{contactId}
Edits the contact for the provided contactId.
Body parameter
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
contactId | path | string | true | ID of the contact that is to be edited |
body | body | ContactEntity | true | Comma-separated list of contact details: |
Detailed description
body: Comma-separated list of contact details:
- companyAddress (optional)
- companyName
- contactEmail
- contactName
- contactPhone
- contactTitle (optional)
- friendlyName (optional)
Example responses
200 Response
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The edited contact | ContactEntity |
201 | Created | Created | None |
400 | Bad Request | Contact can not be edited. | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Contact was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Delete a contact
Code samples
# You can also use wget
curl -X DELETE https://api.tyntec.com/byon/contacts/v1/{contactId} \
-H 'Accept: application/json'
DELETE https://api.tyntec.com/byon/contacts/v1/{contactId} HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/contacts/v1/{contactId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.delete 'https://api.tyntec.com/byon/contacts/v1/{contactId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.delete('https://api.tyntec.com/byon/contacts/v1/{contactId}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://api.tyntec.com/byon/contacts/v1/{contactId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/contacts/v1/{contactId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.tyntec.com/byon/contacts/v1/{contactId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /byon/contacts/v1/{contactId}
Deletes the contact for the provided contactId.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
contactId | path | string | true | Unique identifier of the contact that is to be deleted. |
Example responses
200 Response
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The deleted contact | ContactEntity |
204 | No Content | No Content | None |
400 | Bad Request | Contact can not be deleted. | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Contact was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
BYON Phone Book Service
Bring Your Own Number (BYON) Phone Book Service gives the users the possibility to view their Phone book entries.
List all phone numbers
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/phonebook/v1/numbers \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/phonebook/v1/numbers HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/phonebook/v1/numbers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/phonebook/v1/numbers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/phonebook/v1/numbers', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/phonebook/v1/numbers', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/phonebook/v1/numbers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/phonebook/v1/numbers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/phonebook/v1/numbers
Returns all phone numbers created with your API key; you can specify attributes to filter the results. The size limit is 3000.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
requestId | query | string | false | List filter based on the requestId field |
contactId | query | string | false | List filter based on the contactId field |
page | query | integer(int32) | false | List filter based on the page field |
size | query | integer(int32) | false | List filter based on the size field |
Example responses
200 Response
[
{
"provisioningRequests": [
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | List of phones requests | Inline |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Not Found | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PhoneProvisioningArrayResponse] | false | none | [Phone provisioning array response schema] |
» provisioningRequests | [PhoneProvisioningEntity] | false | none | [Phone provisioning schema] |
»» accountId | string | false | none | The account that created this entry |
»» contactId | string | false | none | Contact ID of this entry |
»» friendlyName | string | false | none | Friendly name of this entry |
»» requestId | string | false | none | Request ID of this entry |
»» status | string | false | none | Status of this entry |
» size | integer(int32) | false | none | none |
Read a phone number
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber} \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber} HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/phonebook/v1/numbers/{phoneNumber}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/phonebook/v1/numbers/{phoneNumber}
Returns details of the specific phone number entity created with your API key.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
phoneNumber | path | string | true | Phone number to get information for |
Example responses
200 Response
[
{
"provisioningRequests": [
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Phone Number entity | Inline |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Not Found | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PhoneProvisioningArrayResponse] | false | none | [Phone provisioning array response schema] |
» provisioningRequests | [PhoneProvisioningEntity] | false | none | [Phone provisioning schema] |
»» accountId | string | false | none | The account that created this entry |
»» contactId | string | false | none | Contact ID of this entry |
»» friendlyName | string | false | none | Friendly name of this entry |
»» requestId | string | false | none | Request ID of this entry |
»» status | string | false | none | Status of this entry |
» size | integer(int32) | false | none | none |
BYON Number Service
Bring Your Own Number (BYON) Numbers Service gives the users the possibility to register new numbers.
List all phones
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/provisioning/v1 \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/provisioning/v1 HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/provisioning/v1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/provisioning/v1',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/provisioning/v1', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/provisioning/v1', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/provisioning/v1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/provisioning/v1", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/provisioning/v1
Returns all phone numbers for which provisioning requests were created. You can specify friendlyName or contactId for filtering the results.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
friendlyName | query | string | false | List filter based on the friendlyName field |
contactId | query | string | false | List filter based on the contactId field |
Example responses
200 Response
[
{
"provisioningRequests": [
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
],
"size": 0
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | List of phone provisioning requests | Inline |
204 | No Content | Empty list; no phone provisioning requests were found. | Inline |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | Not Found | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PhoneProvisioningArrayResponse] | false | none | [Phone provisioning array response schema] |
» provisioningRequests | [PhoneProvisioningEntity] | false | none | [Phone provisioning schema] |
»» accountId | string | false | none | The account that created this entry |
»» contactId | string | false | none | Contact ID of this entry |
»» friendlyName | string | false | none | Friendly name of this entry |
»» requestId | string | false | none | Request ID of this entry |
»» status | string | false | none | Status of this entry |
» size | integer(int32) | false | none | none |
Status Code 204
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PhoneProvisioningArrayResponse] | false | none | [Phone provisioning array response schema] |
» provisioningRequests | [PhoneProvisioningEntity] | false | none | [Phone provisioning schema] |
»» accountId | string | false | none | The account that created this entry |
»» contactId | string | false | none | Contact ID of this entry |
»» friendlyName | string | false | none | Friendly name of this entry |
»» requestId | string | false | none | Request ID of this entry |
»» status | string | false | none | Status of this entry |
» size | integer(int32) | false | none | none |
Register phones
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/byon/provisioning/v1?contactId=string \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://api.tyntec.com/byon/provisioning/v1?contactId=string HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
Accept: application/json
const inputBody = '[
{
"phoneNumber": "string",
"country": "string"
}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/provisioning/v1?contactId=string',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://api.tyntec.com/byon/provisioning/v1',
params: {
'contactId' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://api.tyntec.com/byon/provisioning/v1', params={
'contactId': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/byon/provisioning/v1', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/provisioning/v1?contactId=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/byon/provisioning/v1", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /byon/provisioning/v1
New phone batch registration service for registering multiple numbers
Body parameter
[
{
"phoneNumber": "string",
"country": "string"
}
]
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
friendlyName | query | string | false | List filter based on the friendlyName field |
contactId | query | string | true | List filter based on the contactId field |
body | body | PhoneNumberEntity | true | Comma-separated list of phone number details: |
Detailed description
body: Comma-separated list of phone number details:
- phoneNumber
- country (only optional if the phone number already has included the country code)
Example responses
200 Response
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | List of applications | PhoneProvisioningEntity |
201 | Created | Created | None |
204 | No Content | Empty list; no applications were found for your account. | PhoneProvisioningEntity |
400 | Bad Request | Your request was not valid. | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | The contact was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
Read phone status
Code samples
# You can also use wget
curl -X GET https://api.tyntec.com/byon/provisioning/v1/{requestId} \
-H 'Accept: application/json'
GET https://api.tyntec.com/byon/provisioning/v1/{requestId} HTTP/1.1
Host: api.tyntec.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://api.tyntec.com/byon/provisioning/v1/{requestId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://api.tyntec.com/byon/provisioning/v1/{requestId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://api.tyntec.com/byon/provisioning/v1/{requestId}', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://api.tyntec.com/byon/provisioning/v1/{requestId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/byon/provisioning/v1/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.tyntec.com/byon/provisioning/v1/{requestId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /byon/provisioning/v1/{requestId}
Returns the details of the provisioning request for the provided requestId.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
requestId | path | string | true | Unique identifier based on the requestId field |
Example responses
200 Response
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Provisioning request | PhoneProvisioningEntity |
400 | Bad Request | Your request was not valid. | None |
401 | Unauthorized | Unauthorized | None |
403 | Forbidden | Forbidden | None |
404 | Not Found | The provisioning request was not found. | None |
500 | Internal Server Error | Something went wrong. :-( | ErrorResponse |
SMS Conversion
SMS Conversion is a term used in the SMS world to describe the messages that actually received from the end user. tyntec is providing an endpoint for real time conversion events reporting where customers can report if a message received or not received by the end user.
Conversion report
Code samples
# You can also use wget
curl -X POST https://api.tyntec.com/messaging/v1/conversion \
-H 'Content-Type: application/json'
POST https://api.tyntec.com/messaging/v1/conversion HTTP/1.1
Host: api.tyntec.com
Content-Type: application/json
const inputBody = '{
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"delivered": true,
"timestamp": "2018-06-01T00:00:00+0200"
}';
const headers = {
'Content-Type':'application/json'
};
fetch('https://api.tyntec.com/messaging/v1/conversion',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json'
}
result = RestClient.post 'https://api.tyntec.com/messaging/v1/conversion',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json'
}
r = requests.post('https://api.tyntec.com/messaging/v1/conversion', params={
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://api.tyntec.com/messaging/v1/conversion', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://api.tyntec.com/messaging/v1/conversion");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.tyntec.com/messaging/v1/conversion", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /messaging/v1/conversion
Report either successful or un-successful conversion event for a message.
Body parameter
{
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"delivered": true,
"timestamp": "2018-06-01T00:00:00+0200"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ConversionEvent | true | Conversion |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | None |
Schemas
ContactArrayResponse
{
"contacts": [
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
],
"size": 0
}
Contract Array Response schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
contacts | [ContactEntity] | false | none | [Contract Entity schema] |
size | integer(int32) | false | none | none |
ContactEntity
{
"companyAddress": "string",
"companyName": "string",
"contactEmail": "string",
"contactName": "string",
"contactPhone": "string",
"contactTitle": "string",
"friendlyName": "string"
}
Contract Entity schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
companyAddress | string | false | none | Company's postal address |
companyName | string | false | none | Company's name |
contactEmail | string | false | none | E-mail address |
contactName | string | false | none | Requestor's name |
contactPhone | string | false | none | Requestor's phone number |
contactTitle | string | false | none | Requestor's title |
friendlyName | string | false | none | List filter based on the friendlyName field |
ConversionEvent
{
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"delivered": true,
"timestamp": "2018-06-01T00:00:00+0200"
}
This is the event were delivery information regarding the message can be reported back to tyntec
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requestId | string | true | none | The unique identifier provided for each messaging request. |
delivered | boolean | false | none | Has the message been delivered to the end user or not. By default would be considered as true |
timestamp | string(date-time) | false | none | The timestamp when the message converted. If empty conversion timestamp will be set tp the timestamp of the event received in the API |
ErrorResponse
{
"code": "string",
"message": "string",
"timestamp": 0
}
Error Response schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
code | string | false | none | error code |
message | string | false | none | A short, human-readable summary of the problem type |
timestamp | integer(int64) | false | none | Point in time when the event happened |
InboundMessage
{
"from": "+49123456789",
"to": "+1987654321",
"message": "This is an example, the data is garbage.",
"originMCC": 260,
"originMNC": 9,
"originTtId": 77292,
"totalPrice": -0.005,
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"missingParts": false,
"contentList": [
{
"msgId": "48799399408:0:cad578e86b324c0a80f8fe866bfdb2b6",
"sentDate": "2019-07-02T16:47:39+0200",
"sequenceNumber": 1,
"price": -0.005,
"currency": "EUR",
"priceEffective": "2018-06-01T00:00:00+0200"
}
]
}
InboundMessage
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
from | string | true | none | Phone number of the sending party in the international format if available |
to | string | true | none | Your number provided by tyntec that has received the respective message in the international format. |
message | string | true | none | The received message as a UTF-8 encoded string. Note: Missing parts of a concat message will be marked with <...> in the message. |
originMCC | string | false | none | Representative MCC (Mobile Country Code) of the originating network |
originMNC | string | false | none | Representative MNC (Mobile Network Code) of the originating network |
originTtId | string | false | none | Operator's tyntec ID |
totalPrice | number | false | none | Sum of prices for each message part listed in “contentList” |
requestId | string | true | none | Unique identifier provided for each request |
size | integer(int32) | false | none | Amount of respective concatenated SMS parts |
missingParts | boolean | true | none | This flag marks whether tyntec received all parts of a concat message within a time limit of 10 minutes. |
contentList | [InboundContent] | true | none | tyntec merges overlength (concatenated) SMS into one string before sending it to your webserver. Note: tyntec will charge for each part of the concatenated message as for an individual message! |
InboundContent
{
"msgId": "48799399408:0:cad578e86b324c0a80f8fe866bfdb2b6",
"sentDate": "2019-07-02T16:47:39+0200",
"sequenceNumber": 1,
"price": -0.005,
"currency": "EUR",
"priceEffective": "2018-06-01T00:00:00+0200"
}
InboundContent
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
msgId | string | true | none | Unique identifier provided for each message part |
sentDate | string | true | none | The time when the SMS was sent by the sending MSC (if available) or the time when the respective message was received by tyntec. |
sequenceNumber | integer(int32) | true | none | The sequenceNumber orders the respective message parts of an overlength message. |
price | number | false | none | The price per message from the respective network; negative prices represent payouts in favor of a tyntec’s customer. |
currency | string | false | none | The currency in which the pricing is given; corresponding to the currency of the invoice |
priceEffective | string | false | none | The date when the “price” became effective |
PhoneNumberEntity
{
"phoneNumber": "string",
"country": "string"
}
Phone number schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
phoneNumber | string | false | none | Phone number of the contact |
country | string | false | none | The country that the phone number is registered in |
PhoneProvisioningArrayResponse
{
"provisioningRequests": [
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
],
"size": 0
}
Phone provisioning array response schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
provisioningRequests | [PhoneProvisioningEntity] | false | none | [Phone provisioning schema] |
size | integer(int32) | false | none | none |
PhoneProvisioningEntity
{
"accountId": "string",
"contactId": "string",
"friendlyName": "string",
"requestId": "string",
"status": "string"
}
Phone provisioning schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accountId | string | false | none | The account that created this entry |
contactId | string | false | none | Contact ID of this entry |
friendlyName | string | false | none | Friendly name of this entry |
requestId | string | false | none | Request ID of this entry |
status | string | false | none | Status of this entry |
Problem
{
"type": "https://docs.tyntec.com/problems/DataNotParseable",
"title": "The given data were not parsable.",
"status": 400,
"detail": "Unexpected end-of-input: expected close marker for Object (start marker at [Source: UNKNOWN; line: -1, column: -1) at [Source: UNKNOWN; line: 1, column: 97]\n"
}
The problem object follows RFC-7807.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
type | string | false | none | The URI reference [RFC3986] that identifies the problem type |
title | string | false | none | Short, human-readable summary of the problem type |
status | number | false | none | The HTTP status code (RFC7231, Section 6) generated by the origin server for this occurrence of the problem |
detail | string | false | none | Human-readable explanation specific to this problem occurrence |
SmsMessage
{
"to": "+123456789",
"from": "tyntec",
"message": "Hello world!"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
to | string | true | none | Destination phone number in the international phone format E.164 |
from | string | true | none | This parameter provides identification of the sending party, which can either be a phone number in the international format or an alphanumeric identifier with up to 11 characters. Some destination networks impose restrictions on the sender ID format. Please check the coverage list and contact us for more information. |
message | string | true | none | The message will be sent with characters encoded either in the GSM standard alphabet (GSM-7) or GSM Unicode alphabet (UCS-2). - GSM standard alphabet GSM-7. Maximum length is 160 characters per a single message and 152 characters per a concatenated message. - GSM Unicode alphabet UCS-2. Maximum length is 70 characters per a single message and 66 characters per a concatenated message. tyntec automatically splits a sent message into concatenated messages if the message exceeds the given limits. These concatenated messages are unified by the handset once again and they are displayed as one message (if supported by the handset). tyntec will charge for each part of the concatenated message as for an individual message. |
encoding | string | false | none | Encoding selection between GSM7, UNICODE, or the default AUTO selection |
gateway | string | false | none | Which gateway to use for the message delivery |
conversion | boolean | false | none | Whether this message is subject to conversion ratio |
sendDateTime | string | false | none | Any future date in the format of “yyyy-MM-ddT-HH:mm:ss+HH:mm” ISO 8601; if not set, the message will be sent immediately. The default time zone is UTC. |
validity | string | false | none | Message validity in minutes |
reference | string | false | none | Customer reference attached to the Delivery Reports |
callbackUrl | string | false | none | Your URL for delivering the Delivery Reports; leave empty for no Delivery Report. |
callbackMethod | string | false | none | Your prefered HTTP method for the Delivery Report callback; possible values are POST/GET. |
partLimit | integer(int32) | false | none | Up to how many parts you allow this message can concatenated |
trate | number(double) | false | none | Controls the transcoding rate of the original message to GSM-7 compatible characters; this can be used to compress the message. |
mrate | number(double) | false | none | Controls the replacement rate of characters incompatible with GSM-7; they are replaced with '.'. |
upperCased | boolean | false | none | Whether you allow the transcoder to try an upper case version of the content in the case this improves the produced parts of the message |
keepEmojis | boolean | false | none | Whether you allow the transcoder to keep emojis |
flash | boolean | false | none | Whether this SMS will be delivered as flash; some networks do not support it. |
Enumerated values
Property | Value |
---|---|
encoding | AUTO |
encoding | GDM7 |
encoding | UNICODE |
callbackMethod | POST |
callbackMethod | GET |
ResponseEntity
{
"body": {},
"statusCode": "100",
"statusCodeValue": 0
}
Response schema
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
body | object | false | none | Short, human-readable summary of the response |
statusCode | string | false | none | Response ID |
statusCodeValue | integer(int32) | false | none | Response code value |
Enumerated values
Property | Value |
---|---|
statusCode | 100 |
statusCode | 101 |
statusCode | 102 |
statusCode | 103 |
statusCode | 200 |
statusCode | 201 |
statusCode | 202 |
statusCode | 203 |
statusCode | 204 |
statusCode | 205 |
statusCode | 206 |
statusCode | 207 |
statusCode | 208 |
statusCode | 226 |
statusCode | 300 |
statusCode | 301 |
statusCode | 302 |
statusCode | 303 |
statusCode | 304 |
statusCode | 305 |
statusCode | 307 |
statusCode | 308 |
statusCode | 400 |
statusCode | 401 |
statusCode | 402 |
statusCode | 403 |
statusCode | 404 |
statusCode | 405 |
statusCode | 406 |
statusCode | 407 |
statusCode | 408 |
statusCode | 409 |
statusCode | 410 |
statusCode | 411 |
statusCode | 412 |
statusCode | 413 |
statusCode | 414 |
statusCode | 415 |
statusCode | 416 |
statusCode | 417 |
statusCode | 418 |
statusCode | 419 |
statusCode | 420 |
statusCode | 421 |
statusCode | 422 |
statusCode | 423 |
statusCode | 424 |
statusCode | 426 |
statusCode | 428 |
statusCode | 429 |
statusCode | 431 |
statusCode | 451 |
statusCode | 500 |
statusCode | 501 |
statusCode | 502 |
statusCode | 503 |
statusCode | 504 |
statusCode | 505 |
statusCode | 506 |
statusCode | 507 |
statusCode | 508 |
statusCode | 509 |
statusCode | 510 |
statusCode | 511 |
RestMessagePart
{
"currency": "EUR",
"deliveryState": "string",
"doneDate": "string",
"errorCode": "string",
"partId": "string",
"price": "0.005",
"priceEffective": "2018-06-01T00:00:00+0200",
"statusText": "string"
}
The part of the message request that the message is split to
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
currency | string | false | none | The currency in which the pricing is given; it corresponds to the currency of the invoice. |
deliveryState | string | false | none | The delivery status of this specific part; possible values can be found here |
doneDate | string | false | none | The time stamp when the message was successfully delivered |
errorCode | string | false | none | The reason for an unsuccessful delivery attempt. GSM error codes |
partId | string | false | none | The identification number of the specific message part |
price | string | false | none | The price per message from the respective network; negative prices represent payouts in favor of a tyntec’s customer. |
priceEffective | string(date-time) | false | none | The date when the “price” became effective |
statusText | string | false | none | The first 20 characters of the sent message |
RestMessageResponse
{
"doneDate": "string",
"errorCode": "string",
"errorReason": "string",
"from": "+49123456789",
"href": "string",
"mccmnc": "string",
"parts": [
{
"currency": "EUR",
"deliveryState": "string",
"doneDate": "string",
"errorCode": "string",
"partId": "string",
"price": "0.005",
"priceEffective": "2018-06-01T00:00:00+0200",
"statusText": "string"
}
],
"overallPrice": "0.01",
"priceEffective": "2019-08-24T14:15:22Z",
"reference": "string",
"requestId": "e74db8d4-77ad-4671-8feb-9bc76b0df188",
"size": 1,
"status": "DELIVERED",
"submitDate": "2019-08-24T14:15:22Z",
"to": "+1987654321",
"ttid": 77292
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
doneDate | string | false | none | The time stamp when the message was successfully delivered |
errorCode | string | false | none | The error code. GSM error codes |
errorReason | string | false | none | The reason for an unsuccessful attempt. |
from | string | false | none | The phone number of the sending party in the international format if available |
href | string | false | none | The URL of the accepted message |
mccmnc | string | false | none | Representative IMSI prefix of the target network; the respective mapping can be found on http://mcc-mnc.com/. |
parts | [RestMessagePart] | false | none | [The part of the message request that the message is split to] |
overallPrice | string(string) | false | none | The overall sum of prices for all parts of this message |
priceEffective | string(date-time) | false | none | The date when the “price” became active |
reference | string | false | none | Custom reference that will mark the Delivery Report |
requestId | string | false | none | The unique identifier provided for each messaging request |
size | integer(int32) | false | none | The amount of respective concatenated SMS parts |
status | string | false | none | The message status; the values can be found can be found here |
submitDate | string(date-time) | false | none | The date when the message was sent out by tyntec for delivery |
to | string | false | none | Your number provided by tyntec that has received the respective message in international format |
ttid | string | false | none | The tyntec operator's ID |