Updates registration information for a property at the room type (unit) level.
If an empty or invalid registration number is specified in the mutation, warnings are generated.
If the specified unit ID does not belong to the specified property, an error is generated.
Expedia property IDs are specified in the following mutation examples, though supplier IDs are also supported.
Note: We strongly recommend that you include warningStatus in your implementation to ensure that you capture warnings if they are generated. warningStatus is a field on the UnitRegistrationDetail object. (Warnings are different than errors; errors are described in Error handling.)
To determine the registration requirements to set using the updateUnitRegistration mutation, you must
Examine the requirements object in the districtByCoordinates or district query’s response.
For each regulatory category, review the value of registrationNumberRequirements : isOptional.
When isOptional is set to false, you must set registration numbers for those registration number types.
Consider this partial response from the districtByCoordinates query for a Maui property:
1"requirements":[
2{
3"regulatoryCategory":"BED_AND_BREAKFAST",
4"regulatoryCategoryLabel":"Bed and breakfast",
5"qualifiedPropertyTypes":[
6{
7"type":"bnb",
8"subtype":null
9}
10],
11"registrationNumberRequirements":[
12{
13"numberType":"PARCEL_NUMBER_TAX_MAP_KEY",
14"numberTypeLabel":"Parcel Number (Tax Map Key)",
15"localName":"Parcel Number (Tax Map Key)",
16"format":"123456789012 or 1234567890123",
17"regex":"^[0-9]{12,13}$",
18"isOptional":false,
19"isExpirationDateRequired":false,
20"allowPendingRegistrations":false
21},
22{
23"numberType":"GENERAL_EXCISE_TAX_ID",
24"numberTypeLabel":"General Excise Tax ID (GET)",
So, for the BED_AND_BREAKFAST regulatory category, these registration number types are mandatory (because isOptional is set to false):
PARCEL_NUMBER_TAX_MAP_KEY
GENERAL_EXCISE_TAX_ID
TRANSIENT_ACCOMMODATIONS_TAX_ID
The format and regex fields describe how to set the values.
If mandatory requirements are not provided by the mutation, this warning is returned:
"warningStatus": { "description": "Update Unsuccessful. Invalid registration details provided. Please provide valid details to ensure compliance.
Finally, the updateUnitRegistration mutation includes the forceSave input argument, which forces the API to save the registration information for mandatory registration requirements even if the information is not valid.
If optional registration requirements need to be updated for a unit and forceSave is set to false, you must include the mandatory requirements in the request (even if there is no update to their values). If they are not specified, the mutation will fail and the optional requirements will not be not updated.
If forceSave is set to false and a value of a mandatory registration field is not valid, the value is not saved. If set to true, the value is saved. In both cases, warningStatus field will describe the issue in the response payload.
If a specified registration field is optional, the information is saved no matter how forceSave is set and the warning will indicate that the update was successful.
In this example, all of the included registration types are mandatory. Because forceSave is set to false, these types need to be included even if only an optional type were included.
Whether to save the registration information for mandatory registration
requirements even if the information is not valid. If this argument is
omitted, the default value is true.
If optional registration requirements need to be updated for a unit and
forceSave is set to false, you must include the mandatory requirements
in the request (even if there is no update to their values). If they are not
specified, the mutation will fail and the optional requirements will not be not updated.
If forceSave is set to false and a value of a mandatory registration
field is not valid, the value is not saved. If set to true, the value is
saved. In both cases, warningStatus field will describe the issue in the
response payload.
If a specified registration field is optional, the information is saved no
matter how forceSave is set and the warning will indicate that the update
was successful.
To determine whether registration information is mandatory or optional, use
the district query and retrieve the isOptional field on the
AdditionalDataRequirement object.
Property ID. If using an external ID (from your system, source is SUPPLIER)
for a Vrbo property, specify the ID in this format:
systemId/advertiserId/listingExternalId. If the source is EXPEDIA, this is
the Expedia ID (EID).
Compliance status for mandatory requirements only (at the unit level) according
to the local jurisdiction's regulatory requirements. If invalid information is
provided for an optional regulatory requirement, or if regulatory information is
set in a jurisdiction that does not require regulatory information, status:
COMPLIANT is returned. For optional requirements, a warning is returned in the
warningStatus field of the updateUnitRegistration mutation's payload.
Field
Description
reason
Not nullable.
Reason why the unit is in or out of compliance. The label used for the
registration number in this string comes from the numberTypeLabel field on
the RegistrationNumberRequirement type.
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
IdSource
Enum
Source of a given ID.
Name
Description
EXPEDIA
Expedia is the source of the ID.
SUPPLIER
Connectivity provider or lodging partner is the source of the ID. This value is not supported for use in promotions.
VRBO
Unsupported.
Int
Int
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
PropertyRegistration
Object
Government registration information for a given property.
Field
Description
applicableRegulations
Additional property registration information required by certain districts.
Whether a valid registration record was successfully written by the mutation.
This field does not report whether the record fulfills the requirements of the
property's district. Also, it reports information at the property level,
though the property may contain deleted or inactive units and may provide
inaccurate information for some properties. We do not recommend including this field.
Property subtype, such as primary or secondary, or null if not applicable.
This value and the value of regulatoryType should align with the value
provided for regulatoryCategory. (This field provides the value that is
returned in the requirements:qualifiedPropertyTypes:subtype field in the
districtByCoordinates and property queries.)
Property type, such as residence, condo, and so on. This value and the value
of regulatorySubType should align with the value provided for
regulatoryCategory. (This field provides the value that is returned in the
requirements:qualifiedPropertyTypes:type field in the
districtByCoordinates and property queries.)
Type of registration/license. (This field provides the value that is returned
in the requirements: registrationNumberRequirements:numberType field in the
districtByCoordinates and property queries.)
Category values for regulatory categories. Most of jurisdiction districts only
allow for two categories, HOTEL and VACATION_RENTAL, though more values
GRAPHQL_VALIDATION_FAILED are provided to satisfy local government requirements.
Name
Description
HOTEL
BED_AND_BREAKFAST
HOTEL_OR_BNB
PRIMARY_HOME
PRIMARY_HOME_WITH_EXCEPTION
SECONDARY_HOME
VACATION_RENTAL
LONG_TERM_ONLY
SHORT_TERM_RENTAL
MINPAKU
SIMPLE_LODGING
EVENT
SPECIAL
NO_LICENSE
HOTEL_RYOKAN
RYOKAN
PRIMARY_OR_SECONDARY
TRANSIENT_OCCUPANCY_RESIDENTIAL_STRUCTURE
MOTEL
HOME_SHARING_NUMBER
VACATION_RENTAL_OTHER
HOSTEL
CAMPING_SITES
RURAL_LODGING
APARTMENT_HOTEL
RegulatoryStatus
Enum
Values for regulatory status.
Name
Description
COMPLIANT
Unit meets all regulatory requirements.
COMPLIANT_ACTION_NEEDED
Unit meets requirements to remain listed but will need to provide
additional information (or other action) in order to not be delisted.
NOT_COMPLIANT
Unit does not meet all regulatory requirements and cannot be shown.
NOT_COMPLIANT_ACTION_NEEDED
Unit is not compliant, but enforcement hasn't started yet. Action should be
taken for the listing to be compliant after enforcement date.
NOT_ALLOWED
Platform does not allow units in this jurisdiction; no actions from partner can affect status.
NONE
Unit's status cannot be determined.
String
String
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
UnitRegistrationDetail
Object
Registration information for the unit or room type.
Field
Description
acknowledgementRecords
Not nullable.
Acknowledgement records for the bookable unit. These are displayed to the
traveler to confirm that they understand the regulatory requirements.
Compliance status for mandatory requirements only (at the unit level)
according to the local jurisdiction's regulatory requirements. If invalid
information is provided for an optional regulatory requirement, or if
regulatory information is set in a jurisdiction that does not require
regulatory information, status: COMPLIANT is returned. For optional
requirements, a warning is returned in the warningStatus field of the
updateUnitRegistration mutation's payload.
Note: We strongly recommend that you include this field in your
implementation even though it is nullable. This field provides an audit trail
for reporting purposes.
Note: We strongly recommend that you include this field/object in your
implementation even though it is nullable. This field provides a warning if
the specified room type ID does not belong to the specified property or if an
empty or invalid information number is provided.
Warning message and code that is provided if an issue arose with the mutation.
Field
Description
code
Not nullable.
Warning code. Here are the possible values:
INVALID_LICENSE_NUMBERS - An invalid registration number was specified
REGULATORY_CATEGORY_NOT_CONFIGURED_FOR_DISTRICT - The specified regulatory
category is not supported by the property's district
REGISTRATION_NUMBER_TYPE_MISSING - Registration number type was not specified
-REGISTRATION_NUMBER_TYPE_NOT_APPLICABLE - The specified registration number type is not applicable to the property type
MISSING_ADDITIONAL_DATA - Additional registration data is required
MISSING_PROPERTY_ADDITIONAL_DATA - Additional property registration data is required
INVALID_REGULATORY_CATEGORY - An invalid regulatory category was specified
DIFFERENT_REGULATORY_CATEGORIES - The same regulatory category must be specified for all bookable units of the property
MISSING_REGISTRATION - Regulatory information is missing for the property or its bookable unit