The Simple Hospitality Interchange Protocol, or SHIP, is a JSON-based message format, combined with a simple HTTP-based API, that aims to make it easy for hospitality-related systems and applications to exchange messages. This document contains specifications of the JSON messages, as well as a number of sample messages. For details on the HTTP-based API, please contact your SHIP integration partner.
1. SHIP messages
SHIP defines a small number of JSON-based messages to be used for hospitality interchange. The available message types are described in the following sections.
The Usage column of the object descriptions below contain one of these values: REQUIRED , RECOMMENDED ,SUGGESTED , OPTIONAL , INTERNAL , or DEPRECATED . The meaning of these values are given in the following table.
|
Value | Description |
---|---|
|
Field must be included for the message to be considered valid |
|
Field should be included to enable major functionality |
|
Field may be included to enable additional functionality |
|
Field may be included but have minimal to no impact on functionality |
|
Field should only be included by systems that have previously agreed on its meaning |
|
Field should not be included |
The Types of some of the fields below are listed as string enum . This indicates that these fields are strings whose value can only be one of the values listed after the colon. Supplying a value not in the list will produce an invalid message.
|
1.1. Guest-stay message
A guest-stay message contains a single guestStay object.
1.1.1. guestStay object
A guestStay object represents a past, current, or upcoming stay by a guest or guests at a property. It contains information about the location, duration and other details of the stay, as well as profile information about the guests and other associated entities.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
action |
string enum: |
|
Action that triggered the guest-stay message, see guestStay action string |
|
property |
string |
|
Property code that the stay belongs to |
|
interfaceType |
string |
|
||
remoteSystemName |
string |
|
||
accountId |
string |
|
||
confirmationCode |
string |
|
unique ID of the stay in the PMS. This number is used to track update of the reservation (booking, checkin, checkout…) and is typically internal to the PMS (see bookingNumber below for customer facing confirmation number). |
|
bookingNumber |
string |
|
ID assigned to the stay by the booking engine or central reservation system. This is typically used for customer facing confirmation number. |
|
statusCode |
string enum: |
|
Current status of the stay |
|
guaranteeCode |
string |
|
Code representing the type of guarantee for the stay |
|
lastUpdatedAt |
ISO8601 date-time string |
|
Time at which the stay was last updated |
|
lastUpdatedBy |
string |
|
Name, username, or initials of the user or system that last updated the stay |
|
bookingDate |
ISO8601 date-time string |
|
Time at which the stay was booked |
|
bookedBy |
string |
|
Name, username, or initials of the user or system that booked the stay |
|
reservationSource |
string |
|
Channel by which the stay was booked |
|
cancellationNumber |
string |
|
ID assigned to the cancellation of the stay |
|
cancellationDate |
ISO8601 date-time string |
|
Time at which the stay was canceled |
|
canceledBy |
string |
|
Name, username, or initials of the user or system that canceled the stay |
|
checkinDate |
ISO8601 date string |
|
Scheduled check-in date of the stay |
|
actualCheckinDate |
ISO8601 date-time string |
|
Actual check-in time of the stay |
|
checkedInBy |
string |
|
Name, username, or initials of the user or system that checked the guest in |
|
checkoutDate |
ISO8601 date string |
|
Scheduled check-out date of the stay |
|
actualCheckoutDate |
ISO8601 date-time string |
|
Actual check-out time of the stay |
|
checkedOutBy |
string |
|
Name, username, or initials of the user or system that checked the guest out |
|
stayLength |
|
Length of the stay |
||
numberOfAdults |
integral number |
|
Number of adults in the stay |
|
numberOfChildren |
integral number |
|
Number of children in the stay |
|
roomNumber |
string |
|
Room number or room identifier |
|
roomType |
string |
|
Actual room type of the stay, preferably in code/short form |
|
roomTypeChargeCode |
string |
|
Room type charged to the stay |
|
blockCode |
string |
|
Block code of the room if the room is part of a block of room (conference, wedding, …etc) |
|
numberOfRooms |
integral number |
|
Number of rooms of the stay |
|
market |
string |
|
Market segment name or code of the stay |
|
purposeOfStay |
string |
|
Purpose of the stay |
|
travelAgency |
|
Travel agency associated with the stay. Attach a profile object with profileType of |
||
totalRoomRevenue |
|
Room revenue amount of the stay |
||
totalFoodAndBeverageRevenue |
|
Food and beverage revenue amount of the stay. Add a service object with category of |
||
totalLuggageRevenue |
|
Luggage revenue amount of the stay. Add a service object with category of |
||
totalOtherRevenue |
|
Total of all revenue amounts excluding room, food, beverage, and luggage, of the stay. Add a service object with category of |
||
totalTaxes |
|
Total of all taxes. Use the taxAmount field in each monetaryAmount object instead. Currently this field is internally mapped to the totalRoomRevenue.taxAmount field if this one is empty. Else the value is discarded. |
||
totalRemainingBalance |
|
Balance remaining on the stay |
||
totalDepositRequired |
|
Deposit amount required for the stay |
||
depositRequiredDate |
ISO8601 date string |
|
Date on which deposit is due |
|
ratePlans |
array of ratePlan objects |
|
Rate plans attached to the stay |
|
services |
array of service objects |
|
Services rendered during the stay |
|
profiles |
array of profile objects |
|
Profiles associated with the stay. A minimum of 1 profile with profileType |
|
guestNotes |
array of guestNote objects |
|
Notes attached to the stay |
|
pmsDefinedFields |
array of userDefinedField objects |
|
PMS-defined fields |
|
propertyDefinedFields |
array of userDefinedField objects |
|
Property-defined fields |
1.1.2. stayLength object
A description of the length of stay
Name | Type | Usage | Description | Example |
---|---|---|---|---|
stayLength |
integral number |
|
Number of days of the stay |
|
stayLengthUnits |
string enum: |
|
Type of the time units of the stay length. Should be omitted as only |
|
1.1.3. rate object
A rate during a specific time period
Name | Type | Usage | Description | Example |
---|---|---|---|---|
amount |
|
Rate per time unit |
||
startTime |
ISO8601 date-time string |
|
Start time of the rate |
|
timeUnits |
integral number |
|
Number of time units of the rate |
|
timeUnitType |
string enum: |
|
Type of the time units |
|
1.1.4. ratePlan object
A rate plan
Name | Type | Usage | Description | Example |
---|---|---|---|---|
rateCode |
string |
|
Rate plan name or rate code |
|
timeSpan |
|
Time period over which the rate plan applies |
||
confidential |
boolean |
|
Whether the rate plan should be hidden from guests |
|
rates |
array of rate objects |
|
Breakdown of the rates under the rate plan |
1.1.5. service object
A service rendered during a stay
Name | Type | Usage | Description | Example |
---|---|---|---|---|
inventoryCode |
string |
|
Inventory code of the service |
|
rateCode |
string |
|
Rate plan name or rate code of the service |
|
category |
string enum: |
|
Category of the service |
|
timeSpan |
|
Time period over which the service was rendered |
||
pricePerUnit |
|
Price per unit of the service |
||
numberOfUnits |
integral number |
|
Number of units of the service |
|
1.1.6. guestStay action string
Typically, transmission of a guest-stay message is triggered by a guest-stay-related action being performed on the sending system. The action being performed by the sending system is mapped to the possible values of the action field in the guestStay object. The following table lists some actions that should trigger a guest-stay message, and the corresponding action field value. The statusCode of the guest-stay before and after the action are also included for illustrative purposes.
The statusCode after the action should be transmitted in the guest-stay message. |
Description | action | statusCode before | statusCode after |
---|---|---|---|
Guest booked a new stay |
|
- |
|
System created a new stay |
|
- |
|
System wait-listed guest booking |
|
|
|
System confirmed guest booking |
|
|
|
System denied guest booking |
|
|
|
Guest canceled stay |
|
|
|
Guest checked in |
|
|
|
Guest failed to show |
|
|
|
Guest checked out |
|
|
|
System edited an existing stay |
|
Any |
Same as before |
System resent an existing stay |
|
Any |
Same as before |
The following diagram illustrates how actions interact with statusCodes.
1.2. Guest-stay list message
A list of guestStay objects, providing a convenient way for a system to send a number of guestStays to another system in a single message.
A guest-stay list message contains an array of guestStay objects.
1.3. Profile message
A profile message contains a single profile object.
1.3.1. profile object
A profile object represents a person or organization that may be associated with a guest-stay, for example the primary guest, an accompanying guest, a corporate entity, or a travel agency.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
action |
string enum: |
|
Action that triggered the profile message, see profile action string |
|
property |
string |
|
Property code that the profile belongs to |
|
interfaceType |
string |
|
||
remoteSystemName |
string |
|
||
accountId |
string |
|
||
profileId |
string |
|
ID of the profile |
|
profileType |
string enum: |
|
Profile type |
|
title |
string |
|
Title of the guest |
|
firstName |
string |
|
First name of the guest |
|
middleName |
string |
|
Middle name of the guest |
|
lastName |
string |
|
Last name of the guest, or name of a non-guest entity |
|
gender |
string enum: |
|
Gender of the guest |
|
dateOfBirth |
ISO8601 date string |
|
Date-of-birth of the guest |
|
vipStatus |
string |
|
VIP status code of the guest |
|
primaryLanguage |
string |
|
Primary language of the guest, preferably ISO639-1 2-character code |
|
companyInfo |
|
Company of the guest |
||
emailOptOut |
boolean |
|
Whether the entity in the profile has opted out of email marketing |
|
mailOptOut |
boolean |
|
Whether the entity in the profile has opted out of mail marketing |
|
emailAddresses |
array of emailAddress objects |
|
Email addresses associated with the profile |
|
postalAddresses |
array of postalAddress objects |
|
Postal addresses associated with the profile |
|
phoneNumbers |
array of phoneNumber objects |
|
Phone numbers associated with the profile |
|
memberships |
array of membership objects |
|
Loyalty program memberships associated with the profile |
|
creditCards |
array of creditCard objects |
|
Credit cards associated with the profile |
|
guestNotes |
array of guestNote objects |
|
Notes attached to the profile |
|
pmsDefinedFields |
array of userDefinedField objects |
|
PMS-defined fields |
|
propertyDefinedFields |
array of userDefinedField objects |
|
Property-defined fields |
1.3.2. emailAddress object
An email address
Name | Type | Usage | Description | Example |
---|---|---|---|---|
emailAddress |
string |
|
Email address |
|
primary |
boolean |
|
Whether this is the primary email address on the profile. Only one email address can be primary per profile. |
|
inactiveDate |
ISO8601 date-time string |
|
Time after which the email address should not be used |
|
1.3.3. postalAddress object
A postal address
Name | Type | Usage | Description | Example |
---|---|---|---|---|
address1 |
string |
|
Street address line 1 |
|
address2 |
string |
|
Street address line 2 |
|
city |
string |
|
City |
|
state |
string |
|
State or province, preferably short code |
|
country |
string |
|
Country, preferably ISO3166 2-character code |
|
zipCode |
string |
|
Zip or postal code |
|
addressType |
string enum: |
|
Address type |
|
primary |
boolean |
|
Whether this is the primary postal address on the profile. Only one postal address can be primary per profile. |
|
inactiveDate |
ISO8601 date-time string |
|
Time after which the postal address should not be used |
|
1.3.4. phoneNumber object
A phone number
Name | Type | Usage | Description | Example |
---|---|---|---|---|
phoneNumber |
string |
|
Phone number |
|
phoneNumberType |
string enum: |
|
Phone number type |
|
primary |
boolean |
|
Whether this is the primary phone number on the profile. Only one phone number can be primary per profile. |
|
inactiveDate |
ISO8601 date-time string |
|
Time after which the phone number should not be used |
|
1.3.5. membership object
A loyalty program or other program membership
Name | Type | Usage | Description | Example |
---|---|---|---|---|
loyaltyNumber |
string |
|
Membership ID |
|
programCode |
string |
|
Code of the membership program |
|
levelCode |
string |
|
Membership level code |
|
expireDate |
ISO8601 date string |
|
Membership expiration date |
|
1.3.6. creditCard object
A credit card
Name | Type | Usage | Description | Example |
---|---|---|---|---|
creditCardLast4 |
string |
|
Last 4 digits of the credit card number |
|
creditCardExpirationDate |
ISO8601 date string |
|
Credit card expiration date |
|
creditCardType |
string |
|
Credit card type |
|
primary |
boolean |
|
Whether this is the primary credit card on the profile. Only one credit card can be primary per profile. |
|
1.3.7. profile action string
Typically, transmission of a profile message is triggered by a profile-related action being performed on the sending system. The action being performed by the sending system is mapped to the possible values of the action field in the profile object. The following table lists some actions that should trigger a profile message, and the corresponding action field value.
Description | action |
---|---|
Created a new profile |
|
Updated an existing profile |
|
Profile attached to a guest-stay |
|
Deleted an existing profile |
|
1.4. Simple guest-stay message
A simple guest-stay message contains a single simpleGuestStay object.
1.4.1. simpleGuestStay object
A simpleGuestStay object is a simplified version of the guestStay object. It contains information about the location, duration and other details of the stay, as well as information about the primary guest. It is intended to be used by applications that do not require the full set of fields in the guestStay object.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
accountName |
string |
|
Property code that the stay belongs to |
|
interfaceType |
string |
|
||
confirmationNumber |
string |
|
ID of the stay |
|
checkInDate |
ISO8601 date string |
|
Scheduled check-in date of the stay |
|
checkedInBy |
string |
|
Name, username, or initials of the user or system that checked the guest in |
|
checkOutDate |
ISO8601 date string |
|
Scheduled check-out date of the stay |
|
checkedOutBy |
string |
|
Name, username, or initials of the user or system that checked the guest out |
|
roomNumber |
string |
|
Room number or room identifier of the stay |
|
roomType |
string |
|
Room type of the stay, preferably in code/short form |
|
channel |
string |
|
Channel by which the stay was booked |
|
ratePlanCode |
string |
|
Rate plan name or rate code of the stay |
|
rate |
decimal number |
|
Nightly rate of the stay |
|
title |
string |
|
Title of the guest |
|
firstName |
string |
|
First name of the guest |
|
lastName |
string |
|
Last name of the guest |
|
string |
|
Primary email address of the guest |
|
|
phone |
string |
|
Primary phone number of the guest |
|
addressLine1 |
string |
|
Primary address of the guest: line 1 |
|
addressLine2 |
string |
|
Primary address of the guest: line 2 |
|
city |
string |
|
Primary address of the guest: city |
|
state |
string |
|
Primary address of the guest: state or province, preferably short code |
|
country |
string |
|
Primary address of the guest: country, preferably ISO3166 2-character code |
|
postalCode |
string |
|
Primary address of the guest: zip or postal code |
|
loyaltyNumber |
string |
|
Loyalty program number of the guest |
|
groupName |
string |
|
Name on primary group profile associated with the stay |
|
1.5. Simple guest-stay list message
A list of simpleGuestStay objects, providing a convenient way for a system to send a number of simpleGuestStays to another system in a single message.
A simple guest-stay list message contains an array of simpleGuestStay objects.
1.6. Common objects
Definitions for objects used in multiple SHIP message types.
1.6.1. timeSpan object
A time period with a start time
Name | Type | Usage | Description | Example |
---|---|---|---|---|
startTime |
ISO8601 date-time string |
|
Start time |
|
timeUnits |
integral number |
|
Number of time units |
|
timeUnitType |
string enum: |
|
Type of the time units |
|
1.6.2. monetaryValue object
A monetary value consisting of a number and a currency
Name | Type | Usage | Description | Example |
---|---|---|---|---|
value |
decimal number |
|
Number of units of the currency |
19.95 |
currency |
string |
|
ISO4217 3-character currency code |
|
1.6.3. monetaryAmount object
An amount of money with associated tax
Name | Type | Usage | Description | Example |
---|---|---|---|---|
amountBeforeTax |
|
Amount before tax |
||
taxAmount |
|
Tax amount |
||
value |
decimal number |
|
Number of units of the currency of the pre-tax amount. Use amountBeforeTax instead. |
|
currency |
string |
|
ISO4217 3-character currency code of the pre-tax amount. Use amountBeforeTax instead. |
|
1.6.4. companyInfo object
A minimal set of information about a company
Name | Type | Usage | Description | Example |
---|---|---|---|---|
name |
string |
|
Name of the company |
|
1.6.5. guestNote object
A note
Name | Type | Usage | Description | Example |
---|---|---|---|---|
title |
string |
|
Note title |
|
text |
string |
|
Note text |
|
type |
string |
|
Note type |
|
time |
ISO8601 date-time string |
|
Time the note was created/updated |
|
1.6.6. userDefinedField object
A name-value pair defined by a specific system or application
Name | Type | Usage | Description | Example |
---|---|---|---|---|
name |
string |
|
Field name. If two fields have the same name, their values form an unordered list. |
|
value |
string |
|
Field value |
|
1.6.7. summary object
A Summary of the SHIP objects list result.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
successCount |
integer |
|
Number of SHIP objects successfully processed |
6 |
errorCount |
integer |
|
Number of SHIP objects that failed to process |
7 |
totalCount |
integer |
|
Total number of SHIP objects processed |
13 |
1.7. Result message
A result message contains a single result object.
1.7.1. result object
A result object contains the result of processing a message or part of a message.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
status |
string enum: |
|
Status code of the result |
|
message |
string |
|
Description of the result |
|
sourceField |
string |
|
If the incoming message was transformed, this identifies the field of the incoming message to which the result pertains |
|
sourceValue |
string |
|
If the incoming message was transformed, the original value in the incoming message to which the result pertains |
|
field |
string |
|
JSON pointer identifying the SHIP field to which the result pertains |
|
1.8. Guest-stay result message
A guest-stay result message contains a single guestStayResult object.
1.8.1. guestStayResult object
A guestStayResult object is a result object with additional fields to indicate the result of processing a guest-stay message.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
status |
string enum: |
|
Status code of the result |
|
message |
string |
|
Description of the result |
|
sourceField |
string |
|
If the incoming message was transformed, this identifies the field of the incoming message to which the result pertains |
|
sourceValue |
string |
|
If the incoming message was transformed, the original value in the incoming message to which the result pertains |
|
field |
string |
|
JSON pointer identifying the SHIP field to which the result pertains |
|
guestStay |
|
The guestStay object produced by processing the incoming message. May be invalid, check errors first. |
||
errors |
array of result objects |
|
Errors generated by the processing of the guest-stay |
|
warnings |
array of result objects |
|
Warnings generated by the processing of the guest-stay |
1.9. Guest-stay list result message
A guest-stay list result message contains a single guestStayListResult object.
1.9.1. guestStayListResult object
A guestStayListResult object is a result object with additional fields to indicate the result of processing a guest-stay list message.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
status |
string enum: |
|
Status code of the result |
|
message |
string |
|
Description of the result |
|
sourceField |
string |
|
If the incoming message was transformed, this identifies the field of the incoming message to which the result pertains |
|
sourceValue |
string |
|
If the incoming message was transformed, the original value in the incoming message to which the result pertains |
|
field |
string |
|
JSON pointer identifying the SHIP field to which the result pertains |
|
summary |
|
Summary of the guest-stay list result |
||
guestStays |
array of guestStayResult objects |
|
Guest-stay results produced by processing the incoming message |
|
errors |
array of result objects |
|
Errors generated by the processing of the guest-stay list. Deprecated, use guestStays instead. |
|
warnings |
array of result objects |
|
Warnings generated by the processing of the guest-stay list. Deprecated, use guestStays instead. |
1.10. Profile result message
A profile result message contains a single profileResult object.
1.10.1. profileResult object
A profileResult object is a result object with additionnal fields to indicate the result of processing a profile message.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
status |
string enum: |
|
Status code of the result |
|
message |
string |
|
Description of the result |
|
sourceField |
string |
|
If the incoming message was transformed, this identifies the field of the incoming message to which the result pertains |
|
sourceValue |
string |
|
If the incoming message was transformed, the original value in the incoming message to which the result pertains |
|
field |
string |
|
JSON pointer identifying the SHIP field to which the result pertains |
|
profile |
|
The profile object produced by processing the incoming message. May be invalid, check errors first. |
||
errors |
array of result objects |
|
Errors generated by the processing of the guest-stay |
|
warnings |
array of result objects |
|
Warnings generated by the processing of the guest-stay |
1.11. Profile list result message
A profile list result message contains a single profileListResult object.
1.11.1. profileListResult object
A profileListResult object is a result object with additional fields to indicate the result of processing a profile list message.
Name | Type | Usage | Description | Example |
---|---|---|---|---|
status |
string enum: |
|
Status code of the result |
|
message |
string |
|
Description of the result |
|
sourceField |
string |
|
If the incoming message was transformed, this identifies the field of the incoming message to which the result pertains |
|
sourceValue |
string |
|
If the incoming message was transformed, the original value in the incoming message to which the result pertains |
|
field |
string |
|
JSON pointer identifying the SHIP field to which the result pertains |
|
summary |
|
Summary of the profile list result |
||
profiles |
array of profileResult objects |
|
Profile results produced by processing the incoming message |
|
errors |
array of result objects |
|
Errors generated by the processing of the profile list. Deprecated, use profiles instead. |
|
warnings |
array of result objects |
|
Warnings generated by the processing of the profile list. Deprecated, use profiles instead. |
2. Sample messages
2.1. Sample guest-stay messages
2.1.1. Guest-stay message with commonly used fields
{
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38000",
"statusCode": "CHECKEDOUT",
"reservationSource": "GDS",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"totalRoomRevenue": {
"amountBeforeTax": {
"value": 300,
"currency": "USD"
}
},
"ratePlans": [
{
"rateCode": "BASE_RATE",
"rates": [
{
"amount": {
"value": 100,
"currency": "USD"
}
}
]
}
],
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"title": "Dr",
"firstName": "Contact",
"middleName": "J",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
],
"postalAddresses": [
{
"address1": "56574 Sample Street",
"address2": "Unit 1234",
"city": "Ft Myers",
"state": "FL",
"country": "US",
"zipCode": "33967",
"addressType": "HOME",
"primary": true
}
],
"phoneNumbers": [
{
"phoneNumber": "1-239-555-5555",
"phoneNumberType": "HOME",
"primary": true
}
],
"memberships": [
{
"loyaltyNumber": "213213213213213213"
}
]
}
]
}
2.1.2. Guest-stay message with all possible fields
{
"action": "ADD",
"property": "AVERTINE",
"interfaceType": "SHIP",
"remoteSystemName": "avertine_ship",
"accountId": "11348172",
"confirmationCode": "38001",
"statusCode": "RESERVED",
"guaranteeCode": "CC",
"lastUpdatedAt": "2009-08-15T16:52:36.000-07:00",
"lastUpdatedBy": "System Agent",
"bookingNumber": "CRO-123A",
"bookingDate": "2009-08-15T16:52:36.000-07:00",
"bookedBy": "Sample User",
"reservationSource": "COD",
"cancellationNumber": "12345",
"cancellationDate": "2009-08-15T16:52:37.000-07:00",
"canceledBy": "Sample User 2",
"checkinDate": "2007-07-19",
"actualCheckinDate": "2007-07-19T15:23:00.000-07:00",
"checkedInBy": "Ms. Green",
"checkoutDate": "2007-07-22",
"actualCheckoutDate": "2007-07-22T08:10:40.000-07:00",
"checkedOutBy": "AJP",
"stayLength": {
"stayLength": 3
},
"numberOfAdults": 1,
"numberOfChildren": 0,
"roomNumber": "123",
"roomType": "KING",
"roomTypeChargeCode": "KING",
"blockCode": "KING-Block",
"numberOfRooms": 1,
"market": "ALL",
"purposeOfStay": "BUSINESS",
"totalRoomRevenue": {
"amountBeforeTax": {
"value": 404.5,
"currency": "USD"
},
"taxAmount": {
"value": 35.39,
"currency": "USD"
}
},
"totalFoodAndBeverageRevenue": {
"amountBeforeTax": {
"value": 4.99,
"currency": "USD"
},
"taxAmount": {
"value": 0.43,
"currency": "USD"
}
},
"totalLuggageRevenue": {
"amountBeforeTax": {
"value": 49.99,
"currency": "USD"
},
"taxAmount": {
"value": 4.37,
"currency": "USD"
}
},
"totalOtherRevenue": {
"amountBeforeTax": {
"value": 11.25,
"currency": "USD"
},
"taxAmount": {
"value": 0.98,
"currency": "USD"
}
},
"totalRemainingBalance": {
"value": 24.55,
"currency": "USD"
},
"totalDepositRequired": {
"value": 24.55,
"currency": "USD"
},
"depositRequiredDate": "2009-08-15",
"ratePlans": [
{
"rateCode": "SECRET_RATE",
"timeSpan": {
"startTime": "2007-07-19T00:00:00.000-07:00",
"timeUnits": 3,
"timeUnitType": "DAY"
},
"confidential": true,
"rates": [
{
"amount": {
"value": 100,
"currency": "USD"
},
"startTime": "2007-07-19T00:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "DAY"
},
{
"amount": {
"value": 100,
"currency": "USD"
},
"startTime": "2007-07-20T00:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "DAY"
},
{
"amount": {
"value": 99.5,
"currency": "USD"
},
"startTime": "2007-07-20T00:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "DAY"
},
{
"amount": {
"value": 105,
"currency": "USD"
},
"startTime": "2007-07-21T00:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "DAY"
}
]
}
],
"services": [
{
"inventoryCode": "SPA",
"rateCode": "STD_SPA",
"category": "SPA",
"timeSpan": {
"startTime": "2007-07-19T23:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "HOUR"
},
"pricePerUnit": {
"amountBeforeTax": {
"value": 25.9,
"currency": "USD"
},
"taxAmount": {
"value": 2.27,
"currency": "USD"
}
},
"numberOfUnits": 2
},
{
"inventoryCode": "DINNER",
"rateCode": "MAIN_REST",
"category": "FOOD",
"timeSpan": {
"startTime": "2007-07-19T19:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "HOUR"
},
"pricePerUnit": {
"amountBeforeTax": {
"value": 4.99,
"currency": "USD"
},
"taxAmount": {
"value": 0.43,
"currency": "USD"
}
},
"numberOfUnits": 1
},
{
"inventoryCode": "BELL",
"rateCode": "STD_BELL",
"category": "LUGGAGE",
"timeSpan": {
"startTime": "2007-07-19T08:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "HOUR"
},
"pricePerUnit": {
"amountBeforeTax": {
"value": 49.99,
"currency": "USD"
},
"taxAmount": {
"value": 4.37,
"currency": "USD"
}
},
"numberOfUnits": 1
},
{
"inventoryCode": "RESORT",
"rateCode": "STD_RESORT",
"category": "OTHER",
"timeSpan": {
"startTime": "2007-07-19T12:00:00.000-07:00",
"timeUnits": 1,
"timeUnitType": "HOUR"
},
"pricePerUnit": {
"amountBeforeTax": {
"value": 11.25,
"currency": "USD"
},
"taxAmount": {
"value": 0.98,
"currency": "USD"
}
},
"numberOfUnits": 1
}
],
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"interfaceType": "SHIP",
"remoteSystemName": "avertine_ship",
"accountId": "11348172",
"profileId": "28002",
"profileType": "GUEST",
"title": "Dr",
"firstName": "Contact",
"middleName": "J",
"lastName": "Sample",
"gender": "FEMALE",
"dateOfBirth": "1975-07-18",
"vipStatus": "2",
"primaryLanguage": "EN",
"companyInfo": {
"name": "Avertine"
},
"emailOptOut": false,
"mailOptOut": true,
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
},
{
"emailAddress": "inactive@mailinator.com",
"primary": false,
"inactiveDate": "2007-07-19T00:00:00.000-07:00"
}
],
"postalAddresses": [
{
"address1": "56574 Sample Street",
"address2": "Unit 1234",
"city": "Ft Myers",
"state": "FL",
"country": "US",
"zipCode": "33967",
"addressType": "HOME",
"primary": true
},
{
"address1": "1500 Example Hwy",
"city": "Naples",
"country": "AG",
"zipCode": "32781",
"addressType": "BUSINESS",
"primary": false,
"inactiveDate": "2007-07-19T00:00:00.000-07:00"
}
],
"phoneNumbers": [
{
"phoneNumber": "412-555-1234",
"phoneNumberType": "BUSINESS",
"primary": true
},
{
"phoneNumber": "1-239-555-1111",
"phoneNumberType": "MOBILE",
"primary": false,
"inactiveDate": "2007-07-19T00:00:00.000-07:00"
}
],
"memberships": [
{
"loyaltyNumber": "213213213213213213",
"programCode": "PC",
"levelCode": "GOLD",
"expireDate": "2010-12-31"
}
],
"creditCards": [
{
"creditCardLast4": "1234",
"creditCardExpirationDate": "2015-06-30",
"creditCardType": "AX",
"primary": true
},
{
"creditCardLast4": "8888",
"creditCardExpirationDate": "2016-01-31",
"creditCardType": "VA",
"primary": false
},
{
"creditCardLast4": "5555",
"creditCardExpirationDate": "2018-10-31",
"creditCardType": "MC",
"primary": false
}
],
"guestNotes": [
{
"title": "Profile Background Note",
"text": "Profile Background Note Text",
"type": "Profile Background Notes",
"time": "2014-01-16T11:30:38.000-08:00"
},
{
"title": "General Note",
"text": "General Note Text",
"type": "General Notes",
"time": "2014-01-16T11:30:38.000-08:00"
}
]
},
{
"action": "ADD",
"property": "AVERTINE",
"interfaceType": "SHIP",
"remoteSystemName": "avertine_ship",
"profileId": "314",
"profileType": "TRAVEL",
"lastName": "Avertine Travel",
"emailAddresses": [
{
"emailAddress": "travel@mailinator.com",
"primary": true
}
],
"postalAddresses": [
{
"address1": "1234 Jones St",
"address2": "Suite C1",
"city": "San Francisco",
"state": "CA",
"country": "US",
"zipCode": "94108",
"addressType": "BUSINESS",
"primary": true
}
],
"phoneNumbers": [
{
"phoneNumber": "555-555-1234",
"phoneNumberType": "BUSINESS",
"primary": true
}
]
}
],
"guestNotes": [
{
"title": "Background Note",
"text": "Global Background Note",
"type": "Background Notes",
"time": "2014-01-16T11:30:38.000-08:00"
},
{
"text": "RATE_FIXED=YES",
"type": "SYSTEM",
"time": "2009-08-15T16:52:40.000-07:00"
},
{
"text": "DISCOUNT_PERCENTAGE=0",
"type": "SYSTEM",
"time": "2009-08-15T16:52:40.000-07:00"
}
],
"pmsDefinedFields": [
{
"name": "UDF01",
"value": "A"
},
{
"name": "UDF02",
"value": "1"
}
],
"propertyDefinedFields": [
{
"name": "PUDF01",
"value": "A1"
},
{
"name": "PUDF02",
"value": "1.3"
}
]
}
2.2. Sample guest-stay list messages
2.2.1. Guest-stay list message with multiple guest-stays
[
{
"action": "ADD",
"property": "AVERTINE",
"confirmationCode": "38001",
"statusCode": "RESERVED",
"reservationSource": "COD",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"totalRoomRevenue": {
"amountBeforeTax": {
"value": 300,
"currency": "USD"
}
},
"ratePlans": [
{
"rateCode": "BASE_RATE",
"rates": [
{
"amount": {
"value": 100,
"currency": "USD"
}
}
]
}
],
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "abc10001",
"profileType": "GUEST",
"title": "Dr",
"firstName": "Contact",
"middleName": "J",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
],
"postalAddresses": [
{
"address1": "56574 Sample Street",
"address2": "Unit 1234",
"city": "Ft Myers",
"state": "FL",
"country": "US",
"zipCode": "33967",
"addressType": "HOME",
"primary": true
}
],
"phoneNumbers": [
{
"phoneNumber": "1-239-555-5555",
"phoneNumberType": "HOME",
"primary": true
}
],
"memberships": [
{
"loyaltyNumber": "213213213213213213"
}
]
}
]
},
{
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38002",
"statusCode": "CHECKEDOUT",
"reservationSource": "WALK_IN",
"checkinDate": "2015-07-11",
"checkoutDate": "2015-07-13",
"roomNumber": "FLT2-A",
"roomType": "KING",
"totalRoomRevenue": {
"amountBeforeTax": {
"value": 295.5,
"currency": "USD"
}
},
"ratePlans": [
{
"rateCode": "BAR",
"rates": [
{
"amount": {
"value": 147.75,
"currency": "USD"
}
}
]
}
],
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"title": "Ms",
"firstName": "Amy",
"middleName": "T",
"lastName": "Smith",
"emailAddresses": [
{
"emailAddress": "amy@mailinator.com",
"primary": true
}
],
"postalAddresses": [
{
"address1": "1234 Jones St",
"address2": "Unit 1234",
"city": "San Francisco",
"state": "CA",
"country": "US",
"zipCode": "94108",
"addressType": "HOME",
"primary": true
}
],
"phoneNumbers": [
{
"phoneNumber": "1-415-555-5555",
"phoneNumberType": "HOME",
"primary": true
}
],
"memberships": [
{
"loyaltyNumber": "ABC123"
}
]
}
]
}
]
2.3. Sample profile messages
2.3.1. Profile message with commonly used fields
{
"action": "ADD",
"property": "AVERTINE",
"interfaceType": "SHIP",
"remoteSystemName": "avertine_ship",
"profileId": "CR-1234",
"profileType": "GUEST",
"title": "Dr",
"firstName": "Contact",
"middleName": "J",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "info@mailinator.com",
"primary": true
}
],
"postalAddresses": [
{
"address1": "56574 Sample Street",
"address2": "Unit 1234",
"city": "Ft Myers",
"state": "FL",
"country": "US",
"zipCode": "33967",
"addressType": "HOME",
"primary": true
}
],
"phoneNumbers": [
{
"phoneNumber": "1-239-555-4321",
"phoneNumberType": "HOME",
"primary": true
}
],
"memberships": [
{
"loyaltyNumber": "213213213213213213"
}
]
}
2.3.2. Profile message with all possible fields
{
"action": "ADD",
"property": "AVERTINE",
"interfaceType": "SHIP",
"remoteSystemName": "avertine_ship",
"accountId": "11348172",
"profileId": "28001",
"profileType": "GUEST",
"title": "Mr.",
"firstName": "John",
"middleName": "Clancy",
"lastName": "Smith",
"gender": "MALE",
"dateOfBirth": "1989-02-01",
"vipStatus": "2",
"primaryLanguage": "EN",
"companyInfo": {
"name": "Avertine"
},
"emailOptOut": false,
"mailOptOut": true,
"emailAddresses": [
{
"emailAddress": "info@mailinator.com",
"primary": true
},
{
"emailAddress": "inactive@mailinator.com",
"primary": false,
"inactiveDate": "2007-07-19T00:00:00.000-07:00"
}
],
"postalAddresses": [
{
"address1": "1234 Jones St",
"address2": "2nd Floor",
"city": "San Francisco",
"state": "CA",
"country": "US",
"zipCode": "94108",
"addressType": "HOME",
"primary": true
},
{
"address1": "2640 Parkway De la Puerta De oro",
"address2": "Habitación 315",
"city": "Nápoles",
"state": "FL",
"country": "US",
"zipCode": "34105",
"addressType": "BUSINESS",
"primary": false
}
],
"phoneNumbers": [
{
"phoneNumber": "555-123-4567",
"phoneNumberType": "BUSINESS",
"primary": true
},
{
"phoneNumber": "415-555-1234",
"phoneNumberType": "HOME",
"primary": false,
"inactiveDate": "2007-07-19T00:00:00.000-07:00"
}
],
"memberships": [
{
"loyaltyNumber": "4800123",
"programCode": "ENCORE"
},
{
"loyaltyNumber": "66760000",
"programCode": "OCIS",
"levelCode": "GOLD",
"expireDate": "2010-12-31"
}
],
"creditCards": [
{
"creditCardLast4": "1234",
"creditCardExpirationDate": "2015-12-31",
"creditCardType": "AX",
"primary": true
},
{
"creditCardExpirationDate": "2012-12-31",
"creditCardType": "MC",
"primary": false
},
{
"creditCardExpirationDate": "2013-04-30",
"creditCardType": "VA",
"primary": false
}
],
"guestNotes": [
{
"title": "Profile Background Note",
"text": "Profile Background Note Text",
"type": "Profile Background Notes",
"time": "2013-05-02T16:55:48.000-07:00"
},
{
"title": "General Note",
"text": "General Note Text",
"type": "General Notes",
"time": "2013-05-02T16:55:57.000-07:00"
}
],
"pmsDefinedFields": [
{
"name": "UDF01",
"value": "A"
},
{
"name": "UDF02",
"value": "1"
}
],
"propertyDefinedFields": [
{
"name": "PUDF01",
"value": "A1"
},
{
"name": "PUDF02",
"value": "1.3"
}
]
}
2.4. Sample simple guest-stay messages
2.4.1. Simple guest-stay message with commonly used fields
{
"accountName": "AVERTINE",
"confirmationNumber": "10002",
"checkInDate": "2015-06-28",
"checkOutDate": "2015-07-01",
"roomType": "SK",
"channel": "SALE",
"rate": 144.0,
"firstName": "Eve",
"lastName": "Jones",
"email": "eve@mailinator.com",
"addressLine1": "1234 Jones St",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94108"
}
2.4.2. Simple guest-stay message with all possible fields
{
"accountName": "AVERTINE",
"interfaceType": "SHIP",
"confirmationNumber": "10003",
"checkInDate": "2015-06-28",
"checkedInBy": "Test User 1",
"checkOutDate": "2015-07-01",
"checkedOutBy": "Test User 2",
"roomNumber": "C124A",
"roomType": "KING",
"channel": "SALE",
"ratePlanCode": "BAR",
"rate": 99.95,
"title": "Dr",
"firstName": "Mary",
"lastName": "Claire",
"email": "mary@mailinator.com",
"phone": "555-123-4567",
"addressLine1": "1234 Jones St",
"addressLine2": "Apt 4C",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94108",
"loyaltyNumber": "12345",
"groupName": "Nov Conference"
}
2.5. Sample simple guest-stay list messages
2.5.1. Simple guest-stay list message with multiple simple guest-stays
[
{
"accountName": "AVERTINE",
"confirmationNumber": "10002",
"checkInDate": "2015-06-28",
"checkOutDate": "2015-07-01",
"roomType": "SK",
"channel": "SALE",
"rate": 144.0,
"firstName": "Eve",
"lastName": "Jones",
"email": "eve@mailinator.com",
"addressLine1": "1234 Jones St",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94108"
},
{
"accountName": "AVERTINE",
"interfaceType": "SHIP",
"confirmationNumber": "10003",
"checkInDate": "2015-06-28",
"checkedInBy": "Test User 1",
"checkOutDate": "2015-07-01",
"checkedOutBy": "Test User 2",
"roomNumber": "C124A",
"roomType": "KING",
"channel": "SALE",
"ratePlanCode": "BAR",
"rate": 99.95,
"title": "Dr",
"firstName": "Mary",
"lastName": "Claire",
"email": "mary@mailinator.com",
"phone": "555-123-4567",
"addressLine1": "1234 Jones St",
"addressLine2": "Apt 4C",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94108",
"loyaltyNumber": "12345",
"groupName": "Nov Conference"
}
]
2.6. Sample guest-stay list result messages
2.6.1. Guest-stay list result message with success result
{
"status": "SUCCESS",
"sourceField": "table",
"field": "guestStayList#",
"summary": {
"successCount": 2,
"errorCount": 0,
"totalCount": 2
},
"guestStays": [
{
"status": "SUCCESS",
"sourceField": "row 0",
"field": "guestStay#",
"guestStay": {
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38000",
"statusCode": "CHECKEDOUT",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"firstName": "Contact",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
]
}
]
}
},
{
"status": "SUCCESS",
"sourceField": "row 1",
"field": "guestStay#",
"guestStay": {
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38000",
"statusCode": "CHECKEDOUT",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"firstName": "Contact",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
]
}
]
}
}
]
}
2.6.2. Guest-stay list result message with status, errors, and warnings only
{
"status": "WARNING",
"message": "Some guest-stay transformations failed",
"sourceField": "table",
"sourceValue": "\"NOT AVAILABLE\",\"1194.0000\",\"1194.0000\",\"NULL\",\"NULL\",\".\",,,,\"CRO\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"\n\"2016-12-18\",\"5.0000\",\"5.0000\",\"NULL\",\"NULL\",\".\",,,,\"ONL\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"",
"field": "guestStayList#",
"summary": {
"successCount": 1,
"errorCount": 1,
"totalCount": 2
},
"guestStays": [
{
"status": "FAILED",
"message": "Transformation to guest-stay failed with multiple causes:\n guestStay#/totalDepositRequired/value Transformation failed: Not a number\n guestStay#/totalLuggageRevenue/amountBeforeTax/value Transformation failed: Not a number\n",
"sourceField": "row 0",
"sourceValue": "\"NOT AVAILABLE\",\"1194.0000\",\"1194.0000\",\"NULL\",\"NULL\",\".\",,,,\"CRO\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"",
"field": "guestStay#",
"errors": [
{
"status": "FAILED",
"message": "Transformation failed: Not a number",
"sourceField": "cell 7",
"sourceValue": "",
"field": "guestStay#/totalDepositRequired/value"
},
{
"status": "FAILED",
"message": "Transformation failed: Not a number",
"sourceField": "cell 8",
"sourceValue": "",
"field": "guestStay#/totalLuggageRevenue/amountBeforeTax/value"
}
],
"warnings": [
{
"status": "FAILED",
"message": "Transformation failed: Invalid format: \"NOT AVAILABLE\"",
"sourceField": "cell 0",
"sourceValue": "NOT AVAILABLE",
"field": "guestStay#/actualCheckoutDate"
}
]
},
{
"status": "SUCCESS",
"sourceField": "row 1",
"field": "guestStay#"
}
]
}
2.6.3. Guest-stay list result message with all possible fields
{
"status": "WARNING",
"message": "Some guest-stay transformations failed",
"sourceField": "table",
"sourceValue": "\"NOT AVAILABLE\",\"1194.0000\",\"1194.0000\",\"NULL\",\"NULL\",\".\",,,,\"CRO\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"\n\"2016-12-18\",\"5.0000\",\"5.0000\",\"NULL\",\"NULL\",\".\",,,,\"ONL\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"",
"field": "guestStayList#",
"summary": {
"successCount": 1,
"errorCount": 1,
"totalCount": 2
},
"guestStays": [
{
"status": "FAILED",
"message": "Transformation to guest-stay failed with multiple causes:\n guestStay#/totalDepositRequired/value Transformation failed: Not a number\n guestStay#/totalLuggageRevenue/amountBeforeTax/value Transformation failed: Not a number\n",
"sourceField": "row 0",
"sourceValue": "\"NOT AVAILABLE\",\"1194.0000\",\"1194.0000\",\"NULL\",\"NULL\",\".\",,,,\"CRO\",,,\"0\",\"1\",\"100.99\",\"CC\",\"EN\",,,,,\"TREE\",\"N\",,,,,,\"PLAT\"",
"field": "guestStay#",
"guestStay": {
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38000",
"statusCode": "CHECKEDOUT",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"firstName": "Contact",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
]
}
]
},
"errors": [
{
"status": "FAILED",
"message": "Transformation failed: Not a number",
"sourceField": "cell 7",
"sourceValue": "",
"field": "guestStay#/totalDepositRequired/value"
},
{
"status": "FAILED",
"message": "Transformation failed: Not a number",
"sourceField": "cell 8",
"sourceValue": "",
"field": "guestStay#/totalLuggageRevenue/amountBeforeTax/value"
}
],
"warnings": [
{
"status": "FAILED",
"message": "Transformation failed: Invalid format: \"NOT AVAILABLE\"",
"sourceField": "cell 0",
"sourceValue": "NOT AVAILABLE",
"field": "guestStay#/actualCheckoutDate"
}
]
},
{
"status": "SUCCESS",
"sourceField": "row 1",
"field": "guestStay#",
"guestStay": {
"action": "CHECKOUT",
"property": "AVERTINE",
"confirmationCode": "38000",
"statusCode": "CHECKEDOUT",
"checkinDate": "2007-07-19",
"checkoutDate": "2007-07-22",
"roomNumber": "123",
"roomType": "KING",
"profiles": [
{
"action": "ADD",
"property": "AVERTINE",
"profileId": "28002",
"profileType": "GUEST",
"firstName": "Contact",
"lastName": "Sample",
"emailAddresses": [
{
"emailAddress": "sample@mailinator.com",
"primary": true
}
]
}
]
}
}
]
}
2.7. Sample profile list result messages
2.7.1. Profile list result message with success result
{
"status": "SUCCESS",
"sourceField": "table",
"field": "profileList#",
"summary": {
"successCount": 1,
"errorCount": 0,
"totalCount": 1
},
"profiles": [
{
"status": "SUCCESS",
"sourceField": "row 0",
"field": "profile#",
"profile": {
"action": "ADD",
"property": "d5e974f4-41e9-4a33-9290-eed5a6086597",
"interfaceType": "FILE",
"remoteSystemName": "b30b3a97-5b6d-4199-a35c-fcece539504f",
"profileType": "GUEST",
"firstName": "Mango000001",
"lastName": "Tango000001",
"emailAddresses": [
{
"emailAddress": "Mango000001@mailbox.revinate.net",
"primary": true
}
]
}
}
]
}
2.7.2. Profile list result message with all possible fields
{
"status": "FAILED",
"message": "All profile transformations failed",
"sourceField": "table",
"field": "profileList#",
"summary": {
"successCount": 0,
"errorCount": 1,
"totalCount": 1
},
"profiles": [
{
"status": "FAILED",
"message": "Transformation to profile failed with multiple causes:\n profile#/emailAddresses/0/primary Transformation failed: Could not parse \"not_a_boolean\"\n",
"sourceField": "row 0",
"sourceValue": "\"Mango000001\",\"Tango000001\",\"Mango000001@mailbox.revinate.net\",\"not_a_boolean\",\"not_a_gender\"",
"field": "profile#",
"profile": {
"action": "ADD",
"property": "d5e974f4-41e9-4a33-9290-eed5a6086597",
"interfaceType": "FILE",
"remoteSystemName": "b30b3a97-5b6d-4199-a35c-fcece539504f",
"profileType": "GUEST",
"firstName": "Mango000001",
"lastName": "Tango000001",
"emailAddresses": []
},
"errors": [
{
"status": "FAILED",
"message": "Transformation failed: Could not parse \"not_a_boolean\"",
"sourceField": "cell 3",
"sourceValue": "not_a_boolean",
"field": "profile#/emailAddresses/0/primary"
}
],
"warnings": [
{
"status": "FAILED",
"message": "Transformation failed: \"not_a_gender\" is not a valid Gender",
"sourceField": "cell 4",
"sourceValue": "not_a_gender",
"field": "profile#/gender"
}
]
}
]
}
Appendix A: Revision History
Version | Date | Notes |
---|---|---|
1.0 |
2016-08-26 |
Initial version |
1.1 |
2016-08-30 |
Add amountBeforeTax and taxAmount to monetaryAmount object and deprecate value and currency from same. Deprecate travelAgency and totalTaxes from guestStay object. Deprecate stayLengthUnits from stayLength object. Add |
1.2 |
2016-12-18 |
Add result and guestStayListResult objects |
1.3 |
2016-12-19 |
Add guestStayResult object. Add status, sourceField, and sourceValue to result object. Switch field in result object from JSON path to JSON pointer. Add guestStays to guestStayListResult object and deprecate errors and warnings from same. |
1.4 |
2017-06-26 |
Add profileResult object. Add profileListResult object. Add pmsDefinedFields and propertyDefinedFields to the profile object. Change rateCode in the service object from required to recommended. Add category to the service object. Deprecate totalFoodAndBeverageRevenue, totalLuggageRevenue, and totalOtherRevenue from guestStay object. |
1.5 |
2017-07-21 |
Add accountId to the guestStay and profile objects. |
1.6 |
2018-06-04 |
Change lastName from required to recommended. |