Platform API

<back to all web services

InsertCustomerGroup

Insert new customer group

Requires Authentication
The following routes are available for this service:
All Verbs/api/insertcustomergroup
import Foundation
import ServiceStack

/**
* Insert new customer group
*/
// @Api(Description="Insert new customer group")
public class InsertCustomerGroup : Codable
{
    public var autoGenerateName:Bool
    public var customerName:String
    public var contacts:[Contact]
    public var projectId:String

    required public init(){}
}

public class Contact : Codable
{
    public var contactId:String
    public var primaryStreetAddressId:String?
    public var primaryPostalAddressId:String?
    public var primaryTaxRegisteredAddressId:String?
    public var primaryNonMobileId:String?
    public var primaryMobileId:String?
    public var primaryEmailId:String?
    public var mobile:String
    public var phone:String
    public var primaryEmail:String
    public var primaryAddress:String
    public var primaryFaxId:String?
    public var primaryWebId:String?
    public var primarySocialMediaId:String?
    public var firstName:String
    public var middleName:String
    public var surname:String
    public var fullName:String
    public var shortName:String
    public var birthDate:Date?
    public var title:String
    public var salutation:String
    public var maritalStatus:String?
    public var maritalStatusName:String
    public var gender:String?
    public var genderName:String
    public var abn:String
    public var acn:String
    public var arbn:String
    public var contactBankingDetails:ContactBanking
    public var legalName:String
    public var tradingName:String
    public var contactType:String?
    public var contactTypeName:String
    public var contactTypePhotoUrl:String
    public var contactTypePhotoThumbnailUrl:String
    public var timezone:String?
    public var timezoneName:String
    public var Description:String
    public var employmentIndustry:String
    public var employmentRole:String
    public var employmentGeographicArea:String
    public var gstRegistered:Bool
    public var driversLicence:String
    public var contactGroupIdStaff:String?
    public var staffGroupName:String
    public var contactGroupIdVendor:String?
    public var vendorGroupName:String
    public var contactGroupIdCustomer:String?
    public var customerGroupName:String
    public var primaryMediaFileId:String?
    public var profilePhotoUrl:String
    public var profilePhotoThumbnailUrl:String
    public var profileImageId:String
    public var recordStatus:String
    public var connectionStatusId:String
    public var subscriptionAlternateKey:String
    public var contactRoles:[UserRole]
    public var contactDetails:[ContactDetail]
    public var customContent:[CustomContentFieldValue]
    public var connectedContacts:[Contact]
    public var customContentXML:String
    public var contactDetailsXML:String
    public var connectionContactId:String
    public var connectionContactName:String
    public var userProfileIdDefault:String?
    public var userId:String
    public var username:String
    public var isRegistered:Bool
    public var esl:Bool
    public var language:String
    public var interpreterRequired:Bool
    public var licenseeNotes:String
    public var notes:String
    public var objectSubscriptionId:String
    public var objectHash:String
    public var ownerContactId:String

    required public init(){}
}

public class ContactBanking : Codable
{
    public var contactId:String
    public var bankName:String
    public var bankLocation:String
    public var bsb:String
    public var accountNumber:String
    public var accountName:String
    public var termOfTradeId:String?
    public var termOfTradeName:String
    public var ownerContactId:String
    public var recordStatus:String

    required public init(){}
}

public class UserRole : Codable
{
    public var connectionId:String
    public var contactRoleId:String
    public var contactId:String
    public var roleId:String
    public var roleName:String
    public var startDate:Date
    public var endDate:Date?
    public var isLicenseeRole:Bool
    public var isCustomerRole:Bool
    public var isPlatformRole:Bool
    public var isAdministerContactsRole:Bool
    public var rolePrimaryImageURL:String
    public var rolePrimaryImageThumbnailURL:String
    public var rolePrimaryImageId:String
    public var connectionStatusId:String
    public var connectionStatusName:String

    required public init(){}
}

public class ContactDetail : Codable
{
    public var contactContactDetailId:String
    public var contactId:String
    public var contactDetailId:String
    public var contactMethodId:String
    public var contactMethodName:String
    public var address:ContactAddress
    public var phone:ContactPhone
    public var countryId:String?
    public var contactDetails:String
    public var notes:String
    public var contactDetailsCode:String
    public var orderContactMethod:Int
    public var isPrimaryContactMethod:Bool
    public var isPrimaryLocation:Bool
    public var isRegisteredLocation:Bool
    public var isPostal:Bool
    public var isAddress:Bool
    public var isPhone:Bool
    public var emailSignatureId:String
    public var emailSignatureHTML:String
    public var emailSignatureText:String
    public var apiKey:String
    public var frameworkAlternateKey:String

    required public init(){}
}

public class ContactAddress : Codable
{
    public var location:GeoLocation
    public var isPostal:Bool
    public var isPrimaryLocation:Bool
    public var isRegisteredLocation:Bool
    public var contactAddressId:String
    public var suburbName:String
    public var stateName:String
    public var countryName:String
    public var addressFull:String

    required public init(){}
}

public class GeoLocation : Codable
{
    public var geoLocationId:String
    public var stateId:String?
    public var stateName:String
    public var stateNameShort:String
    public var suburbId:String?
    public var suburbName:String
    public var countryId:String?
    public var countryName:String
    public var timezone:String?
    public var timezoneName:String
    public var lotNumber:String
    public var subUnit:String
    public var buildingNumber:String
    public var postalDeliveryNumber:String
    public var streetNumber:String
    public var streetName:String
    public var addressLineOne:String
    public var addressLineTwo:String
    public var postCode:String
    public var isPhysical:Bool
    public var notes:String
    public var addressFull:String
    public var addressFormatId:String
    public var postalDeliveryTypeId:String?
    public var latitude:Double
    public var longitude:Double
    public var accuracy:Int
    public var distanceAway:Double
    public var autoMapCoordinates:Bool?
    public var isAddressCleared:Bool
    public var isValidated:Bool
    public var estate:GeoEstate
    public var geoEstateId:String
    public var geoEstateStageId:String
    public var geoEstateStageName:String

    required public init(){}
}

public class GeoEstate : Codable
{
    public var geoEstateId:String
    public var name:String
    public var notes:String
    public var developerContactId:String
    public var developerName:String
    public var developerProfilePhotoUrl:String
    public var developerProfilePhotoThumbnail:String
    public var recordStatus:String
    public var stages:[GeoEstateStage]
    public var currentEstateStageId:String
    public var currentEstateStageName:String

    required public init(){}
}

public class GeoEstateStage : Codable
{
    public var geoEstateStageId:String
    public var geoEstateId:String
    public var name:String
    public var notes:String
    public var recordStatus:String

    required public init(){}
}

public class ContactPhone : Codable
{
    public var countryCode:String
    public var areaCode:String
    public var localNumber:String
    public var phoneNumber:String

    required public init(){}
}

public class CustomContentFieldValue : Codable
{
    public var fieldName:String
    public var fieldDataTypeId:String
    public var fieldValue:String
    public var alternateKey:String

    required public init(){}
}

public class StringResponse : Codable
{
    public var result:String

    required public init(){}
}


Swift InsertCustomerGroup 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.

POST /api/insertcustomergroup HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	AutoGenerateName: False,
	CustomerName: String,
	Contacts: 
	[
		{
			PrimaryStreetAddressId: 00000000000000000000000000000000,
			PrimaryPostalAddressId: 00000000000000000000000000000000,
			PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
			PrimaryNonMobileId: 00000000000000000000000000000000,
			PrimaryMobileId: 00000000000000000000000000000000,
			PrimaryEmailId: 00000000000000000000000000000000,
			Mobile: String,
			Phone: String,
			PrimaryEmail: String,
			PrimaryAddress: String,
			PrimaryFaxId: 00000000000000000000000000000000,
			PrimaryWebId: 00000000000000000000000000000000,
			PrimarySocialMediaId: 00000000000000000000000000000000,
			FirstName: String,
			MiddleName: String,
			Surname: String,
			FullName: String,
			ShortName: String,
			BirthDate: 0001-01-01,
			Title: String,
			Salutation: String,
			MaritalStatus: 00000000000000000000000000000000,
			MaritalStatusName: String,
			Gender: 00000000000000000000000000000000,
			GenderName: String,
			Abn: String,
			Acn: String,
			Arbn: String,
			ContactBankingDetails: 
			{
				BankName: String,
				BankLocation: String,
				Bsb: String,
				AccountNumber: String,
				AccountName: String,
				TermOfTradeId: 00000000000000000000000000000000,
				TermOfTradeName: String,
				RecordStatus: String
			},
			LegalName: String,
			TradingName: String,
			ContactType: 00000000000000000000000000000000,
			ContactTypeName: String,
			ContactTypePhotoUrl: String,
			ContactTypePhotoThumbnailUrl: String,
			Timezone: 00000000000000000000000000000000,
			TimezoneName: String,
			Description: String,
			EmploymentIndustry: String,
			EmploymentRole: String,
			EmploymentGeographicArea: String,
			GstRegistered: False,
			DriversLicence: String,
			ContactGroupIdStaff: 00000000000000000000000000000000,
			StaffGroupName: String,
			ContactGroupIdVendor: 00000000000000000000000000000000,
			VendorGroupName: String,
			ContactGroupIdCustomer: 00000000000000000000000000000000,
			CustomerGroupName: String,
			PrimaryMediaFileId: 00000000000000000000000000000000,
			ProfilePhotoUrl: String,
			ProfilePhotoThumbnailUrl: String,
			RecordStatus: String,
			SubscriptionAlternateKey: String,
			ContactRoles: 
			[
				{
					RoleName: String,
					StartDate: 0001-01-01,
					EndDate: 0001-01-01,
					IsLicenseeRole: False,
					IsCustomerRole: False,
					IsPlatformRole: False,
					IsAdministerContactsRole: False,
					RolePrimaryImageURL: String,
					RolePrimaryImageThumbnailURL: String,
					ConnectionStatusName: String
				}
			],
			ContactDetails: 
			[
				{
					ContactMethodName: String,
					Address: 
					{
						Location: 
						{
							StateId: 00000000000000000000000000000000,
							StateName: String,
							StateNameShort: String,
							SuburbId: 00000000000000000000000000000000,
							SuburbName: String,
							CountryId: 00000000000000000000000000000000,
							CountryName: String,
							Timezone: 00000000000000000000000000000000,
							TimezoneName: String,
							LotNumber: String,
							SubUnit: String,
							BuildingNumber: String,
							PostalDeliveryNumber: String,
							StreetNumber: String,
							StreetName: String,
							AddressLineOne: String,
							AddressLineTwo: String,
							PostCode: String,
							IsPhysical: False,
							Notes: String,
							AddressFull: String,
							PostalDeliveryTypeId: 00000000000000000000000000000000,
							Latitude: 0,
							Longitude: 0,
							Accuracy: 0,
							DistanceAway: 0,
							AutoMapCoordinates: False,
							IsAddressCleared: False,
							IsValidated: False,
							Estate: 
							{
								Name: String,
								Notes: String,
								DeveloperName: String,
								DeveloperProfilePhotoUrl: String,
								DeveloperProfilePhotoThumbnail: String,
								RecordStatus: String,
								Stages: 
								[
									{
										Name: String,
										Notes: String,
										RecordStatus: String
									}
								],
								CurrentEstateStageName: String
							},
							GeoEstateStageName: String
						},
						IsPostal: False,
						IsPrimaryLocation: False,
						IsRegisteredLocation: False,
						SuburbName: String,
						StateName: String,
						CountryName: String,
						AddressFull: "String
String
String
String String
String"
					},
					Phone: 
					{
						CountryCode: String,
						AreaCode: String,
						LocalNumber: String,
						PhoneNumber: String String String
					},
					CountryId: 00000000000000000000000000000000,
					ContactDetails: String,
					Notes: String,
					ContactDetailsCode: String,
					OrderContactMethod: 0,
					IsPrimaryContactMethod: False,
					IsPrimaryLocation: False,
					IsRegisteredLocation: False,
					IsPostal: False,
					IsAddress: True,
					IsPhone: False,
					EmailSignatureHTML: String,
					EmailSignatureText: String,
					ApiKey: String,
					FrameworkAlternateKey: String
				}
			],
			CustomContent: 
			[
				{
					FieldName: String,
					FieldValue: String,
					AlternateKey: String
				}
			],
			ConnectedContacts: 
			[
				{
					PrimaryStreetAddressId: 00000000000000000000000000000000,
					PrimaryPostalAddressId: 00000000000000000000000000000000,
					PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
					PrimaryNonMobileId: 00000000000000000000000000000000,
					PrimaryMobileId: 00000000000000000000000000000000,
					PrimaryEmailId: 00000000000000000000000000000000,
					Mobile: String,
					Phone: String,
					PrimaryEmail: String,
					PrimaryAddress: String,
					PrimaryFaxId: 00000000000000000000000000000000,
					PrimaryWebId: 00000000000000000000000000000000,
					PrimarySocialMediaId: 00000000000000000000000000000000,
					FirstName: String,
					MiddleName: String,
					Surname: String,
					FullName: String,
					ShortName: String,
					BirthDate: 0001-01-01,
					Title: String,
					Salutation: String,
					MaritalStatus: 00000000000000000000000000000000,
					MaritalStatusName: String,
					Gender: 00000000000000000000000000000000,
					GenderName: String,
					Abn: String,
					Acn: String,
					Arbn: String,
					ContactBankingDetails: 
					{
						BankName: String,
						BankLocation: String,
						Bsb: String,
						AccountNumber: String,
						AccountName: String,
						TermOfTradeId: 00000000000000000000000000000000,
						TermOfTradeName: String,
						RecordStatus: String
					},
					LegalName: String,
					TradingName: String,
					ContactType: 00000000000000000000000000000000,
					ContactTypeName: String,
					ContactTypePhotoUrl: String,
					ContactTypePhotoThumbnailUrl: String,
					Timezone: 00000000000000000000000000000000,
					TimezoneName: String,
					Description: String,
					EmploymentIndustry: String,
					EmploymentRole: String,
					EmploymentGeographicArea: String,
					GstRegistered: False,
					DriversLicence: String,
					ContactGroupIdStaff: 00000000000000000000000000000000,
					StaffGroupName: String,
					ContactGroupIdVendor: 00000000000000000000000000000000,
					VendorGroupName: String,
					ContactGroupIdCustomer: 00000000000000000000000000000000,
					CustomerGroupName: String,
					PrimaryMediaFileId: 00000000000000000000000000000000,
					ProfilePhotoUrl: String,
					ProfilePhotoThumbnailUrl: String,
					RecordStatus: String,
					SubscriptionAlternateKey: String,
					ContactRoles: 
					[
						{
							RoleName: String,
							StartDate: 0001-01-01,
							EndDate: 0001-01-01,
							IsLicenseeRole: False,
							IsCustomerRole: False,
							IsPlatformRole: False,
							IsAdministerContactsRole: False,
							RolePrimaryImageURL: String,
							RolePrimaryImageThumbnailURL: String,
							ConnectionStatusName: String
						}
					],
					ContactDetails: 
					[
						{
							ContactMethodName: String,
							Address: 
							{
								Location: 
								{
									StateId: 00000000000000000000000000000000,
									StateName: String,
									StateNameShort: String,
									SuburbId: 00000000000000000000000000000000,
									SuburbName: String,
									CountryId: 00000000000000000000000000000000,
									CountryName: String,
									Timezone: 00000000000000000000000000000000,
									TimezoneName: String,
									LotNumber: String,
									SubUnit: String,
									BuildingNumber: String,
									PostalDeliveryNumber: String,
									StreetNumber: String,
									StreetName: String,
									AddressLineOne: String,
									AddressLineTwo: String,
									PostCode: String,
									IsPhysical: False,
									Notes: String,
									AddressFull: String,
									PostalDeliveryTypeId: 00000000000000000000000000000000,
									Latitude: 0,
									Longitude: 0,
									Accuracy: 0,
									DistanceAway: 0,
									AutoMapCoordinates: False,
									IsAddressCleared: False,
									IsValidated: False,
									Estate: 
									{
										Name: String,
										Notes: String,
										DeveloperName: String,
										DeveloperProfilePhotoUrl: String,
										DeveloperProfilePhotoThumbnail: String,
										RecordStatus: String,
										Stages: 
										[
											{
												Name: String,
												Notes: String,
												RecordStatus: String
											}
										],
										CurrentEstateStageName: String
									},
									GeoEstateStageName: String
								},
								IsPostal: False,
								IsPrimaryLocation: False,
								IsRegisteredLocation: False,
								SuburbName: String,
								StateName: String,
								CountryName: String,
								AddressFull: "String
String
String
String String
String"
							},
							Phone: 
							{
								CountryCode: String,
								AreaCode: String,
								LocalNumber: String,
								PhoneNumber: String String String
							},
							CountryId: 00000000000000000000000000000000,
							ContactDetails: String,
							Notes: String,
							ContactDetailsCode: String,
							OrderContactMethod: 0,
							IsPrimaryContactMethod: False,
							IsPrimaryLocation: False,
							IsRegisteredLocation: False,
							IsPostal: False,
							IsAddress: True,
							IsPhone: False,
							EmailSignatureHTML: String,
							EmailSignatureText: String,
							ApiKey: String,
							FrameworkAlternateKey: String
						}
					],
					CustomContent: 
					[
						{
							FieldName: String,
							FieldValue: String,
							AlternateKey: String
						}
					],
					ConnectedContacts: 
					[
						{
							PrimaryStreetAddressId: 00000000000000000000000000000000,
							PrimaryPostalAddressId: 00000000000000000000000000000000,
							PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
							PrimaryNonMobileId: 00000000000000000000000000000000,
							PrimaryMobileId: 00000000000000000000000000000000,
							PrimaryEmailId: 00000000000000000000000000000000,
							Mobile: String,
							Phone: String,
							PrimaryEmail: String,
							PrimaryAddress: String,
							PrimaryFaxId: 00000000000000000000000000000000,
							PrimaryWebId: 00000000000000000000000000000000,
							PrimarySocialMediaId: 00000000000000000000000000000000,
							FirstName: String,
							MiddleName: String,
							Surname: String,
							FullName: String,
							ShortName: String,
							BirthDate: 0001-01-01,
							Title: String,
							Salutation: String,
							MaritalStatus: 00000000000000000000000000000000,
							MaritalStatusName: String,
							Gender: 00000000000000000000000000000000,
							GenderName: String,
							Abn: String,
							Acn: String,
							Arbn: String,
							ContactBankingDetails: 
							{
								BankName: String,
								BankLocation: String,
								Bsb: String,
								AccountNumber: String,
								AccountName: String,
								TermOfTradeId: 00000000000000000000000000000000,
								TermOfTradeName: String,
								RecordStatus: String
							},
							LegalName: String,
							TradingName: String,
							ContactType: 00000000000000000000000000000000,
							ContactTypeName: String,
							ContactTypePhotoUrl: String,
							ContactTypePhotoThumbnailUrl: String,
							Timezone: 00000000000000000000000000000000,
							TimezoneName: String,
							Description: String,
							EmploymentIndustry: String,
							EmploymentRole: String,
							EmploymentGeographicArea: String,
							GstRegistered: False,
							DriversLicence: String,
							ContactGroupIdStaff: 00000000000000000000000000000000,
							StaffGroupName: String,
							ContactGroupIdVendor: 00000000000000000000000000000000,
							VendorGroupName: String,
							ContactGroupIdCustomer: 00000000000000000000000000000000,
							CustomerGroupName: String,
							PrimaryMediaFileId: 00000000000000000000000000000000,
							ProfilePhotoUrl: String,
							ProfilePhotoThumbnailUrl: String,
							RecordStatus: String,
							SubscriptionAlternateKey: String,
							ContactRoles: 
							[
								{
									RoleName: String,
									StartDate: 0001-01-01,
									EndDate: 0001-01-01,
									IsLicenseeRole: False,
									IsCustomerRole: False,
									IsPlatformRole: False,
									IsAdministerContactsRole: False,
									RolePrimaryImageURL: String,
									RolePrimaryImageThumbnailURL: String,
									ConnectionStatusName: String
								}
							],
							ContactDetails: 
							[
								{
									ContactMethodName: String,
									Address: 
									{
										Location: 
										{
											StateId: 00000000000000000000000000000000,
											StateName: String,
											StateNameShort: String,
											SuburbId: 00000000000000000000000000000000,
											SuburbName: String,
											CountryId: 00000000000000000000000000000000,
											CountryName: String,
											Timezone: 00000000000000000000000000000000,
											TimezoneName: String,
											LotNumber: String,
											SubUnit: String,
											BuildingNumber: String,
											PostalDeliveryNumber: String,
											StreetNumber: String,
											StreetName: String,
											AddressLineOne: String,
											AddressLineTwo: String,
											PostCode: String,
											IsPhysical: False,
											Notes: String,
											AddressFull: String,
											PostalDeliveryTypeId: 00000000000000000000000000000000,
											Latitude: 0,
											Longitude: 0,
											Accuracy: 0,
											DistanceAway: 0,
											AutoMapCoordinates: False,
											IsAddressCleared: False,
											IsValidated: False,
											Estate: 
											{
												Name: String,
												Notes: String,
												DeveloperName: String,
												DeveloperProfilePhotoUrl: String,
												DeveloperProfilePhotoThumbnail: String,
												RecordStatus: String,
												Stages: 
												[
													{
														Name: String,
														Notes: String,
														RecordStatus: String
													}
												],
												CurrentEstateStageName: String
											},
											GeoEstateStageName: String
										},
										IsPostal: False,
										IsPrimaryLocation: False,
										IsRegisteredLocation: False,
										SuburbName: String,
										StateName: String,
										CountryName: String,
										AddressFull: "String
String
String
String String
String"
									},
									Phone: 
									{
										CountryCode: String,
										AreaCode: String,
										LocalNumber: String,
										PhoneNumber: String String String
									},
									CountryId: 00000000000000000000000000000000,
									ContactDetails: String,
									Notes: String,
									ContactDetailsCode: String,
									OrderContactMethod: 0,
									IsPrimaryContactMethod: False,
									IsPrimaryLocation: False,
									IsRegisteredLocation: False,
									IsPostal: False,
									IsAddress: True,
									IsPhone: False,
									EmailSignatureHTML: String,
									EmailSignatureText: String,
									ApiKey: String,
									FrameworkAlternateKey: String
								}
							],
							CustomContent: 
							[
								{
									FieldName: String,
									FieldValue: String,
									AlternateKey: String
								}
							],
							CustomContentXML: String,
							ContactDetailsXML: String,
							ConnectionContactName: String,
							UserProfileIdDefault: 00000000000000000000000000000000,
							Username: String,
							IsRegistered: False,
							ESL: False,
							Language: String,
							InterpreterRequired: False,
							LicenseeNotes: String,
							Notes: String,
							ObjectHash: String
						}
					],
					CustomContentXML: String,
					ContactDetailsXML: String,
					ConnectionContactName: String,
					UserProfileIdDefault: 00000000000000000000000000000000,
					Username: String,
					IsRegistered: False,
					ESL: False,
					Language: String,
					InterpreterRequired: False,
					LicenseeNotes: String,
					Notes: String,
					ObjectHash: String
				}
			],
			CustomContentXML: String,
			ContactDetailsXML: String,
			ConnectionContactName: String,
			UserProfileIdDefault: 00000000000000000000000000000000,
			Username: String,
			IsRegistered: False,
			ESL: False,
			Language: String,
			InterpreterRequired: False,
			LicenseeNotes: String,
			Notes: String,
			ObjectHash: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Result: String
}