Richemont.Booster2.PublicApi

<back to all web services

UpdateCustomer

Requires Authentication
The following routes are available for this service:
PUT/customer/{boosterCustomerId}Update customerUpdate CRM customer
namespace Richemont.Booster2.PublicApi.CRM.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type Email() = 
        ///<summary>
        ///Email
        ///</summary>
        [<ApiMember(Description="Email", IsRequired=true)>]
        member val email:String = null with get,set

        ///<summary>
        ///Main email
        ///</summary>
        [<ApiMember(Description="Main email", IsRequired=true)>]
        member val isMainEmail:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Phone() = 
        ///<summary>
        ///Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456
        ///</summary>
        [<ApiMember(Description="Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456", IsRequired=true)>]
        member val phone:String = null with get,set

        ///<summary>
        ///Prefix Country Id e.g. it, fr, az
        ///</summary>
        [<ApiMember(Description="Prefix Country Id e.g. it, fr, az", IsRequired=true)>]
        member val countryPrefix:String = null with get,set

        ///<summary>
        ///Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'
        ///</summary>
        [<ApiMember(Description="Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'")>]
        member val phoneType:String = null with get,set

        ///<summary>
        ///Main Phone
        ///</summary>
        [<ApiMember(Description="Main Phone", IsRequired=true)>]
        member val isMainPhone:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Address() = 
        ///<summary>
        ///Address type e.g. Home, Office, Shipping
        ///</summary>
        [<ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true)>]
        member val addressType:String = null with get,set

        ///<summary>
        ///Country Id e.g. it, cn, az, gb, de
        ///</summary>
        [<ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true)>]
        member val countryId:String = null with get,set

        ///<summary>
        ///House Number
        ///</summary>
        [<ApiMember(Description="House Number")>]
        member val houseNumber:String = null with get,set

        ///<summary>
        ///Region/State
        ///</summary>
        [<ApiMember(Description="Region/State")>]
        member val stateId:String = null with get,set

        ///<summary>
        ///City Name
        ///</summary>
        [<ApiMember(Description="City Name")>]
        member val city:String = null with get,set

        ///<summary>
        ///Postal Code
        ///</summary>
        [<ApiMember(Description="Postal Code")>]
        member val zipCode:String = null with get,set

        ///<summary>
        ///Street Name and Number
        ///</summary>
        [<ApiMember(Description="Street Name and Number")>]
        member val street:String = null with get,set

        ///<summary>
        ///Street 2
        ///</summary>
        [<ApiMember(Description="Street 2")>]
        member val street2:String = null with get,set

        ///<summary>
        ///Street 3
        ///</summary>
        [<ApiMember(Description="Street 3")>]
        member val street3:String = null with get,set

        ///<summary>
        ///Street 4
        ///</summary>
        [<ApiMember(Description="Street 4")>]
        member val street4:String = null with get,set

        ///<summary>
        ///Street 5
        ///</summary>
        [<ApiMember(Description="Street 5")>]
        member val street5:String = null with get,set

        ///<summary>
        ///Main Address
        ///</summary>
        [<ApiMember(Description="Main Address", IsRequired=true)>]
        member val isMainAddress:Boolean = new Boolean() with get,set

        ///<summary>
        ///Post Office Box
        ///</summary>
        [<ApiMember(Description="Post Office Box")>]
        member val poBox:String = null with get,set

        ///<summary>
        ///Additional Information
        ///</summary>
        [<ApiMember(Description="Additional Information")>]
        member val additionalInformation:String = null with get,set

    [<AllowNullLiteral>]
    type Event() = 
        ///<summary>
        ///Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'
        ///</summary>
        [<ApiMember(Description="Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'", IsRequired=true)>]
        member val eventType:String = null with get,set

        ///<summary>
        ///Event date e.g. '2021-01-20'
        ///</summary>
        [<ApiMember(Description="Event date e.g. '2021-01-20'", IsRequired=true)>]
        member val eventDate:DateTime = new DateTime() with get,set

        ///<summary>
        ///Event notes
        ///</summary>
        [<ApiMember(Description="Event notes")>]
        member val eventNotes:String = null with get,set

        ///<summary>
        ///Event other name
        ///</summary>
        [<ApiMember(Description="Event other name")>]
        member val eventOtherName:String = null with get,set

    [<AllowNullLiteral>]
    type Interest() = 
        ///<summary>
        ///Interest description
        ///</summary>
        [<ApiMember(Description="Interest description", IsRequired=true)>]
        member val interest:String = null with get,set

        ///<summary>
        ///SAP Interest ID, e.g. 'CA-1'
        ///</summary>
        [<ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true)>]
        member val sapInterestId:String = null with get,set

        ///<summary>
        ///Interest description translation
        ///</summary>
        [<ApiMember(Description="Interest description translation")>]
        member val translation:String = null with get,set

    [<AllowNullLiteral>]
    type Hobby() = 
        ///<summary>
        ///Hobby description
        ///</summary>
        [<ApiMember(Description="Hobby description", IsRequired=true)>]
        member val hobby:String = null with get,set

        ///<summary>
        ///SAP Hobby ID, e.g. 'ART'
        ///</summary>
        [<ApiMember(Description="SAP Hobby ID, e.g. 'ART'", IsRequired=true)>]
        member val sapHobbyId:String = null with get,set

        ///<summary>
        ///Hobby description translation
        ///</summary>
        [<ApiMember(Description="Hobby description translation")>]
        member val translation:String = null with get,set

    [<AllowNullLiteral>]
    type ProductCollection() = 
        ///<summary>
        ///Product Collection description
        ///</summary>
        [<ApiMember(Description="Product Collection description", IsRequired=true)>]
        member val productCollection:String = null with get,set

        ///<summary>
        ///SAP ProductCollection ID, e.g. 'CA-1'
        ///</summary>
        [<ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true)>]
        member val sapProductCollectionId:String = null with get,set

        ///<summary>
        ///Product Collection description translation
        ///</summary>
        [<ApiMember(Description="Product Collection description translation", IsRequired=true)>]
        member val translation:String = null with get,set

    [<AllowNullLiteral>]
    type Customer() = 
        ///<summary>
        ///Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE'
        ///</summary>
        [<ApiMember(Description="Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'PRIVATE'")>]
        member val title:String = null with get,set

        ///<summary>
        ///First Name
        ///</summary>
        [<ApiMember(Description="First Name")>]
        member val firstName:String = null with get,set

        ///<summary>
        ///Last Name - Mandatory only when customer type is 'PRIVATE'
        ///</summary>
        [<ApiMember(Description="Last Name - Mandatory only when customer type is 'PRIVATE'")>]
        member val lastName:String = null with get,set

        ///<summary>
        ///First Name Not Latin
        ///</summary>
        [<ApiMember(Description="First Name Not Latin")>]
        member val firstNameNotLatin:String = null with get,set

        ///<summary>
        ///Last Name Not Latin
        ///</summary>
        [<ApiMember(Description="Last Name Not Latin")>]
        member val lastNameNotLatin:String = null with get,set

        ///<summary>
        ///Middle Name
        ///</summary>
        [<ApiMember(Description="Middle Name")>]
        member val middleName:String = null with get,set

        ///<summary>
        ///Name Suffix
        ///</summary>
        [<ApiMember(Description="Name Suffix")>]
        member val nameSuffix:String = null with get,set

        ///<summary>
        ///Can be Contacted by Maison e.g. true or false
        ///</summary>
        [<ApiMember(Description="Can be Contacted by Maison e.g. true or false", IsRequired=true)>]
        member val canBeContactedByMaison:Boolean = new Boolean() with get,set

        ///<summary>
        ///Customer Type e.g. 'PRIVATE' or 'COMPANY'
        ///</summary>
        [<ApiMember(Description="Customer Type e.g. 'PRIVATE' or 'COMPANY'", IsRequired=true)>]
        member val clientType:String = null with get,set

        ///<summary>
        ///Company Name - Mandatory only when customer type is 'COMPANY'
        ///</summary>
        [<ApiMember(Description="Company Name - Mandatory only when customer type is 'COMPANY'")>]
        member val companyName:String = null with get,set

        ///<summary>
        ///Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE'
        ///</summary>
        [<ApiMember(Description="Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'PRIVATE'")>]
        member val languageId:String = null with get,set

        ///<summary>
        ///Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE'
        ///</summary>
        [<ApiMember(Description="Gender e.g. M, F - Mandatory only when customer type is 'PRIVATE'")>]
        member val gender:String = null with get,set

        ///<summary>
        ///Country Id e.g. it, cn, az, gb, de
        ///</summary>
        [<ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true)>]
        member val countryId:String = null with get,set

        ///<summary>
        ///Birth Date e.g. '2020-12-30'
        ///</summary>
        [<ApiMember(Description="Birth Date e.g. '2020-12-30'")>]
        member val birthDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Customer reference
        ///</summary>
        [<ApiMember(Description="Customer reference")>]
        member val customerReference:String = null with get,set

        ///<summary>
        ///POS Code e.g. ES100:102048
        ///</summary>
        [<ApiMember(Description="POS Code e.g. ES100:102048", IsRequired=true)>]
        member val posCode:String = null with get,set

        ///<summary>
        ///Brand e.g. CAR, MTB
        ///</summary>
        [<ApiMember(Description="Brand e.g. CAR, MTB", IsRequired=true)>]
        member val brand:String = null with get,set

        ///<summary>
        ///Wedding Date, e.g. '2020-01-18'
        ///</summary>
        [<ApiMember(Description="Wedding Date, e.g. '2020-01-18'")>]
        member val weddingDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

        ///<summary>
        ///Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'
        ///</summary>
        [<ApiMember(Description="Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'")>]
        member val preferredContactMethod:String = null with get,set

        ///<summary>
        ///Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.")>]
        member val contactByEmailFlag:Boolean = new Boolean() with get,set

        ///<summary>
        ///Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.")>]
        member val contactByMailFlag:Boolean = new Boolean() with get,set

        ///<summary>
        ///Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.")>]
        member val contactByPhoneFlag:Boolean = new Boolean() with get,set

        ///<summary>
        ///Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.")>]
        member val contactBySMSFlag:Boolean = new Boolean() with get,set

        ///<summary>
        ///Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.")>]
        member val contactBySocialMediaFlag:Boolean = new Boolean() with get,set

        ///<summary>
        ///Sale Representative Email e.g. rauf.aliyev@richemont.com
        ///</summary>
        [<ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com")>]
        member val saleRepresentativeEmail:String = null with get,set

        ///<summary>
        ///Consent for allowing Cross Border Data Transfer
        ///</summary>
        [<ApiMember(Description="Consent for allowing Cross Border Data Transfer")>]
        member val allowStoreDataAbroad:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Consent for allowing Cross Border Data Transfer For TimeVallée
        ///</summary>
        [<ApiMember(Description="Consent for allowing Cross Border Data Transfer For TimeVallée")>]
        member val tvAllowStoreDataAbroad:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Customer emails
        ///</summary>
        [<ApiMember(Description="Customer emails")>]
        member val emails:ResizeArray<Email> = new ResizeArray<Email>() with get,set

        ///<summary>
        ///Customer phones
        ///</summary>
        [<ApiMember(Description="Customer phones")>]
        member val phones:ResizeArray<Phone> = new ResizeArray<Phone>() with get,set

        ///<summary>
        ///Customer addresses
        ///</summary>
        [<ApiMember(Description="Customer addresses")>]
        member val addresses:ResizeArray<Address> = new ResizeArray<Address>() with get,set

        ///<summary>
        ///Customer events
        ///</summary>
        [<ApiMember(Description="Customer events")>]
        member val events:ResizeArray<Event> = new ResizeArray<Event>() with get,set

        ///<summary>
        ///Customer interests
        ///</summary>
        [<ApiMember(Description="Customer interests")>]
        member val interests:ResizeArray<Interest> = new ResizeArray<Interest>() with get,set

        ///<summary>
        ///Customer hobbies
        ///</summary>
        [<ApiMember(Description="Customer hobbies")>]
        member val hobbies:ResizeArray<Hobby> = new ResizeArray<Hobby>() with get,set

        ///<summary>
        ///Customer product collections
        ///</summary>
        [<ApiMember(Description="Customer product collections")>]
        member val productCollections:ResizeArray<ProductCollection> = new ResizeArray<ProductCollection>() with get,set

        ///<summary>
        ///Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.
        ///</summary>
        [<ApiMember(Description="Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.")>]
        member val dataSharingConsent:Nullable<Boolean> = new Nullable<Boolean>() with get,set

        ///<summary>
        ///Notes
        ///</summary>
        [<ApiMember(Description="Notes")>]
        member val notes:String = null with get,set

        ///<summary>
        ///Reference Sale Representative Email
        ///</summary>
        [<ApiMember(Description="Reference Sale Representative Email")>]
        member val referenceSaleRepresentativeEmail:String = null with get,set

        ///<summary>
        ///Registration Date
        ///</summary>
        [<ApiMember(Description="Registration Date")>]
        member val registrationDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set

    [<AllowNullLiteral>]
    type UpdateCustomer() = 
        inherit Customer()
        ///<summary>
        ///Booster customer Id
        ///</summary>
        [<ApiMember(Description="Booster customer Id")>]
        member val boosterCustomerId:Int32 = new Int32() with get,set

F# UpdateCustomer DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /customer/{boosterCustomerId} HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UpdateCustomer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Richemont.Booster2.PublicApi.CRM.ServiceModel">
  <addresses>
    <Address>
      <additionalInformation>String</additionalInformation>
      <addressType>String</addressType>
      <city>String</city>
      <countryId>String</countryId>
      <houseNumber>String</houseNumber>
      <isMainAddress>false</isMainAddress>
      <poBox>String</poBox>
      <stateId>String</stateId>
      <street>String</street>
      <street2>String</street2>
      <street3>String</street3>
      <street4>String</street4>
      <street5>String</street5>
      <zipCode>String</zipCode>
    </Address>
  </addresses>
  <allowStoreDataAbroad>false</allowStoreDataAbroad>
  <birthDate>0001-01-01T00:00:00</birthDate>
  <brand>String</brand>
  <canBeContactedByMaison>false</canBeContactedByMaison>
  <clientType>String</clientType>
  <companyName>String</companyName>
  <contactByEmailFlag>false</contactByEmailFlag>
  <contactByMailFlag>false</contactByMailFlag>
  <contactByPhoneFlag>false</contactByPhoneFlag>
  <contactBySMSFlag>false</contactBySMSFlag>
  <contactBySocialMediaFlag>false</contactBySocialMediaFlag>
  <countryId>String</countryId>
  <customerReference>String</customerReference>
  <dataSharingConsent>false</dataSharingConsent>
  <emails>
    <Email>
      <email>String</email>
      <isMainEmail>false</isMainEmail>
    </Email>
  </emails>
  <events>
    <Event>
      <eventDate>0001-01-01T00:00:00</eventDate>
      <eventNotes>String</eventNotes>
      <eventOtherName>String</eventOtherName>
      <eventType>String</eventType>
    </Event>
  </events>
  <firstName>String</firstName>
  <firstNameNotLatin>String</firstNameNotLatin>
  <gender>String</gender>
  <hobbies>
    <Hobby>
      <hobby>String</hobby>
      <sapHobbyId>String</sapHobbyId>
      <translation>String</translation>
    </Hobby>
  </hobbies>
  <interests>
    <Interest>
      <interest>String</interest>
      <sapInterestId>String</sapInterestId>
      <translation>String</translation>
    </Interest>
  </interests>
  <languageId>String</languageId>
  <lastName>String</lastName>
  <lastNameNotLatin>String</lastNameNotLatin>
  <middleName>String</middleName>
  <nameSuffix>String</nameSuffix>
  <notes>String</notes>
  <phones>
    <Phone>
      <countryPrefix>String</countryPrefix>
      <isMainPhone>false</isMainPhone>
      <phone>String</phone>
      <phoneType>String</phoneType>
    </Phone>
  </phones>
  <posCode>String</posCode>
  <preferredContactMethod>String</preferredContactMethod>
  <productCollections>
    <ProductCollection>
      <productCollection>String</productCollection>
      <sapProductCollectionId>String</sapProductCollectionId>
      <translation>String</translation>
    </ProductCollection>
  </productCollections>
  <referenceSaleRepresentativeEmail>String</referenceSaleRepresentativeEmail>
  <registrationDate>0001-01-01T00:00:00</registrationDate>
  <saleRepresentativeEmail>String</saleRepresentativeEmail>
  <title>String</title>
  <tvAllowStoreDataAbroad>false</tvAllowStoreDataAbroad>
  <weddingDate>0001-01-01T00:00:00</weddingDate>
  <boosterCustomerId>0</boosterCustomerId>
</UpdateCustomer>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<z:anyType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" />