Booking Notification Body

Hurray, you got a booking!

In the booking notification, you will find the following parameters:

  • Required fields will always be present.
  • Optional fields will only be included if applicable to the specific booking.
❗️

For partners who are migrating from HAPI V1, we've removed the bookingId field. This is because, from our perspective, a true booking isn't generated until we receive successful confirmation to our booking notification request.

Parameter

Type

Required

Usage

providerApartmentId

String

Yes

The id of the apartment in your system

provider

String

Yes

The provider identifier at Holidu

arrival

LocalDate: YYYY-MM-DD

Yes

The arrival date of the guests

departure

LocalDate: YYYY-MM-DD

Yes

The departure date of the guests

guests

Array of objects

Yes

List of guests' ages

guest.age

Integer

Yes

Age of the guest

customer

Object

Yes

Guest's personal information

customer.gender

String

Yes

Gender

customer.firstName

String

Yes

First name

customer.lastName

String

Yes

Last name

customer.street

String

Yes

Street name

customer.zip

String

Yes

ZIP code

customer.city

String

Yes

City of the guest

customer.country

String

Yes

Country of the guest

customer.language

String

Yes

The language that the guest speaks

customer.phone

String

Yes

Phone number of the guest

customer.email

String

Yes

Email address of the guest

specialCustomerRequest

String

The special requests of the guest during the booking

guestReceipt

Object

Yes

Breakdown of all the amounts paid or to be paid by the guest

guestReceipt.bareRentalPrice

Object

Yes

Price based on LOS or rates without extra costs

guestReceipt.bareRentalPrice.amount

Number

Yes

Price of the property

guestReceipt.bareRentalPrice.currency

String

Yes

Currency used

guestReceipt.discount

object

Discount object as defined through the discount endpoint

guestReceipt.discount.discountName

String

Name of the used discount

guestReceipt.discount.discountPercent

Number

Percentage of the discount

guestReceipt.discount.discountAmount

object

The amount discounted calculated based on the base price of the property

guestReceipt.discount.discountAmount.amount

Number

Amount

guestReceipt.discount.discountAmount.currency

String

Currency

guestReceipt.costs

array of objects

Objects that were pushed in the extra cost endpoint and applied to the booking

guestReceipt.costs.id

String

Unique id for every extra cost on your system, same as you pushed

guestReceipt.costs.name

String

Name of the extra cost ( from Holidu's list )

guestReceipt.costs.basisOfCalculation

String

Defining how the extra cost is calculated

guestReceipt.costs.paymentTime

String

Payment time of the extra cost

guestReceipt.costs.pricePerUnit

Object

The price of one unit

guestReceipt.costs.type

String

Defining if the extra cost is MANDATORY, SELECTABLE or ON_USAGEas explained in the extra costs API

guestReceipt.costs.pricePerUnit.amount

Number

Amount

guestReceipt.costs.pricePerUnit.currency

String

Currency

guestReceipt.costs.unitsSelected

Integer

Number of units selected

guestReceipt.costs.totalPrice

Object

The total price of all the units selected

guestReceipt.costs.totalPrice.amount

Number

Amount

guestReceipt.costs.totalPrice.currency

String

Currency

guestReceipt.deposits

Array

NO

guestReceipt.deposits.name

String

REFUNDABLE_SECURITY_DEPOSIT

guestReceipt.deposits.price

Object

guestReceipt.deposits.price.amount

Number

Cost of deposit

guestReceipt.deposits.price.currency

String

Currency

guestReceipt.deposits.paymentTime

String

ONSITE

paymentProcessing

Object

Yes

JSON object describing payment handling/processing

paymentProcessing.paymentWithBooking

Object

Yes

JSON object describing payment handling of costs with the booking

paymentProcessing.paymentWithBooking. paymentHandler

String

Yes

The entity which is handling the payment. HOLIDU or PARTNER

paymentProcessing.paymentWithBooking. paymentMethod

String

Yes

Payment method used

paymentProcessing.paymentWithBooking. creditCardData

Object

Only present in case of PCI integration with Holidu

paymentProcessing.paymentWithBooking. paymentTotalWithBooking

Object

Yes

JSON object describing the total amount which needs to be paid

paymentProcessing.paymentWithBooking. paymentTotalWithBooking.amount

Number

Yes

The total cost of the booking

paymentProcessing.paymentWithBooking. paymentTotalWithBooking.currency

String

Yes

The currency used

paymentProcessing.paymentWithBooking. paymentRates

Array

Yes

JSON array describing the payment setup of the booking

paymentProcessing.paymentWithBooking. paymentRates.value

Object

Yes

JSON object describing the amounts

paymentProcessing.paymentWithBooking. paymentRates.value.amount

Number

Yes

The amount which needs to be paid

paymentProcessing.paymentWithBooking. paymentRates.value.currency

String

Yes

The currency used

paymentProcessing.paymentWithBooking. paymentRates.dueDate

LocalDate: YYYY-MM-DD

Yes

The due date of the payment described above

paymentProcessing.paymentOnsite

Array of objects

Yes

paymentProcessing.paymentOnsite. paymentOnsite.amount

Number

Total amount which needs to be paid on site

paymentProcessing.paymentOnsite. paymentOnsite.currency

String

The currency

rateId

String

Yes

The name of the rate selected

{
  "providerApartmentId": "externalApartmentID",
  "provider:":"XXX"
  "arrival": "2022-04-29",
  "departure": "2022-05-04",
  "guests": [
    {
      "age": 25
    },
    {
      "age": 25
    },
    {
      "age": 25
    },
    {
      "age": 12
    },
    {
      "age": 8
    }
  ],
  "customer": {
    "gender": "MALE",
    "firstName": "First Name",
    "lastName": "Last Name",
    "street": "Street and number",
    "zip": "Zip code",
    "city": "City",
    "country": "Iso country code",
    "language": "Language of the customer",
    "phone": "phone number of customer",
    "email": "email of customer"
  },
  "specialCustomerRequest": "special request of the guest during booking",
  "guestReceipt": {
    "bareRentalPrice": {
      "amount": 705.88,
      "currency": "EUR"
    },
    "discount": {
      "discountName": "LastMinute",
      "discountPercent": 10,
      "discountAmount": {
        "amount": 70.51,
        "currency": "EUR"
      }
    },
    "costs": [
      {
        "id": "46323572_781803181",
        "name": "CLEANING",
        "basisOfCalculation": "PER_STAY",
        "paymentTime": "WITH_RATES",
        "type": "MANDATORY",
        "pricePerUnit": {
          "amount": 60.00,
          "currency": "EUR"
        },
        "unitsSelected": 1,
        "totalPrice": {
          "amount": 60.00,
          "currency": "EUR"
        }
      },
      {
        "id": "46323572_781803181",
        "name": "PET",
        "basisOfCalculation": "PER_PET",
        "paymentTime": "WITH_RATES",
        "type": "SELECTABLE",
        "pricePerUnit": {
          "amount": 20.00,
          "currency": "EUR"
        },
        "unitsSelected": 2,
        "totalPrice": {
          "amount": 40.00,
          "currency": "EUR"
        }
      },
      {
        "id": "46323572_781803181",
        "name": "BEDLINEN",
        "basisOfCalculation": "PER_UNIT",
        "paymentTime": "ONSITE",
        "type": "ON_USAGE",
        "pricePerUnit": {
          "amount": 10.00,
          "currency": "EUR"
        },
        "unitsSelected": null,
        "totalPrice": {
          "amount": 0.00,
          "currency": "EUR"
        }
      },
      {
        "id": "46323572_781803181",
        "name": "PARKING",
        "basisOfCalculation": "PER_STAY",
        "paymentTime": "ONSITE",
        "type": "SELECTABLE",
        "pricePerUnit": {
          "amount": 50.00,
          "currency": "DKK"
        },
        "unitsSelected": 1,
        "totalPrice": {
          "amount": 50.00,
          "currency": "DKK"
        }
      },
      {
        "id": "243234234",
        "name": "TOURIST_OR_CITY_TAX",
        "basisOfCalculation": "PER_STAY",
        "paymentTime": "WITH_RATES",
        "type": "MANDATORY",
        "pricePerUnit": {
          "amount": 50.00,
          "currency": "EUR"
        },
        "unitsSelected": 1,
        "totalPrice": {
          "amount": 50.00,
          "currency": "EUR"
        }
      }
    ],
    "deposits":[
    {
    "name":"REFUNDABLE_SECURITY_DEPOSIT",
    "price":{
    "amount":700.00,
    "currency":"EUR"},
  "paymentTime":"ONSITE"
}
]
  },
  "paymentProcessing": {
    "paymentWithBooking": {
      "paymentHandler": "PARTNER", // HOLIDU
      "paymentMethod": "CREDIT_CARD",
      "creditCardData": { // only present in booking notification with PCI

      },
      "paymentTotalWithBooking": {
        "amount": 785.37,
        "currency": "EUR"
      },
      "paymentRates": [
        {
          "value": {
            "amount": 628.30,
            "currency": "EUR"
          },
          "dueDate": "2022-01-31"
        },
        {
          "value": {
            "amount": 157.07,
            "currency": "EUR"
          },
          "dueDate": "2022-03-25"
        }
      ]
    },
    "paymentOnsite": [
      {
        "amount": 50.00,
        "currency": "DKK"
      }
    ]
  },
  "rateId": "name of the rate select"
}