NAV Navbar
Logo
cURL Python PHP Node Ruby Java C#

Introduction

Welcome

Welcome to the Synchroteam API!

Synchroteam’s data is not locked in. We understand that there exists a wide variety of situations where you will want to read data kept within synchroteam.com, or push data into it. We are happy to provide you with a complete REST API that will allow you to integrate Synchroteam.com with other systems.

If you use other systems to manage your customer information (CRM, Invoicing systems, etc.), you will not want to duplicate data between them and Synchroteam.com. By leveraging the data transparency provided by the REST API, you can exchange data between Synchroteam.com and other systems.

Conventions

The Synchroteam API is implemented over authenticated HTTP and returns data in JSON or XML format. Four HTTP methods are used: GET, POST, PUT and DELETE.

By manipulating the HTTP request headers, you can tell the Synchroteam API which format you want to use to send the request, and read the reponse.

Endpoint URL

Endpoint https://ws.synchroteam.com
Protocol HTTPS (TLS 1.2+)

Exchanging XML

To exchange data in XML you need tp include following HTTP headers:

Header Value
Content-Type text/xml
Accept text/xml

Exchanging JSON

To exchange data in JSON you need tp include following HTTP headers:

Header Value
Content-Type application/json
Accept application/json

Authentication

To authorize, use this code:

curl --request GET \
  --url https://ws.synchroteam.com/Api/v1 \
  --header 'authorization: Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw==' \
  --header 'cache-control: no-cache'
import requests

url = "https://ws.synchroteam.com/Api/v1/api_endpoint_here"

headers = {
    'authorization': "Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw==",
    'cache-control': "no-cache",
    }

response = requests.request("GET", url, headers=headers)

print(response.text)
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v1/api_endpoint_here",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "authorization: Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw=="
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v1/api_endpoint_here");

req.headers({
  "authorization": "Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw=="
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);
  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v1/api_endpoint_here")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw=='

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v1/api_endpoint_here")
  .header("authorization", "Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw==")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v1/api_endpoint_here");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic bXljb21wYW55OmZmOGU1YjYzLTBlNzQtNDEwMi1iYTkzLWM4MjlhY2ZiNThmMw==");
IRestResponse response = client.Execute(request);

The Synchroteam API is implemented over authenticated HTTP using Basic Authentication.

To connect using basic HTTP authentication, you will need both your personnalized domain identifier and your API key.

Synchroteam expects for the API key to be included in all API requests to the server. A basic HTTP authentication header looks like the following:

Authorization: Basic a2VlcG9uOjczNmYxMDFmLTE0ZTAtNDgzZC1iNzBlLWY4YjNjZjBmOGFmMQ==

This encoded portion is the base64 encoded representation of:

domain:api-key

Parameter Example Description
domain mycompany This is your domain identifier if your domain is https://mycompany.synchroteam.com
api-key ff8e5b63-0e74-4102-ba93-c829acfb58f3 Find this key under Configuration, Authentication Key

Activities

An Activity is represented by the following fields

Field Type Description
idActivity integer ID of the activity
nmActivity string Name of the activity
noteActivity string Note for the activity
dtStart date time Activity start date
dtEnd date time Activity end date
user object The id,login,first name,last name and team of the user

SEARCH Activities

POST Body

{
  "dateFrom":"2016-04-29",
  "dateTo":"2016-09-29",
  "loginUser":"Bill",
  "nameActivity":""
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Activities/Search \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "dateFrom":"2015-09-29",\r\n  "dateTo":"2016-09-29",\r\n  "loginUser":"Bill",\r\n  "nameActivity":""\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Activities/Search"

payload = "{\r\n  \"dateFrom\":\"2015-09-29\",\r\n  \"dateTo\":\"2016-09-29\",\r\n  \"loginUser\":\"Bill\",\r\n  \"nameActivity\":\"\"\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Activities/Search",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"dateFrom\":\"2015-09-29\",\r\n  \"dateTo\":\"2016-09-29\",\r\n  \"loginUser\":\"Bill\",\r\n  \"nameActivity\":\"\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));


$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Activities/Search");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "dateFrom": "2015-09-29",
  "dateTo": "2016-09-29",
  "loginUser": "Bill",
  "nameActivity": ""
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Activities/Search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"dateFrom\":\"2015-09-29\",\r\n  \"dateTo\":\"2016-09-29\",\r\n  \"loginUser\":\"Bill\",\r\n  \"nameActivity\":\"\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Activities/Search")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"dateFrom\":\"2015-09-29\",\r\n  \"dateTo\":\"2016-09-29\",\r\n  \"loginUser\":\"Bill\",\r\n  \"nameActivity\":\"\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Activities/Search");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"dateFrom\":\"2015-09-29\",\r\n  \"dateTo\":\"2016-09-29\",\r\n  \"loginUser\":\"Bill\",\r\n  \"nameActivity\":\"\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
  {
    "dtEnd": "2016-06-06 00:00",
    "dtStart": "2016-06-01 00:00",
    "idActivity": 119,
    "nmActivity": "Cleaner ",
    "noteActivity": "",
    "user": {
      "Groups": "",
      "fisrtName": "corger",
      "id": 268,
      "lastName": "Bill",
      "login": "Bill"
    }
  },
  {
    "dtEnd": "2016-08-22 00:00",
    "dtStart": "2016-08-01 00:00",
    "idActivity": 120,
    "nmActivity": "Holiday",
    "noteActivity": "",
    "user": {
      "Groups": "",
      "fisrtName": "corger",
      "id": 268,
      "lastName": "Bill",
      "login": "Bill"
    }
  },
  {
    "dtEnd": "2016-07-06 00:00",
    "dtStart": "2016-07-04 00:00",
    "idActivity": 121,
    "nmActivity": "Sickness",
    "noteActivity": "",
    "user": {
      "Groups": "",
      "fisrtName": "corger",
      "id": 268,
      "lastName": "Bill",
      "login": "Bill"
    }
  }
]

HTTP Request

POST /Api/v2/Activities/Search

Query Parameters

None

Request body

Available Filters :

Filter Type Description
dateFrom date time
(yyyy-mm-dd)
Get the list of activities created on or after dateFrom.
dateTo date time
(yyyy-mm-dd)
Get the list of activities created on or before dateTo.
loginUser string Get the list of activities for loginUser.
name string Get activities by name

Response body

A list of activities.

Activity type

An activity type is represented by the following fields

Field Type Description
id integer ID of the activity type
name string Name of the activity type
color string Color of the activity type
hasConflit boolean Indicates if the activity type can raise scheduling conflicts

SEND Activity type

Create or update the activity type.

POST Body

{

  "id":"2541",
  "name":"Type activity 8",
  "color": "887788",
  "hasConflit":"true"
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/V2/ActivityType/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "color": "887788",\r\n  "name":"Type activity 8",\r\n  "hasConflit":"true",\r\n  "id":""\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/V2/ActivityType/Send"

payload = "{\r\n  \"color\": \"887788\",\r\n  \"name\":\"Type activity 8\",\r\n  \"hasConflit\":\"true\",\r\n  \"id\":\"\"\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/V2/ActivityType/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"color\": \"887788\",\r\n  \"name\":\"Type activity 8\",\r\n  \"hasConflit\":\"true\",\r\n  \"id\":\"\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/V2/ActivityType/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "color": "887788",
  "name": "Type activity 8",
  "hasConflit": "true",
  "id": ""
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/V2/ActivityType/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"color\": \"887788\",\r\n  \"name\":\"Type activity 8\",\r\n  \"hasConflit\":\"true\",\r\n  \"id\":\"\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/V2/ActivityType/Send")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"color\": \"887788\",\r\n  \"name\":\"Type activity 8\",\r\n  \"hasConflit\":\"true\",\r\n  \"id\":\"\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/V2/ActivityType/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"color\": \"887788\",\r\n  \"name\":\"Type activity 8\",\r\n  \"hasConflit\":\"true\",\r\n  \"id\":\"\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1,
  "data": {
    "color": "887788",
    "hasConflit": true,
    "id": 84,
    "name": "Type activity 8"
  },
  "msg": ""
}

HTTP Request

POST /Api/V2/ActivityType/Send

Request body

Activity type information in JSON or XML format, if the id or name exists, the activity type will be updated. If not the activity type will be created.

Response body

On success, the Activity Type data members are returned. On error, the msg field contains the error message.

SEARCH Activity type

POST Body

{
  "color": "777777",
  "name":"Type activitdy 7",
  "hasConflit":"",
  "id":""
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/V2/ActivityType/Search \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "color": "777777",\r\n  "name":"Type activitdy 7",\r\n  "hasConflit":"",\r\n  "id":""\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/V2/ActivityType/Search"

payload = "{\r\n  \"color\": \"777777\",\r\n  \"name\":\"Type activitdy 7\",\r\n  \"hasConflit\":\"\",\r\n  \"id\":\"\"\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/V2/ActivityType/Search",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"color\": \"777777\",\r\n  \"name\":\"Type activitdy 7\",\r\n  \"hasConflit\":\"\",\r\n  \"id\":\"\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/V2/ActivityType/Search");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "color": "777777",
  "name": "Type activitdy 7",
  "hasConflit": "",
  "id": ""
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/V2/ActivityType/Search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"color\": \"777777\",\r\n  \"name\":\"Type activitdy 7\",\r\n  \"hasConflit\":\"\",\r\n  \"id\":\"\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/V2/ActivityType/Search")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"color\": \"777777\",\r\n  \"name\":\"Type activitdy 7\",\r\n  \"hasConflit\":\"\",\r\n  \"id\":\"\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/V2/ActivityType/Search");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"color\": \"777777\",\r\n  \"name\":\"Type activitdy 7\",\r\n  \"hasConflit\":\"\",\r\n  \"id\":\"\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
  {
    "color": "777777",
    "hasConflit": true,
    "id": 83,
    "name": "Type activity 8"
  },
  {
    "color": "777777",
    "hasConflit": true,
    "id": 84,
    "name": "Type activity 10"
  },
  {
    "color": "777777",
    "hasConflit": true,
    "id": 85,
    "name": "Type activity 9"
  },
  {
    "color": "777777",
    "hasConflit": true,
    "id": 86,
    "name": "Type activity 11"
  }
]

HTTP Request

POST /Api/v2/ActivityType/Search

Query Parameters

None

Request body

Filters available :

Filter Type Description
id integer ID of the type activity
color string Color of the type activity
name string Name of the type activity
hasConflit boolean true/false

Response body

List of activity types

DELETE Activity type

POST Body

{
  "name":"",
  "id":"56555"
}

Sample Code

curl --request DELETE \
  --url https://ws.synchroteam.com/Api/V2/ActivityType/Delete \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "name":"",\r\n  "id":"56555"\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/V2/ActivityType/Delete"

payload = "{\r\n  \"name\":\"\",\r\n  \"id\":\"56555\"\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("DELETE", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/V2/ActivityType/Delete",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "{\r\n  \"name\":\"\",\r\n  \"id\":\"56555\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("DELETE", "https://ws.synchroteam.com/Api/V2/ActivityType/Delete");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "name": "",
  "id": "56555"
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/V2/ActivityType/Delete")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"name\":\"\",\r\n  \"id\":\"56555\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.delete("https://ws.synchroteam.com/Api/V2/ActivityType/Delete")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"name\":\"\",\r\n  \"id\":\"56555\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/V2/ActivityType/Delete");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"name\":\"\",\r\n  \"id\":\"56555\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned


{
  "code": 0,
  "msg": "The element to be deleted does not exist"
}

HTTP Request

DELETE /Api/v2/ActivityType/Delete

Query Parameters

none

Response body

On success, The number of deleted activity types is shown in the code field response. On error, the msg parameter will state that the activity type has not deleted.

Attachments

SEND Attachment

POST Body

{
    "job":{
        "id":"265_160627143211768",
        "myId":"",
        "num" : ""
    },
    "customer":{
        "id":"",
        "myId":""
    },
    "fileName":"data5.csv",
    "fileData":[Base64String]

}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Attachments/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n    "job":{\r\n        "id":"265_160627143211768",\r\n        "myId":"",\r\n        "num" : ""\r\n    },\r\n    "customer":{\r\n        "id":"",\r\n        "myId":""\r\n    },\r\n    "fileName":"data51.csv",\r\n    "fileData":"Base64String"\r\n\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Attachments/Send"

payload = "{\r\n    \"job\":{\r\n        \"id\":\"265_160627143211768\",\r\n        \"myId\":\"\",\r\n        \"num\" : \"\"\r\n    },\r\n    \"customer\":{\r\n        \"id\":\"\",\r\n        \"myId\":\"\"\r\n    },\r\n    \"fileName\":\"data51.csv\",\r\n    \"fileData\":\"Base64String\"\r\n\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Attachments/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n    \"job\":{\r\n        \"id\":\"265_160627143211768\",\r\n        \"myId\":\"\",\r\n        \"num\" : \"\"\r\n    },\r\n    \"customer\":{\r\n        \"id\":\"\",\r\n        \"myId\":\"\"\r\n    },\r\n    \"fileName\":\"data51.csv\",\r\n    \"fileData\":\"Base64String\"\r\n\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Attachments/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "job": {
    "id": "265_160627143211768",
    "myId": "",
    "num": ""
  },
  "customer": {
    "id": "",
    "myId": ""
  },
  "fileName": "data51.csv",
  "fileData": "Base64String"
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Attachments/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n    \"job\":{\r\n        \"id\":\"265_160627143211768\",\r\n        \"myId\":\"\",\r\n        \"num\" : \"\"\r\n    },\r\n    \"customer\":{\r\n        \"id\":\"\",\r\n        \"myId\":\"\"\r\n    },\r\n    \"fileName\":\"data51.csv\",\r\n    \"fileData\":\"Base64String\"\r\n\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Attachments/Send")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n    \"job\":{\r\n        \"id\":\"265_160627143211768\",\r\n        \"myId\":\"\",\r\n        \"num\" : \"\"\r\n    },\r\n    \"customer\":{\r\n        \"id\":\"\",\r\n        \"myId\":\"\"\r\n    },\r\n    \"fileName\":\"data51.csv\",\r\n    \"fileData\":\"Base64String\"\r\n\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Attachments/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n    \"job\":{\r\n        \"id\":\"265_160627143211768\",\r\n        \"myId\":\"\",\r\n        \"num\" : \"\"\r\n    },\r\n    \"customer\":{\r\n        \"id\":\"\",\r\n        \"myId\":\"\"\r\n    },\r\n    \"fileName\":\"data51.csv\",\r\n    \"fileData\":\"Base64String\"\r\n\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "data": {
    "id": "297",
    "url": url
  },
  "msg": [],
  "result": "1"
}

HTTP Request

POST /Api/v2/Attachments/Send

Query Parameters

None

Request body

The attachment information:

Field Type Description
fileName string Name of the attachment
fileData string File data encoded as a Base64String
job object id, myId and num for the job
customer object id and myId for the customer

Response body

The id and url of the attachment, or an error message.

Blocks

A block is represented by the following fields

Field Type Description
id int ID of the block
name string Name of the block
flPublished int Defines if the block is published (1) or not (0).
flShared int Defines if the block is shared (1) or not (0).
items list of items List of every item in the block.

List shared blocks

Sample Code

curl --request GET \
  --url https://ws.synchroteam.com/Api/v2/SharedBlocks/List \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
import requests

url = "https://ws.synchroteam.com/Api/v2/SharedBlocks/List"

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/SharedBlocks/List",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/SharedBlocks/List");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/SharedBlocks/List")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/SharedBlocks/List")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/SharedBlocks/List");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[
  {
    "flPublished": true,
    "flShared": true,
    "id": 1169,
    "items": [
      {
        "conditionItem": null,
        "conditionValue": null,
        "positionNumber": 0,
        "valueList": null,
        "idCategory": 1169,
        "idItem": 3421,
        "idTypeItem": 7,
        "mandatory": false,
        "name": "Signature"
      },
      {
        "conditionItem": null,
        "conditionValue": null,
        "positionNumber": 1,
        "valueList": null,
        "idCategory": 1169,
        "idItem": 3422,
        "idTypeItem": 2,
        "mandatory": false,
        "name": "Print Name"
      },
      {
        "conditionItem": null,
        "conditionValue": null,
        "positionNumber": 2,
        "valueList": null,
        "idCategory": 1169,
        "idItem": 3423,
        "idTypeItem": 2,
        "mandatory": false,
        "name": "Position"
      },
      {
        "conditionItem": null,
        "conditionValue": null,
        "positionNumber": 3,
        "valueList": null,
        "idCategory": 1169,
        "idItem": 3424,
        "idTypeItem": 3,
        "mandatory": false,
        "name": "Date"
      }
    ],
    "name": "Sign Off"
  },
  ...
]

HTTP Request

GET /Api/v2/SharedBlocks/List

Query Parameters

None

Request body

None

Response body

The list of blocks.

Block Items

An item is represented by the following fields

Field Type Description
idItem int ID of the item
name string Name of the item
idCategory int ID of the block
positionNumber int Position of the item in the block
conditionItem int idItem of the item the current item depends on. O if it does not depend on another
conditionValue string Value held in conditionItem for the current item to be shown
idTypeItem fixed integer Type of the item (0 [compliance], 1 [list of values], 2 [Text], 3 [Date], 4 [Time], 5 [Numeric], 7 [Signature], 8 [Picture])
valueList string List of every possible value if the item is of type list.
mandatory boolean Indicates if the item is mandatory.
{
  "conditionItem": 3736,
  "conditionValue": "2",
  "positionNumber": 1,
  "valueList": [
    "ref-2",
    "ref-4",
    "ref-6"
  ],
  "idCategory": 1225,
  "idItem": 3737,
  "idTypeItem": 1,
  "mandatory": false,
  "name": "code article"
}

Customers

A customer is represented by the following fields

Field Type Description
id integer id of the customer (read only)
name string Name of the customer
myId string Your customer reference number for this customer
address string Address of the customer
addressComplement string Additional address information
adressStreet string Street address of the customer
adressZIP string Zip code of the customer
adressCity string City address of the customer
adressProvince string Province address of the customer
adressCountry string Country address of the customer
contactName string Contact last name
contactFirstName string Contact first name
contactPhone string Contact phone number
contactMobile string Contact mobile number
contactEmail string Contact email address
contactFax string Contact fax number
sites list List of sites for this customer. (optional)
equipments list List of pieces of equipment for this customer. (optional)
customFieldValues list List of custom field values for this customer. (optional)
position position Position associated with the job. (optional)
tags list(string) List of tags for this customer. (optional)

GET Customer

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Customer/Details?id=35604' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Customer/Details"

querystring = {"id":"35604"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Customer/Details?id=35604",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Customer/Details");

req.query({
  "id": "35604"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Customer/Details?id=35604")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Customer/Details?id=35604")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Customer/Details?id=35604");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
    "id":35604,
    "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
    "addressComplement": "United States",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Virginia",
    "adressStreet": "6605 Fisher Avenue",
    "adressZIP": "22046",
    "contactEmail": "customer@synchroteam.com",
    "contactFirstName": "Jean",
    "contactFax": "(719) 388-1967",
    "contactPhone":"(719) 388-1966",
    "contactName": "Claud",
    "myId":"sCustomer08",
    "name": "Sample Customer",
    "customFieldValues":[customfieldvalue1,...],
    "position":{Position},
    "tags" : ["plumber","restaurant","test"]
}

HTTP Request

GET /Api/v2/Customer/Details?{paramType}={paramValue}

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId or email
{paramValue} string The name or the id or myId or email for the customer

Request body

none

Response body

Customer details

SEND Customer

Create or update a customer

POST Body

{
  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
  "addressComplement": "qsfqsfq",
  "contactEmail": "customer@synchroteam.com",
  "contactFirstName": "Jean",
  "contactFax": "(719) 388-1967",
  "contactPhone":"(719) 388-1966",
  "contactName": "Claud",
  "myId":"sCustomer08",
  "name": "Sample Customer",
  "customFieldValues":[customfieldvalue1,...],
  "position":{Position},
  "tags" : ["plumber","restaurant","test"]
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Customer/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\n  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",\n  "addressComplement": "qsfqsfq",\n  "contactEmail": "customer@synchroteam.com",\n  "contactFirstName": "Jean",\n  "contactFax": "(719) 388-1967",\n  "contactPhone":"(719) 388-1966",\n  "contactName": "Claud",\n  "myId":"sCustomer08",\n  "name": "Sample Customer ",\n  "tags" : ["plumber","restaurant","test"]\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Customer/Send"

payload = "{\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\n  \"addressComplement\": \"qsfqsfq\",\n  \"contactEmail\": \"customer@synchroteam.com\",\n  \"contactFirstName\": \"Jean\",\n  \"contactFax\": \"(719) 388-1967\",\n  \"contactPhone\":\"(719) 388-1966\",\n  \"contactName\": \"Claud\",\n  \"myId\":\"sCustomer08\",\n  \"name\": \"Sample Customer \",\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Customer/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\n  \"addressComplement\": \"qsfqsfq\",\n  \"contactEmail\": \"customer@synchroteam.com\",\n  \"contactFirstName\": \"Jean\",\n  \"contactFax\": \"(719) 388-1967\",\n  \"contactPhone\":\"(719) 388-1966\",\n  \"contactName\": \"Claud\",\n  \"myId\":\"sCustomer08\",\n  \"name\": \"Sample Customer \",\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Customer/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
  "addressComplement": "qsfqsfq",
  "contactEmail": "customer@synchroteam.com",
  "contactFirstName": "Jean",
  "contactFax": "(719) 388-1967",
  "contactPhone": "(719) 388-1966",
  "contactName": "Claud",
  "myId": "sCustomer08",
  "name": "Sample Customer ",
  "tags" : ["plumber","restaurant","test"]
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Customer/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\n  \"addressComplement\": \"qsfqsfq\",\n  \"contactEmail\": \"customer@synchroteam.com\",\n  \"contactFirstName\": \"Jean\",\n  \"contactFax\": \"(719) 388-1967\",\n  \"contactPhone\":\"(719) 388-1966\",\n  \"contactName\": \"Claud\",\n  \"myId\":\"sCustomer08\",\n  \"name\": \"Sample Customer \",\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Customer/Send")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\n  \"addressComplement\": \"qsfqsfq\",\n  \"contactEmail\": \"customer@synchroteam.com\",\n  \"contactFirstName\": \"Jean\",\n  \"contactFax\": \"(719) 388-1967\",\n  \"contactPhone\":\"(719) 388-1966\",\n  \"contactName\": \"Claud\",\n  \"myId\":\"sCustomer08\",\n  \"name\": \"Sample Customer \",\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Customer/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\n  \"addressComplement\": \"qsfqsfq\",\n  \"contactEmail\": \"customer@synchroteam.com\",\n  \"contactFirstName\": \"Jean\",\n  \"contactFax\": \"(719) 388-1967\",\n  \"contactPhone\":\"(719) 388-1966\",\n  \"contactName\": \"Claud\",\n  \"myId\":\"sCustomer08\",\n  \"Name\": \"Sample Customer \",\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 35642,
  "message": ""
}

HTTP Request

POST /Api/v2/Customer/Send

Parameters

None

Request Body

Customer information in JSON or XML format, if the id or myId exist, the customer will be updated, if not the customer will be created.

Response Body

The response contains the id of the new customer created or updated by this action. This value is in the code field of the response

If there is an error, a message is returned in message field.

DELETE Customer

curl --request DELETE \
  --url 'https://ws.synchroteam.com/Api/v2/Customer/Delete?name=HAMILTON%20ASSET%20MANAGEMENT' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
import requests

url = "https://ws.synchroteam.com/Api/v2/Customer/Delete"

querystring = {"name":"HAMILTON ASSET MANAGEMENT"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("DELETE", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Customer/Delete?name=HAMILTON%20ASSET%20MANAGEMENT",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("DELETE", "https://ws.synchroteam.com/Api/v2/Customer/Delete");

req.query({
  "name": "HAMILTON ASSET MANAGEMENT"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Customer/Delete?name=HAMILTON%20ASSET%20MANAGEMENT")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.delete("https://ws.synchroteam.com/Api/v2/Customer/Delete?name=HAMILTON%20ASSET%20MANAGEMENT")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Customer/Delete?name=HAMILTON%20ASSET%20MANAGEMENT");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code":1
}

HTTP Request

DELETE /Api/v2/Customer/Delete?{paramType}={paramValue}

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId
{paramValue} string The name or the id or the myId of the customer

Request body

none

Response body

The response contains the number of customers deleted by this action (0 or more). This value is in the code field of the response. If you ask for deletion of customers with a given name and there is more than one customer using this name, every customer whose name is given as a parameter will be deleted.

LIST Customers

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Customer/List?ChangedFrom=2016-11-02' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
import requests

url = "https://ws.synchroteam.com/Api/v2/Customer/List"

querystring = {"ChangedFrom":"2016-11-02"}

headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Customer/List?ChangedFrom=2016-11-02",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Customer/List");

req.query({
  "ChangedFrom": "2016-11-02"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Customer/List?ChangedFrom=2016-11-02")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Customer/List?ChangedFrom=2016-11-02")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Customer/List?ChangedFrom=2016-11-02");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[{
    "id":35604,
    "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
    "addressComplement": "United States",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Virginia",
    "adressStreet": "6605 Fisher Avenue",
    "adressZIP": "22046",
    "contactEmail": "customer@synchroteam.com",
    "contactFirstName": "Jean",
    "contactFax": "(719) 388-1967",
    "contactPhone":"(719) 388-1966",
    "contactName": "Claude",
    "myId":"sCustomer08",
    "name": "Sample Customer",
    "position": {
        "Latitude": "38.8998214",
        "Longitude": "-77.1791373"
    }
},
{  
    "id":35605,
    "address": "8867 Grand Ave, Beulah, CO 81023",
    "addressComplement": "",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Beulah",
    "adressStreet": "8867 Grand Ave",
    "adressZIP": "81023",
    "contactEmail": "customer2@synchroteam.com",
    "contactFirstName": "Jean",
    "contactFax": "(719) 485-3193",
    "contactPhone":"(719) 485-3195",
    "contactName": "Bargan",
    "myId":"sCustomer10",
    "name": "US Post Office",
    "position": {
        "Latitude": "38.0752884",
        "Longitude": "-104.9868629"
    }
  }]

HTTP Request

GET /Api/v2/Customer/List

Query Parameters

Parameter Default Description
{ChangedFrom} date time
(yyyy-mm-dd)
The date of the older modification checked.

Request body

none

Response body

Customer List without custom Fields

Custom field values

DESCRIPTION

There can be any number of different custom field values associated with jobs, users, customers, sites, equipment. A representation of a custom field value has the following fields :

Field Type Description
id integer ID of the custom field (read only)
name string Name of the custom field.
value string Value of the custom field for the associated object.
{
  "id":"2",
  "name":"Equipment Serial Number",
  "value":"125FTD47842"
}

Send Custom Field

Update the custom fields value of a Job.

POST Body

{
    "CustomFieldValues": [
        {
          "id": "182",
          "Value": "contact@mail.com"
        },
        {
          "name":"Serial Number",
          "Value": "1254FR54"
        }
    ],
    "Job":
        {
            "id":"0c0ae477-fc89-4ef1-8797-2f0155f612f35",
            "myId":"",
            "num":""
        }
}

Sample Code

curl --request POST \
  --url http://api.localhost.com/Api/v2/CustomField/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n    "CustomFieldValues": [\r\n        {\r\n          "id": "182",\r\n          "Value": "contact@mail.com"\r\n        },\r\n        {\r\n          "name":"Serial Number",\r\n          "Value": "1254FR54"\r\n        }\r\n    ],\r\n    "Job":\r\n        {\r\n            "id":"0c0ae477-fc89-4ef1-8797-2f0155f612f35",\r\n            "myId":"",\r\n            "num":""\r\n        }\r\n}'
import requests

url = "http://api.localhost.com/Api/v2/CustomField/Send"

payload = "{\r\n    \"CustomFieldValues\": [\r\n        {\r\n          \"id\": \"182\",\r\n          \"Value\": \"contact@mail.com\"\r\n        },\r\n        {\r\n          \"name\":\"Serial Number\",\r\n          \"Value\": \"1254FR54\"\r\n        }\r\n    ],\r\n    \"Job\":\r\n        {\r\n            \"id\":\"0c0ae477-fc89-4ef1-8797-2f0155f612f35\",\r\n            \"myId\":\"\",\r\n            \"num\":\"\"\r\n        }\r\n}"
headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.localhost.com/Api/v2/CustomField/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n    \"CustomFieldValues\": [\r\n        {\r\n          \"id\": \"182\",\r\n          \"Value\": \"contact@mail.com\"\r\n        },\r\n        {\r\n          \"name\":\"Serial Number\",\r\n          \"Value\": \"1254FR54\"\r\n        }\r\n    ],\r\n    \"Job\":\r\n        {\r\n            \"id\":\"0c0ae477-fc89-4ef1-8797-2f0155f612f35\",\r\n            \"myId\":\"\",\r\n            \"num\":\"\"\r\n        }\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "http://api.localhost.com/Api/v2/CustomField/Send");

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});

req.type("json");
req.send({
  "CustomFieldValues": [
    {
      "id": "182",
      "Value": "contact@mail.com"
    },
    {
      "name": "Serial Number",
      "Value": "1254FR54"
    }
  ],
  "Job": {
    "id": "0c0ae477-fc89-4ef1-8797-2f0155f612f35",
    "myId": "",
    "num": ""
  }
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("http://api.localhost.com/Api/v2/CustomField/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'
request.body = "{\r\n    \"CustomFieldValues\": [\r\n        {\r\n          \"id\": \"182\",\r\n          \"Value\": \"contact@mail.com\"\r\n        },\r\n        {\r\n          \"name\":\"Serial Number\",\r\n          \"Value\": \"1254FR54\"\r\n        }\r\n    ],\r\n    \"Job\":\r\n        {\r\n            \"id\":\"0c0ae477-fc89-4ef1-8797-2f0155f612f35\",\r\n            \"myId\":\"\",\r\n            \"num\":\"\"\r\n        }\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("http://api.localhost.com/Api/v2/CustomField/Send")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .body("{\r\n    \"CustomFieldValues\": [\r\n        {\r\n          \"id\": \"182\",\r\n          \"Value\": \"contact@mail.com\"\r\n        },\r\n        {\r\n          \"name\":\"Serial Number\",\r\n          \"Value\": \"1254FR54\"\r\n        }\r\n    ],\r\n    \"Job\":\r\n        {\r\n            \"id\":\"0c0ae477-fc89-4ef1-8797-2f0155f612f35\",\r\n            \"myId\":\"\",\r\n            \"num\":\"\"\r\n        }\r\n}")
  .asString();
var client = new RestClient("http://api.localhost.com/Api/v2/CustomField/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddParameter("application/json", "{\r\n    \"CustomFieldValues\": [\r\n        {\r\n          \"id\": \"182\",\r\n          \"Value\": \"contact@mail.com\"\r\n        },\r\n        {\r\n          \"name\":\"Serial Number\",\r\n          \"Value\": \"1254FR54\"\r\n        }\r\n    ],\r\n    \"Job\":\r\n        {\r\n            \"id\":\"0c0ae477-fc89-4ef1-8797-2f0155f612f35\",\r\n            \"myId\":\"\",\r\n            \"num\":\"\"\r\n        }\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1,
  "message": ""
}

HTTP Request

POST /Api/v2/CustomField/Send

Parameters

None

Request Body

Job id or myId or num, and list of Custom field values in JSON or XML format, if the job exist, the custom fields will be updated.

Response Body

The response contains 1 in the code field of the response if the custom fields updated

If there is an error, a message is returned in message field.

Equipment

An equipment is represented by the following fields

Field Type Description
id integer ID of the equipment (read only)
myId string Your custom reference number for this piece of equipment
name string Name of the piece of equipment
customerName string Name of the customer
customerId integer Customer ID
customerMyId string Your customer reference number for this customer
siteName string Name of the site
siteId integer ID of the site
siteMyId string Your custom reference number for the site
customFieldValues list List of custom field values for your equipment. (optional)
tags list(string) List of tags for this piece of equipment. (optional)

GET Equipment

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Equipment/Details?id=93971' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Equipment/Details"

querystring = {"id":"93971"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Equipment/Details?id=93971",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Equipment/Details");

req.query({
  "id": "93971"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Equipment/Details?id=93971")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Equipment/Details?id=93971")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Equipment/Details?id=93971");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
 "id":93971,
 "myId":"ref-2541",
 "name":"Heater 2345",
 "customerName":"World Inc.",
 "customerId": 2541,
 "customerMyId": "ref-54",
 "siteName":"New York Office",
 "siteId": 14587,
 "siteMyId": "",
 "customFieldValues":[customfieldvalue1,...],
 "tags" : ["plumber","restaurant","test"]
}

HTTP Request

GET /Api/v2/Equipment/Details

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId
{paramValue} string The name or the id of the equipment

Request body

none

Response body

A Description of the Equipment asked for.

SEND Equipment

POST Body

{
 "myId":"ref-2542",
 "name":"Heater 2345",
 "customerId": 35551,
 "siteId": 62649,
 "customFieldValues":[customfieldvalue1,...],
 "tags" : ["plumber","restaurant","test"]
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Equipment/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
  --data '{\r\n "myId":"ref-2542",\r\n "name":"Heater 2345",\r\n "customerId": 35551,\r\n "siteId": 62649,\r\n  "tags" : ["plumber","restaurant","test"]\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Equipment/Send"

payload = "{\r\n \"myId\":\"ref-2542\",\r\n \"name\":\"Heater 2345\",\r\n \"customerId\": 35551,\r\n \"siteId\": 62649,\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Equipment/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n \"myId\":\"ref-2542\",\r\n \"name\":\"Heater 2345\",\r\n \"customerId\": 35551,\r\n \"siteId\": 62649,\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Equipment/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "myId": "ref-2542",
  "name": "Heater 2345",
  "customerId": 35551,
  "siteId": 62649,
  "tags" : ["plumber","restaurant","test"]
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Equipment/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n \"myId\":\"ref-2542\",\r\n \"name\":\"Heater 2345\",\r\n \"customerId\": 35551,\r\n \"siteId\": 62649,\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Equipment/Send")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n \"myId\":\"ref-2542\",\r\n \"name\":\"Heater 2345\",\r\n \"customerId\": 35551,\r\n \"siteId\": 62649,\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Equipment/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n \"myId\":\"ref-2542\",\r\n \"name\":\"Heater 2345\",\r\n \"customerId\": 35551,\r\n \"siteId\": 62649,\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 93972,
  "message": ""
}

HTTP Request

POST /Api/v2/Equipment/Send

Request Body

Data for a piece of equipment in JSON or XML format. If the id or myId exist, the piece of equipment will be updated, if not the piece of equipment will be created.

Response Body

The response contains id of the new piece of equipment created or updated by this action. This value is in the code field of the response.

If there is an error, a message is returned in message field.

DELETE Equipment

curl --request DELETE \
  --url 'https://ws.synchroteam.com/Api/v2/Equipment/Delete?id=939721' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Equipment/Delete"

querystring = {"id":"939721"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("DELETE", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Equipment/Delete?id=939721",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("DELETE", "https://ws.synchroteam.com/Api/v2/Equipment/Delete");

req.query({
  "id": "939721"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Equipment/Delete?id=939721")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.delete("https://ws.synchroteam.com/Api/v2/Equipment/Delete?id=939721")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Equipment/Delete?id=939721");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code":1
}

HTTP Request

DELETE /Api/v2/Equipment/Delete

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId
{paramValue} string The name or id or myId of the piece of equipment

Request body

none

Response body

The number of deleted pieces of equipment.

GET Equipment list By Customer and Site

curl --request GET \
  --url https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706 \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706"

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Equipment/List/Customer/8248/Site/47706");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[[
  {
    "customerId": 8248,
    "customerMyId": "cust-05",
    "customerName": "testFullSite",
    "myId": "ref-e-01",
    "name": "test equi1",
    "siteId": 47706,
    "siteMyId": "ref-01",
    "siteName": "testSite",
    "id": 93973
  },
  {
    "customerId": 8248,
    "customerMyId": "cust-05",
    "customerName": "testFullSite",
    "myId": "ref-e-02",
    "name": "test equip2",
    "siteId": 47706,
    "siteMyId": "ref-01",
    "siteName": "testSite",
    "id": 93974
  }
]...
]

HTTP Request

GET /Api/v2/Equipment/List/Customer/{CustomerName}/Site/{siteName}

Query Parameters

Parameter Default Description
{paramValue} string The id or name of the customer
{paramValue} string The id or name of the site

Request body

none

Response body

Equipment list associated with the customer and the site given as parameters.

Jobs

A job is represented by the following fields

Field Type Description
idJob string ID of the job (read only)
myId string Your custom reference number for this job
num integer Number of the job
idJobType integer Job Type ID
idCustomer integer Customer ID
customerMyId string Customer’s myId
customerName string Customer Name
idSite integer Site ID (optional)
siteMyId string Site’s myId (optional)
siteName string Site Name (optional)
idEquipment integer Equipment ID (optional)
equipmentMyId string Equipment’s myId(optional)
nameEquipment string Equipment Name (optional)
idUser integer Technician’s User ID
login string Technician’s Login
idCreator integer ID of the manager who created the job
description string Job Description
priority fixed Job priority (0 [low],1 [medium], 2[high])
scheduledBeginDate date time Schedule Start Date
scheduledEndDate date time Scheduled End Date
realBeginDate date time Actual Start Date
realEndDate date time Actual End Date
validationDate date time Date the job was validated
duration integer Time spent working on the job, given in minutes
globalAddress string Job address
complementAddress string Additional address information
adressStreet string Job Street address
adressZIP string Job Zip code
adressCity string Job City address
adressProvince string Job Province address
adressCountry string Job Country address
status integer Job Status (0 [created], 1 [scheduled], 2 [synchronized to mobile], 3 [started] , 4 [suspended/paused], 5 [completed], 6 [validated], 7 [canceled])
validationUser integer User ID of the person that validated the job
idReport integer Job Report Type ID
contactName string Contact Last Name
contactFirstName string Contact First Name
contactPhone string Contact Phone Number
contactMobile string Contact Mobile Number
contactEmail string Contact Email Address
publicLink string Public link of the job
report report Report details, as filled by the technician
partsList list List of parts consumed for the job
otherTechnicians array of strings Other technicians associated with this job
customFieldValues list List of custom field values for your job
position A Position Position associated with the job
tags list(string) List of tags for this job. (optional)

GET Job Detail

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Jobs/Detail?id=265_160719144323649' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Detail"

querystring = {"id":"265_160719144323649"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Detail?id=265_160719144323649",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Jobs/Detail");

req.query({
  "id": "265_160719144323649"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Detail?id=265_160719144323649")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Jobs/Detail?id=265_160719144323649")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Detail?id=265_160719144323649");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "scheduledBeginDate": "19/07/2016 14:43:00",
  "scheduledEndDate": "19/07/2016 16:43:00",
  "RealBeginDate": "19/07/2016 14:50:00",
  "RealEndDate": "19/07/2016 16:16:00",
  "siteName": "new site name",
  "customerMyId": "ref_54154",
  "description": "description of the job",
  "idCreator": 265,
  "idCustomer": 8386,
  "idEquipment": 93929,
  "idJob": "265_160719144323649",
  "idJobType": 629,
  "idReport": 781,
  "idSite": 62611,
  "idUser": 1551,
  "login": "techtest",
  "nameEquipment": "equipement v1",
  "priority": 0,
  "ContactPhone": "+12125875967",
  "contactMobile": "+19293358480",
  "publicLink": "https://synchroteam.com/Jobs/PublicJob/afb5853-3ec6-46ea-bc9c-db4e75a63bc2",
  "status": 1,
  "Activities": [
        {
            "idUser": 1551,
            "login": "techtest",
            "start": "19/07/2016 14:50:00",
            "stop": "19/07/2016 14:56:00"
        },
        {
            "idUser": 1551,
            "login": "techtest",
            "start": "19/07/2016 15:05:00",
            "stop": "19/07/2016 15:46:00"
        },
        {
            "idUser": 1551,
            "login": "techtest",
            "start": "19/07/2016 15:58:00",
            "stop": "19/07/2016 16:16:00"
        }
  ],
  "customFieldValues": [
    {
      "name": "sector",
      "value": "",
      "id": 182
    },
    {
      "name": "city",
      "value": "",
      "id": 185
    }....
  ],
  "customerName": "name customer",
  "duration": 0,
  "globalAddress": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
  "adressCity": "Falls Church",
  "adressCountry": "United States",
  "adressProvince": "Virginia",
  "adressStreet": "6605 Fisher Avenue",
  "adressZIP": "22046",
  "myId": "ref-job05014",
  "num": 154872,
  "parts": [
    {
      "id": 34454,
      "quantity": 2,
      "reference": "ACCROCHE FIX CF62033"
    },
    {
      "id": 35947,
      "quantity": 10,
      "reference": "111-a"
    }
  ],
  "position": {
    "Latitude": "43.9695148",
    "Longitude": "-99.90181310000"
  },
  "report": [
    {
      "id": 3422,
      "idCategory": 1169,
      "iteration": 0,
      "nmCategory": "Sign Off",
      "nmItem": "Print Name",
      "value": "fadil"
    },
    {
      "id": 3427,
      "idCategory": 1171,
      "iteration": 0,
      "nmCategory": "details",
      "nmItem": "date creation",
      "value": "13/07/2016"
    },
    {
      "id": 4007,
      "idCategory": 1184,
      "iteration": 0,
      "nmCategory": "signatures",
      "nmItem": "sign1",
      "value": "SIGN_4007"
    },
    {
      "id": 4007,
      "idCategory": 1184,
      "iteration": 1,
      "nmCategory": "signatures",
      "nmItem": "sign1",
      "value": "SIGN_4007"
    },
    {
      "id": 4007,
      "idCategory": 1184,
      "iteration": 2,
      "nmCategory": "signatures",
      "nmItem": "sign1",
      "value": "SIGN_4007"
    },  
        .....
  ],
  "OtherTechnicians": [
        "steven",
        "ann"
    ]
}

HTTP Request

GET /Api/v2/Jobs/Detail?paramType=paramValue

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts num or id or myId
{paramValue} string The num or id or myId for the job

Request body

none

Response body

Job information in JSON or XML format

SEND Job

Create or update the job

POST Body

{
  "idCustomer": "35615",
  "nmJobType":"Aire acondicioa",
  "myId":"ref-job1405",
  "description": "update job",
  "scheduledBeginDate":"2016-10-13 10:00",
  "scheduledEndDate":"2016-10-13 17:00",
  "idUser": "266",
  "ContactPhone": "+12125875967",
  "contactMobile": "+19293358480",
  "customFieldValues": [
    {
      "name": "Sector",
      "value": "OD 89874 sector"
    },
    {
      "name": "Code breakdown",
      "value": "KO"
    }
  ],
    "parts": [
        {
            "reference": "VOYANT VCYL 7 S 7/8",
            "quantity": 2.5
        },
         {
             "id":"5671",
            "reference": null,
            "quantity": 1.9
        }
    ],
    "report": [
        {
            "id": 3132,
            "value": "documentation"
        },
         {
            "nmItem":"valid",
            "value": "Yes"
        },
        {
            "nmCategory":"Category 2",
            "nmItem":"hour",
            "value": "15:20"
        }
    ], 
  "priority": "1",
  "status":"1",
  "globalAddress":""
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Jobs/Send \
  --header 'accept: text/json' \
  --header 'content-type: application/json' \
  --data '{\r\n  "idCustomer": "35615",\r\n  "nmJobType":"Aire acondicioa",\r\n  "myId":"ref-job1405",\r\n  "description": "update job",\r\n  "scheduledBeginDate":"2016-10-13 10:00",\r\n  "scheduledEndDate":"2016-10-13 17:00",\r\n  "idUser": "266",\r\n  "ContactPhone": "+12125875967",\r\n  "contactMobile": "+19293358480",\r\n  "customFieldValues": [\r\n    {\r\n      "name": "Sector",\r\n      "value": "OD 89874 sector"\r\n    },\r\n    {\r\n      "name": "Code breakdown",\r\n      "value": "KO"\r\n    }\r\n  ],\r\n    "parts": [\r\n        {\r\n            "reference": "VOYANT VCYL 7 S 7/8",\r\n            "quantity": 2.5\r\n        },\r\n         {\r\n             "id":"5671",\r\n            "reference": null,\r\n            "quantity": 1.9\r\n        }\r\n    ],\r\n    "report": [\r\n        {\r\n            "id": 3132,\r\n            "value": "documentation"\r\n        },\r\n         {\r\n            "nmItem":"valid",\r\n            "value": "Yes"\r\n        },\r\n        {\r\n            "nmCategory":"Category 2",\r\n            "nmItem":"hour",\r\n            "value": "15:20"\r\n        }\r\n    ], \r\n  "priority": "1",\r\n  "status":"1",\r\n  "globalAddress":""\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Send"

payload = "{\r\n  \"idCustomer\": \"35615\",\r\n  \"nmJobType\":\"Aire acondicioa\",\r\n  \"myId\":\"ref-job1405\",\r\n  \"description\": \"update job\",\r\n  \"scheduledBeginDate\":\"2016-10-13 10:00\",\r\n  \"scheduledEndDate\":\"2016-10-13 17:00\",\r\n  \"idUser\": \"266\",\r\n  \"ContactPhone\": \"+12125875967\",\r\n  \"contactMobile\": \"+19293358480\",\r\n  \"customFieldValues\": [\r\n    {\r\n      \"name\": \"Sector\",\r\n      \"value\": \"OD 89874 sector\"\r\n    },\r\n    {\r\n      \"name\": \"Code breakdown\",\r\n      \"value\": \"KO\"\r\n    }\r\n  ],\r\n    \"parts\": [\r\n        {\r\n            \"reference\": \"VOYANT VCYL 7 S 7/8\",\r\n            \"quantity\": 2.5\r\n        },\r\n         {\r\n             \"id\":\"5671\",\r\n            \"reference\": null,\r\n            \"quantity\": 1.9\r\n        }\r\n    ],\r\n    \"report\": [\r\n        {\r\n            \"id\": 3132,\r\n            \"value\": \"documentation\"\r\n        },\r\n         {\r\n            \"nmItem\":\"valid\",\r\n            \"value\": \"Yes\"\r\n        },\r\n        {\r\n            \"nmCategory\":\"Category 2\",\r\n            \"nmItem\":\"hour\",\r\n            \"value\": \"15:20\"\r\n        }\r\n    ], \r\n  \"priority\": \"1\",\r\n  \"status\":\"1\",\r\n  \"globalAddress\":\"\"\r\n}"
headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"idCustomer\": \"35615\",\r\n  \"nmJobType\":\"Aire acondicioa\",\r\n  \"myId\":\"ref-job1405\",\r\n  \"description\": \"update job\",\r\n  \"scheduledBeginDate\":\"2016-10-13 10:00\",\r\n  \"scheduledEndDate\":\"2016-10-13 17:00\",\r\n  \"idUser\": \"266\",\r\n  \"ContactPhone\": \"+12125875967\",\r\n  \"contactMobile\": \"+19293358480\",\r\n  \"customFieldValues\": [\r\n    {\r\n      \"name\": \"Sector\",\r\n      \"value\": \"OD 89874 sector\"\r\n    },\r\n    {\r\n      \"name\": \"Code breakdown\",\r\n      \"value\": \"KO\"\r\n    }\r\n  ],\r\n    \"parts\": [\r\n        {\r\n            \"reference\": \"VOYANT VCYL 7 S 7/8\",\r\n            \"quantity\": 2.5\r\n        },\r\n         {\r\n             \"id\":\"5671\",\r\n            \"reference\": null,\r\n            \"quantity\": 1.9\r\n        }\r\n    ],\r\n    \"report\": [\r\n        {\r\n            \"id\": 3132,\r\n            \"value\": \"documentation\"\r\n        },\r\n         {\r\n            \"nmItem\":\"valid\",\r\n            \"value\": \"Yes\"\r\n        },\r\n        {\r\n            \"nmCategory\":\"Category 2\",\r\n            \"nmItem\":\"hour\",\r\n            \"value\": \"15:20\"\r\n        }\r\n    ], \r\n  \"priority\": \"1\",\r\n  \"status\":\"1\",\r\n  \"globalAddress\":\"\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",    
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Jobs/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json"
  "accept": "text/json",});

req.type("json");
req.send({
  "idCustomer": "35615",
  "nmJobType": "Aire acondicioa",
  "myId": "ref-job1405",
  "description": "update job",
  "scheduledBeginDate": "2016-10-13 10:00",
  "scheduledEndDate": "2016-10-13 17:00",
  "idUser": "266",
  "ContactPhone": "+12125875967",
  "contactMobile": "+19293358480",
  "customFieldValues": [
    {
      "name": "sector",
      "value": "OD 89874 sector"
    },
    {
      "name": "Code breakdown",
      "value": "KO"
    }
  ],
  "parts": [
    {
      "reference": "VOYANT VCYL 7 S 7/8",
      "quantity": 2.5
    },
    {
      "id": "5671",
      "reference": null,
      "quantity": 1.9
    }
  ],
  "report": [
    {
      "id": 3132,
      "value": "documentation"
    },
    {
      "nmItem": "valid",
      "value": "Yes"
    },
    {
      "nmCategory": "Category 2",
      "nmItem": "hour",
      "value": "15:20"
    }
  ],
  "priority": "1",
  "status": "1",
  "globalAddress": ""
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"idCustomer\": \"35615\",\r\n  \"nmJobType\":\"Aire acondicioa\",\r\n  \"myId\":\"ref-job1405\",\r\n  \"description\": \"update job\",\r\n  \"scheduledBeginDate\":\"2016-10-13 10:00\",\r\n  \"scheduledEndDate\":\"2016-10-13 17:00\",\r\n  \"idUser\": \"266\",\r\n  \"ContactPhone\": \"+12125875967\",\r\n  \"contactMobile\": \"+19293358480\",\r\n  \"customFieldValues\": [\r\n    {\r\n      \"name\": \"Sector\",\r\n      \"value\": \"OD 89874 sector\"\r\n    },\r\n    {\r\n      \"name\": \"Code breakdown\",\r\n      \"value\": \"KO\"\r\n    }\r\n  ],\r\n    \"parts\": [\r\n        {\r\n            \"reference\": \"VOYANT VCYL 7 S 7/8\",\r\n            \"quantity\": 2.5\r\n        },\r\n         {\r\n             \"id\":\"5671\",\r\n            \"reference\": null,\r\n            \"quantity\": 1.9\r\n        }\r\n    ],\r\n    \"report\": [\r\n        {\r\n            \"id\": 3132,\r\n            \"value\": \"documentation\"\r\n        },\r\n         {\r\n            \"nmItem\":\"valid\",\r\n            \"value\": \"Yes\"\r\n        },\r\n        {\r\n            \"nmCategory\":\"Category 2\",\r\n            \"nmItem\":\"hour\",\r\n            \"value\": \"15:20\"\r\n        }\r\n    ], \r\n  \"priority\": \"1\",\r\n  \"status\":\"1\",\r\n  \"globalAddress\":\"\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Jobs/Send")
  .header("accept", "text/json")  .
header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"idCustomer\": \"35615\",\r\n  \"nmJobType\":\"Aire acondicioa\",\r\n  \"myId\":\"ref-job1405\",\r\n  \"description\": \"update job\",\r\n  \"scheduledBeginDate\":\"2016-10-13 10:00\",\r\n  \"scheduledEndDate\":\"2016-10-13 17:00\",\r\n  \"idUser\": \"266\",\r\n  \"ContactPhone\": \"+12125875967\",\r\n  \"contactMobile\": \"+19293358480\",\r\n  \"customFieldValues\": [\r\n    {\r\n      \"name\": \"Sector\",\r\n      \"value\": \"OD 89874 sector\"\r\n    },\r\n    {\r\n      \"name\": \"Code breakdown\",\r\n      \"value\": \"KO\"\r\n    }\r\n  ],\r\n    \"parts\": [\r\n        {\r\n            \"reference\": \"VOYANT VCYL 7 S 7/8\",\r\n            \"quantity\": 2.5\r\n        },\r\n         {\r\n             \"id\":\"5671\",\r\n            \"reference\": null,\r\n            \"quantity\": 1.9\r\n        }\r\n    ],\r\n    \"report\": [\r\n        {\r\n            \"id\": 3132,\r\n            \"value\": \"documentation\"\r\n        },\r\n         {\r\n            \"nmItem\":\"valid\",\r\n            \"value\": \"Yes\"\r\n        },\r\n        {\r\n            \"nmCategory\":\"Category 2\",\r\n            \"nmItem\":\"hour\",\r\n            \"value\": \"15:20\"\r\n        }\r\n    ], \r\n  \"priority\": \"1\",\r\n  \"status\":\"1\",\r\n  \"globalAddress\":\"\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddParameter("application/json", "{\r\n  \"idCustomer\": \"35615\",\r\n  \"nmJobType\":\"Aire acondicioa\",\r\n  \"myId\":\"ref-job1405\",\r\n  \"description\": \"update job\",\r\n  \"scheduledBeginDate\":\"2016-10-13 10:00\",\r\n  \"scheduledEndDate\":\"2016-10-13 17:00\",\r\n  \"idUser\": \"266\",\r\n  \"ContactPhone\": \"+12125875967\",\r\n  \"contactMobile\": \"+19293358480\",\r\n  \"customFieldValues\": [\r\n    {\r\n      \"name\": \"Sector\",\r\n      \"value\": \"OD 89874 sector\"\r\n    },\r\n    {\r\n      \"name\": \"Code breakdown\",\r\n      \"value\": \"KO\"\r\n    }\r\n  ],\r\n    \"parts\": [\r\n        {\r\n            \"reference\": \"VOYANT VCYL 7 S 7/8\",\r\n            \"quantity\": 2.5\r\n        },\r\n         {\r\n             \"id\":\"5671\",\r\n            \"reference\": null,\r\n            \"quantity\": 1.9\r\n        }\r\n    ],\r\n    \"report\": [\r\n        {\r\n            \"id\": 3132,\r\n            \"value\": \"documentation\"\r\n        },\r\n         {\r\n            \"nmItem\":\"valid\",\r\n            \"value\": \"Yes\"\r\n        },\r\n        {\r\n            \"nmCategory\":\"Category 2\",\r\n            \"nmItem\":\"hour\",\r\n            \"value\": \"15:20\"\r\n        }\r\n    ], \r\n  \"priority\": \"1\",\r\n  \"status\":\"1\",\r\n  \"globalAddress\":\"\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 13497,
  "message": null
}

HTTP Request

POST /Api/v2/Jobs/Send

Request Body

Job information in JSON or XML format, if idJob or myId or num exist, the job will be updated, if not the job will be created.

Response Body

The response contains num for the job created or updated by this action. This value is in the code field of the response.

If there is an error, a message is returned in the message field.

SEARCH Jobs

POST Body

{
    "dateFrom":"2015-05-15",
    "dateTo":"2016-05-18",
    "changedFrom":"2016-05-16",
    "reportChangedFrom":"2017-01-16 15:35:00",
    "myId":"ref-25487",
    "userName":"Bill",
    "status":3,
    "customer":{
        "name":"",
        "id":"",
        "myId":""
     },
    "site":{
        "name":"",
        "id":"62612",
        "myId":""
     },
    "equipment":{
        "name":"",
        "id":"",
        "myId":""
     }  
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Jobs/Search \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n    "dateFrom":"2015-05-15",\r\n    "dateTo":"2016-05-18",\r\n    "userName":"Bill",\r\n    "status":3\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Search"

payload = "{\r\n    \"dateFrom\":\"2015-05-15\",\r\n    \"dateTo\":\"2016-05-18\",\r\n    \"userName\":\"Bill\",\r\n    \"status\":3\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Search",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n    \"dateFrom\":\"2015-05-15\",\r\n    \"dateTo\":\"2016-05-18\",\r\n    \"userName\":\"Bill\",\r\n    \"status\":3\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Jobs/Search");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "dateFrom": "2015-05-15",
  "dateTo": "2016-05-18",
  "userName": "Bill",
  "status": 3
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n    \"dateFrom\":\"2015-05-15\",\r\n    \"dateTo\":\"2016-05-18\",\r\n    \"userName\":\"Bill\",\r\n    \"status\":3\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Jobs/Search")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n    \"dateFrom\":\"2015-05-15\",\r\n    \"dateTo\":\"2016-05-18\",\r\n    \"userName\":\"Bill\",\r\n    \"status\":3\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Search");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n    \"dateFrom\":\"2015-05-15\",\r\n    \"dateTo\":\"2016-05-18\",\r\n    \"userName\":\"Bill\",\r\n    \"status\":3\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
  {
    "id": "265_1606271438784211768",
    "myId": "ref-25487",
    "num": "13461"
  },
  {
    "id": "2687_160627143454211768",
    "myId": "ref-job004",
    "num": "12259"
  }....
]

HTTP Request

POST /Api/v2/Jobs/Search

Query Parameters

None

Request body

Available Filters:

Filter Type Description
dateFrom date time
(yyyy-mm-dd hh:mm:ss)
Get jobs planned, ongoing or completed on or after dateFrom
dateTo date time
(yyyy-mm-dd hh:mm:ss)
Get jobs planned, ongoing or completed on or before dateTo
changedFrom date time
(yyyy-mm-dd hh:mm:ss)
Get jobs planned, ongoing or completed, the older modification checked on or after changedFrom
reportChangedFrom date time
(yyyy-mm-dd hh:mm:ss)
Get jobs planned, ongoing or completed, the older modification checked in his report on or after reportChangedFrom
userName string Get jobs assigned to a technician, by userName
userId integer Get jobs assigned to a technician, by userId
status integer Filter by current job status (0 [created], 1 [scheduled], 2 [synchronized to mobile], 3 [started] , 4 [suspended/paused], 5 [completed], 6 [validated], 7 [canceled])
myId string Filter by job myId
customer object id, myId and name for the customer
site object id, myId and name for the site
equipment object id, myId and name for the equipment

Response body

A list of id and myId and num for the jobs found.

VALIDATE Job

Sample Code

curl --request PUT \
  --url 'https://ws.synchroteam.com/Api/v2/Jobs/Validate?myId=ref-25415' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Validate"

querystring = {"myId":"ref-25415"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("PUT", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Validate?myId=ref-25415",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("PUT", "https://ws.synchroteam.com/Api/v2/Jobs/Validate");

req.query({
  "myId": "ref-25415"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Validate?myId=ref-25415")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://ws.synchroteam.com/Api/v2/Jobs/Validate?myId=ref-25415")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Validate?myId=ref-25415");
var request = new RestRequest(Method.PUT);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1
}

HTTP Request

PUT /v2/Jobs/Validate?myId=ref-25415

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts num or id or myId
{paramValue} string The num or id or myId of the job

Request body

none

Response body

The response contains number of validated jobs. This value is in the code field of the response

Job PHOTOS

DESCRIPTION

A representation of a Photo has the following fields :

Field Type Description
fileName string Name of the file, including the extention (.png, .jpg, etc.)
comment string Comment associated to the photo
imageData String Image data encoded as a Base64String
job object id and myId and Num for the job

Sample Code

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Jobs/Photos?myId=ref-25415' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Photos"

querystring = {"myId":"ref-25415"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Photos?myId=ref-25415",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Jobs/Photos");

req.query({
  "myId": "ref-25415"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Photos?myId=ref-25415")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Jobs/Photos?myId=ref-25415")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Photos?myId=ref-25415");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[
    {
     "job": {
          "id": "265_160719144323649",
          "myId": "ref-25415",
          "num": 13473
        },
     "iteration":  0,   
     "fileName":  "image.png",
     "comment":"a Comment",
     "imageData":[Base64String]
    },
    {
     "job": {
          "id": "265_160719144323649",
          "myId": "ref-25415",
          "num": 13473
        },
     "iteration":  0,   
     "fileName":  "image.png",
     "comment":"photo1",
     "imageData":[Base64String]
    },
    {
     "job": {
          "id": "265_160719144323649",
          "myId": "ref-25415",
          "num": 13473
        },
     "iteration":  1,   
     "fileName":  "image.png",
     "comment":"photo1",
     "imageData":[Base64String]
    }
]

HTTP Request

GET /v2/Jobs/Photos?myId=ref-25415

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts num or id or myId
{paramValue} string num or id or myId for the job

Request body

none

Response body

The list of photos for the job.

Job PDF

Sample Code

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Jobs/PDF?num=13473' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/PDF"

querystring = {"num":"13473"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/PDF?num=13473",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Jobs/PDF");

req.query({
  "num": "13473"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/PDF?num=13473")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Jobs/PDF?num=13473")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/PDF?num=13473");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
 "pdfData":[Base64String]
}

HTTP Request

GET /Api/v2/Jobs/PDF?num=13473

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts num or id or myId
{paramValue} string The num or id or myId of the job

Request body

none

Response body

The pdf data

CANCEL Job

Sample Code

curl --request PUT \
  --url 'https://ws.synchroteam.com/Api/v2/Jobs/Cancel?myId=ref-25415' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --header 'postman-token: 8f3da600-0f54-19aa-0ba4-ed46d95e2ad8'
import requests

url = "https://ws.synchroteam.com/Api/v2/Jobs/Cancel"

querystring = {"myId":"ref-25415"}

payload = ""
headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("PUT", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Jobs/Cancel?myId=ref-25415",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("PUT", "https://ws.synchroteam.com/Api/v2/Jobs/Cancel");

req.query({
  "myId": "ref-25415"
});

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Jobs/Cancel?myId=ref-25415")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://ws.synchroteam.com/Api/v2/Jobs/Cancel?myId=ref-25415")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Jobs/Cancel?myId=ref-25415");
var request = new RestRequest(Method.PUT);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1
}

HTTP Request

PUT /v2/Jobs/Cancel?myId=ref-25415

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts num or id or myId
{paramValue} string The num or id or myId of the job

Request body

none

Response body

The response contains number of Canceled jobs. This value is in the code field of the response

Invoices/Quotations

An Invoice or a Quotation is represented by the following fields

Field Type Description
id integer Invoice/Quotation id (read only)
num integer Invoice/Quotation number
idJob string Job id
idClient integer Customer id
idSite string Site id
type string type : quotation or invoice
status integer Status of the invoice (0 for draft,1 for sent,2 for late ,3 for payed) or the quotation (0 for draft,1 for sent)
dueDate integer Invoice/Quotation paiement date
total decimal Invoice/Quotation total
lines list List of invoice/quotation lines

A representation of an Invoice’s or a Quotation’s line has the following fields :

Field Type Description
idPart integer Part id
description string Part description
reference string Part reference
price decimal Part price
tax decimal Part applied tax
quantity integer Quantity used
discount decimal Applied discount
total decimal Calculated total

SEND Invoice/Quotation

POST Body

{
    "type":"quotation",
    "action":"add",
    "status":1,
    "num":132,
    "dueDate":"2018-05-02",
    "job":{
        "id":"_150604144935321",
        "myId":"",
        "num" : "12547"
    },
    "customer":{
        "name":"synchroteam",
        "id":"",
        "myId":""
     },
        "lines":[
            {
                "idPart":"",
                "description":"", 
                "reference":"p11", 
                "price":"0", 
                "tax":"", 
                "quantity":"10",
                "discount":"10"
            },
            {
                "idPart":"35954",
                "description":"test description", 
                "reference":"ref incorrect", 
                "tax":"10", 
                "quantity":"8.5",
                "discount":"50,3"
            }]
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Invoices/Send \
  --header 'Accept: text/json' \
  --header 'Authorization: Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3' \
  --header 'Cache-Control: no-cache' \
  --header 'Content-Type: application/json' \
  --data '{\n    "type":"quotation",\n    "action":"add",\n    "status":1,\n    "num":132,\n    "dueDate":"2018-05-02",\n    "job":{\n        "id":"_150604144935321",\n        "myId":"",\n        "num" : "12547"\n    },\n    "customer":{\n        "name":"synchroteam",\n        "id":"",\n        "myId":""\n     },\n        "lines":[\n            {\n                "idPart":"",\n                "description":"", \n                "reference":"p11", \n                "price":"0", \n                "tax":"", \n                "quantity":"10",\n                "discount":"10"\n            },\n            {\n                "idPart":"35954",\n                "description":"test description", \n                "reference":"ref incorrect", \n                "tax":"10", \n                "quantity":"8.5",\n                "discount":"50,3"\n            }]\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Invoices/Send"

payload = "{\n    \"type\":\"quotation\",\n    \"action\":\"add\",\n    \"status\":1,\n    \"num\":132,\n    \"dueDate\":\"2018-05-02\",\n    \"job\":{\n        \"id\":\"_150604144935321\",\n        \"myId\":\"\",\n        \"num\" : \"12547\"\n    },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n        \"lines\":[\n            {\n                \"idPart\":\"\",\n                \"description\":\"\", \n                \"reference\":\"p11\", \n                \"price\":\"0\", \n                \"tax\":\"\", \n                \"quantity\":\"10\",\n                \"discount\":\"10\"\n            },\n            {\n                \"idPart\":\"35954\",\n                \"description\":\"test description\", \n                \"reference\":\"ref incorrect\", \n                \"tax\":\"10\", \n                \"quantity\":\"8.5\",\n                \"discount\":\"50,3\"\n            }]\n}"
headers = {
    'Content-Type': "application/json",
    'Accept': "text/json",
    'Authorization': "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
    'Cache-Control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "2624",
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Invoices/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n    \"type\":\"quotation\",\n    \"action\":\"add\",\n    \"status\":1,\n    \"num\":132,\n    \"dueDate\":\"2018-05-02\",\n    \"job\":{\n        \"id\":\"_150604144935321\",\n        \"myId\":\"\",\n        \"num\" : \"12547\"\n    },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n        \"lines\":[\n            {\n                \"idPart\":\"\",\n                \"description\":\"\", \n                \"reference\":\"p11\", \n                \"price\":\"0\", \n                \"tax\":\"\", \n                \"quantity\":\"10\",\n                \"discount\":\"10\"\n            },\n            {\n                \"idPart\":\"35954\",\n                \"description\":\"test description\", \n                \"reference\":\"ref incorrect\", \n                \"tax\":\"10\", \n                \"quantity\":\"8.5\",\n                \"discount\":\"50,3\"\n            }]\n}",
  CURLOPT_HTTPHEADER => array(
    "Accept: text/json",
    "Authorization: Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
    "Cache-Control: no-cache",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Invoices/Send");

req.headers({
  "Cache-Control": "no-cache",
  "Authorization": "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
  "Accept": "text/json",
  "Content-Type": "application/json"
});

req.type("json");
req.send({
  "type": "quotation",
  "action": "add",
  "status": 1,
  "num": 132,
  "dueDate": "2018-05-02",
  "job": {
    "id": "_150604144935321",
    "myId": "",
    "num": "12547"
  },
  "customer": {
    "name": "synchroteam",
    "id": "",
    "myId": ""
  },
  "lines": [
    {
      "idPart": "",
      "description": "",
      "reference": "p11",
      "price": "0",
      "tax": "",
      "quantity": "10",
      "discount": "10"
    },
    {
      "idPart": "35954",
      "description": "test description",
      "reference": "ref incorrect",
      "tax": "10",
      "quantity": "8.5",
      "discount": "50,3"
    }
  ]
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Invoices/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'text/json'
request["Authorization"] = 'Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3'
request["Cache-Control"] = 'no-cache'
request.body = "{\n    \"type\":\"quotation\",\n    \"action\":\"add\",\n    \"status\":1,\n    \"num\":132,\n    \"dueDate\":\"2018-05-02\",\n    \"job\":{\n        \"id\":\"_150604144935321\",\n        \"myId\":\"\",\n        \"num\" : \"12547\"\n    },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n        \"lines\":[\n            {\n                \"idPart\":\"\",\n                \"description\":\"\", \n                \"reference\":\"p11\", \n                \"price\":\"0\", \n                \"tax\":\"\", \n                \"quantity\":\"10\",\n                \"discount\":\"10\"\n            },\n            {\n                \"idPart\":\"35954\",\n                \"description\":\"test description\", \n                \"reference\":\"ref incorrect\", \n                \"tax\":\"10\", \n                \"quantity\":\"8.5\",\n                \"discount\":\"50,3\"\n            }]\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Invoices/Send")
  .header("Content-Type", "application/json")
  .header("Accept", "text/json")
  .header("Authorization", "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3")
  .header("Cache-Control", "no-cache")
  .body("{\n    \"type\":\"quotation\",\n    \"action\":\"add\",\n    \"status\":1,\n    \"num\":132,\n    \"dueDate\":\"2018-05-02\",\n    \"job\":{\n        \"id\":\"_150604144935321\",\n        \"myId\":\"\",\n        \"num\" : \"12547\"\n    },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n        \"lines\":[\n            {\n                \"idPart\":\"\",\n                \"description\":\"\", \n                \"reference\":\"p11\", \n                \"price\":\"0\", \n                \"tax\":\"\", \n                \"quantity\":\"10\",\n                \"discount\":\"10\"\n            },\n            {\n                \"idPart\":\"35954\",\n                \"description\":\"test description\", \n                \"reference\":\"ref incorrect\", \n                \"tax\":\"10\", \n                \"quantity\":\"8.5\",\n                \"discount\":\"50,3\"\n            }]\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Invoices/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Authorization", "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3");
request.AddHeader("Accept", "text/json");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{\n    \"type\":\"quotation\",\n    \"action\":\"add\",\n    \"status\":1,\n    \"num\":132,\n    \"dueDate\":\"2018-05-02\",\n    \"job\":{\n        \"id\":\"_150604144935321\",\n        \"myId\":\"\",\n        \"num\" : \"12547\"\n    },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n        \"lines\":[\n            {\n                \"idPart\":\"\",\n                \"description\":\"\", \n                \"reference\":\"p11\", \n                \"price\":\"0\", \n                \"tax\":\"\", \n                \"quantity\":\"10\",\n                \"discount\":\"10\"\n            },\n            {\n                \"idPart\":\"35954\",\n                \"description\":\"test description\", \n                \"reference\":\"ref incorrect\", \n                \"tax\":\"10\", \n                \"quantity\":\"8.5\",\n                \"discount\":\"50,3\"\n            }]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
    "code": 0,
    "message": null,
    "data": {
        "num": 132,
        "numberLines": 2
    }
}

HTTP Request

POST /Api/v2/Invoices/Send

Query Parameters

None

Request body

Invoice/Quotation informations in JSON or XML format. if num does not exist, the invoice/quotation will be created, if not,the invoice/quotation lines list will be updated.

If action has replace as a value, so the existing lines list of the invoice/quotation will be replaced with the new list ,if action has the value add, so the new list will be added to the existing list of the invoice/quotation

The parameter type is used to indicate if the new registration is an invoice or a quotation.

Response body

The response contains num of the invoice/quotation created or updated by this action.

numberLines contains the number of lines of the invoice/quotation.

If there is an error, a message is returned in the message field and the value of code is 0, if not, the value of code is 1.

LIST Invoice/Quotation

List of Invoice/quotation

POST Body

{
    "changedFrom":"2018-02-25",
    "job":{
        "id":"265_150113103841695",
        "myId":"",
        "num" : ""
        },
    "customer":{
        "name":"synchroteam",
        "id":"",
        "myId":""
     },
    "site":{
        "name":"",
        "id":"",
        "myId":"315f-d"
     }
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Invoices/List \
  --header 'Accept: text/json' \
  --header 'Authorization: Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3' \
  --header 'Cache-Control: no-cache' \
  --header 'Content-Type: application/json' \
  --data '{\n        "changedFrom":"2018-02-25",\n    "job":{\n        "id":"265_150113103841695",\n        "myId":"",\n        "num" : ""\n        },\n    "customer":{\n        "name":"synchroteam",\n        "id":"",\n        "myId":""\n     },\n    "site":{\n        "name":"",\n        "id":"",\n        "myId":"315f-d"\n     }\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Invoices/List"

payload = "{\n        \"changedFrom\":\"2018-02-25\",\n    \"job\":{\n        \"id\":\"265_150113103841695\",\n        \"myId\":\"\",\n        \"num\" : \"\"\n        },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n    \"site\":{\n        \"name\":\"\",\n        \"id\":\"\",\n        \"myId\":\"315f-d\"\n     }\n}"
headers = {
    'Content-Type': "application/json",
    'Accept': "text/json",
    'Authorization': "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
    'Cache-Control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_PORT => "2624",
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Invoices/List",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n        \"changedFrom\":\"2018-02-25\",\n    \"job\":{\n        \"id\":\"265_150113103841695\",\n        \"myId\":\"\",\n        \"num\" : \"\"\n        },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n    \"site\":{\n        \"name\":\"\",\n        \"id\":\"\",\n        \"myId\":\"315f-d\"\n     }\n}",
  CURLOPT_HTTPHEADER => array(
    "Accept: text/json",
    "Authorization: Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
    "Cache-Control: no-cache",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Invoices/List");

req.headers({
  "Cache-Control": "no-cache",
  "Authorization": "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3",
  "Accept": "text/json",
  "Content-Type": "application/json"
});

req.type("json");
req.send({
  "changedFrom": "2018-02-25",
  "job": {
    "id": "265_150113103841695",
    "myId": "",
    "num": ""
  },
  "customer": {
    "name": "synchroteam",
    "id": "",
    "myId": ""
  },
  "site": {
    "name": "",
    "id": "",
    "myId": "315f-d"
  }
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Invoices/List")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'text/json'
request["Authorization"] = 'Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3'
request["Cache-Control"] = 'no-cache'
request.body = "{\n        \"changedFrom\":\"2018-02-25\",\n    \"job\":{\n        \"id\":\"265_150113103841695\",\n        \"myId\":\"\",\n        \"num\" : \"\"\n        },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n    \"site\":{\n        \"name\":\"\",\n        \"id\":\"\",\n        \"myId\":\"315f-d\"\n     }\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Invoices/List")
  .header("Content-Type", "application/json")
  .header("Accept", "text/json")
  .header("Authorization", "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3")
  .header("Cache-Control", "no-cache")
  .body("{\n        \"changedFrom\":\"2018-02-25\",\n    \"job\":{\n        \"id\":\"265_150113103841695\",\n        \"myId\":\"\",\n        \"num\" : \"\"\n        },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n    \"site\":{\n        \"name\":\"\",\n        \"id\":\"\",\n        \"myId\":\"315f-d\"\n     }\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Invoices/List");
var request = new RestRequest(Method.POST);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Authorization", "Basic a2FtYWw6ZWFhMWU3YzctMmU3ZS00M2EzLWJkZGYtYmNlMGZkM2UwMjM3");
request.AddHeader("Accept", "text/json");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("undefined", "{\n        \"changedFrom\":\"2018-02-25\",\n    \"job\":{\n        \"id\":\"265_150113103841695\",\n        \"myId\":\"\",\n        \"num\" : \"\"\n        },\n    \"customer\":{\n        \"name\":\"synchroteam\",\n        \"id\":\"\",\n        \"myId\":\"\"\n     },\n    \"site\":{\n        \"name\":\"\",\n        \"id\":\"\",\n        \"myId\":\"315f-d\"\n     }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
  {
    "dueDate": "02\/05\/2018 00:00:00",
    "idClient": null,
    "idJob": "_150604144935321",
    "idSite": 62611,
    "lines": [
      {
        "description": "test description",
        "discount": "50,30",
        "idPart": 0,
        "price": "30,00",
        "quantity": "8,50",
        "reference": "p3",
        "tax": "10,00",
        "totalLine": null,
        "total": "139,4000"
      },
      {
        "description": "***1 > part1",
        "discount": "10,00",
        "idPart": 0,
        "price": "5,50",
        "quantity": "10,00",
        "reference": "p11",
        "tax": "50,00",
        "totalLine": null,
        "total": "74,2500"
      }
    ],
    "num": 336,
    "status": 0,
    "total": 213.6500,
    "type": "Invoice"
  },
  {
    "dueDate": "02\/05\/2018 00:00:00",
    "idClient": null,
    "idJob": "_150604144935321",
    "idSite": 62611,
    "lines": [
      {
        "description": "test description",
        "discount": "50,30",
        "idPart": 0,
        "price": "30,00",
        "quantity": "8,50",
        "reference": "p3",
        "tax": "10,00",
        "totalLine": null,
        "total": "139,4000"
      },
      {
        "description": "***1 > part1",
        "discount": "10,00",
        "idPart": 0,
        "price": "5,50",
        "quantity": "10,00",
        "reference": "p11",
        "tax": "50,00",
        "totalLine": null,
        "total": "74,2500"
      }
    ],
    "num": 337,
    "status": 0,
    "total": 213.6500,
    "type": "Invoice"
  },
  {
    "dueDate": "02\/05\/2018 00:00:00",
    "idClient": null,
    "idJob": "_150604144935321",
    "idSite": 62611,
    "lines": [
      {
        "description": "test description",
        "discount": "50,30",
        "idPart": 0,
        "price": "30,00",
        "quantity": "8,50",
        "reference": "p3",
        "tax": "10,00",
        "totalLine": null,
        "total": "139,4000"
      },
      {
        "description": "***1 > part1",
        "discount": "10,00",
        "idPart": 0,
        "price": "10,25",
        "quantity": "10,00",
        "reference": "p11",
        "tax": "50,00",
        "totalLine": null,
        "total": "138,3800"
      }
    ],
    "num": 338,
    "status": 0,
    "total": 277.7800,
    "type": "Invoice"
  }
  ]

HTTP Request

POST /Api/v2/Invoices/List

Query Parameters

None

Request body

Invoices/Quotations informations in JSON or XML format.

Field Type Description
changedFrom date time
(yyyy-mm-dd)
The date of the older modification checked.
job object id, myId and num for the job
customer object id, myId and name for the customer
site object id, myId and name for the site

Response body

a list of invoices/quotations

Positions

Description of positions objects. Position objects are GPS coordinates, they are associated with jobs, customers and sites.

DESCRIPTION

There can be only one position for each job, customer or site. The values can only be acccessed with the associated object.

When an object associated with a position is created if no GPS position is provided, a position is associated with it according to its address field, if it is possible.

When an object associated with a position is changed an a new address is provided, and no position is provided, a new position is calculated; if it is possible.

A representation of a position has the following fields :

Field Type Description
latitude decimal The latitude of the position, the value is greater than -90 and smaller than 90
longitude decimal The longitude of the position, the value is greater than -90 and smaller than 90.

METHODS

The are no methods directly associated to positions. They can be accessed, created, deleted, altered via the associated data.

{
  "latitude":"42.479",
  "longitude":"-0.4586"
}

Sites

A site is represented by the following fields

Field Type Description
id integer ID of the site (read only)
myId string Your custom reference number for this site
name string Name of the site
customerId integer ID of the customer
customerMyId string Your custom reference number for the customer
customerName string Name of the customer
address string Address of the site
addressComplement string A complement to the address of the site.
adressStreet string Street address of the site
adressZIP string Zip code of the site
adressCity string City address of the site
adressProvince string Province address of the site
adressCountry string Country address of the site
contactName string Last name of your contact
contactFirstName string First name of your contact.
contactPhone string Phone number of your contact.
contactMobile string Mobile number of your contact.
contactEmail string Email of your contact.
contactFax string Fax number of your contact.
equipments list List of Pieces of equipment for your site. (optional)
customFieldValues list List of custom field values for your site. (optional)
position position position associated with the job. (optional)
tags list(string) List of tags for this site. (optional)

GET Site

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Site/Details?id=345' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Site/Details"

querystring = {"id":"345"}

headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, headers=headers, params=querystring)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Site/Details?id=345",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Site/Details");

req.query({
  "id": "345"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Site/Details?id=345")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Site/Details?id=345")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Site/Details?id=345");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
    "id":2811,
    "myId": "ref-2511",
    "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
    "addressComplement": "United States",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Virginia",
    "adressStreet": "6605 Fisher Avenue",
    "adressZIP": "22046",
    "contactEmail":"paul@hamilton.com",
    "contactFax":"(719) 388-1967",
    "contactMobile":"(719) 388-1969",
    "contactName":"Mr Paul",
    "contactPhone":"(877) 413-5903",
    "name":"site name",
    "equipments":[equipments,...],
    "customFieldValues":[customfieldvalue1,...],
    "position":{Position},
    "tags" : ["plumber","restaurant","test"]
}

HTTP Request

GET /Api/v2/Site/Details

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId
{paramValue} string The name, the id or myId of the site

Request body

none

Response body

A description of a site

SEND Site

Create or update the site

POST Body

{
  "id":"1454",
  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
  "addressComplement": "",
  "contactEmail": "contact@synchroteam.com",
  "contactFax": "0524548798",
  "contactFirstName": "Paul",
  "contactMobile": "",
  "contactName": "",
  "contactPhone": "(719) 388-1966",
  "customerId": 35646,
  "myId": "ref-2541",
  "name": "Site name",
  "customerName": "Sample Customer",  
  "tags" : ["plumber","restaurant","test"]
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Site/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "id":"1454",\r\n  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",\r\n  "addressComplement": "",\r\n  "contactEmail": "contact@synchroteam.com",\r\n  "contactFax": "0524548798",\r\n  "contactFirstName": "Paul",\r\n  "contactMobile": "",\r\n  "contactName": "",\r\n  "contactPhone": "(719) 388-1966",\r\n  "customerId": 35646,\r\n  "myId": "ref-2541",\r\n  "name": "Site name",\r\n  "customerName": "Sample Customer",\r\n  "tags" : ["plumber","restaurant","test"]\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Site/Send"

payload = "{\r\n  \"id\":\"1454\",\r\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\r\n  \"addressComplement\": \"\",\r\n  \"contactEmail\": \"contact@synchroteam.com\",\r\n  \"contactFax\": \"0524548798\",\r\n  \"contactFirstName\": \"Paul\",\r\n  \"contactMobile\": \"\",\r\n  \"contactName\": \"\",\r\n  \"contactPhone\": \"(719) 388-1966\",\r\n  \"customerId\": 35646,\r\n  \"myId\": \"ref-2541\",\r\n  \"name\": \"Site name\",\r\n  \"customerName\": \"Sample Customer\",\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Site/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"id\":\"1454\",\r\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\r\n  \"addressComplement\": \"\",\r\n  \"contactEmail\": \"contact@synchroteam.com\",\r\n  \"contactFax\": \"0524548798\",\r\n  \"contactFirstName\": \"Paul\",\r\n  \"contactMobile\": \"\",\r\n  \"contactName\": \"\",\r\n  \"contactPhone\": \"(719) 388-1966\",\r\n  \"customerId\": 35646,\r\n  \"myId\": \"ref-2541\",\r\n  \"name\": \"Site name\",\r\n  \"customerName\": \"Sample Customer\",\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Site/Send");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "id": "1454",
  "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
  "addressComplement": "",
  "contactEmail": "contact@synchroteam.com",
  "contactFax": "0524548798",
  "contactFirstName": "Paul",
  "contactMobile": "",
  "contactName": "",
  "contactPhone": "(719) 388-1966",
  "customerId": 35646,
  "myId": "ref-2541",
  "name": "Site name",
  "customerName": "Sample Customer",
  "tags": [
    "plumber",
    "restaurant",
    "test"
  ]
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Site/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"id\":\"1454\",\r\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\r\n  \"addressComplement\": \"\",\r\n  \"contactEmail\": \"contact@synchroteam.com\",\r\n  \"contactFax\": \"0524548798\",\r\n  \"contactFirstName\": \"Paul\",\r\n  \"contactMobile\": \"\",\r\n  \"contactName\": \"\",\r\n  \"contactPhone\": \"(719) 388-1966\",\r\n  \"customerId\": 35646,\r\n  \"myId\": \"ref-2541\",\r\n  \"name\": \"Site name\",\r\n  \"customerName\": \"Sample Customer\",\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Site/Send")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .header("postman-token", "d648854e-7fa0-d97e-825e-fd8f3157cfa1")
  .body("{\r\n  \"id\":\"1454\",\r\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\r\n  \"addressComplement\": \"\",\r\n  \"contactEmail\": \"contact@synchroteam.com\",\r\n  \"contactFax\": \"0524548798\",\r\n  \"contactFirstName\": \"Paul\",\r\n  \"contactMobile\": \"\",\r\n  \"contactName\": \"\",\r\n  \"contactPhone\": \"(719) 388-1966\",\r\n  \"customerId\": 35646,\r\n  \"myId\": \"ref-2541\",\r\n  \"name\": \"Site name\",\r\n  \"customerName\": \"Sample Customer\",\r\n}  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Site/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"id\":\"1454\",\r\n  \"address\": \"6605 Fisher Avenue, Falls Church, VA 22046, United States\",\r\n  \"addressComplement\": \"\",\r\n  \"contactEmail\": \"contact@synchroteam.com\",\r\n  \"contactFax\": \"0524548798\",\r\n  \"contactFirstName\": \"Paul\",\r\n  \"contactMobile\": \"\",\r\n  \"contactName\": \"\",\r\n  \"contactPhone\": \"(719) 388-1966\",\r\n  \"customerId\": 35646,\r\n  \"myId\": \"ref-2541\",\r\n  \"name\": \"Site name\",\r\n  \"customerName\": \"Sample Customer\",\r\n  \"tags\" : [\"plumber\",\"restaurant\",\"test\"]\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 62650,
  "message": ""
}

HTTP Request

POST /Api/v2/Site/Send

Request Body

Site information in JSON or XML format, if the id or myId exist, the site will be updated, if not the site will be created.

Response Body

The response contains id of the new site created or updated by this action. This value is in the code field of the response.

If there is an error, a message is returned in message field.

DELETE Site

curl --request DELETE \
  --url 'https://ws.synchroteam.com/Api/v2/Site/Delete?id=2541542' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Site/Delete"

querystring = {"id":"2541542"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("DELETE", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Site/Delete?id=2541542",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("DELETE", "https://ws.synchroteam.com/Api/v2/Site/Delete");

req.query({
  "id": "2541542"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Site/Delete?id=2541542")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.delete("https://ws.synchroteam.com/Api/v2/Site/Delete?id=2541542")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Site/Delete?id=2541542");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code":1
}

HTTP Request

DELETE /Api/v2/Site/Delete

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts name or id or myId
{paramValue} string The name, id or myId of the site

Request body

none

Response body

The number of deleted sites.

GET Sites List By Customer id

curl --request GET \
  --url https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384 \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384"

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/id/8384");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[{
    "id":2811,
    "myId": "ref-2511",
    "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
    "addressComplement": "2nd Floor left",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Virginia",
    "adressStreet": "6605 Fisher Avenue",
    "adressZIP": "22046",
    "contactEmail":"Micheal@hamilton.com",
    "contactFax":"(719) 485-3193",
    "contactMobile":"(877)413-5903",
    "contactName":"Paul",
    "contactPhone":"(719) 485-3173",
    "name":"site name 1",
    "customerName": "Labo office"
},
{
    "id":2810,
    "myId": "ref-2510",
    "address": "8867 Grand Ave, Beulah, CO 81023",
    "addressComplement": "2nd Floor left",
    "adressCity": "Beulah",
    "adressCountry": "United States",
    "adressProvince": "Colorado",
    "adressStreet": "8867 Grand Ave",
    "adressZIP": "81023",  
    "contactEmail":"paul@hamilton.com",
    "contactFax":"(719) 485-3198",
    "contactMobile":"(877)413-5453",
    "contactName":"Paul",
    "contactPhone":"(719) 485-3113",
    "name":"site name 2",
    "customerName": "US Post Office"
}...
]

HTTP Request

GET /Api/v2/Site/List/byCustomer/id/{paramValue}

Query Parameters

Parameter Default Description
{paramValue} string The id of the customer

Request body

none

Response body

A List of sites.

GET Sites List By Customer myId

curl --request GET \
  --url https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25 \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25"

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Site/List/byCustomer/myId/ref-25");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

[{
    "id":2811,
    "myId": "ref-2511",
    "address": "6605 Fisher Avenue, Falls Church, VA 22046, United States",
    "addressComplement": "2nd Floor left",
    "adressCity": "Falls Church",
    "adressCountry": "United States",
    "adressProvince": "Virginia",
    "adressStreet": "6605 Fisher Avenue",
    "adressZIP": "22046",
    "contactEmail":"Micheal@hamilton.com",
    "contactFax":"(719) 485-3193",
    "contactMobile":"(877)413-5903",
    "contactName":"Paul",
    "contactPhone":"(719) 485-3173",
    "name":"site name 1",
    "customerName": "Labo office"
},
{
    "id":2810,
    "myId": "ref-2510",
    "address": "8867 Grand Ave, Beulah, CO 81023",
    "addressComplement": "2nd Floor left",
    "adressCity": "Beulah",
    "adressCountry": "United States",
    "adressProvince": "Colorado",
    "adressStreet": "8867 Grand Ave",
    "adressZIP": "81023",  
    "contactEmail":"paul@hamilton.com",
    "contactFax":"(719) 485-3198",
    "contactMobile":"(877)413-5453",
    "contactName":"Paul",
    "contactPhone":"(719) 485-3113",
    "name":"site name 2",
    "customerName": "US Post Office"
}...
]

HTTP Request

GET /Api/v2/Site/List/byCustomer/myId/{paramValue}

Query Parameters

Parameter Default Description
{paramValue} string The myId of the customer

Request body

none

Response body

A List of sites.

Stock

A stock is represented by the following fields

Field Type Description
id int Stock Depot ID
name string Stock Depot Name
flDefault int Sets this stock depot as the default (1) or not (0).
flProvider int Sets this stock depot as a provider (1) or not (0).

Complete a replenishment

PUT Body

{
  "isPartial": true,
  "quantity":3,
  "id":"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782",
  "serials":["bb11","bb22"]
}

Sample Code

curl --request PUT \
  --url https://ws.synchroteam.com/Api/v2/StockRequest/Complete \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "isPartial": true,\r\n  "quantity":3,\r\n  "id":"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782",\r\n  "serials":["bb11","bb22"]\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/StockRequest/Complete"

payload = "{\r\n  \"isPartial\": true,\r\n  \"quantity\":3,\r\n  \"id\":\"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782\",\r\n  \"serials\":[\"bb11\",\"bb22\"]\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("PUT", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/StockRequest/Complete",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "{\r\n  \"isPartial\": true,\r\n  \"quantity\":3,\r\n  \"id\":\"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782\",\r\n  \"serials\":[\"bb11\",\"bb22\"]\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("PUT", "https://ws.synchroteam.com/Api/v2/StockRequest/Complete");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "isPartial": true,
  "quantity": 3,
  "id": "1C9035A3-CE56-4E13-B9D0-DFFB9C02E782",
  "serials": [
    "bb11",
    "bb22"
  ]
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/StockRequest/Complete")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"isPartial\": true,\r\n  \"quantity\":3,\r\n  \"id\":\"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782\",\r\n  \"serials\":[\"bb11\",\"bb22\"]\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://ws.synchroteam.com/Api/v2/StockRequest/Complete")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"isPartial\": true,\r\n  \"quantity\":3,\r\n  \"id\":\"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782\",\r\n  \"serials\":[\"bb11\",\"bb22\"]\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/StockRequest/Complete");
var request = new RestRequest(Method.PUT);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"isPartial\": true,\r\n  \"quantity\":3,\r\n  \"id\":\"1C9035A3-CE56-4E13-B9D0-DFFB9C02E782\",\r\n  \"serials\":[\"bb11\",\"bb22\"]\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1
}

HTTP Request

PUT /Api/v2/StockRequest/Complete

Query Parameters

None

Request body

The information for the replenishment request:

Field Type Description
id integer ID of the replenishment request
isPartial boolean If the request is partially complete or not (true/false)
quantity integer Number of parts
serials list(string) The serial numbers for the parts

Response body

The response contains number of requests completed by this action. This value is in the code field of the response

Search replenishment requests

POST Body

{
  "isUrgent": "",
  "isDeleted":false,
  "isSent":"",
  "modifiedAfter": "",
  "createdAfter":""
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/StockRequest/Search \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\r\n  "isUrgent": "",\r\n  "isDeleted":true,\r\n  "isSent":"",\r\n  "modifiedAfter": "",\r\n  "createdAfter":""\r\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/StockRequest/Search"

payload = "{\r\n  \"isUrgent\": \"\",\r\n  \"isDeleted\":true,\r\n  \"isSent\":\"\",\r\n  \"modifiedAfter\": \"\",\r\n  \"createdAfter\":\"\"\r\n}"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/StockRequest/Search",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\r\n  \"isUrgent\": \"\",\r\n  \"isDeleted\":true,\r\n  \"isSent\":\"\",\r\n  \"modifiedAfter\": \"\",\r\n  \"createdAfter\":\"\"\r\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/StockRequest/Search");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send({
  "isUrgent": "",
  "isDeleted": true,
  "isSent": "",
  "modifiedAfter": "",
  "createdAfter": ""
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/StockRequest/Search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "{\r\n  \"isUrgent\": \"\",\r\n  \"isDeleted\":true,\r\n  \"isSent\":\"\",\r\n  \"modifiedAfter\": \"\",\r\n  \"createdAfter\":\"\"\r\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/StockRequest/Search")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("{\r\n  \"isUrgent\": \"\",\r\n  \"isDeleted\":true,\r\n  \"isSent\":\"\",\r\n  \"modifiedAfter\": \"\",\r\n  \"createdAfter\":\"\"\r\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/StockRequest/Search");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "{\r\n  \"isUrgent\": \"\",\r\n  \"isDeleted\":true,\r\n  \"isSent\":\"\",\r\n  \"modifiedAfter\": \"\",\r\n  \"createdAfter\":\"\"\r\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
    {
        "destination": {
            "idStock": "d6a71643-0ad2-4de8-abcb-34f54c4ca12e",
            "nmStock": "stock"
        },
        "id": "22aa76ac-03c8-4fdb-baee-dca2d33cdd23",
        "isDeleted": false,
        "isSent": true,
        "isUrgent": false,
        "part": {
            "codeProduit": "p6666",
            "idPiece": 35947,
            "nmPiece": "p6666",
            "prixPiece": 123
        },
        "quantity": 0,
        "source": {
            "idStock": "18af2bf1-0973-4958-a66e-c5fe974ec129",
            "nmStock": "stock4"
        },
        "user": {
            "idUser": 265,
            "loginUser": "npinault",
            "nomUser": "PINAULT",
            "prenomUser": "Nicolas 2"
        }
    },
    {
        "destination": {
            "idStock": "d6a71643-0ad2-4de8-abcb-34f54c4ca12e",
            "nmStock": "stock"
        },
        "id": "48fa4674-8b6c-4fe6-a1d9-2d96eebe63c0",
        "isDeleted": false,
        "isSent": true,
        "isUrgent": false,
        "part": {
            "codeProduit": "aaa",
            "idPiece": 35930,
            "nmPiece": "*****aaaaa",
            "prixPiece": 55
        },
        "quantity": -1,
        "source": {
            "idStock": "18af2bf1-0973-4958-a66e-c5fe974ec129",
            "nmStock": "stock4"
        },
        "user": {
            "idUser": 265,
            "loginUser": "npinault",
            "nomUser": "PINAULT",
            "prenomUser": "Nicolas 2"
        }
    },
    {
        "destination": {
            "idStock": "d6a71643-0ad2-4de8-abcb-34f54c4ca12e",
            "nmStock": "stock"
        },
        "id": "1c9035a3-ce56-4e13-b9d0-dffb9c02e782",
        "isDeleted": false,
        "isSent": true,
        "isUrgent": false,
        "part": {
            "codeProduit": "ref005f",
            "idPiece": 35909,
            "nmPiece": "111",
            "prixPiece": 110
        },
        "quantity": 6,
        "source": {
            "idStock": "18af2bf1-0973-4958-a66e-c5fe974ec129",
            "nmStock": "stock4"
        },
        "user": {
            "idUser": 265,
            "loginUser": "npinault",
            "nomUser": "PINAULT",
            "prenomUser": "Nicolas 2"
        }
    }
]

HTTP Request

POST /Api/v2/StockRequest/Search

Query Parameters

None

Request body

Available filters:

Filter Type Description
isUrgent boolean Is the request urgent (true/false)?
isDeleted boolean Is the request deleted (true/false)?
isSent boolean Is the request sent (true/false)?
modifiedAfter date time
(yyyy-mm-dd)
Get requests modified after modifiedAfter
createdAfter date time
(yyyy-mm-dd)
Get requests created after createdAfter

Response body

Replenishment request information.

Initialize the quantities

PUT Body

[
   {
       "depot":"stock4",
       "parts":[{
                                   "reference": "KAAQ3104A",
                                   "quantity":210,
                                   "serials":[]
                   },
                   {
                                   "reference": "refHi001",
                                   "quantity":"6",
                                   "serials":["771000","771010","771020","771050","771045","771045"]
                   }
               ]
    } ,
    {
       "depot":"stock",
       "parts":[{
                                   "reference": "refHi001",
                                   "quantity":"4",
                                   "serials":["3000","3103","3020","3057"]
                   },
                   {
                                   "reference": "KAAQ3104A",
                                   "quantity":20,
                                   "serials":[]
                   }
               ]
    }
]

Sample Code

curl --request PUT \
  --url https://ws.synchroteam.com/Api/v2/Inventory/Quantities \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '[\r\n   {\r\n       "depot":"stock4",\r\n       "parts":[{\r\n                                   "reference": "KAAQ3104A",\r\n                                   "quantity":210,\r\n                                   "serials":[]\r\n                   },\r\n                   {\r\n                                   "reference": "refHi001",\r\n                                   "quantity":"6",\r\n                                   "serials":["771000","771010","771020","771050","771045","771045"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       "depot":"stock",\r\n       "parts":[{\r\n                                   "reference": "refHi001",\r\n                                   "quantity":"4",\r\n                                   "serials":["3000","3103","3020","3057"]\r\n                   },\r\n                   {\r\n                                   "reference": "KAAQ3104A",\r\n                                   "quantity":20,\r\n                                   "serials":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n'
import requests

url = "https://ws.synchroteam.com/Api/v2/Inventory/Quantities"

payload = "[\r\n   {\r\n       \"depot\":\"stock4\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":210,\r\n                                   \"serials\":[]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"6\",\r\n                                   \"serials\":[\"771000\",\"771010\",\"771020\",\"771050\",\"771045\",\"771045\"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       \"depot\":\"stock\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"4\",\r\n                                   \"serials\":[\"3000\",\"3103\",\"3020\",\"3057\"]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":20,\r\n                                   \"serials\":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("PUT", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Inventory/Quantities",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "[\r\n   {\r\n       \"depot\":\"stock4\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":210,\r\n                                   \"serials\":[]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"6\",\r\n                                   \"serials\":[\"771000\",\"771010\",\"771020\",\"771050\",\"771045\",\"771045\"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       \"depot\":\"stock\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"4\",\r\n                                   \"serials\":[\"3000\",\"3103\",\"3020\",\"3057\"]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":20,\r\n                                   \"serials\":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("PUT", "https://ws.synchroteam.com/Api/v2/Inventory/Quantities");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send([
  {
    "depot": "stock4",
    "parts": [
      {
        "reference": "KAAQ3104A",
        "quantity": 210,
        "serials": []
      },
      {
        "reference": "refHi001",
        "quantity": "6",
        "serials": [
          "771000",
          "771010",
          "771020",
          "771050",
          "771045",
          "771045"
        ]
      }
    ]
  },
  {
    "depot": "stock",
    "parts": [
      {
        "reference": "refHi001",
        "quantity": "4",
        "serials": [
          "3000",
          "3103",
          "3020",
          "3057"
        ]
      },
      {
        "reference": "KAAQ3104A",
        "quantity": 20,
        "serials": []
      }
    ]
  }
]);

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Inventory/Quantities")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "[\r\n   {\r\n       \"depot\":\"stock4\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":210,\r\n                                   \"serials\":[]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"6\",\r\n                                   \"serials\":[\"771000\",\"771010\",\"771020\",\"771050\",\"771045\",\"771045\"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       \"depot\":\"stock\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"4\",\r\n                                   \"serials\":[\"3000\",\"3103\",\"3020\",\"3057\"]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":20,\r\n                                   \"serials\":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://ws.synchroteam.com/Api/v2/Inventory/Quantities")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("[\r\n   {\r\n       \"depot\":\"stock4\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":210,\r\n                                   \"serials\":[]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"6\",\r\n                                   \"serials\":[\"771000\",\"771010\",\"771020\",\"771050\",\"771045\",\"771045\"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       \"depot\":\"stock\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"4\",\r\n                                   \"serials\":[\"3000\",\"3103\",\"3020\",\"3057\"]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":20,\r\n                                   \"serials\":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Inventory/Quantities");
var request = new RestRequest(Method.PUT);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "[\r\n   {\r\n       \"depot\":\"stock4\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":210,\r\n                                   \"serials\":[]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"6\",\r\n                                   \"serials\":[\"771000\",\"771010\",\"771020\",\"771050\",\"771045\",\"771045\"]\r\n                   }\r\n               ]\r\n    } ,\r\n    {\r\n       \"depot\":\"stock\",\r\n       \"parts\":[{\r\n                                   \"reference\": \"refHi001\",\r\n                                   \"quantity\":\"4\",\r\n                                   \"serials\":[\"3000\",\"3103\",\"3020\",\"3057\"]\r\n                   },\r\n                   {\r\n                                   \"reference\": \"KAAQ3104A\",\r\n                                   \"quantity\":20,\r\n                                   \"serials\":[]\r\n                   }\r\n               ]\r\n    }\r\n]\r\n", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 1,
  "errors": ""

HTTP Request

PUT /Api/v2/Inventory/Quantities

Query Parameters

None

Request body

The name of the depots, the reference and quantity of parts or the reference and serial numbers for the parts (for any depot).

Type Description
depot string The name of depot
parts list of parts The reference and quantity for the part, or the reference and serial numbers for the part

Response body

1 if all parts are updated, 0 if any one part is not updated

Stock Parts

A Part is represented by the following fields

Field Type Description
id integer ID of the part (read only)
name string Part Name
reference string Part reference number or code
price decimal number The billable price (exc. taxes)
taxId integer The id of the tax applied to this part
categoryId integer The id of the category for this part
categoryName string The name of the category for this part
quantity decimal number How many of this part was used on a given Job. This field is ONLY used to know part usage associated with jobs (optional)
minQuantity integer The minimum stock quantity for this part
tracked boolean The part is tracked or not
serializable boolean The part is serializable or not

SEND Part

Create or update the part

POST Body

{
   "name":"Angle inter. H50 White",
   "price":7.35,
   "categoryName":"Electricity",
   "reference":"LEG10602",
   "taxId":5,
   "minQuantity": 2,
   "tracked":true,
   "serializable":true   
}

Sample Code

curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/Part/Send \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\n   "name":"Angle inter. H50 White",\n   "price":7.35,\n   "categoryName":"Electricity",\n   "reference":"LEG10602",\n   "taxId":5,\n    "minQuantity": 2,\n    "tracked":true,\n    "serializable":true\n\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/Part/Send"

payload = "{\n   \"name\":\"Angle inter. H50 White\",\n   \"price\":7.35,\n   \"categoryName\":\"Electricity\",\n   \"reference\":\"LEG10602\",\n   \"taxId\":5,\n    \"minQuantity\": 2,\n    \"tracked\":true,\n    \"serializable\":true\n\n}"
headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Part/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n   \"name\":\"Angle inter. H50 White\",\n   \"price\":7.35,\n   \"categoryName\":\"Electricity\",\n   \"reference\":\"LEG10602\",\n   \"taxId\":5,\n    \"minQuantity\": 2,\n    \"tracked\":true,\n    \"serializable\":true\n\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/Part/Send");

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});

req.type("json");
req.send({
  "name": "Angle inter. H50 White",
  "price": 7.35,
  "categoryName": "Electricity",
  "reference": "LEG10602",
  "taxId": 5,
  "minQuantity": 2,
  "tracked": true,
  "serializable": true
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Part/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'
request.body = "{\n   \"name\":\"Angle inter. H50 White\",\n   \"price\":7.35,\n   \"categoryName\":\"Electricity\",\n   \"reference\":\"LEG10602\",\n   \"taxId\":5,\n    \"minQuantity\": 2,\n    \"tracked\":true,\n    \"serializable\":true\n\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/Part/Send")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .body("{\n   \"name\":\"Angle inter. H50 White\",\n   \"price\":7.35,\n   \"categoryName\":\"Electricity\",\n   \"reference\":\"LEG10602\",\n   \"taxId\":5,\n    \"minQuantity\": 2,\n    \"tracked\":true,\n    \"serializable\":true\n\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Part/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddParameter("application/json", "{\n   \"name\":\"Angle inter. H50 White\",\n   \"price\":7.35,\n   \"categoryName\":\"Electricity\",\n   \"reference\":\"LEG10602\",\n   \"taxId\":5,\n    \"minQuantity\": 2,\n    \"tracked\":true,\n    \"serializable\":true\n\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 35958
}

HTTP Request

POST /Api/v2/Part/Send

Request Body

Part information in JSON or XML format, if the id or reference exists, the part will be updated, if not the part will be created.

Response Body

The response contains the id of the part that was either created or updated by this action. This value is in the code field of the response.

DELETE Part

curl --request DELETE \
  --url 'https://ws.synchroteam.com/Api/v2/Part/Delete?id=35958' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/Part/Delete"

querystring = {"id":"35958"}

payload = ""
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("DELETE", url, data=payload, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Part/Delete?id=35958",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_POSTFIELDS => "",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("DELETE", "https://ws.synchroteam.com/Api/v2/Part/Delete");

req.query({
  "id": "35958"
});

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Part/Delete?id=35958")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.delete("https://ws.synchroteam.com/Api/v2/Part/Delete?id=35958")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Part/Delete?id=35958");
var request = new RestRequest(Method.DELETE);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code":1
}

HTTP Request

DELETE /Api/v2/Part/Delete

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts reference or id
{paramValue} string The reference or id of the part

Request body

none

Response body

The number of deleted parts.

UPDATE Parts Pricing

PUT Body

[
    {
        "reference": "p11",
        "price":"10,25"
    },
    {
        "id": 35959,
        "price":"70,25"
    },
    {
        "id": 35919,
        "price":"-100,25"
    },
    {
        "id": 359112519,
        "price":"540,25"
    }
]

Sample Code

curl --request PUT \
  --url https://ws.synchroteam.com/Api/v2/Part/Prices \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '[\r\n    {\r\n        "reference": "p11",\r\n        "price":"10,25"\r\n    },\r\n    {\r\n        "id": 35959,\r\n        "price":"70,25"\r\n    },\r\n    {\r\n        "id": 35919,\r\n        "price":"-100,25"\r\n    },\r\n    {\r\n        "id": 359112519,\r\n        "price":"540,25"\r\n    }    \r\n]'
import requests

url = "https://ws.synchroteam.com/Api/v2/Part/Prices"

payload = "[\r\n    {\r\n        \"reference\": \"p11\",\r\n        \"price\":\"10,25\"\r\n    },\r\n    {\r\n        \"id\": 35959,\r\n        \"price\":\"70,25\"\r\n    },\r\n    {\r\n        \"id\": 35919,\r\n        \"price\":\"-100,25\"\r\n    },\r\n    {\r\n        \"id\": 359112519,\r\n        \"price\":\"540,25\"\r\n    }    \r\n]"
headers = {
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'accept': "text/json",
    'content-type': "application/json",
    'cache-control': "no-cache"
    }

response = requests.request("PUT", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Part/Prices",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => "[\r\n    {\r\n        \"reference\": \"p11\",\r\n        \"price\":\"10,25\"\r\n    },\r\n    {\r\n        \"id\": 35959,\r\n        \"price\":\"70,25\"\r\n    },\r\n    {\r\n        \"id\": 35919,\r\n        \"price\":\"-100,25\"\r\n    },\r\n    {\r\n        \"id\": 359112519,\r\n        \"price\":\"540,25\"\r\n    }    \r\n]",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("PUT", "https://ws.synchroteam.com/Api/v2/Part/Prices");

req.headers({
  "cache-control": "no-cache",
  "content-type": "application/json",
  "accept": "text/json",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB"
});

req.type("json");
req.send([
  {
    "reference": "p11",
    "price": "10,25"
  },
  {
    "id": 35959,
    "price": "70,25"
  },
  {
    "id": 35919,
    "price": "-100,25"
  },
  {
    "id": 359112519,
    "price": "540,25"
  }
]);

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Part/Prices")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["cache-control"] = 'no-cache'
request.body = "[\r\n    {\r\n        \"reference\": \"p11\",\r\n        \"price\":\"10,25\"\r\n    },\r\n    {\r\n        \"id\": 35959,\r\n        \"price\":\"70,25\"\r\n    },\r\n    {\r\n        \"id\": 35919,\r\n        \"price\":\"-100,25\"\r\n    },\r\n    {\r\n        \"id\": 359112519,\r\n        \"price\":\"540,25\"\r\n    }    \r\n]"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.put("https://ws.synchroteam.com/Api/v2/Part/Prices")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("cache-control", "no-cache")
  .body("[\r\n    {\r\n        \"reference\": \"p11\",\r\n        \"price\":\"10,25\"\r\n    },\r\n    {\r\n        \"id\": 35959,\r\n        \"price\":\"70,25\"\r\n    },\r\n    {\r\n        \"id\": 35919,\r\n        \"price\":\"-100,25\"\r\n    },\r\n    {\r\n        \"id\": 359112519,\r\n        \"price\":\"540,25\"\r\n    }    \r\n]")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Part/Prices");
var request = new RestRequest(Method.PUT);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddParameter("application/json", "[\r\n    {\r\n        \"reference\": \"p11\",\r\n        \"price\":\"10,25\"\r\n    },\r\n    {\r\n        \"id\": 35959,\r\n        \"price\":\"70,25\"\r\n    },\r\n    {\r\n        \"id\": 35919,\r\n        \"price\":\"-100,25\"\r\n    },\r\n    {\r\n        \"id\": 359112519,\r\n        \"price\":\"540,25\"\r\n    }    \r\n]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
  "code": 0,
  "errors": [
    {
      "id": "35919",
      "price": "-100,25",
      "reference": null
    },
    {
      "id": "359112519",
      "price": "540,25",
      "reference": null
    }
  ]
}

HTTP Request

PUT /Api/v2/Part/Prices

Request Body

Set of id or reference paired with the new price, in JSON or XML format.

Response Body

1 if all parts have been updated. 0 if any part was not updated - the part(s) concerned show up in the error field.

GET Part Detail

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/Part/Details?reference=458' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
import requests

url = "https://ws.synchroteam.com/Api/v2/Part/Details"

querystring = {"reference":"458"}

headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/Part/Details?reference=458",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/Part/Details");

req.query({
  "reference": "458"
});

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});
require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/Part/Details?reference=458")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/Part/Details?reference=458")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/Part/Details?reference=458");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
IRestResponse response = client.Execute(request);

JSON Returned

{
  "categoryId": 1532,
  "categoryName": "software",
  "id": 35918,
  "name": "Antivirus",
  "price": "10",
  "reference": "458",
  "taxId": 37,
  "taxVal": "14"
}

HTTP Request

GET /Api/v2/Part/Details

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts reference or id
{paramValue} string The reference or the id of the part

Request body

none

Response body

A description of a part

Users

An user is represented by the following fields

Field Type Description
id integer ID of the user (read only)
firstName string First name of the user
lastName string Last name of the user
login string Login of the user account
password string Password of the user account
language string Code of the language of the user, possible value: EN,FR,ES,RO,CZ.
email string User email adresse
phone string User phone number.
profile string The profile of the user, possible values : technician, administrator, manager
customFieldValues list List of custom field values for this user. (optional)
skilledTrades list(string) List of skilled for this user. (optional)
groups list(string) List of groups for this user
startLocation object User location information: fullAdress and latitude and longitude

GET User Detail

curl --request GET \
  --url 'https://ws.synchroteam.com/Api/v2/User/Details?id=54022' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' 
import requests

url = "https://ws.synchroteam.com/Api/v2/User/Details"

querystring = {"id":"54022"}

headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("GET", url, headers=headers, params=querystring)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/User/Details?id=54022",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("GET", "https://ws.synchroteam.com/Api/v2/User/Details");

req.query({
  "id": "54022"
});

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});


req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/User/Details?id=54022")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.get("https://ws.synchroteam.com/Api/v2/User/Details?id=54022")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/User/Details?id=54022");
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
IRestResponse response = client.Execute(request);

JSON Returned

{
    "id": 54022,
    "firstName": "John",
    "lastName": "Doe",
    "login": "login_user",
    "phone": "(719) 388-1966",
    "profile": "technician",
    "email": "djohn@gmail.com",
    "language": "EN",
    "groups": [
        "group1",
        "group5"
    ],
    "skilledTrades": [
        "plumber",
        "electrician"
    ],
    "startLocation": {
        "fullAdress": "411 Pearl St, New York, NY 10038, États-Unis",
        "latitude": "40.7115539",
        "longitude": "-74.0035686"
    },
    "CustomFieldValues": [customfieldvalue1,...]
}

HTTP Request

GET /Api/v2/User/Details

Query Parameters

Parameter Default Description
{paramType} string Parameter name. Accepts login or id
{paramValue} string The login or the id of the user

Request body

none

Response body

A Description of the User asked for.

SEARCH User

POST Body

{
    "group":{
        "id":"",
        "name":"group1"
    },
    "skilledTrades":"plumber"
}

Sample Code

curl --request POST \
curl --request POST \
  --url https://ws.synchroteam.com/Api/v2/User/Search \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\n    "group":{\n        "id":"",\n        "name":"group1"\n    },\n    "skilledTrades":"plumber"\n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/User/Search"

payload = "{\n    \"group\":{\n        \"id\":\"\",\n        \"name\":\"group1\"\n    },\n    \"skilledTrades\":\"plumber\"\n}"
headers = {
    'accept': "text/json",
    'content-type': "application/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/User/Search",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n    \"group\":{\n        \"id\":\"\",\n        \"name\":\"group1\"\n    },\n    \"skilledTrades\":\"plumber\"\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/User/Search");

req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "content-type": "application/json",
  "accept": "text/json"
});

req.type("json");
req.send({
  "group": {
    "id": "",
    "name": "group1"
  },
  "skilledTrades": "plumber"
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});


require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/User/Search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["accept"] = 'text/json'
request["content-type"] = 'application/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'
request.body = "{\n    \"group\":{\n        \"id\":\"\",\n        \"name\":\"group1\"\n    },\n    \"skilledTrades\":\"plumber\"\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/User/Search")
  .header("accept", "text/json")
  .header("content-type", "application/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .body("{\n    \"group\":{\n        \"id\":\"\",\n        \"name\":\"group1\"\n    },\n    \"skilledTrades\":\"plumber\"\n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/User/Search");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("content-type", "application/json");
request.AddHeader("accept", "text/json");
request.AddParameter("application/json", "{\n    \"group\":{\n        \"id\":\"\",\n        \"name\":\"group1\"\n    },\n    \"skilledTrades\":\"plumber\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

[
    {
        "id": 266,
        "login": "login_user12"
    },
    {
        "id": 53993,
        "login": "login_user87"
    },
    {
        "id": 2658,
        "login": "login_user1985"
    }
]

HTTP Request

POST /Api/v2/User/Search

Query Parameters

None

Request body

Available Filters:

Filter Type Description
group object the id or name of the group
skilledTrades string the skilled name

Response body

A list of id and login for the users found.

SEND User

Create or update the User

POST Body

{
    "firstName": "John",
    "lastName": "Doe",
    "login": "login_user",
    "phone": "(719) 388-1966",
    "profile": "technician",
    "email": "djohn@gmail.com",
    "language": "EN",
    "password": "123456",
    "startLocation": {
        "fullAdress": "411 Pearl St, New York, NY 10038, États-Unis",
        "latitude": "40.7115539",
        "longitude": "-74.0035686"
    },
    "CustomFieldValues": [
        {
            "Name": "Sector",
            "Value": "OD 89874 sector"
        },
        {
            "Value": "1547-PO",
            "id": 88
        }
    ],
    "groups":["group5","group87"],
    "skilledTrades": [
        "plumber","electrician"
    ]
}

Sample Code

curl --request POST \
  --url 'https://ws.synchroteam.com/Api/v2/User/Send' \
  --header 'accept: text/json' \
  --header 'authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB' \
  --header 'cache-control: no-cache' \
  --header 'content-type: application/json' \
  --data '{\n    "firstName": "John",\n "lastName": "Doe",\n    "login": "login_user",\n    "phone": "(719) 388-1966",\n    "profile": "technician",\n    "email": "djohn@gmail.com",\n    "language": "EN",\n    "password": "123456",\n    "CustomFieldValues": [\n        {\n            "Name": "Sector",\n            "Value": "OD 89874 sector"\n        },\n        {\n            "Value": "1547-PO",\n            "id": 88\n        }\n    ],\n    "groups":["group5","group87"],\n    "skilledTrades": [\n        "plumber","electrician"\n    ],\n   "startLocation": {\n        "fullAdress": "411 Pearl St, New York, NY 10038, États-Unis",\n        "latitude": "40.7115539",\n     "longitude": "-74.0035686"\n    }\n    \n}'
import requests

url = "https://ws.synchroteam.com/Api/v2/User/Send"

payload = "{\n    \"firstName\": \"John\",\n\t\"lastName\": \"Doe\",\n    \"login\": \"login_user\",\n    \"phone\": \"(719) 388-1966\",\n    \"profile\": \"technician\",\n    \"email\": \"djohn@gmail.com\",\n    \"language\": \"EN\",\n    \"password\": \"123456\",\n    \"CustomFieldValues\": [\n        {\n            \"Name\": \"Sector\",\n            \"Value\": \"OD 89874 sector\"\n        },\n        {\n            \"Value\": \"1547-PO\",\n            \"id\": 88\n        }\n    ],\n    \"groups\":[\"group5\",\"group87\"],\n    \"skilledTrades\": [\n        \"plumber\",\"electrician\"\n    ],\n\t\"startLocation\": {\n\t\t\"fullAdress\": \"411 Pearl St, New York, NY 10038, États-Unis\",\n\t\t\"latitude\": \"40.7115539\",\n\t\t\"longitude\": \"-74.0035686\"\n\t}\n    \n}"
headers = {
    'content-type': "application/json",
    'accept': "text/json",
    'authorization': "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    'cache-control': "no-cache"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://ws.synchroteam.com/Api/v2/User/Send",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n    \"firstName\": \"John\",\n\t\"lastName\": \"Doe\",\n    \"login\": \"login_user\",\n    \"phone\": \"(719) 388-1966\",\n    \"profile\": \"technician\",\n    \"email\": \"djohn@gmail.com\",\n    \"language\": \"EN\",\n    \"password\": \"123456\",\n    \"CustomFieldValues\": [\n        {\n            \"Name\": \"Sector\",\n            \"Value\": \"OD 89874 sector\"\n        },\n        {\n            \"Value\": \"1547-PO\",\n            \"id\": 88\n        }\n    ],\n    \"groups\":[\"group5\",\"group87\"],\n    \"skilledTrades\": [\n        \"plumber\",\"electrician\"\n    ],\n\t\"startLocation\": {\n\t\t\"fullAdress\": \"411 Pearl St, New York, NY 10038, États-Unis\",\n\t\t\"latitude\": \"40.7115539\",\n\t\t\"longitude\": \"-74.0035686\"\n\t}\n    \n}",
  CURLOPT_HTTPHEADER => array(
    "accept: text/json",
    "authorization: Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
    "cache-control: no-cache",
    "content-type: application/json",
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
var unirest = require("unirest");

var req = unirest("POST", "https://ws.synchroteam.com/Api/v2/User/Send");


req.headers({
  "cache-control": "no-cache",
  "authorization": "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB",
  "accept": "text/json",
  "content-type": "application/json"
});

req.type("json");
req.send({
  "firstName": "John",
  "lastName": "Doe",
  "login": "login_user",
  "phone": "(719) 388-1966",
  "profile": "technician",
  "email": "djohn@gmail.com",
  "language": "EN",
  "password": "123456",
  "CustomFieldValues": [
    {
      "Name": "Sector",
      "Value": "OD 89874 sector"
    },
    {
      "Value": "1547-PO",
      "id": 88
    }
  ],
  "groups": [
    "group5",
    "group87"
  ],
  "skilledTrades": [
    "plumber",
    "electrician"
  ],
  "startLocation": {
    "fullAdress": "411 Pearl St, New York, NY 10038, États-Unis",
    "latitude": "40.7115539",
    "longitude": "-74.0035686"
  }
});

req.end(function (res) {
  if (res.error) throw new Error(res.error);

  console.log(res.body);
});

require 'uri'
require 'net/http'

url = URI("https://ws.synchroteam.com/Api/v2/User/Send")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["accept"] = 'text/json'
request["authorization"] = 'Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB'
request["cache-control"] = 'no-cache'
request.body = "{\n    \"firstName\": \"John\",\n\t\"lastName\": \"Doe\",\n    \"login\": \"login_user\",\n    \"phone\": \"(719) 388-1966\",\n    \"profile\": \"technician\",\n    \"email\": \"djohn@gmail.com\",\n    \"language\": \"EN\",\n    \"password\": \"123456\",\n    \"CustomFieldValues\": [\n        {\n            \"Name\": \"Sector\",\n            \"Value\": \"OD 89874 sector\"\n        },\n        {\n            \"Value\": \"1547-PO\",\n            \"id\": 88\n        }\n    ],\n    \"groups\":[\"group5\",\"group87\"],\n    \"skilledTrades\": [\n        \"plumber\",\"electrician\"\n    ],\n\t\"startLocation\": {\n\t\t\"fullAdress\": \"411 Pearl St, New York, NY 10038, États-Unis\",\n\t\t\"latitude\": \"40.7115539\",\n\t\t\"longitude\": \"-74.0035686\"\n\t}\n    \n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://ws.synchroteam.com/Api/v2/User/Send")
  .header("content-type", "application/json")
  .header("accept", "text/json")
  .header("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB")
  .header("cache-control", "no-cache")
  .body("{\n    \"firstName\": \"John\",\n\t\"lastName\": \"Doe\",\n    \"login\": \"login_user\",\n    \"phone\": \"(719) 388-1966\",\n    \"profile\": \"technician\",\n    \"email\": \"djohn@gmail.com\",\n    \"language\": \"EN\",\n    \"password\": \"123456\",\n    \"CustomFieldValues\": [\n        {\n            \"Name\": \"Sector\",\n            \"Value\": \"OD 89874 sector\"\n        },\n        {\n            \"Value\": \"1547-PO\",\n            \"id\": 88\n        }\n    ],\n    \"groups\":[\"group5\",\"group87\"],\n    \"skilledTrades\": [\n        \"plumber\",\"electrician\"\n    ],\n\t\"startLocation\": {\n\t\t\"fullAdress\": \"411 Pearl St, New York, NY 10038, États-Unis\",\n\t\t\"latitude\": \"40.7115539\",\n\t\t\"longitude\": \"-74.0035686\"\n\t}\n    \n}")
  .asString();
var client = new RestClient("https://ws.synchroteam.com/Api/v2/User/Send");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Basic c3luY2hyb3RlYW06MTUzODc0REItMUM0OC00NDQzLUE0OEUtQzhEMjg4NzhBQThB");
request.AddHeader("accept", "text/json");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n    \"firstName\": \"John\",\n\t\"lastName\": \"Doe\",\n    \"login\": \"login_user\",\n    \"phone\": \"(719) 388-1966\",\n    \"profile\": \"technician\",\n    \"email\": \"djohn@gmail.com\",\n    \"language\": \"EN\",\n    \"password\": \"123456\",\n    \"CustomFieldValues\": [\n        {\n            \"Name\": \"Sector\",\n            \"Value\": \"OD 89874 sector\"\n        },\n        {\n            \"Value\": \"1547-PO\",\n            \"id\": 88\n        }\n    ],\n    \"groups\":[\"group5\",\"group87\"],\n    \"skilledTrades\": [\n        \"plumber\",\"electrician\"\n    ],\n\t\"startLocation\": {\n\t\t\"fullAdress\": \"411 Pearl St, New York, NY 10038, États-Unis\",\n\t\t\"latitude\": \"40.7115539\",\n\t\t\"longitude\": \"-74.0035686\"\n\t}\n    \n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

JSON Returned

{
    "code": 54023,
    "message": ""
}

HTTP Request

POST /Api/v2/User/Send

Request Body

User information in JSON or XML format, if id or login exist, the user will be updated, if not the user will be created.

Response Body

The response contains id for the user created or updated by this action. This value is in the code field of the response.

If there is an error, a message is returned in the message field.

Errors

The Synchroteam API uses the following error codes:

Error Code Meaning
400 Bad Request – You have an error in your request
401 Unauthorized – Your API key is wrong
403 Forbidden – The resource you are trying to access is Forbidden
404 Not Found – The API endpoint you are trying to access was not found
405 Method Not Allowed – You tried to access a kitten with an invalid method
406 Not Acceptable – You requested a format that isn’t JSON or XML
429 Too Many Requests – You’ve hit our API rate limits
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarially offline for maintenance. Please try again later.