Dokumentation för API-funktioner
POST Contacts/UpdatePerson Skicka in ny eller uppdatera befintlig kontaktperson.

För att kunna uppdatera eller skapa en kontakt så krävs det en giltig API nyckel och ett kundid (Customerld).
Finns Contactld (kontaktid) sker kontrollen på detta och alla inskickade fält uppdateras på kontakten.
Saknas Contactld (kontaktid) sker kontrollen på SocialSecurityNumber (personummer) och alla övriga fält på konten uppdateras.
Finns ingen av ovanstånde fält så sker kontrollen på FirstName (förnamn) och LastName (efternamn) och dessutom på något av telephone (telefonnummer), cellphone (mobilnummer) eller EmailAddress (Epostadress1). Lämnas dessa fält tomma sker ingen dubblett kontroll men minst ett av dessa måste skickas in för att identifiera en dubblett. Hittas ingen dubblett skapas en ny person.
Request Information Body Parameters Kontakt UpdatePerson
NamnBeskrivningTypInformation
FirstName Förnamn string Förnamn måste vara mellan 0 och 30 tecken
LastName Efternamn string Efternamn måste vara mellan 0 och 30 tecken
SocialSecurityNumber Personnummer string Personnummer måste vara mellan 0 och 20 tecken
IsForeignSocialSecurityNumber Annat format/utländskt personnummer boolean

TelePhone Telefon bostad string Epostadress, telefonnummer (bostad eller arbete) eller mobilnummer måste anges.
Telefonnummer måste vara mellan 0 och 17 tecken
WorkPhone Telefon arbete string Epostadress, telefonnummer (bostad eller arbete) eller mobilnummer måste anges.
Arbetsnummer måste vara mellan 0 och 17 tecken
CellPhone Mobiltelefon string Epostadress, telefonnummer (bostad eller arbete) eller mobilnummer måste anges.
Mobilnummer måste vara mellan 0 och 17 tecken
Approval PUL-Godkännande boolean

ApprovalDate PUL-Godkännande datum date

GDPRApprovalDate GDPR informerad den date

ObtainThrough Informerad via ObtainMethod

ContactId Kontakt id string Kontaktid måste vara mellan 0 och 40 tecken
CustomerId Kund Id string Kundid krävs
Kundid måste vara mellan 0 och 40 tecken
CategoryIds Kontaktkategori id Collection of string

Address Adress Address

Email Email Email

UserId Användarid som kontakten ska kopplas till string

OtherPhone Telefon annat string Övrigt telefonnummer måste vara mellan 0 och 17 tecken
WishAdvertising Önskar reklamutskick boolean

Note Anteckning string

Coordinate Koordinater Coordinate

Task Typad uppgift Task

CustomField Egendefinerat fält FieldValueCriteria

LeadScore Antal lead score stjärnor integer

Request Formats

{
  "firstName": "sample string 1",
  "lastName": "sample string 2",
  "socialSecurityNumber": "sample string 3",
  "isForeignSocialSecurityNumber": true,
  "telePhone": "sample string 4",
  "workPhone": "sample string 5",
  "cellPhone": "sample string 6",
  "approval": true,
  "approvalDate": "2024-05-02T11:52:22.3206496+02:00",
  "gdprApprovalDate": "2024-05-02T11:52:22.3206496+02:00",
  "obtainThrough": "Interest",
  "contactId": "sample string 7",
  "customerId": "sample string 8",
  "categoryIds": [
    "sample string 1",
    "sample string 2"
  ],
  "address": {
    "streetAddress": "sample string 1",
    "zipCode": "sample string 2",
    "city": "sample string 3",
    "countryCode": "sample string 4"
  },
  "email": {
    "emailAddress": "sample string 1",
    "emailAddress2": "sample string 2"
  },
  "userId": "sample string 9",
  "otherPhone": "sample string 10",
  "wishAdvertising": true,
  "note": "sample string 11",
  "coordinate": {
    "longitud": 1.1,
    "latitud": 2.1
  },
  "task": {
    "predefinedTaskId": "sample string 1",
    "note": "sample string 2",
    "estateId": "sample string 3",
    "assignedTo": "sample string 4"
  },
  "customField": {
    "name": "sample string 1",
    "value": "sample string 2"
  },
  "leadScore": 1
}
<UpdatePerson xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.Contact.Update">
  <Address xmlns:d2p1="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models">
    <d2p1:City>sample string 3</d2p1:City>
    <d2p1:CountryCode>sample string 4</d2p1:CountryCode>
    <d2p1:StreetAddress>sample string 1</d2p1:StreetAddress>
    <d2p1:ZipCode>sample string 2</d2p1:ZipCode>
  </Address>
  <CategoryIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:string>sample string 1</d2p1:string>
    <d2p1:string>sample string 2</d2p1:string>
  </CategoryIds>
  <ContactId>sample string 7</ContactId>
  <Coordinate xmlns:d2p1="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models">
    <d2p1:Latitud>2.1</d2p1:Latitud>
    <d2p1:Longitud>1.1</d2p1:Longitud>
  </Coordinate>
  <CustomField xmlns:d2p1="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.CustomField">
    <d2p1:Name>sample string 1</d2p1:Name>
    <d2p1:Value>sample string 2</d2p1:Value>
  </CustomField>
  <CustomerId>sample string 8</CustomerId>
  <Email xmlns:d2p1="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models">
    <d2p1:EmailAddress>sample string 1</d2p1:EmailAddress>
    <d2p1:EmailAddress2>sample string 2</d2p1:EmailAddress2>
  </Email>
  <LeadScore>1</LeadScore>
  <Note>sample string 11</Note>
  <OtherPhone>sample string 10</OtherPhone>
  <Task xmlns:d2p1="http://schemas.datacontract.org/2004/07/Vitec.Housing.Connect.Api.Models.Task">
    <d2p1:AssignedTo>sample string 4</d2p1:AssignedTo>
    <d2p1:EstateId>sample string 3</d2p1:EstateId>
    <d2p1:Note>sample string 2</d2p1:Note>
    <d2p1:PredefinedTaskId>sample string 1</d2p1:PredefinedTaskId>
  </Task>
  <UserId>sample string 9</UserId>
  <WishAdvertising>true</WishAdvertising>
  <Approval>true</Approval>
  <ApprovalDate>2024-05-02T11:52:22.3206496+02:00</ApprovalDate>
  <CellPhone>sample string 6</CellPhone>
  <FirstName>sample string 1</FirstName>
  <GDPRApprovalDate>2024-05-02T11:52:22.3206496+02:00</GDPRApprovalDate>
  <IsForeignSocialSecurityNumber>true</IsForeignSocialSecurityNumber>
  <LastName>sample string 2</LastName>
  <ObtainThrough>Interest</ObtainThrough>
  <SocialSecurityNumber>sample string 3</SocialSecurityNumber>
  <TelePhone>sample string 4</TelePhone>
  <WorkPhone>sample string 5</WorkPhone>
</UpdatePerson>
Response Information Resource Description Skapar en ny eller uppdaterar en befintlig kontaktperson.
Dubblettkontroll sker på
1) kontaktid, 2) personnummer, 3) förnamn och efternamn, och något av telefonnummer, mobilnummer eller epostadress.
Matar man in information i något av ovanstående fält, så fylls övriga fält i automatiskt.
Minst ett fält behöver vara ifyllt för att dubblettkontroll ska kunna göras. Om dubblettkontrollen inte hittar en redan befintlig kontakt skapas en ny.
string Kodexempel

curl "https://connect.maklare.vitec.net/Contacts/UpdatePerson" -X POST -H "Content-Type: application/json" -H "Authorization: basic {Base64 kodad användarnamn och lösenord}" -d {\"firstName\":\"StringValue\",\"lastName\":\"StringValue\",\"socialSecurityNumber\":\"StringValue\"}
            

$URL = "https://connect.maklare.vitec.net/Contacts/UpdatePerson"
$data = "{`"firstName`":`"StringValue`",`"lastName`":`"StringValue`",`"socialSecurityNumber`":`"StringValue`"}"
Invoke-WebRequest -Uri $URL -Method POST -Headers @{"Content-Type" = "application/json"; "authorization" = "basic {Base64 kodad användarnamn och lösenord}"} -Body $data
                

// 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}")
//     }
// }
var json = "{\"firstName\":\"StringValue\",\"lastName\":\"StringValue\",\"socialSecurityNumber\":\"StringValue\"}";
using (var response = await HttpClientInstance.PostAsync("Contacts/UpdatePerson", new StringContent(json, Encoding.UTF8, "application/json"))) {
    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);
    
    // TODO: Gör något med resultatet
}

$URL = "https://connect.maklare.vitec.net/Contacts/UpdatePerson";

$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);
$data = "{\"firstName\":\"StringValue\",\"lastName\":\"StringValue\",\"socialSecurityNumber\":\"StringValue\"}";
curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data)
));

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

// TODO: Gör något med resultatet
Testformulär Text input
Response Formats
"sample string 1"
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">sample string 1</string>