๐ Reservation Created
Topic: RESERVATION_CREATED
What It Does
A new reservation was created in the system from PMS.
Key Info
- Object: Reservation
- Actors: System (automated)
- Source: PMS
When It Fires
- PMS syncs new booking
- Guest books directly
- Channel manager sends booking
- Staff creates manual reservation
Context Data
โ ๏ธ PMS specific context Apaleo / Oracle / Mews
Apaleo
Emitted for properties connected via Apaleo PMS.
| Field | Type | Description |
|---|---|---|
arrival |
String |
Check-in date/time |
departure |
String |
Check-out date/time |
channel |
String |
Booking source or channel code |
adults |
Integer |
Number of adults |
childrenAges |
Integer[] |
Age of each child |
guaranteeType |
String |
Guarantee type (see values below) |
ratePlan |
Object |
Full rate plan object from Apaleo (structure varies) |
balance |
Object |
Reservation balance |
prepaymentType |
String |
Prepayment type (see values below) |
conflicts |
Array |
Reservation conflicts (see structure and values below) |
type |
String |
Apaleo reservation type |
magicEventId |
Integer |
Internal event correlation ID |
primaryGuest |
Object |
Primary guest details (same structure as v2) |
Example payload:
{
"type": "created",
"adults": 2,
"arrival": "2026-04-10T14:00:00Z",
"departure": "2026-04-14T10:00:00Z",
"balance": {
"amount": -245.00,
"currency": "EUR"
},
"channel": "Expedia",
"ratePlan": {
"id": "10001-NONREF_DBL-DBL",
"code": "NONREF_DBL",
"name": "Non Refundable",
"description": "Accommodation Only Double Room",
"isSubjectToCityTax": true
},
"conflicts": [
{ "conflictType": "INVALID_EMAIL" },
{ "conflictType": "NO_USERPROFILE_EXIST" }
],
"childrenAges": [],
"magicEventId": 100000001,
"primaryGuest": {
"firstName": "Jane",
"lastName": "Smith",
"email": "abc123xyz@m.expediapartnercentral.com",
"phone": "+4915100000000"
},
"guaranteeType": "Prepayment",
"prepaymentType": "EXPEDIA"
}
Any other PMS (Mews, Opera...)
Emitted for properties connected via Mews or Opera PMS connectors.
| Field | Type | Description |
|---|---|---|
arrival |
String |
Check-in date/time (ISO 8601) |
departure |
String |
Check-out date/time (ISO 8601) |
channel |
String |
Booking channel (e.g. "Booking.com") |
adults |
Integer |
Number of adults |
children |
Integer |
Number of children |
childrenAges |
Integer[] |
Age of each child |
ratePlanId |
String |
PMS rate plan identifier |
guaranteeType |
String |
Guarantee type (see values below) |
prepaymentType |
String |
Prepayment type (see values below) |
conflicts |
Array |
Reservation conflicts (see structure and values below) |
primaryGuest |
Object |
Primary guest details (see below) |
primaryGuest fields:
| Field | Type | Description |
|---|---|---|
firstName |
String |
Guest first name |
lastName |
String |
Guest last name |
email |
String |
Guest email address |
phone |
String |
Guest phone number |
Example payload:
{
"adults": 2,
"arrival": "2026-04-10T14:00:00Z",
"departure": "2026-04-11T11:00:00Z",
"channel": "OTA",
"children": 0,
"childrenAges": null,
"ratePlanId": "STDRATE",
"guaranteeType": "CREDIT_CARD",
"prepaymentType": null,
"primaryGuest": {
"firstName": "Maria",
"lastName": "Johnson",
"email": null,
"phone": "+14155550100"
}
}
guaranteeType Values
Values differ by PMS:
| Value | Apaleo | Mews / Opera | Description |
|---|---|---|---|
Prepayment |
โ | Prepaid reservation | |
CreditCard |
โ | Credit card guarantee | |
Company |
โ | Company-backed guarantee | |
PM6Hold |
โ | PM6 hold guarantee | |
Ota |
โ | OTA | |
PREPAYMENT |
โ | Prepaid reservation | |
CREDIT_CARD |
โ | Credit card guarantee | |
COMPANY |
โ | Company-backed guarantee | |
PM6HOLD |
โ | PM6 hold guarantee | |
UNKNOWN |
โ | Unmapped guarantee type |
Apaleo uses PascalCase values from the Apaleo API. Mews/Opera use SCREAMING_SNAKE_CASE.
prepaymentType Values
Values differ by PMS:
| Value | Apaleo | Mews / Opera | Description |
|---|---|---|---|
AIRBNB |
โ | โ | Airbnb booking |
EXPEDIA |
โ | โ | Expedia booking |
BOOKING_DOT_COM |
โ | โ | Booking.com booking |
AGODA_VCC |
โ | โ | Agoda booking |
CHECKOUT_ON_AR |
โ | โ | Checkout on accounts receivable |
PREPAYMENT_BY_CREDIT_CARD_HIDE |
โ | Prepaid by credit card (hide from guest) | |
PREPAYMENT_BY_CREDIT_CARD_SHOW |
โ | Prepaid by credit card (show to guest) | |
BOOKING_DOT_COM_VCC_PREPAYMENT |
โ | Booking.com virtual credit card (prepayment) | |
BOOKING_DOT_COM_VCC_CREDIT_CARD |
โ | Booking.com virtual credit card | |
BOOKING_DOT_COM_BANK_TRANSFER_PREPAYMENT |
โ | Booking.com bank transfer prepayment | |
REAL_CREDIT_CARD |
โ | Real credit card guarantee | |
MIGRATED_PREPAYMENT_SHOW |
โ | Migrated prepayment (show to guest) | |
MIGRATED_PREPAYMENT_HIDE |
โ | Migrated prepayment (hide from guest) | |
PREPAID |
โ | Generic prepaid | |
CHECKOUT_ON_AR_CUSTOMER |
โ | Checkout on AR (customer accounting code) | |
CTRIP |
โ | Ctrip / Trip.com booking | |
HOTELBEDS |
โ | Hotelbeds booking | |
GENERIC_OTA |
โ | Generic OTA | |
NOT_DETERMINABLE |
โ | Cannot be determined | |
NONE |
โ | โ | No prepayment |
conflicts Structure
Same format across all PMS versions. Each entry has a single conflictType field:
[
{ "conflictType": "INVALID_EMAIL" },
{ "conflictType": "NO_USERPROFILE_EXIST" }
]
Conflict type values:
| Value | Description |
|---|---|
SAME_ARRIVAL_SAME_PRIMARY_GUEST_SAME_BOOKING |
Another reservation in the same booking has the same guest and arrival date |
SAME_ARRIVAL_SAME_PRIMARY_GUEST_DIFFERENT_BOOKING |
Another reservation in a different booking has the same guest and arrival date |
OVERLAPPING_STAY_SAME_PRIMARY_GUEST_SAME_BOOKING |
Overlapping stay with the same guest in the same booking |
OVERLAPPING_STAY_SAME_PRIMARY_GUEST_DIFFERENT_BOOKING |
Overlapping stay with the same guest in a different booking |
INVALID_EMAIL |
Guest email address is invalid |
INVALID_PHONE_NUMBER |
Guest phone number is invalid |
NO_USERPROFILE_EXIST |
No user profile exists for the guest (Apaleo) |
NO_USERPROFILE_EXISTS |
No user profile exists for the guest (Mews/Opera) |
NOT_ATTACHED_TO_USER_ACCOUNT |
Reservation could not be linked to a user account |
What To Do With It
- Send booking confirmation - Welcome email with details
- Validate reservation data - Check for conflicts and issues
- Match/create guest profile - Link to existing profile or create new
- Set up pre-arrival workflow - Schedule pre-check-in communications
- Update inventory - Reserve room allocation