Richemont.Booster2.PublicApi

<back to all web services

GetCustomerV2

Requires Authentication
The following routes are available for this service:
GET/customer/v2/{customerId}Get customer detailsGet Customer info based on the Booster or Elevate Customer ID
import java.math.*
import java.util.*
import net.servicestack.client.*


open class GetCustomerV2
{
    /**
    * Booster or Elevate Customer ID
    */
    @ApiMember(Description="Booster or Elevate Customer ID", IsRequired=true)
    var customerId:String? = null
}

open class GetCustomerV2Response
{
    /**
    * Booster Customer ID
    */
    @ApiMember(Description="Booster Customer ID")
    var boosterCustomerId:Int? = null

    /**
    * Elevate Customer ID
    */
    @ApiMember(Description="Elevate Customer ID")
    var elevateCustomerId:String? = null

    /**
    * SAP ID
    */
    @ApiMember(Description="SAP ID", IsRequired=true)
    var sapId:String? = null

    /**
    * Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'Personal'
    */
    @ApiMember(Description="Title e.g. 'Mr & Mrs', 'Mr.', 'Mrs.', 'Sama', 'Captain' - Mandatory only when customer type is 'Personal'", IsRequired=true)
    var title:String? = null

    /**
    * First Name
    */
    @ApiMember(Description="First Name", IsRequired=true)
    var firstName:String? = null

    /**
    * Last Name - Mandatory only when customer type is 'Personal'
    */
    @ApiMember(Description="Last Name - Mandatory only when customer type is 'Personal'", IsRequired=true)
    var lastName:String? = null

    /**
    * First Name Not Latin, e.g. Arabic
    */
    @ApiMember(Description="First Name Not Latin, e.g. Arabic", IsRequired=true)
    var firstNameNotLatin:String? = null

    /**
    * Last Name Not Latin, e.g. Arabic; Mandatory only when customer type is 'Personal'
    */
    @ApiMember(Description="Last Name Not Latin, e.g. Arabic; Mandatory only when customer type is 'Personal'", IsRequired=true)
    var lastNameNotLatin:String? = null

    /**
    * Middle Name
    */
    @ApiMember(Description="Middle Name")
    var middleName:String? = null

    /**
    * Name Suffix
    */
    @ApiMember(Description="Name Suffix")
    var nameSuffix:String? = null

    /**
    * Can be Contacted by Maison e.g. true or false
    */
    @ApiMember(Description="Can be Contacted by Maison e.g. true or false", IsRequired=true)
    var canBeContactedByMaison:Boolean? = null

    /**
    * clientType e.g. Private, Company
    */
    @ApiMember(Description="clientType e.g. Private, Company", IsRequired=true)
    var clientType:String? = null

    /**
    * Company Name - Mandatory only when customer type is 'Company'
    */
    @ApiMember(Description="Company Name - Mandatory only when customer type is 'Company'")
    var companyName:String? = null

    /**
    * Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'Personal'
    */
    @ApiMember(Description="Language Id e.g. ita, chi, aze, eng, ger - Mandatory only when customer type is 'Personal'")
    var languageId:String? = null

    /**
    * Gender e.g. M, F - Mandatory only when customer type is 'Personal'
    */
    @ApiMember(Description="Gender e.g. M, F - Mandatory only when customer type is 'Personal'")
    var gender:String? = null

    /**
    * Country Id e.g. it, ch, az, gb, de
    */
    @ApiMember(Description="Country Id e.g. it, ch, az, gb, de", IsRequired=true)
    var countryId:String? = null

    /**
    * Country Description e.g. Italy, Switzerland, Azerbaijan, Great Britain, Germany
    */
    @ApiMember(Description="Country Description e.g. Italy, Switzerland, Azerbaijan, Great Britain, Germany", IsRequired=true)
    var countryDs:String? = null

    /**
    * Birth Date e.g. '2020-12-30'
    */
    @ApiMember(Description="Birth Date e.g. '2020-12-30'")
    var birthDate:String? = null

    /**
    * Customer reference
    */
    @ApiMember(Description="Customer reference")
    var customerReference:String? = null

    /**
    * POS Code e.g. ES100:102048
    */
    @ApiMember(Description="POS Code e.g. ES100:102048", IsRequired=true)
    var posCode:String? = null

    /**
    * Brand e.g. CAR, MTB
    */
    @ApiMember(Description="Brand e.g. CAR, MTB", IsRequired=true)
    var brand:String? = null

    /**
    * Wedding Date, e.g. '2020-01-18'
    */
    @ApiMember(Description="Wedding Date, e.g. '2020-01-18'")
    var weddingDate:String? = null

    /**
    * Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'
    */
    @ApiMember(Description="Preferred Contact Method e.g. 'Fax', 'Tel', 'EMail', 'Mail', 'Survey'")
    var preferredContactMethod:String? = null

    /**
    * Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you want to be contacted by email. Leave empty or 'false' if you do not.")
    var contactByEmailFlag:Boolean? = null

    /**
    * Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you want to be contacted by mail. Leave empty or 'false' if you do not.")
    var contactByMailFlag:Boolean? = null

    /**
    * Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you want to be contacted by phone. Leave empty or 'false' if you do not.")
    var contactByPhoneFlag:Boolean? = null

    /**
    * Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you want to be contacted by SMS. Leave empty or 'false' if you do not.")
    var contactBySMSFlag:Boolean? = null

    /**
    * Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you want to be contacted by social media. Leave empty or 'false' if you do not.")
    var contactBySocialMediaFlag:Boolean? = null

    /**
    * Sale Representative Email e.g. rauf.aliyev@richemont.com
    */
    @ApiMember(Description="Sale Representative Email e.g. rauf.aliyev@richemont.com")
    var saleRepresentativeEmail:String? = null

    /**
    * Consent for allowing Cross Border Data Transfer
    */
    @ApiMember(Description="Consent for allowing Cross Border Data Transfer")
    var allowStoreDataAbroad:Boolean? = null

    /**
    * Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.
    */
    @ApiMember(Description="Provide 'true' if you allow data sharing consent. Leave empty or 'false' if you do not.")
    var dataSharingConsent:Boolean? = null

    /**
    * Data Sharing Consent Timestamp
    */
    @ApiMember(Description="Data Sharing Consent Timestamp")
    var dataSharingConsentTimestamp:String? = null

    /**
    * Client Registration Date
    */
    @ApiMember(Description="Client Registration Date")
    var clientRegistrationDate:String? = null

    /**
    * Client Creation Date
    */
    @ApiMember(Description="Client Creation Date")
    var createdOn:String? = null

    /**
    * Notes
    */
    @ApiMember(Description="Notes")
    var notes:String? = null

    /**
    * Customer emails
    */
    @ApiMember(Description="Customer emails")
    var emails:ArrayList<Email> = ArrayList<Email>()

    /**
    * Customer phones
    */
    @ApiMember(Description="Customer phones")
    var phones:ArrayList<Phone> = ArrayList<Phone>()

    /**
    * Customer addresses
    */
    @ApiMember(Description="Customer addresses")
    var addresses:ArrayList<Address> = ArrayList<Address>()

    /**
    * Customer events
    */
    @ApiMember(Description="Customer events")
    var events:ArrayList<CustomerEventV2> = ArrayList<CustomerEventV2>()

    /**
    * Customer interests
    */
    @ApiMember(Description="Customer interests")
    var interests:ArrayList<Interest> = ArrayList<Interest>()

    /**
    * Customer hobbies
    */
    @ApiMember(Description="Customer hobbies")
    var hobbies:ArrayList<Hobby> = ArrayList<Hobby>()

    /**
    * Customer Product Collections
    */
    @ApiMember(Description="Customer Product Collections")
    var productCollections:ArrayList<ProductCollection> = ArrayList<ProductCollection>()

    /**
    * Registration date
    */
    @ApiMember(Description="Registration date")
    var registrationDate:Date? = null

    /**
    * Sap Crm Error Message
    */
    @ApiMember(Description="Sap Crm Error Message")
    var sapCrmErrorMessage:String? = null
}

open class Email
{
    /**
    * Email
    */
    @ApiMember(Description="Email", IsRequired=true)
    var email:String? = null

    /**
    * Main email
    */
    @ApiMember(Description="Main email", IsRequired=true)
    var isMainEmail:Boolean? = null
}

open class Phone
{
    /**
    * Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456
    */
    @ApiMember(Description="Phone e.g. cn: 13888889999, jp: 352858088, kr: 023123456", IsRequired=true)
    var phone:String? = null

    /**
    * Prefix Country Id e.g. it, fr, az
    */
    @ApiMember(Description="Prefix Country Id e.g. it, fr, az", IsRequired=true)
    var countryPrefix:String? = null

    /**
    * Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'
    */
    @ApiMember(Description="Phone type e.g. 'Home', 'Mobile', 'Work', 'Other', 'Secondary Address'")
    var phoneType:String? = null

    /**
    * Main Phone
    */
    @ApiMember(Description="Main Phone", IsRequired=true)
    var isMainPhone:Boolean? = null
}

open class Address
{
    /**
    * Address type e.g. Home, Office, Shipping
    */
    @ApiMember(Description="Address type e.g. Home, Office, Shipping", IsRequired=true)
    var addressType:String? = null

    /**
    * Country Id e.g. it, cn, az, gb, de
    */
    @ApiMember(Description="Country Id e.g. it, cn, az, gb, de", IsRequired=true)
    var countryId:String? = null

    /**
    * House Number
    */
    @ApiMember(Description="House Number")
    var houseNumber:String? = null

    /**
    * Region/State
    */
    @ApiMember(Description="Region/State")
    var stateId:String? = null

    /**
    * City Name
    */
    @ApiMember(Description="City Name")
    var city:String? = null

    /**
    * Postal Code
    */
    @ApiMember(Description="Postal Code")
    var zipCode:String? = null

    /**
    * Street Name and Number
    */
    @ApiMember(Description="Street Name and Number")
    var street:String? = null

    /**
    * Street 2
    */
    @ApiMember(Description="Street 2")
    var street2:String? = null

    /**
    * Street 3
    */
    @ApiMember(Description="Street 3")
    var street3:String? = null

    /**
    * Street 4
    */
    @ApiMember(Description="Street 4")
    var street4:String? = null

    /**
    * Street 5
    */
    @ApiMember(Description="Street 5")
    var street5:String? = null

    /**
    * Main Address
    */
    @ApiMember(Description="Main Address", IsRequired=true)
    var isMainAddress:Boolean? = null

    /**
    * Post Office Box
    */
    @ApiMember(Description="Post Office Box")
    var poBox:String? = null

    /**
    * Additional Information
    */
    @ApiMember(Description="Additional Information")
    var additionalInformation:String? = null
}

open class CustomerEventV2
{
    /**
    * Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'
    */
    @ApiMember(Description="Event type e.g. 'Birthday', 'Wedding', 'Anniversary', 'Barmitza', 'Other'", IsRequired=true)
    var eventType:String? = null

    /**
    * Event date e.g. '2021-01-20'
    */
    @ApiMember(Description="Event date e.g. '2021-01-20'", IsRequired=true)
    var eventDate:String? = null

    /**
    * Event notes
    */
    @ApiMember(Description="Event notes")
    var eventNotes:String? = null

    /**
    * Event other name
    */
    @ApiMember(Description="Event other name")
    var eventOtherName:String? = null
}

open class Interest
{
    /**
    * Interest description
    */
    @ApiMember(Description="Interest description", IsRequired=true)
    var interest:String? = null

    /**
    * SAP Interest ID, e.g. 'CA-1'
    */
    @ApiMember(Description="SAP Interest ID, e.g. 'CA-1'", IsRequired=true)
    var sapInterestId:String? = null

    /**
    * Interest description translation
    */
    @ApiMember(Description="Interest description translation")
    var translation:String? = null
}

open class Hobby
{
    /**
    * Hobby description
    */
    @ApiMember(Description="Hobby description", IsRequired=true)
    var hobby:String? = null

    /**
    * SAP Hobby ID, e.g. 'ART'
    */
    @ApiMember(Description="SAP Hobby ID, e.g. 'ART'", IsRequired=true)
    var sapHobbyId:String? = null

    /**
    * Hobby description translation
    */
    @ApiMember(Description="Hobby description translation")
    var translation:String? = null
}

open class ProductCollection
{
    /**
    * Product Collection description
    */
    @ApiMember(Description="Product Collection description", IsRequired=true)
    var productCollection:String? = null

    /**
    * SAP ProductCollection ID, e.g. 'CA-1'
    */
    @ApiMember(Description="SAP ProductCollection ID, e.g. 'CA-1'", IsRequired=true)
    var sapProductCollectionId:String? = null

    /**
    * Product Collection description translation
    */
    @ApiMember(Description="Product Collection description translation", IsRequired=true)
    var translation:String? = null
}

Kotlin GetCustomerV2 DTOs

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

HTTP + JSV

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

GET /customer/v2/{customerId} HTTP/1.1 
Host: dev-api-booster.richemont.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	boosterCustomerId: 0,
	elevateCustomerId: String,
	sapId: String,
	title: String,
	firstName: String,
	lastName: String,
	firstNameNotLatin: String,
	lastNameNotLatin: String,
	middleName: String,
	nameSuffix: String,
	canBeContactedByMaison: False,
	clientType: String,
	companyName: String,
	languageId: String,
	gender: String,
	countryId: String,
	countryDs: String,
	birthDate: String,
	customerReference: String,
	posCode: String,
	brand: String,
	weddingDate: String,
	preferredContactMethod: String,
	contactByEmailFlag: False,
	contactByMailFlag: False,
	contactByPhoneFlag: False,
	contactBySMSFlag: False,
	contactBySocialMediaFlag: False,
	saleRepresentativeEmail: String,
	allowStoreDataAbroad: False,
	dataSharingConsent: False,
	dataSharingConsentTimestamp: String,
	clientRegistrationDate: String,
	createdOn: String,
	notes: String,
	emails: 
	[
		{
			email: String,
			isMainEmail: False
		}
	],
	phones: 
	[
		{
			phone: String,
			countryPrefix: String,
			phoneType: String,
			isMainPhone: False
		}
	],
	addresses: 
	[
		{
			addressType: String,
			countryId: String,
			houseNumber: String,
			stateId: String,
			city: String,
			zipCode: String,
			street: String,
			street2: String,
			street3: String,
			street4: String,
			street5: String,
			isMainAddress: False,
			poBox: String,
			additionalInformation: String
		}
	],
	events: 
	[
		{
			eventType: String,
			eventDate: String,
			eventNotes: String,
			eventOtherName: String
		}
	],
	interests: 
	[
		{
			interest: String,
			sapInterestId: String,
			translation: String
		}
	],
	hobbies: 
	[
		{
			hobby: String,
			sapHobbyId: String,
			translation: String
		}
	],
	productCollections: 
	[
		{
			productCollection: String,
			sapProductCollectionId: String,
			translation: String
		}
	],
	registrationDate: 0001-01-01,
	sapCrmErrorMessage: String
}