The following are sample HTTP requests and responses.
The placeholders shown need to be replaced with actual values.
POST /jsv/reply/AppointmentContactVehicleChange HTTP/1.1
Host: partnerhub.pbsdealers.com
Content-Type: text/jsv
Content-Length: length
{
ContactInfo:
{
Id: string/00000000-0000-0000-0000-000000000000,
ContactId: 00000000000000000000000000000000,
SerialNumber: String,
Code: String,
LastName: String,
FirstName: String,
Salutation: String,
MiddleName: String,
ContactName: String,
IsInactive: False,
IsBusiness: False,
ApartmentNumber: String,
Address: String,
City: String,
County: String,
State: String,
ZipCode: String,
BusinessPhone: String,
BusinessPhoneExt: String,
HomePhone: String,
CellPhone: String,
BusinessPhoneRawReverse: String,
HomePhoneRawReverse: String,
CellPhoneRawReverse: String,
FaxNumber: String,
EmailAddress: String,
Notes: String,
CriticalMemo: String,
BirthDate: 0001-01-01,
Gender: String,
DriverLicense: String,
DriversLicenseExpiry: 0001-01-01,
PreferredContactMethods:
[
String
],
LastUpdate: 0001-01-01,
CustomFields:
[
{
Key: String,
Value: String,
Type: String
}
],
FleetType: String,
RelationshipType: String,
CommunicationPreferences:
{
Email: String,
Phone: String,
TextMessage: String,
Letter: String,
Preferred: String,
FollowUp: String,
Marketing: String,
ThirdParty: String,
ImplicitConsentDate: 0001-01-01
},
SalesRepRef: 00000000000000000000000000000000,
Language: String,
PayableAccount: String,
ReceivableAccount: String,
IsStatic: False,
PrimaryImageRef: 00000000000000000000000000000000,
PayableAccounts:
[
{
SerialNumber: String,
Account: String
}
],
ReceivableAccounts:
[
{
SerialNumber: String,
Account: String
}
],
IsAPVendor: False,
IsARCustomer: False,
ManufacturerLoyaltyNumber: String,
MergedToContactRef: 00000000000000000000000000000000,
DoNotLoadHistory: False,
RepairOrderRequiresPO: False,
CreatedDate: 0001-01-01,
SalesReps:
[
{
SerialNumber: String,
SalesRepRef: 00000000000000000000000000000000
}
]
},
VehicleInfo:
{
Id: string/00000000-0000-0000-0000-000000000000,
VehicleId: 00000000000000000000000000000000,
SerialNumber: String,
StockNumber: String,
VIN: String,
LicenseNumber: String,
FleetNumber: String,
Status: String,
OwnerRef: 00000000000000000000000000000000,
ModelNumber: String,
Make: String,
Model: String,
Trim: String,
VehicleType: String,
Year: String,
Odometer: 0,
ExteriorColor:
{
Code: String,
Description: String,
BaseColor: String
},
InteriorColor:
{
Code: String,
Description: String,
BaseColor: String
},
Engine: String,
Cylinders: String,
Transmission: String,
DriveWheel: String,
Fuel: String,
Weight: 0,
InServiceDate: 0001-01-01,
LastServiceDate: 0001-01-01,
LastServiceMileage: 0,
Lot: String,
LotDescription: String,
Category: String,
Options:
[
{
Group: String,
Code: String,
Description: String,
AdditionalInfo: String,
Price: 0,
Cost: 0,
Residual: 0
}
],
Refurbishments:
[
{
ReferenceNumber: String,
Description: String,
Price: 0,
Cost: 0,
Date: 0001-01-01,
ApplicationModel: String
}
],
Order:
{
InvoiceNumber: String,
Price: 0,
Status: String,
Eta: String,
EstimatedCost: 0,
OrderDate: String,
StatusDate: String,
IgnitionKeyCode: String,
DoorKeyCode: String,
Description: String,
LocationStatus: String,
LocationStatusDate: 0001-01-01
},
MSR: 0,
BaseMSR: 0,
Retail: 0,
DateReceived: 0001-01-01,
InternetPrice: 0,
Lotpack: 0,
Holdback: 0,
InternetNotes: String,
Notes: String,
CriticalMemo: String,
IsCertified: False,
LastSaleDate: 0001-01-01,
LastUpdate: 0001-01-01,
AppraisedValue: 0,
Warranties:
[
{
Type: String,
CompanyName: String,
CoveragePlan: String,
Description: String,
Price: 0,
Cost: 0,
Term: String,
Deductible: 0,
PolicyNumber: String,
StartDate: String,
StartMileage: 0,
ExpirationDate: String,
ExpirationMileage: 0
}
],
Freight: 0,
Air: 0,
Inventory: 0,
IsInactive: False,
CustomFields:
[
{
Key: String,
Value: String,
Type: String
}
],
FloorPlanCode: String,
FloorPlanAmount: 0,
Insurance:
{
Company: String,
Policy: String,
ExpiryDate: 0001-01-01,
AgentName: String,
AgentPhoneNumber: String
},
Body: String,
ShortVIN: String,
AdditionalDrivers:
[
00000000000000000000000000000000
],
OrderDetails:
{
Distributor: String
},
PrimaryImageRef: 00000000000000000000000000000000,
Hold:
{
VehicleRef: 00000000000000000000000000000000,
HoldFrom: 0001-01-01,
HoldUntil: 0001-01-01,
UserRef: 00000000000000000000000000000000,
ContactRef: 00000000000000000000000000000000,
Comments: String
},
SeatingCapacity: String,
DeliveryDate: 0001-01-01,
WarrantyExpiry: 0001-01-01,
IsConditionallySold: False,
SalesDivision: 0,
StyleRef: String,
TotalCost: 0,
BlueBookValue: 0,
VideoURL: String,
ShowOnWeb: False,
PDI: 0,
Configuration: String,
DisplayTrim: String
},
AppointmentInfo:
{
Id: string/00000000-0000-0000-0000-000000000000,
AppointmentId: 00000000000000000000000000000000,
SerialNumber: String,
AppointmentNumber: 0,
RawAppointmentNumber: String,
Shop: String,
Advisor: String,
AdvisorRef: 00000000000000000000000000000000,
BookingUser: String,
BookingUserRef: 00000000000000000000000000000000,
Transportation: String,
ContactRef: 00000000000000000000000000000000,
VehicleRef: 00000000000000000000000000000000,
MileageIn: 0,
IsComeback: False,
IsWaiter: False,
AppointmentTime: 0001-01-01,
AppointmentTimeUTC: 0001-01-01,
PickupTime: 0001-01-01,
PickupTimeUTC: 0001-01-01,
RequestLines:
[
{
AppointmentRequestRef: 00000000000000000000000000000000,
AppointmentRequestId: 0,
CSR: String,
CSRRef: 00000000000000000000000000000000,
Skill: String,
RequestCode: String,
RequestDescription: String,
AllowedHours: 0,
EstimateLabour: 0,
EstimateParts: 0,
PartsLines:
[
{
AppointmentPartsLineRef: 00000000000000000000000000000000,
AppointmentPartsLineId: 0,
CSR: String,
CSRRef: 00000000000000000000000000000000,
PartNumber: String,
PartDescription: String,
Requested: 0,
Shipped: 0,
Ordered: 0,
PriceCode: String,
Cost: 0,
UnitPrice: 0,
ExtendedPrice: 0,
NoHistory: False,
IsPartsKit: False,
PartsKitName: String,
BIN: String,
IsTransferred: False
}
],
LabourOpDescription: String,
PayType: String,
Tech: String,
TechRef: 00000000000000000000000000000000,
Status: String,
LineType: RequestLine
}
],
DateOpened: 0001-01-01,
LastUpdate: 0001-01-01,
Status: String,
Notes: String,
Source: String,
PendingRequest: False,
CheckedIn: False,
Confirmed: False,
LeadRef: String,
NotifyType: String,
Tag: String,
FirstApptTimeAvailable: 0001-01-01T00:00:00.0000000+00:00,
AlternateStartAddress:
{
Name: String,
Address: String,
City: String,
Province: String,
PostalCode: String,
AdditionalInfo: String
},
AlternateEndAddress:
{
Name: String,
Address: String,
City: String,
Province: String,
PostalCode: String,
AdditionalInfo: String
}
},
CreateNewAppointment: False,
IsAsynchronous: False,
UserRequest: String,
UserRef: 00000000000000000000000000000000
}