Dokumentation för API-funktioner
GET CRM/Contact/{customerId}/Search Fritextsökning (Namn, personnummer, e-postadress, telefonnummer etc). Request Information URI Parameters
NamnBeskrivningTypInformation
customerId Kund-id string Krävs
Term Namn, personnummer, e-postadress, telefonnummer etc string Min length: 5
Required
MaxSize Max resultat, default är 50 och max är 1 000 integer

Response Information Resource Description Fritextsökning (Namn, personnummer, e-postadress, telefonnummer etc). CrmContactSearchList
NamnBeskrivningTypInformation
Matches Personer som matchats Collection of CrmContactSearchMatch

Kodexempel

curl "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Search?Term=StringValue&MaxSize=0" -X GET -H "Authorization: basic {Base64 kodad användarnamn och lösenord}" 
            

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Search?Term=StringValue&MaxSize=0"
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/Search?Term=StringValue&MaxSize=0")) {
    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 matches = result.matches.Value;
    // TODO: Gör något med resultatet
}

$URL = "https://connect.maklare.vitec.net/CRM/Contact/StringValue/Search?Term=StringValue&MaxSize=0";

$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
}

$field_on_result = $result["matches"];
// TODO: Gör något med resultatet
Testformulär Text input
Response Formats
{
  "matches": [
    {
      "id": "sample string 1",
      "changedAt": "2024-11-21T10:36:21.9891572+01:00",
      "customerId": "sample string 3",
      "type": "Person",
      "score": 4.1
    },
    {
      "id": "sample string 1",
      "changedAt": "2024-11-21T10:36:21.9891572+01:00",
      "customerId": "sample string 3",
      "type": "Person",
      "score": 4.1
    }
  ]
}
<CrmContactSearchList xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.Contact.Crm">
  <Matches>
    <CrmContactSearchMatch>
      <ChangedAt>2024-11-21T10:36:21.9891572+01:00</ChangedAt>
      <CustomerId>sample string 3</CustomerId>
      <Id>sample string 1</Id>
      <Score>4.1</Score>
      <Type>Person</Type>
    </CrmContactSearchMatch>
    <CrmContactSearchMatch>
      <ChangedAt>2024-11-21T10:36:21.9891572+01:00</ChangedAt>
      <CustomerId>sample string 3</CustomerId>
      <Id>sample string 1</Id>
      <Score>4.1</Score>
      <Type>Person</Type>
    </CrmContactSearchMatch>
  </Matches>
</CrmContactSearchList>