openapi: 3.0.4
info:
title: BookingEngineApi Account notes Companionships API
version: v1
servers:
- url: https://api.mews.com
tags:
- name: Companionships
paths:
/api/connector/v1/companionships/getAll:
post:
tags:
- Companionships
summary: Get all companionships
description: 'Returns all companionships based on customers, reservations or reservation groups. One of them must be specified in the request.
Note this operation uses [Pagination](https://mews-systems.gitbook.io/connector-api/guidelines/pagination/) and supports [Portfolio Access Tokens](https://mews-systems.gitbook.io/connector-api/concepts/multi-property).'
operationId: companionships_getAll
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompanionshipFilterParameters'
example:
ClientToken: E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D
AccessToken: C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D
Client: Sample Client 1.0.0
EnterpriseIds:
- 3fa85f64-5717-4562-b3fc-2c963f66afa6
- 4d0201db-36f5-428b-8d11-4f0a65e960cc
CompanionshipIds:
- 72d4b117-1f84-44a3-1f84-8b2c0635ac60
CustomerIds:
- 35d4b117-4e60-44a3-9580-c582117eff98
ReservationIds:
- bfee2c44-1f84-4326-a862-5289598f6e2d
ReservationGroupIds:
- c704dff3-7811-4af7-a3a0-7b2b0635ac59
UpdatedUtc:
StartUtc: '2020-02-05T00:00:00Z'
EndUtc: '2020-02-10T00:00:00Z'
Limitation:
Count: 10
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CompanionshipResult'
example:
Companionships:
- Id: 72d4b117-1f84-44a3-1f84-8b2c0635ac60
CustomerId: 35d4b117-4e60-44a3-9580-c582117eff98
ReservationGroupId: c704dff3-7811-4af7-a3a0-7b2b0635ac59
ReservationId: bfee2c44-1f84-4326-a862-5289598f6e2d
Customers: null
Reservations: null
ReservationGroups: null
Cursor: 72d4b117-1f84-44a3-1f84-8b2c0635ac60
'400':
description: Error caused by the client app, e.g. in case of malformed request or invalid identifier of a resource. In most cases, such an error signifies a bug in the client app (consumer of the API).
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'401':
description: Error caused by usage of invalid ClientToken, AccessToken, or you may not have the necessary permission to use the endpoint.
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'403':
description: Server error that should be reported to the end user of the client app. Happens for example when the server-side validation fails or when a business-logic check is violated.
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'408':
description: Error caused by heavy request that takes too long to process (typically tens of seconds). To get around this, request data in smaller batches. For more information, see [Request timeouts](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-timeouts)
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'204':
description: Server has successfully fulfilled the request and there is no additional information to send back.
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'429':
description: Error caused by too many requests sent in a given amount of time. Response contains `Retry-After` header indicating how long the user agent should wait before making a follow-up request. For more information, see [Request limits](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-limits).
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
'500':
description: Unexpected error on the Mews side. This may be due to a software fault. If such a situation occurs, the error will be logged and the development team notified, however you can raise an issue through GitHub on our [documentation repository](https://github.com/MewsSystems/gitbook-connector-api).
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectorApiExceptionResult'
components:
schemas:
ReservationOptions:
title: Reservation options
required:
- AllCompanionsCheckedIn
- AnyCompanionCheckedIn
- OwnerCheckedIn
type: object
properties:
OwnerCheckedIn:
type: boolean
description: Owner of the reservation checked in.
AllCompanionsCheckedIn:
type: boolean
description: All companions of the reservation checked in.
AnyCompanionCheckedIn:
type: boolean
description: Any companion of the reservation checked in.
additionalProperties: false
x-schema-id: ReservationOptions
ConnectorApiExceptionResult:
title: ConnectorApiExceptionResult
type: object
properties:
Message:
type: string
nullable: true
RequestId:
type: string
nullable: true
Details:
nullable: true
additionalProperties: false
x-schema-id: ConnectorApiExceptionResult
ReservationGroupOld:
title: Reservation groups (ver 2017-04-12)
type: object
properties:
Id:
type: string
description: Unique identifier of the reservation group.
format: uuid
Name:
type: string
description: Name of the reservation group.
nullable: true
additionalProperties: false
x-schema-id: ReservationGroupOld
Customer:
title: Customer
required:
- ChainId
- Classifications
- CreatedUtc
- CreatorProfileId
- Id
- IsActive
- LastName
- Number
- Options
- PreferredSpaceFeatures
- UpdatedUtc
- UpdaterProfileId
type: object
properties:
Id:
type: string
description: Unique identifier of the customer.
format: uuid
ChainId:
type: string
description: Unique identifier of the chain.
format: uuid
Number:
maxLength: 19
minLength: 1
type: string
description: Unique number of the customer (max 19 digits).
Title:
allOf:
- $ref: '#/components/schemas/Title'
description: 'Title of the customer.
Mister (Mr.)
Miss (Ms.)
Misses (Mrs.)'
nullable: true
Sex:
allOf:
- $ref: '#/components/schemas/SexEnum'
description: 'Sex of the customer.
Male
Female'
nullable: true
FirstName:
type: string
description: First name of the customer.
nullable: true
LastName:
minLength: 1
type: string
description: Last name of the customer.
SecondLastName:
type: string
description: Second last name of the customer.
nullable: true
NationalityCode:
type: string
description: ISO 3166-1 code of the [Country](https://mews-systems.gitbook.io/connector-api/operations/countries/#country).
nullable: true
PreferredLanguageCode:
type: string
description: 'Language and culture code of the customer''s preferred language, according to their profile. For example: `en-GB`, `fr-CA`.'
nullable: true
LanguageCode:
type: string
description: Language and culture code of the customer's language, based on multiple sources. These sources include the preferred language specified in internal data based on previous bookings, and the preferred language of the customer specified in their profile. If neither of these sources are present, we use the native language based on the customer's nationality. The format is, for example, `en-US` or `fr-FR`.
nullable: true
BirthDate:
type: string
description: Date of birth in ISO 8601 format.
nullable: true
BirthCountryCode:
type: string
description: ISO 3166-1 alpha-2 code of the birth country.
nullable: true
BirthCountrySubdivisionCode:
type: string
description: ISO 3166-2 code of the administrative division, e.g. ES-C.
nullable: true
BirthPlace:
type: string
description: Place of birth.
nullable: true
Occupation:
type: string
description: Occupation of the customer.
nullable: true
Email:
type: string
description: Email address of the customer.
nullable: true
HasOtaEmail:
type: boolean
description: Whether the customer's email address is a temporary email address from an OTA. For more details, see the [product documentation](https://help.mews.com/s/article/how-to-maintain-ota-guest-profiles-with-verified-email-addresses-obtained-from-the-guest-portal).
Phone:
type: string
description: Phone number of the customer (possibly mobile).
nullable: true
TaxIdentificationNumber:
type: string
description: Tax identification number of the customer.
nullable: true
LoyaltyCode:
type: string
description: Loyalty code of the customer.
nullable: true
AccountingCode:
type: string
description: Accounting code of the customer.
nullable: true
BillingCode:
type: string
description: Billing code of the customer.
nullable: true
Notes:
type: string
description: Internal notes about the customer.
nullable: true
CarRegistrationNumber:
maxLength: 255
type: string
description: Registration number of the customer's car.
nullable: true
DietaryRequirements:
maxLength: 255
type: string
description: Customer's dietary requirements, e.g. Vegan, Halal.
nullable: true
CreatedUtc:
minLength: 1
type: string
description: Creation date and time of the customer in UTC timezone in ISO 8601 format.
format: date-time
UpdatedUtc:
minLength: 1
type: string
description: Last update date and time of the customer in UTC timezone in ISO 8601 format.
format: date-time
Passport:
title: Identity document
allOf:
- $ref: '#/components/schemas/IdentityDocument'
nullable: true
deprecated: true
x-deprecatedMessage: Use [Get all identity documents](https://mews-systems.gitbook.io/connector-api/operations/identitydocuments#get-all-identity-documents) to fetch identity documents.
IdentityCard:
title: Identity document
allOf:
- $ref: '#/components/schemas/IdentityDocument'
nullable: true
deprecated: true
x-deprecatedMessage: Use [Get all identity documents](https://mews-systems.gitbook.io/connector-api/operations/identitydocuments#get-all-identity-documents) to fetch identity documents.
Visa:
title: Identity document
allOf:
- $ref: '#/components/schemas/IdentityDocument'
nullable: true
deprecated: true
x-deprecatedMessage: Use [Get all identity documents](https://mews-systems.gitbook.io/connector-api/operations/identitydocuments#get-all-identity-documents) to fetch identity documents.
DriversLicense:
title: Identity document
allOf:
- $ref: '#/components/schemas/IdentityDocument'
nullable: true
deprecated: true
x-deprecatedMessage: Use [Get all identity documents](https://mews-systems.gitbook.io/connector-api/operations/identitydocuments#get-all-identity-documents) to fetch identity documents.
Address:
title: Address
allOf:
- $ref: '#/components/schemas/OldAddress'
description: ''
nullable: true
deprecated: true
x-deprecatedMessage: Use `AddressId` instead.
AddressId:
type: string
description: Unique identifier of the `Address` of the customer.
format: uuid
nullable: true
Classifications:
type: array
items:
$ref: '#/components/schemas/CustomerClassificationEnum'
description: Classifications of the customer.
Options:
type: array
items:
$ref: '#/components/schemas/CustomerOptionsEnum'
description: Options of the customer.
ItalianDestinationCode:
type: string
description: Value of Italian destination code.
nullable: true
ItalianFiscalCode:
type: string
description: Value of Italian fiscal code.
nullable: true
ItalianLotteryCode:
type: string
description: Italian lottery code.
nullable: true
CompanyId:
type: string
description: Unique identifier of [Company](https://mews-systems.gitbook.io/connector-api/operations/companies/#company) the customer is associated with.
format: uuid
nullable: true
MergeTargetId:
type: string
description: Unique identifier of the account ([Customer](https://mews-systems.gitbook.io/connector-api/operations/#customer)) to which this customer is linked.
format: uuid
nullable: true
ActivityState:
type: string
description: '[Activity State](https://mews-systems.gitbook.io/connector-api/operations/#activity-state) of customer record, i.e. whether active or deleted.'
nullable: true
deprecated: true
x-deprecatedMessage: Use `IsActive` instead.
IsActive:
type: boolean
description: Whether the customer record is still active.
PreferredSpaceFeatures:
type: array
items:
$ref: '#/components/schemas/ResourceFeatureClassification'
description: A list of room preferences, such as view type, bed type, and amenities.
CreatorProfileId:
type: string
description: Unique identifier of the user who created the customer.
format: uuid
UpdaterProfileId:
type: string
description: Unique identifier of the user who last updated the customer.
format: uuid
additionalProperties: false
x-schema-id: Customer
CompanionshipFilterParameters:
title: CompanionshipFilterParameters
required:
- AccessToken
- Client
- ClientToken
- Extent
- Limitation
type: object
properties:
ClientToken:
minLength: 1
type: string
description: Token identifying the client application.
AccessToken:
minLength: 1
type: string
description: Access token of the client application.
Client:
minLength: 1
type: string
description: Name and version of the client application.
Limitation:
allOf:
- $ref: '#/components/schemas/Limitation'
description: Limitation on the quantity of data returned and optional Cursor for the starting point of data.
EnterpriseIds:
maxItems: 1000
minItems: 1
type: array
items:
type: string
format: uuid
description: Unique identifiers of the Enterprises. If not specified, the operation returns data for all enterprises within scope of the Access Token.
nullable: true
CompanionshipIds:
maxItems: 1000
minItems: 1
type: array
items:
type: string
format: uuid
description: Unique identifiers of `Companionship`. Required if no other filter is provided.
nullable: true
Extent:
title: Companionship extent
allOf:
- $ref: '#/components/schemas/CompanionshipExtent'
description: Extent of data to be returned. E.g. it is possible to specify that together with the companionships, customers, reservations, and reservation groups should be also returned.
ReservationIds:
maxItems: 1000
minItems: 1
type: array
items:
type: string
format: uuid
description: Unique identifiers of `Reservation`. Required if no other filter is provided.
nullable: true
CustomerIds:
maxItems: 1000
minItems: 1
type: array
items:
type: string
format: uuid
description: Unique identifiers of `Customer`. Required if no other filter is provided.
nullable: true
ReservationGroupIds:
maxItems: 1000
minItems: 1
type: array
items:
type: string
format: uuid
description: Unique identifiers of `ReservationGroup`. Required if no other filter is provided.
nullable: true
UpdatedUtc:
title: Time interval
allOf:
- $ref: '#/components/schemas/TimeFilterInterval'
description: Interval in which the `Companionship` was updated. Must be used together with at least one another filter.
nullable: true
x-max-interval-in-months: 3
additionalProperties: false
x-schema-id: CompanionshipFilterParameters
OldAddress:
title: Address
type: object
properties:
Id:
type: string
description: Unique identifier of the address.
format: uuid
Line1:
type: string
description: First line of the address.
nullable: true
Line2:
type: string
description: Second line of the address.
nullable: true
City:
type: string
description: The city.
nullable: true
PostalCode:
type: string
description: Postal code.
nullable: true
CountryCode:
type: string
description: ISO 3166-1 code of the `Country`.
nullable: true
CountrySubdivisionCode:
type: string
description: ISO 3166-2 code of the administrative division, e.g. `DE-BW`.
nullable: true
Latitude:
type: number
description: The latitude.
format: double
nullable: true
Longitude:
type: number
description: The longitude.
format: double
nullable: true
additionalProperties: false
description: ''
x-schema-id: OldAddress
ReservationPersonCount:
title: Age category parameters
required:
- AgeCategoryId
- Count
type: object
properties:
AgeCategoryId:
type: string
description: Unique identifier of the [Age category](https://mews-systems.gitbook.io/connector-api/operations/agecategories#age-category).
format: uuid
Count:
type: integer
description: Number of people of a given age category. Only positive value is accepted.
format: int32
additionalProperties: false
x-schema-id: ReservationPersonCount
Limitation:
title: Limitation
required:
- Count
type: object
properties:
Count:
type: integer
format: int32
Cursor:
type: string
format: uuid
nullable: true
additionalProperties: false
description: Limitation on the quantity of data returned.
x-schema-id: Limitation
ServiceOrderStateOld:
title: Service order state (ver 2017-04-12)
enum:
- Enquired
- Confirmed
- Started
- Processed
- Canceled
- Optional
- Requested
type: string
ReservationOldOrigin:
title: Reservation origin (ver 2017-04-12)
enum:
- Distributor
- ChannelManager
- Import
- Connector
- Navigator
- CommanderInPerson
- CommanderChannel
- CommanderPhone
- CommanderEmail
- CommanderWebsite
- CommanderMessage
- CommanderCallCenter
- CommanderRoomingList
type: string
x-enumDescriptions:
- From the Mews Booking Engine or Booking Engine API.
- From a channel manager.
- From an import process.
- From the Mews Connector API.
- From Mews Guest Services.
- From Mews Operations, in person.
- From Mews Operations, via channel.
- From Mews Operations, via telephone.
- From Mews Operations, via email.
- From Mews Operations, via website.
- From Mews Operations, via message person.
- From Mews Operations, via call center.
- From Mews Operations, via rooming list.
CancellationReason:
enum:
- Other
- ConfirmationMissed
- BookedElsewhere
- ForceMajeure
- GuestComplaint
- NoShow
- PriceTooHigh
- ServiceNotAvailable
- InputError
- InvalidPayment
- TravelAgency
- RequestedByGuest
- Update
- BookingAbandoned
- RequestedByBooker
type: string
CustomerClassificationEnum:
title: Customer classification
enum:
- PaymasterAccount
- Blacklist
- Media
- LoyaltyProgram
- PreviousComplaint
- Returning
- Staff
- FriendOrFamily
- TopManagement
- Important
- VeryImportant
- Problematic
- Cashlist
- DisabledPerson
- Military
- Airline
- HealthCompliant
- InRoom
- WaitingForRoom
- Student
- Blocklist
type: string
description: '
PaymasterAccount
Blacklist (Deprecated, use Blocklist instead.)
Media
LoyaltyProgram
PreviousComplaint
Returning
Staff
FriendOrFamily
TopManagement
Important
VeryImportant
Problematic
Cashlist
DisabledPerson
Military
Airline
HealthCompliant
InRoom
WaitingForRoom
Student
Blocklist'
x-enumNames:
- PaymasterAccount
- Blacklist
- Media
- LoyaltyProgram
- PreviousComplaint
- Returning
- Staff
- FriendOrFamily
- TopManagement
- Important
- VeryImportant
- Problematic
- Cashlist
- DisabledPerson
- Military
- Airline
- HealthCompliant
- InRoom
- WaitingForRoom
- Student
- Blocklist
x-enumDescriptions:
- ''
- Deprecated, use Blocklist instead.
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
- ''
SexEnum:
title: Sex
enum:
- Male
- Female
type: string
description: '
Male
Female'
x-enumNames:
- Male
- Female
x-enumDescriptions:
- ''
- ''
TimeFilterInterval:
title: Time interval
type: object
properties:
StartUtc:
type: string
format: date-time
nullable: true
EndUtc:
type: string
format: date-time
nullable: true
additionalProperties: false
description: "When a time interval is used for **filtering** (for example in parameters such as `CreatedUtc.StartUtc` / `CreatedUtc.EndUtc`), the following rules apply:\r\n\r\n- **Start equals End (equality mode)** \r\n If `StartUtc` and `EndUtc` are exactly the same timestamp, the filter is treated as an equality check for that precise moment in time:\r\n \r\n ```\r\n CreatedUtc == StartUtc\r\n ```\r\n \r\n This does not represent an interval; only records with `CreatedUtc` equal to that exact instant are returned.\r\n\r\n- **Start differs from End (interval mode)** \r\n If `StartUtc` and `EndUtc` are different, the filter is evaluated as a half-open interval:\r\n \r\n ```\r\n StartUtc <= CreatedUtc < EndUtc\r\n ```\r\n \r\n In other words, the start is inclusive and the end is exclusive.\r\n\r\nMake sure your integration takes inclusive Start / exclusive End behavior of time intervals into account so that no records at the boundaries are omitted."
x-schema-id: TimeFilterInterval
CompanionshipExtent:
title: Companionship extent
type: object
properties:
Reservations:
type: boolean
description: Whether the response should contain reservations.
nullable: true
ReservationGroups:
type: boolean
description: Whether the response should contain reservation groups.
nullable: true
Customers:
type: boolean
description: Whether the response should contain customers.
nullable: true
additionalProperties: false
description: ''
x-schema-id: CompanionshipExtent
IdentityDocument:
title: Identity document
type: object
properties:
Id:
type: string
description: Unique identifier of the document.
format: uuid
CustomerId:
type: string
description: Identifier of the `Customer`.
format: uuid
Type:
title: Document type
allOf:
- $ref: '#/components/schemas/IdentityDocumentTypeEnum'
description: 'Type of the document.
IdentityCard
Passport
Visa
DriversLicense'
x-enumNames:
- IdentityCard
- Passport
- Visa
- DriversLicense
x-enumDescriptions:
- ''
- ''
- ''
- ''
Number:
type: string
description: Number of the document (e.g. passport number).
nullable: true
Expiration:
type: string
description: Expiration date in ISO 8601 format.
format: date
nullable: true
Issuance:
type: string
description: Date of issuance in ISO 8601 format.
format: date
nullable: true
IssuingCountryCode:
type: string
description: ISO 3166-1 code of the `Country`.
nullable: true
IssuingCountrySubdivisionCode:
type: string
description: Identifier of the country subdivision where the document was issued (province, state or region).
nullable: true
IssuingCity:
type: string
description: City where the document was issued.
nullable: true
IdentityDocumentSupportNumber:
type: string
description: Identity document support number. Only required for Spanish identity cards in Spanish hotels.
nullable: true
additionalProperties: false
x-schema-id: IdentityDocument
ReservationOld:
title: Reservation (ver 2017-04-12)
required:
- AssignedResourceLocked
- CompanionIds
- CreatedUtc
- CustomerId
- EndUtc
- GroupId
- Id
- Number
- Options
- Origin
- OwnerId
- PersonCounts
- RateId
- RequestedCategoryId
- ServiceId
- StartUtc
- State
- UpdatedUtc
type: object
properties:
Id:
type: string
description: Unique identifier of the reservation.
format: uuid
ServiceId:
type: string
description: Unique identifier of the Service that is reserved.
format: uuid
GroupId:
type: string
description: Unique identifier of the Reservation group.
format: uuid
Number:
minLength: 1
type: string
description: Confirmation number of the reservation in Mews.
ChannelNumber:
type: string
description: Number of the reservation within the Channel (i.e. OTA, GDS, CRS, etc) in case the reservation group originates there (e.g. Booking.com confirmation number).
nullable: true
ChannelManagerNumber:
type: string
description: Unique number of the reservation within the reservation group.
nullable: true
ChannelManagerGroupNumber:
type: string
description: Number of the reservation group within a Channel manager that transferred the reservation from Channel to Mews.
nullable: true
ChannelManager:
type: string
description: Name of the Channel manager (e.g. AvailPro, SiteMinder, TravelClick, etc).
nullable: true
State:
$ref: '#/components/schemas/ServiceOrderStateOld'
Origin:
$ref: '#/components/schemas/ReservationOldOrigin'
OriginDetails:
type: string
description: Details about the reservation origin.
nullable: true
Purpose:
anyOf:
- $ref: '#/components/schemas/ReservationPurpose'
description: Purpose of the reservation.
nullable: true
CreatedUtc:
minLength: 1
type: string
description: Creation date and time of the reservation in UTC timezone in ISO 8601 format.
UpdatedUtc:
minLength: 1
type: string
description: Last update date and time of the reservation in UTC timezone in ISO 8601 format.
CancelledUtc:
type: string
description: Cancellation date and time in UTC timezone in ISO 8601 format.
nullable: true
StartUtc:
minLength: 1
type: string
description: Start of the reservation in UTC timezone in ISO 8601 format. This is either the scheduled reservation start time, or the actual customer check-in time if this is earlier than the scheduled start time.
EndUtc:
minLength: 1
type: string
description: End of the reservation (departure) in UTC timezone in ISO 8601 format.
ReleasedUtc:
type: string
description: Date when the optional reservation is released in UTC timezone in ISO 8601 format.
nullable: true
RequestedCategoryId:
type: string
description: Identifier of the requested Resource category.
format: uuid
AssignedSpaceId:
type: string
description: Identifier of the assigned Space.
format: uuid
nullable: true
deprecated: true
x-deprecatedMessage: Use `AssignedResourceId` instead.
AssignedSpaceLocked:
type: boolean
description: Whether the reservation is locked to the assigned Space and cannot be moved.
deprecated: true
x-deprecatedMessage: Use `AssignedResourceLocked` instead.
AssignedResourceId:
type: string
description: Identifier of the assigned Resource
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mews-com/refs/heads/main/openapi/mews-com-companionships-api-openapi.yml