Dokumentation för API-funktioner
GET CRM/Contact/{customerId}/Seller/{contactIds} Hämta lista av säljarrelationer för kontakter, max 20 stycken kontakter åt gången. Request Information URI Parameters
NamnBeskrivningTypInformation
customerId Kund-id. string Krävs
contactIds Kontaktidn (kommaseparerade, max 20 stycken). string Krävs
Response Information Resource Description Hämta lista av säljarrelationer för kontakter, max 20 stycken kontakter åt gången. Collection of CrmSellerContact
NamnBeskrivningTypInformation
Id Kontaktid string

SellerOn Bostäderna som kontakten är säljare på. Collection of CrmSellerRelation

Kodexempel

curl "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Seller/StringValue" -X GET -H "Authorization: basic {Base64 kodad användarnamn och lösenord}" 
            

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Seller/StringValue"
Invoke-WebRequest -Uri $URL -Method GET -Headers @{"authorization" = "basic {Base64 kodad användarnamn och lösenord}"} 
                

// HttpClientInstance ska deklareras som en singleton
// public static readonly HttpClient HttpClientInstance = new HttpClient {
//     BaseAddress = new Uri("https://connect.maklare.vitec.net"),
//     DefaultRequestHeaders = {
//         Authorization = new AuthenticationHeaderValue("Basic", "{Base64 kodad användarnamn och lösenord}")
//     }
// }
using (var response = await HttpClientInstance.GetAsync("CRM/Contact/StringValue/Seller/StringValue")) {
    if (response.StatusCode == HttpStatusCode.Unauthorized) {
        // Authorization headern är inte korrekt
    }
    if (response.StatusCode == HttpStatusCode.Forbidden) {
        // Begärt data som det saknas åtkomst till
    }
    if (response.StatusCode == HttpStatusCode.InternalServerError) {
        // Oväntat fel, kontakta Vitec
    }
    if (response.StatusCode == HttpStatusCode.BadRequest) {
        var json = await response.Content.ReadAsStringAsync();
        var result = JsonConvert.DeserializeObject<dynamic>(json);
        // Hantera valideringsfel, presenteras i resultatet
    }
    
    var json = await response.Content.ReadAsStringAsync();
    // JsonConvert finns i biblioteket Newtonsoft.Json
    var result = JsonConvert.DeserializeObject<dynamic>(json);
    
    var firstInArray = result[0];
    var id = firstInArray.id.Value;
    // TODO: Gör något med resultatet
}

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Seller/StringValue";

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERNAME, "{Användarnamn}");
curl_setopt($ch, CURLOPT_PASSWORD, "{Lösenord}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);

$result = curl_exec($ch);

if (curl_errno($ch)) {
    die(curl_getinfo($ch));
}

$info = curl_getinfo($ch);
curl_close($ch);

$http_code = $info["http_code"];
if ($http_code == 401) {
    // Användarnamnet eller lösenordet är felaktigt
}
if ($http_code == 403) {
    // Begärt data som det saknas åtkomst till
}
if ($http_code == 500) {
    // Oväntat fel, kontakta Vitec
}
if ($http_code == 400) {
    $json = json_decode($result, true);
    // Hantera valideringsfel, presenteras i $json
}

$first = $result[0];
$field_on_result = $first["id"];
// TODO: Gör något med resultatet
Testformulär Text input
Response Formats
[
  {
    "id": "sample string 1",
    "sellerOn": [
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "shareHolding": "sample string 2"
      },
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "shareHolding": "sample string 2"
      }
    ]
  },
  {
    "id": "sample string 1",
    "sellerOn": [
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "shareHolding": "sample string 2"
      },
      {
        "estateId": "sample string 1",
        "estateType": "House",
        "shareHolding": "sample string 2"
      }
    ]
  }
]
<ArrayOfCrmSellerContact xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.Contact.Crm">
  <CrmSellerContact>
    <Id>sample string 1</Id>
    <SellerOn>
      <CrmSellerRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <ShareHolding>sample string 2</ShareHolding>
      </CrmSellerRelation>
      <CrmSellerRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <ShareHolding>sample string 2</ShareHolding>
      </CrmSellerRelation>
    </SellerOn>
  </CrmSellerContact>
  <CrmSellerContact>
    <Id>sample string 1</Id>
    <SellerOn>
      <CrmSellerRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <ShareHolding>sample string 2</ShareHolding>
      </CrmSellerRelation>
      <CrmSellerRelation>
        <EstateId>sample string 1</EstateId>
        <EstateType>House</EstateType>
        <ShareHolding>sample string 2</ShareHolding>
      </CrmSellerRelation>
    </SellerOn>
  </CrmSellerContact>
</ArrayOfCrmSellerContact>