Webhooks (1.0.0)

Download OpenAPI specification:Download

Introduction

Webhooks allow 3rd party applications to be notified or updated when certain events happen on Rezdy. When the specified events happen, a POST request to each of the URLs you provide will be sent in JSON format. A typical use case would be connecting a third party app to start some workflow when for example a new booking is created on Rezdy.

If you'd like to integrate Rezdy webhooks and have any questions or need advice get in touch.

Rezdy APIs

Rezdy offers different API products for different types of businesses. Make sure to choose the right one for your needs.

Rezdy API for agents

REST API for Rezdy agents and OTAs (online travel agents), providing functionality to resell suppliers products, including pulling shared products, availability and pricing from Rezdy, and pushing bookings and cancellations to Rezdy.

Rezdy API for agents specification

Rezdy API for suppliers

REST API for suppliers using Rezdy Booking Software provides functionality to manage their Rezdy inventory and booking capabilities.

Rezdy API for suppliers specification

RezdyConnect (RC)

The RezdyConnect API powers the supply side of the Rezdy Channel Manager tool. The API is designed for suppliers using other ticketing systems, allowing them to import and resell their products through Rezdy’s connected channels. Rezdy pulls availability and pricing, and pushes bookings and cancellations to the supplier’s booking system.

RezdyConnect specification

Rezdy Webhooks

Webhooks allow 3rd party applications to be notified or updated when certain events happen on Rezdy, by sending data to configured URLs.

Webhooks specification

Overview

Webhook request body

Webhook payload in general contains the current entity state and it's fired whenever the entity is updated. We do not calculate differences between the previous and the current state, if needed this must be implemented on the consumer end.

Refer to specific webhook types below for the exact payload.

Consumer response

A webhook consumer has to respond to a webhook with a successful 2xx HTTP status code (e.g: 200, 201, 202, 204..), otherwise, the webhook failure will be counted.

For each configured webhook, if call fails consecutively for more than 20 times, the webhook will be suspended and an alert e-mail will be sent to the company e-mail address. The webhook has to be then manually activated using Webhook configuration screen on Rezdy.

Webhooks delivery

A webhook consumer should handle idempotent calls, for each webhook triggering event we will attempt a single successful delivery, however in rare cases there might be a duplicate delivery for the same webhook event. Currently, we do not retry failed webhooks, but this may change in the future. We may start retrying 5xx status codes.

Getting started

To find out how to set up webhooks in Rezdy UI, please refer to the How To Set Up a Webhook article.

Change log

2021-08-30

Published this initial version of the new webhook specification portal.

Order

new order

The webhook is fired whenever a new order is created regardless of the source, such as API, Internal or Online order.

Some agents create bookings using a 2-steps process. They create reservations first (orders in PROCESSING order status) and then confirm orders by updating their status. In such case the NEW_ORDER webhooks will be fired for reservations (PROCESSING status) and then UPDATED_ORDER webhooks will be fired upon bookings confirmation (orders status CONFIRMED or PENDING_SUPPLIER/PENDING_CUSTOMER if configured on product).

For that reason, if the goal is to process all confirmed bookings only, the recommended way is to set up a NEW_ORDER and an UPDATED_ORDER webhook (they can use the same target URL) and filter bookings with CONFIRMED order status only.

Request Body schema: application/json

New Order Webhook

orderNumber
required
string

Order number. This is the number you should give to customers and print on booking confirmations. Order number is generated by the system, therefore, even if it is specified in the booking request, it will be overwritten.

status
required
string
Enum: "PROCESSING" "NEW" "ON_HOLD" "PENDING_SUPPLIER" "PENDING_CUSTOMER" "CONFIRMED" "CANCELLED" "ABANDONED_CART"

Status of this booking

supplierId
integer <int64>

Rezdy internal ID of the company supplying this product

supplierName
string

Name of the company supplying this product

supplierAlias
string

Alias of the company supplying this product

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

resellerId
integer <int64>

Rezdy internal ID of the agent company attached to this booking

resellerName
string

Name of the agent company attached to this booking

resellerAlias
string

Alias of the agent company attached to this booking

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

required
object (Customer)

The customer is the person making the booking, and most of the time paying for it.
It differs from Participants, who are the people attending a tour

required
Array of objects (BookingItem)

List of items in this booking. A booking can contain multiple products. Each BookingItem is a separate product with its own set of quantities and participant details.

totalAmount
number <float>

Total booking amount

totalCurrency
string
Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

Booking Currency

totalPaid
number <float>

Amount already paid

totalDue
number <float>

Amount still due for this booking

dateCreated
required
string <date-time>

Date this booking was created

dateUpdated
string <date-time>

Date this booking was last updated

dateConfirmed
string <date-time>

Date this booking was confirmed

datePaid
string <date-time>

Date this booking was fully paid

dateReconciled
string <date-time>

Date this booking was reconciled with the agent

comments
string

Special requirements entered by the customer. Visible to both customer and supplier.

internalNotes
string

Comments only visible internally by the supplier

Array of objects (BookingPayment)

List of payments recorded for this booking

Array of objects (BookingField)

List of custom fields that are "once per booking" and related to the all products in this booking

source
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the supplier

sourceReferrer
string

Referrer code

resellerSource
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the agent

sourceChannel
string

Agent code defined by the supplier

resellerComments
string

Comments only visible by the agent and the supplier. This should be used by the agent to send voucher numbers/redemption codes to suppliers.

surcharge
number <float>

Credit card surcharge calculated for this booking

commission
number <float>

Calculated commission that the agent should receive for this booking

vouchers
Array of strings

List of vouchers (Gift cards) that have been redeemed to pay for this booking

coupon
string

Promo code that has been applied to this booking

paymentOption
string
Enum: "CREDITCARD" "PAYPAL" "BANKTRANSFER" "CASH" "INVOICE" "EXTERNAL" "ALIPAY"

Payment option selected by the customer when making an online booking

sendNotifications
boolean
Default: true

Flag to control if a booking confirmation email should be send to the customer after this booking is created.
This will also send other types of customer notifications when setup by the supplier (I.e. SMS, Gift cards)

resellerReference
string

External reseller reference, can be used to pass internal booking number. This reference will be shown to a supplier, also it will appear on reports and can be used to filter orders. Maxiumum number of characters is 30

barcodeType
string
Enum: "TEXT" "CODE_39" "CODE_128" "QR_CODE" "EAN_8" "EAN_13" "ITF"

Declares the redemption code format customers will receive if the booking was created with barcodes.

Responses

Request samples

Content type
application/json

webhookRequest

{
  • "orderNumber": "DU000157",
  • "status": "PROCESSING",
  • "supplierId": 9401,
  • "supplierName": "Homer",
  • "resellerId": 1075,
  • "resellerName": "Rezdy Demo",
  • "customer": {
    • "id": 9870,
    • "firstName": "Homer",
    • "lastName": "Simpson",
    • "name": "Homer Simpson",
    • "email": "homersimpson@rezdy.com",
    • "mobile": "+61484123456"
    },
  • "items": [
    • {
      • "productName": "AnyDate",
      • "productCode": "PZJFH4",
      • "startTime": "2017-08-16T09:00:00Z",
      • "startTimeLocal": "2017-08-16 19:00:00",
      • "quantities": [
        • {
          • "optionLabel": "Group from 1 to 2",
          • "optionPrice": 100,
          • "value": 1
          }
        ],
      • "totalQuantity": 1,
      • "amount": 100,
      • "extras": [ ],
      • "participants": [
        • {
          • "fields": [
            • {
              • "label": "First Name",
              • "value": "Homer"
              },
            • {
              • "label": "Last Name",
              • "value": "Simpson"
              },
            • {
              • "label": "Gender",
              • "value": ""
              }
            ]
          }
        ],
      • "transferReturn": false,
      • "subtotal": 107,
      • "vouchers": [ ],
      • "totalItemTax": 7
      }
    ],
  • "totalAmount": 109.14,
  • "totalCurrency": "AUD",
  • "totalPaid": 107,
  • "totalDue": 2.1399994,
  • "dateCreated": "2018-07-31T00:02:39Z",
  • "dateUpdated": "2018-07-31T02:22:44Z",
  • "datePaid": "2018-07-31T00:02:42Z",
  • "dateReconciled": "2018-07-31T00:02:39Z",
  • "comments": "",
  • "internalNotes": "",
  • "payments": [
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 10,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE Application Fee: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "REZDY"
      },
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 97,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "SUPPLIER"
      }
    ],
  • "fields": [
    • {
      • "label": "How did you hear about us?",
      • "value": "Internet"
      }
    ],
  • "source": "MARKETPLACE_PREF_RATE",
  • "resellerSource": "API",
  • "sourceChannel": "REZDYDEMO",
  • "resellerComments": "REZDYDEMO order",
  • "surcharge": 2.14,
  • "commission": 10,
  • "vouchers": [ ],
  • "paymentOption": "CREDITCARD",
  • "resellerReference": ""
}

Response samples

Content type
application/json

sucessfulWebhookResponse

{ }

updated order

The webhook is fired whenever an existing order is updated regardless of the change.

Rezdy does not calculate any differences between the previous and the current order model, nor provides any indication of what kind of update fired the webhook, therefore this has to be calculated by a webhook consumer. Furthermore, the payload of the updated order does not necessarily need to be different from a previous one, since not every order change will cause a modification of the exposed public webhooks model.

Request Body schema: application/json

Update Order Webhook

orderNumber
required
string

Order number. This is the number you should give to customers and print on booking confirmations. Order number is generated by the system, therefore, even if it is specified in the booking request, it will be overwritten.

status
required
string
Enum: "PROCESSING" "NEW" "ON_HOLD" "PENDING_SUPPLIER" "PENDING_CUSTOMER" "CONFIRMED" "CANCELLED" "ABANDONED_CART"

Status of this booking

supplierId
integer <int64>

Rezdy internal ID of the company supplying this product

supplierName
string

Name of the company supplying this product

supplierAlias
string

Alias of the company supplying this product

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

resellerId
integer <int64>

Rezdy internal ID of the agent company attached to this booking

resellerName
string

Name of the agent company attached to this booking

resellerAlias
string

Alias of the agent company attached to this booking

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

required
object (Customer)

The customer is the person making the booking, and most of the time paying for it.
It differs from Participants, who are the people attending a tour

required
Array of objects (BookingItem)

List of items in this booking. A booking can contain multiple products. Each BookingItem is a separate product with its own set of quantities and participant details.

totalAmount
number <float>

Total booking amount

totalCurrency
string
Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

Booking Currency

totalPaid
number <float>

Amount already paid

totalDue
number <float>

Amount still due for this booking

dateCreated
required
string <date-time>

Date this booking was created

dateUpdated
string <date-time>

Date this booking was last updated

dateConfirmed
string <date-time>

Date this booking was confirmed

datePaid
string <date-time>

Date this booking was fully paid

dateReconciled
string <date-time>

Date this booking was reconciled with the agent

comments
string

Special requirements entered by the customer. Visible to both customer and supplier.

internalNotes
string

Comments only visible internally by the supplier

Array of objects (BookingPayment)

List of payments recorded for this booking

Array of objects (BookingField)

List of custom fields that are "once per booking" and related to the all products in this booking

source
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the supplier

sourceReferrer
string

Referrer code

resellerSource
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the agent

sourceChannel
string

Agent code defined by the supplier

resellerComments
string

Comments only visible by the agent and the supplier. This should be used by the agent to send voucher numbers/redemption codes to suppliers.

surcharge
number <float>

Credit card surcharge calculated for this booking

commission
number <float>

Calculated commission that the agent should receive for this booking

vouchers
Array of strings

List of vouchers (Gift cards) that have been redeemed to pay for this booking

coupon
string

Promo code that has been applied to this booking

paymentOption
string
Enum: "CREDITCARD" "PAYPAL" "BANKTRANSFER" "CASH" "INVOICE" "EXTERNAL" "ALIPAY"

Payment option selected by the customer when making an online booking

sendNotifications
boolean
Default: true

Flag to control if a booking confirmation email should be send to the customer after this booking is created.
This will also send other types of customer notifications when setup by the supplier (I.e. SMS, Gift cards)

resellerReference
string

External reseller reference, can be used to pass internal booking number. This reference will be shown to a supplier, also it will appear on reports and can be used to filter orders. Maxiumum number of characters is 30

barcodeType
string
Enum: "TEXT" "CODE_39" "CODE_128" "QR_CODE" "EAN_8" "EAN_13" "ITF"

Declares the redemption code format customers will receive if the booking was created with barcodes.

Responses

Request samples

Content type
application/json

webhookRequest

{
  • "orderNumber": "DU000157",
  • "status": "PROCESSING",
  • "supplierId": 9401,
  • "supplierName": "Homer",
  • "resellerId": 1075,
  • "resellerName": "Rezdy Demo",
  • "customer": {
    • "id": 9870,
    • "firstName": "Homer",
    • "lastName": "Simpson",
    • "name": "Homer Simpson",
    • "email": "homersimpson@rezdy.com",
    • "mobile": "+61484123456"
    },
  • "items": [
    • {
      • "productName": "AnyDate",
      • "productCode": "PZJFH4",
      • "startTime": "2017-08-16T09:00:00Z",
      • "startTimeLocal": "2017-08-16 19:00:00",
      • "quantities": [
        • {
          • "optionLabel": "Group from 1 to 2",
          • "optionPrice": 100,
          • "value": 1
          }
        ],
      • "totalQuantity": 1,
      • "amount": 100,
      • "extras": [ ],
      • "participants": [
        • {
          • "fields": [
            • {
              • "label": "First Name",
              • "value": "Homer"
              },
            • {
              • "label": "Last Name",
              • "value": "Simpson"
              },
            • {
              • "label": "Gender",
              • "value": ""
              }
            ]
          }
        ],
      • "transferReturn": false,
      • "subtotal": 107,
      • "vouchers": [ ],
      • "totalItemTax": 7
      }
    ],
  • "totalAmount": 109.14,
  • "totalCurrency": "AUD",
  • "totalPaid": 107,
  • "totalDue": 2.1399994,
  • "dateCreated": "2018-07-31T00:02:39Z",
  • "dateUpdated": "2018-07-31T02:22:44Z",
  • "datePaid": "2018-07-31T00:02:42Z",
  • "dateReconciled": "2018-07-31T00:02:39Z",
  • "comments": "",
  • "internalNotes": "",
  • "payments": [
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 10,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE Application Fee: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "REZDY"
      },
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 97,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "SUPPLIER"
      }
    ],
  • "fields": [
    • {
      • "label": "How did you hear about us?",
      • "value": "Internet"
      }
    ],
  • "source": "MARKETPLACE_PREF_RATE",
  • "resellerSource": "API",
  • "sourceChannel": "REZDYDEMO",
  • "resellerComments": "REZDYDEMO order",
  • "surcharge": 2.14,
  • "commission": 10,
  • "vouchers": [ ],
  • "paymentOption": "CREDITCARD",
  • "resellerReference": ""
}

Response samples

Content type
application/json

sucessfulWebhookResponse

{ }

cancelled order

The webhook is fired whenever an order is cancelled regardless of the cancellation source - if the status change has been done internally by the supplier or by the reseller.

Request Body schema: application/json

Cancelled Order Webhook

orderNumber
required
string

Order number. This is the number you should give to customers and print on booking confirmations. Order number is generated by the system, therefore, even if it is specified in the booking request, it will be overwritten.

status
required
string
Enum: "PROCESSING" "NEW" "ON_HOLD" "PENDING_SUPPLIER" "PENDING_CUSTOMER" "CONFIRMED" "CANCELLED" "ABANDONED_CART"

Status of this booking

supplierId
integer <int64>

Rezdy internal ID of the company supplying this product

supplierName
string

Name of the company supplying this product

supplierAlias
string

Alias of the company supplying this product

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

resellerId
integer <int64>

Rezdy internal ID of the agent company attached to this booking

resellerName
string

Name of the agent company attached to this booking

resellerAlias
string

Alias of the agent company attached to this booking

object (User)

Rezdy user details. This is a Rezdy application user who belongs to a Rezdy agent or supplier company.

required
object (Customer)

The customer is the person making the booking, and most of the time paying for it.
It differs from Participants, who are the people attending a tour

required
Array of objects (BookingItem)

List of items in this booking. A booking can contain multiple products. Each BookingItem is a separate product with its own set of quantities and participant details.

totalAmount
number <float>

Total booking amount

totalCurrency
string
Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

Booking Currency

totalPaid
number <float>

Amount already paid

totalDue
number <float>

Amount still due for this booking

dateCreated
required
string <date-time>

Date this booking was created

dateUpdated
string <date-time>

Date this booking was last updated

dateConfirmed
string <date-time>

Date this booking was confirmed

datePaid
string <date-time>

Date this booking was fully paid

dateReconciled
string <date-time>

Date this booking was reconciled with the agent

comments
string

Special requirements entered by the customer. Visible to both customer and supplier.

internalNotes
string

Comments only visible internally by the supplier

Array of objects (BookingPayment)

List of payments recorded for this booking

Array of objects (BookingField)

List of custom fields that are "once per booking" and related to the all products in this booking

source
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the supplier

sourceReferrer
string

Referrer code

resellerSource
string
Enum: "ONLINE" "INTERNAL" "PARTNERS" "COMMUNITY" "MARKETPLACE" "MARKETPLACE_PREF_RATE" "API" "GOOGLE"

Source of this booking viewed from the agent

sourceChannel
string

Agent code defined by the supplier

resellerComments
string

Comments only visible by the agent and the supplier. This should be used by the agent to send voucher numbers/redemption codes to suppliers.

surcharge
number <float>

Credit card surcharge calculated for this booking

commission
number <float>

Calculated commission that the agent should receive for this booking

vouchers
Array of strings

List of vouchers (Gift cards) that have been redeemed to pay for this booking

coupon
string

Promo code that has been applied to this booking

paymentOption
string
Enum: "CREDITCARD" "PAYPAL" "BANKTRANSFER" "CASH" "INVOICE" "EXTERNAL" "ALIPAY"

Payment option selected by the customer when making an online booking

sendNotifications
boolean
Default: true

Flag to control if a booking confirmation email should be send to the customer after this booking is created.
This will also send other types of customer notifications when setup by the supplier (I.e. SMS, Gift cards)

resellerReference
string

External reseller reference, can be used to pass internal booking number. This reference will be shown to a supplier, also it will appear on reports and can be used to filter orders. Maxiumum number of characters is 30

barcodeType
string
Enum: "TEXT" "CODE_39" "CODE_128" "QR_CODE" "EAN_8" "EAN_13" "ITF"

Declares the redemption code format customers will receive if the booking was created with barcodes.

Responses

Request samples

Content type
application/json

webhookRequest

{
  • "orderNumber": "DU000157",
  • "status": "PROCESSING",
  • "supplierId": 9401,
  • "supplierName": "Homer",
  • "resellerId": 1075,
  • "resellerName": "Rezdy Demo",
  • "customer": {
    • "id": 9870,
    • "firstName": "Homer",
    • "lastName": "Simpson",
    • "name": "Homer Simpson",
    • "email": "homersimpson@rezdy.com",
    • "mobile": "+61484123456"
    },
  • "items": [
    • {
      • "productName": "AnyDate",
      • "productCode": "PZJFH4",
      • "startTime": "2017-08-16T09:00:00Z",
      • "startTimeLocal": "2017-08-16 19:00:00",
      • "quantities": [
        • {
          • "optionLabel": "Group from 1 to 2",
          • "optionPrice": 100,
          • "value": 1
          }
        ],
      • "totalQuantity": 1,
      • "amount": 100,
      • "extras": [ ],
      • "participants": [
        • {
          • "fields": [
            • {
              • "label": "First Name",
              • "value": "Homer"
              },
            • {
              • "label": "Last Name",
              • "value": "Simpson"
              },
            • {
              • "label": "Gender",
              • "value": ""
              }
            ]
          }
        ],
      • "transferReturn": false,
      • "subtotal": 107,
      • "vouchers": [ ],
      • "totalItemTax": 7
      }
    ],
  • "totalAmount": 109.14,
  • "totalCurrency": "AUD",
  • "totalPaid": 107,
  • "totalDue": 2.1399994,
  • "dateCreated": "2018-07-31T00:02:39Z",
  • "dateUpdated": "2018-07-31T02:22:44Z",
  • "datePaid": "2018-07-31T00:02:42Z",
  • "dateReconciled": "2018-07-31T00:02:39Z",
  • "comments": "",
  • "internalNotes": "",
  • "payments": [
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 10,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE Application Fee: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "REZDY"
      },
    • {
      • "type": "REZDY_PAYOUTS",
      • "amount": 97,
      • "currency": "AUD",
      • "date": "2018-07-31T00:02:42Z",
      • "label": "STRIPE: ch_1CtlK0IQxFAfFTHyKDGRlqd5",
      • "recipient": "SUPPLIER"
      }
    ],
  • "fields": [
    • {
      • "label": "How did you hear about us?",
      • "value": "Internet"
      }
    ],
  • "source": "MARKETPLACE_PREF_RATE",
  • "resellerSource": "API",
  • "sourceChannel": "REZDYDEMO",
  • "resellerComments": "REZDYDEMO order",
  • "surcharge": 2.14,
  • "commission": 10,
  • "vouchers": [ ],
  • "paymentOption": "CREDITCARD",
  • "resellerReference": ""
}

Response samples

Content type
application/json

sucessfulWebhookResponse

{ }

Product

new product

The webhook is fired whenever a new product is created.

A complete product creation might have multiple steps on Rezdy. Therefore for a new product you need to expect one NEW_PRODUCT call, followed by multiple UPDATED_PRODUCT calls as each product tab submission in UI will trigger a product update.

Request Body schema: application/json

New Product Webhook

productType
required
string
Enum: "ACTIVITY" "DAYTOUR" "MULTIDAYTOUR" "PRIVATE_TOUR" "TICKET" "RENTAL" "CHARTER" "EVENT" "GIFT_CARD" "TRANSFER" "LESSON" "MERCHANDISE" "CUSTOM"

Type of this product

name
required
string

Product name

shortDescription
string

Product description is between 15 and 240 characters

description
string

Long product description, is between 100 and 15000 characters

productCode
required
string

Rezdy-generated unique Product code. Used by agents and for API calls

internalCode
string

Supplier-defined product code, used internally by the ther supplier

supplierId
required
integer <int64>

Rezdy internal ID of the company supplying this product

supplierAlias
string

Alias of the company supplying this product. Company alias is a unique key and should be used to retrieve company details or in filters

supplierName
string

Name of the company supplying this product

timezone
required
string

Timezone used by this product and supplier. All Times must be converted to this timezone before being displayed to customers

advertisedPrice
number <float>

General price indication for this product. It represents a display price only, therefore it does not affect a real booking price, which is calculated based on the price options.

required
Array of objects (PriceOption)

List of price options belonging to this product.

currency
required
string
Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

Product prices Currency

unitLabel
string

What a quantity for this product is. It can be people (I.e. participant, passenger, diver) or objects (Kayak, Helicopter, etc.)

unitLabelPlural
string

Plural version of unitLabel

quantityRequired
boolean

Does this product require a quantity to be booked? True for most products. Can be false if the supplier can only provide one quantity at any single time. (I.e. private charters)

quantityRequiredMin
integer <int32>

Represent the min booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be greater or equal than this value.

quantityRequiredMax
integer <int32>

Represent the max booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be lesser or equal than this value.

Array of objects (Image)

List of images showcasing this product

Array of objects (Video)

List of videos showcasing this product
Videos will only be returned when a single product is loaded.

bookingMode
required
string
Enum: "NO_DATE" "DATE_ENQUIRY" "INVENTORY"

Booking mode. Determines if this product needs availability or can be booked for any date.

charter
boolean

A charter product means each session can only have a single booking, whatever the number of seats booked.

terms
string

Specific terms and conditions for this product

generalTerms
string

General terms and conditions for all products from this supplier

Array of objects (Extra)

List of extras that can be booked with this product

Array of objects (BookingField)

List of booking fields required for this product

xeroAccount
string

Supplier Xero account for this product

confirmMode
required
string
Enum: "MANUAL" "AUTOCONFIRM" "MANUAL_THEN_AUTO" "AUTO_THEN_MANUAL"

Confirmation mode. Determines if bookings are automatically confirmed or it they are pending

confirmModeMinParticipants
integer <int32>

If confirmMode is MANUAL_THEN_AUTO or AUTO_THEN_MANUAL, determines the minimum number of participants per booking to trigger the change

agentPaymentType
string
Enum: "PAYOUTS" "FULL_AGENT" "DOWNPAYMENT" "FULL_SUPPLIER" "NONE"

If you are an agent, payment rules setup by the supplier for you to book this product

maxCommissionPercent
number <float>

Maximum commission % you can receive as an agent, when the supplier setup a percentage (Automated payments Rezdy fee is not included in the amount)

maxCommissionNetRate
number <float>

Maximum commission amount you can receive as an agent, when the supplier setup a net rate (Automated payments Rezdy fee is not included in the amount)

commissionIncludesExtras
boolean

True if agent receive commission from extras, false otherwise.

cancellationPolicyDays
integer <int32>

Supplier's Cancellation policy. Number of days before the tour a cancellation is allowed with full refund.
This is only used for automated payments (PAYOUTS) bookings

dateCreated
required
string <date-time>

The product creation date

minimumNoticeMinutes
integer <int64>
  • Minimum book ahead internal before session start time in minutes.
durationMinutes
integer <int64>
  • Duration of the product in minutes.
dateUpdated
string <date-time>
  • The date of the last product update
pickupId
integer <int64>
  • If pickups are configured for this product, the field will contain the id of the pickup location list created by the supplier.
object (Address)

Address of a company, customer or product location.

additionalInformation
string

Additional information for the product, that should be sent after a booking is completed (i.e. by email) to the customer. Useful for integration, when manual control of the entire customer booking experience is wanted, and the automatic confirmation e-mail from Rezdy had been suppressed.

languages
Array of strings unique

List of product languages. The format of the language is ISO 639 two-letter code with BCP 47 language variants, separated by underscore e.g. en_au.

tags
Array of strings unique

List of tags related to the product. The format is [TAG_TYPE]:[TAG_VALUE] e.g. TYPE:ACTIVITY, CATEGORY:ABSEILING, INTENSITY:RELAXED, ACCESSIBILITY:VISION_IMPAIRED

Array of objects (ProductSeoTag)

This will store product meta data such as title and description

waitListingEnabled
boolean

Signifies that customers will still be able to book this product even when there is not enough availability. Orders will have "On Hold" status, and no payment will be processed

qrCodeType
string
Enum: "INTERNAL" "EXTERNAL"

Specifies the method how QR Codes will be generated for this product. Valid types are:

  • INTERNAL: QR Codes will be generated by rezdy for each participant when an order is created for this product
  • EXTERNAL: QR Codes will be randomly taken from a list of imported QR Codes
  • If nothing is specified, then no QR Codes will be generated when an order is created for this product

    barcodeOutputType
    string
    Enum: "PARTICIPANT" "ORDER"

    Specifies how to output the barcodes when this product is booked. Valid types are:

  • PARTICIPANT: Barcodes will be generated by rezdy for each participant when an booking is created for this product
  • ORDER: Barcodes will be generated by rezdy per booking
  • bookingUrl
    string

    The URL for booking this product.

    apiBookingSupported
    boolean
    multiProductBookingSupported
    boolean

    Responses

    Request samples

    Content type
    application/json

    webhookRequest

    {
    • "productType": "ACTIVITY",
    • "name": "High Tatras guided hiking tour",
    • "shortDescription": "A guided hiking tour in High Tatras mountains.",
    • "description": "A guided hiking tour in <b>High Tatras</b> mountains.&nbsp;<p><br></p><p>The tour takes about 10 hours and it's 20 km walk with about 1500m altitude difference and therefore it's <b>suitable only for participants with a good stamina</b>.</p><p><br></p><p>Discount is provided for a group of more than 10 particpants.</p>",
    • "productCode": "PKN0SN",
    • "internalCode": "hightatras",
    • "timezone": "Europe/Prague",
    • "advertisedPrice": "80.0",
    • "priceOptions": [
      • {
        • "price": "100.0",
        • "label": "Adult",
        • "seatsUsed": 1,
        • "minQuantity": 0,
        • "priceGroupType": "EACH"
        },
      • {
        • "price": "80.0",
        • "label": "Group from 10 to 20",
        • "seatsUsed": 1,
        • "minQuantity": 10,
        • "maxQuantity": 20,
        • "priceGroupType": "EACH"
        }
      ],
    • "currency": "AUD",
    • "unitLabel": "Hiker",
    • "unitLabelPlural": "Hikers",
    • "quantityRequired": true,
    • "quantityRequiredMin": 3,
    • "quantityRequiredMax": 20,
    • "bookingMode": "DATE_ENQUIRY",
    • "charter": false,
    • "extras": [
      • {
        • "name": "Hiking gear rental",
        • "description": "Rental of hiking clothes, shoes, sticks. The price is per a piece of equipment rented.",
        • "price": "10.0",
        • "extraPriceType": "ANY"
        }
      ],
    • "bookingFields": [
      • {
        • "label": "Title",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "TITLE"
        },
      • {
        • "label": "Mobile",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "MOBILE"
        },
      • {
        • "label": "Email",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "EMAIL"
        },
      • {
        • "label": "Address",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "ADDRESS"
        },
      • {
        • "label": "City",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "CITY"
        },
      • {
        • "label": "Country",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "COUNTRY"
        },
      • {
        • "label": "State/County/Region",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "STATE"
        },
      • {
        • "label": "Postcode/ZIP",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "POSTCODE"
        },
      • {
        • "label": "Special Requirements",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "SPECIALREQS"
        },
      • {
        • "label": "First Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "FIRSTNAME"
        },
      • {
        • "label": "Last Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "LASTNAME"
        }
      ],
    • "confirmMode": "MANUAL",
    • "confirmModeMinParticipants": 0,
    • "dateCreated": "2016-01-18T00:00:22Z",
    • "minimumNoticeMinutes": 2880,
    • "durationMinutes": 600,
    • "dateUpdated": "2020-10-15T05:02:11Z",
    • "locationAddress": {
      • "addressLine": "Slovakia",
      • "city": "Vysoke Tatry",
      • "countryCode": "sk",
      • "latitude": 49.137508,
      • "longitude": 20.2182305,
      • "postCode": "",
      • "state": ""
      },
    • "additionalInformation": "",
    • "languages": [
      • "en_us"
      ],
    • "waitListingEnabled": true,
    • "qrCodeType": "INTERNAL",
    • "barcodeOutputType": "PARTICIPANT"
    }

    Response samples

    Content type
    application/json

    sucessfulWebhookResponse

    { }

    updated product

    The webhook is fired whenever an existing product is updated.

    Rezdy does not calculate any differences between the previous and the current product model, nor provides any indication of what kind of update fired the webhook, therefore this has to be calculated by the webhook listener. Furthermore, the payload of the updated product does not necessarily need to be different from a previous one, since not every order change will cause a modification of the exposed webhook model.

    Request Body schema: application/json

    Updated Product Webhook

    productType
    required
    string
    Enum: "ACTIVITY" "DAYTOUR" "MULTIDAYTOUR" "PRIVATE_TOUR" "TICKET" "RENTAL" "CHARTER" "EVENT" "GIFT_CARD" "TRANSFER" "LESSON" "MERCHANDISE" "CUSTOM"

    Type of this product

    name
    required
    string

    Product name

    shortDescription
    string

    Product description is between 15 and 240 characters

    description
    string

    Long product description, is between 100 and 15000 characters

    productCode
    required
    string

    Rezdy-generated unique Product code. Used by agents and for API calls

    internalCode
    string

    Supplier-defined product code, used internally by the ther supplier

    supplierId
    required
    integer <int64>

    Rezdy internal ID of the company supplying this product

    supplierAlias
    string

    Alias of the company supplying this product. Company alias is a unique key and should be used to retrieve company details or in filters

    supplierName
    string

    Name of the company supplying this product

    timezone
    required
    string

    Timezone used by this product and supplier. All Times must be converted to this timezone before being displayed to customers

    advertisedPrice
    number <float>

    General price indication for this product. It represents a display price only, therefore it does not affect a real booking price, which is calculated based on the price options.

    required
    Array of objects (PriceOption)

    List of price options belonging to this product.

    currency
    required
    string
    Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

    Product prices Currency

    unitLabel
    string

    What a quantity for this product is. It can be people (I.e. participant, passenger, diver) or objects (Kayak, Helicopter, etc.)

    unitLabelPlural
    string

    Plural version of unitLabel

    quantityRequired
    boolean

    Does this product require a quantity to be booked? True for most products. Can be false if the supplier can only provide one quantity at any single time. (I.e. private charters)

    quantityRequiredMin
    integer <int32>

    Represent the min booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be greater or equal than this value.

    quantityRequiredMax
    integer <int32>

    Represent the max booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be lesser or equal than this value.

    Array of objects (Image)

    List of images showcasing this product

    Array of objects (Video)

    List of videos showcasing this product
    Videos will only be returned when a single product is loaded.

    bookingMode
    required
    string
    Enum: "NO_DATE" "DATE_ENQUIRY" "INVENTORY"

    Booking mode. Determines if this product needs availability or can be booked for any date.

    charter
    boolean

    A charter product means each session can only have a single booking, whatever the number of seats booked.

    terms
    string

    Specific terms and conditions for this product

    generalTerms
    string

    General terms and conditions for all products from this supplier

    Array of objects (Extra)

    List of extras that can be booked with this product

    Array of objects (BookingField)

    List of booking fields required for this product

    xeroAccount
    string

    Supplier Xero account for this product

    confirmMode
    required
    string
    Enum: "MANUAL" "AUTOCONFIRM" "MANUAL_THEN_AUTO" "AUTO_THEN_MANUAL"

    Confirmation mode. Determines if bookings are automatically confirmed or it they are pending

    confirmModeMinParticipants
    integer <int32>

    If confirmMode is MANUAL_THEN_AUTO or AUTO_THEN_MANUAL, determines the minimum number of participants per booking to trigger the change

    agentPaymentType
    string
    Enum: "PAYOUTS" "FULL_AGENT" "DOWNPAYMENT" "FULL_SUPPLIER" "NONE"

    If you are an agent, payment rules setup by the supplier for you to book this product

    maxCommissionPercent
    number <float>

    Maximum commission % you can receive as an agent, when the supplier setup a percentage (Automated payments Rezdy fee is not included in the amount)

    maxCommissionNetRate
    number <float>

    Maximum commission amount you can receive as an agent, when the supplier setup a net rate (Automated payments Rezdy fee is not included in the amount)

    commissionIncludesExtras
    boolean

    True if agent receive commission from extras, false otherwise.

    cancellationPolicyDays
    integer <int32>

    Supplier's Cancellation policy. Number of days before the tour a cancellation is allowed with full refund.
    This is only used for automated payments (PAYOUTS) bookings

    dateCreated
    required
    string <date-time>

    The product creation date

    minimumNoticeMinutes
    integer <int64>
    • Minimum book ahead internal before session start time in minutes.
    durationMinutes
    integer <int64>
    • Duration of the product in minutes.
    dateUpdated
    string <date-time>
    • The date of the last product update
    pickupId
    integer <int64>
    • If pickups are configured for this product, the field will contain the id of the pickup location list created by the supplier.
    object (Address)

    Address of a company, customer or product location.

    additionalInformation
    string

    Additional information for the product, that should be sent after a booking is completed (i.e. by email) to the customer. Useful for integration, when manual control of the entire customer booking experience is wanted, and the automatic confirmation e-mail from Rezdy had been suppressed.

    languages
    Array of strings unique

    List of product languages. The format of the language is ISO 639 two-letter code with BCP 47 language variants, separated by underscore e.g. en_au.

    tags
    Array of strings unique

    List of tags related to the product. The format is [TAG_TYPE]:[TAG_VALUE] e.g. TYPE:ACTIVITY, CATEGORY:ABSEILING, INTENSITY:RELAXED, ACCESSIBILITY:VISION_IMPAIRED

    Array of objects (ProductSeoTag)

    This will store product meta data such as title and description

    waitListingEnabled
    boolean

    Signifies that customers will still be able to book this product even when there is not enough availability. Orders will have "On Hold" status, and no payment will be processed

    qrCodeType
    string
    Enum: "INTERNAL" "EXTERNAL"

    Specifies the method how QR Codes will be generated for this product. Valid types are:

  • INTERNAL: QR Codes will be generated by rezdy for each participant when an order is created for this product
  • EXTERNAL: QR Codes will be randomly taken from a list of imported QR Codes
  • If nothing is specified, then no QR Codes will be generated when an order is created for this product

    barcodeOutputType
    string
    Enum: "PARTICIPANT" "ORDER"

    Specifies how to output the barcodes when this product is booked. Valid types are:

  • PARTICIPANT: Barcodes will be generated by rezdy for each participant when an booking is created for this product
  • ORDER: Barcodes will be generated by rezdy per booking
  • bookingUrl
    string

    The URL for booking this product.

    apiBookingSupported
    boolean
    multiProductBookingSupported
    boolean

    Responses

    Request samples

    Content type
    application/json

    webhookRequest

    {
    • "productType": "ACTIVITY",
    • "name": "High Tatras guided hiking tour",
    • "shortDescription": "A guided hiking tour in High Tatras mountains.",
    • "description": "A guided hiking tour in <b>High Tatras</b> mountains.&nbsp;<p><br></p><p>The tour takes about 10 hours and it's 20 km walk with about 1500m altitude difference and therefore it's <b>suitable only for participants with a good stamina</b>.</p><p><br></p><p>Discount is provided for a group of more than 10 particpants.</p>",
    • "productCode": "PKN0SN",
    • "internalCode": "hightatras",
    • "timezone": "Europe/Prague",
    • "advertisedPrice": "80.0",
    • "priceOptions": [
      • {
        • "price": "100.0",
        • "label": "Adult",
        • "seatsUsed": 1,
        • "minQuantity": 0,
        • "priceGroupType": "EACH"
        },
      • {
        • "price": "80.0",
        • "label": "Group from 10 to 20",
        • "seatsUsed": 1,
        • "minQuantity": 10,
        • "maxQuantity": 20,
        • "priceGroupType": "EACH"
        }
      ],
    • "currency": "AUD",
    • "unitLabel": "Hiker",
    • "unitLabelPlural": "Hikers",
    • "quantityRequired": true,
    • "quantityRequiredMin": 3,
    • "quantityRequiredMax": 20,
    • "bookingMode": "DATE_ENQUIRY",
    • "charter": false,
    • "extras": [
      • {
        • "name": "Hiking gear rental",
        • "description": "Rental of hiking clothes, shoes, sticks. The price is per a piece of equipment rented.",
        • "price": "10.0",
        • "extraPriceType": "ANY"
        }
      ],
    • "bookingFields": [
      • {
        • "label": "Title",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "TITLE"
        },
      • {
        • "label": "Mobile",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "MOBILE"
        },
      • {
        • "label": "Email",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "EMAIL"
        },
      • {
        • "label": "Address",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "ADDRESS"
        },
      • {
        • "label": "City",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "CITY"
        },
      • {
        • "label": "Country",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "COUNTRY"
        },
      • {
        • "label": "State/County/Region",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "STATE"
        },
      • {
        • "label": "Postcode/ZIP",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "POSTCODE"
        },
      • {
        • "label": "Special Requirements",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "SPECIALREQS"
        },
      • {
        • "label": "First Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "FIRSTNAME"
        },
      • {
        • "label": "Last Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "LASTNAME"
        }
      ],
    • "confirmMode": "MANUAL",
    • "confirmModeMinParticipants": 0,
    • "dateCreated": "2016-01-18T00:00:22Z",
    • "minimumNoticeMinutes": 2880,
    • "durationMinutes": 600,
    • "dateUpdated": "2020-10-15T05:02:11Z",
    • "locationAddress": {
      • "addressLine": "Slovakia",
      • "city": "Vysoke Tatry",
      • "countryCode": "sk",
      • "latitude": 49.137508,
      • "longitude": 20.2182305,
      • "postCode": "",
      • "state": ""
      },
    • "additionalInformation": "",
    • "languages": [
      • "en_us"
      ],
    • "waitListingEnabled": true,
    • "qrCodeType": "INTERNAL",
    • "barcodeOutputType": "PARTICIPANT"
    }

    Response samples

    Content type
    application/json

    sucessfulWebhookResponse

    { }

    deleted product

    The webhook is fired whenever a product is deleted.

    Request Body schema: application/json

    Deleted Product Webhook

    productType
    required
    string
    Enum: "ACTIVITY" "DAYTOUR" "MULTIDAYTOUR" "PRIVATE_TOUR" "TICKET" "RENTAL" "CHARTER" "EVENT" "GIFT_CARD" "TRANSFER" "LESSON" "MERCHANDISE" "CUSTOM"

    Type of this product

    name
    required
    string

    Product name

    shortDescription
    string

    Product description is between 15 and 240 characters

    description
    string

    Long product description, is between 100 and 15000 characters

    productCode
    required
    string

    Rezdy-generated unique Product code. Used by agents and for API calls

    internalCode
    string

    Supplier-defined product code, used internally by the ther supplier

    supplierId
    required
    integer <int64>

    Rezdy internal ID of the company supplying this product

    supplierAlias
    string

    Alias of the company supplying this product. Company alias is a unique key and should be used to retrieve company details or in filters

    supplierName
    string

    Name of the company supplying this product

    timezone
    required
    string

    Timezone used by this product and supplier. All Times must be converted to this timezone before being displayed to customers

    advertisedPrice
    number <float>

    General price indication for this product. It represents a display price only, therefore it does not affect a real booking price, which is calculated based on the price options.

    required
    Array of objects (PriceOption)

    List of price options belonging to this product.

    currency
    required
    string
    Enum: "AED" "ANG" "ARS" "AUD" "AWG" "AZN" "BGN" "BHD" "BOB" "BRL" "BYR" "CAD" "CHF" "CLP" "CNY" "COP" "CZK" "DKK" "EGP" "EUR" "FJD" "GBP" "GEL" "HKD" "HRK" "HUF" "IDR" "ILS" "INR" "ISK" "JOD" "JPY" "KES" "KRW" "KWD" "KZT" "LTL" "LVL" "MAD" "MKD" "MUR" "MXN" "MYR" "NGN" "NOK" "NZD" "PGK" "PHP" "OMR" "PEN" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "SAR" "SBD" "SEK" "SGD" "SRD" "SYP" "THB" "TOP" "TRY" "TWD" "UAH" "USD" "UYU" "VEF" "VUV" "WST" "XAF" "XOF" "XPF" "YER" "ZAR" "AFA" "ALL" "DZD" "AMD" "BSD" "BDT" "BBD" "BZD" "BMD" "BWP" "BND" "BIF" "KHR" "CVE" "KYD" "KMF" "BAM" "CRC" "CUP" "CYP" "DJF" "DOP" "XCD" "ECS" "SVC" "ERN" "EEK" "ETB" "FKP" "CDF" "GMD" "GHS" "GIP" "GTQ" "GNF" "GWP" "GYD" "HTG" "HNL" "IRR" "IQD" "JMD" "AOA" "KGS" "KIP" "LAK" "LBP" "LRD" "LYD" "LSL" "MOP" "MGF" "MGA" "MWK" "MVR" "MTL" "MRO" "MDL" "MNT" "MZM" "MMK" "NAD" "NPR" "NIO" "KPW" "PKR" "PAB" "RWF" "STD" "SCR" "SLL" "SKK" "SIT" "SOS" "LKR" "SHP" "SDD" "SZL" "TJS" "TZS" "TTD" "TND" "TMM" "UGX" "UZS" "VND" "YUM" "ZMK" "ZWD" "AFN" "MZN" "UYI" "ZMW" "GHC" "GGP" "IMP" "JEP" "TRL" "TVD"

    Product prices Currency

    unitLabel
    string

    What a quantity for this product is. It can be people (I.e. participant, passenger, diver) or objects (Kayak, Helicopter, etc.)

    unitLabelPlural
    string

    Plural version of unitLabel

    quantityRequired
    boolean

    Does this product require a quantity to be booked? True for most products. Can be false if the supplier can only provide one quantity at any single time. (I.e. private charters)

    quantityRequiredMin
    integer <int32>

    Represent the min booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be greater or equal than this value.

    quantityRequiredMax
    integer <int32>

    Represent the max booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be lesser or equal than this value.

    Array of objects (Image)

    List of images showcasing this product

    Array of objects (Video)

    List of videos showcasing this product
    Videos will only be returned when a single product is loaded.

    bookingMode
    required
    string
    Enum: "NO_DATE" "DATE_ENQUIRY" "INVENTORY"

    Booking mode. Determines if this product needs availability or can be booked for any date.

    charter
    boolean

    A charter product means each session can only have a single booking, whatever the number of seats booked.

    terms
    string

    Specific terms and conditions for this product

    generalTerms
    string

    General terms and conditions for all products from this supplier

    Array of objects (Extra)

    List of extras that can be booked with this product

    Array of objects (BookingField)

    List of booking fields required for this product

    xeroAccount
    string

    Supplier Xero account for this product

    confirmMode
    required
    string
    Enum: "MANUAL" "AUTOCONFIRM" "MANUAL_THEN_AUTO" "AUTO_THEN_MANUAL"

    Confirmation mode. Determines if bookings are automatically confirmed or it they are pending

    confirmModeMinParticipants
    integer <int32>

    If confirmMode is MANUAL_THEN_AUTO or AUTO_THEN_MANUAL, determines the minimum number of participants per booking to trigger the change

    agentPaymentType
    string
    Enum: "PAYOUTS" "FULL_AGENT" "DOWNPAYMENT" "FULL_SUPPLIER" "NONE"

    If you are an agent, payment rules setup by the supplier for you to book this product

    maxCommissionPercent
    number <float>

    Maximum commission % you can receive as an agent, when the supplier setup a percentage (Automated payments Rezdy fee is not included in the amount)

    maxCommissionNetRate
    number <float>

    Maximum commission amount you can receive as an agent, when the supplier setup a net rate (Automated payments Rezdy fee is not included in the amount)

    commissionIncludesExtras
    boolean

    True if agent receive commission from extras, false otherwise.

    cancellationPolicyDays
    integer <int32>

    Supplier's Cancellation policy. Number of days before the tour a cancellation is allowed with full refund.
    This is only used for automated payments (PAYOUTS) bookings

    dateCreated
    required
    string <date-time>

    The product creation date

    minimumNoticeMinutes
    integer <int64>
    • Minimum book ahead internal before session start time in minutes.
    durationMinutes
    integer <int64>
    • Duration of the product in minutes.
    dateUpdated
    string <date-time>
    • The date of the last product update
    pickupId
    integer <int64>
    • If pickups are configured for this product, the field will contain the id of the pickup location list created by the supplier.
    object (Address)

    Address of a company, customer or product location.

    additionalInformation
    string

    Additional information for the product, that should be sent after a booking is completed (i.e. by email) to the customer. Useful for integration, when manual control of the entire customer booking experience is wanted, and the automatic confirmation e-mail from Rezdy had been suppressed.

    languages
    Array of strings unique

    List of product languages. The format of the language is ISO 639 two-letter code with BCP 47 language variants, separated by underscore e.g. en_au.

    tags
    Array of strings unique

    List of tags related to the product. The format is [TAG_TYPE]:[TAG_VALUE] e.g. TYPE:ACTIVITY, CATEGORY:ABSEILING, INTENSITY:RELAXED, ACCESSIBILITY:VISION_IMPAIRED

    Array of objects (ProductSeoTag)

    This will store product meta data such as title and description

    waitListingEnabled
    boolean

    Signifies that customers will still be able to book this product even when there is not enough availability. Orders will have "On Hold" status, and no payment will be processed

    qrCodeType
    string
    Enum: "INTERNAL" "EXTERNAL"

    Specifies the method how QR Codes will be generated for this product. Valid types are:

  • INTERNAL: QR Codes will be generated by rezdy for each participant when an order is created for this product
  • EXTERNAL: QR Codes will be randomly taken from a list of imported QR Codes
  • If nothing is specified, then no QR Codes will be generated when an order is created for this product

    barcodeOutputType
    string
    Enum: "PARTICIPANT" "ORDER"

    Specifies how to output the barcodes when this product is booked. Valid types are:

  • PARTICIPANT: Barcodes will be generated by rezdy for each participant when an booking is created for this product
  • ORDER: Barcodes will be generated by rezdy per booking
  • bookingUrl
    string

    The URL for booking this product.

    apiBookingSupported
    boolean
    multiProductBookingSupported
    boolean

    Responses

    Request samples

    Content type
    application/json

    webhookRequest

    {
    • "productType": "ACTIVITY",
    • "name": "High Tatras guided hiking tour",
    • "shortDescription": "A guided hiking tour in High Tatras mountains.",
    • "description": "A guided hiking tour in <b>High Tatras</b> mountains.&nbsp;<p><br></p><p>The tour takes about 10 hours and it's 20 km walk with about 1500m altitude difference and therefore it's <b>suitable only for participants with a good stamina</b>.</p><p><br></p><p>Discount is provided for a group of more than 10 particpants.</p>",
    • "productCode": "PKN0SN",
    • "internalCode": "hightatras",
    • "timezone": "Europe/Prague",
    • "advertisedPrice": "80.0",
    • "priceOptions": [
      • {
        • "price": "100.0",
        • "label": "Adult",
        • "seatsUsed": 1,
        • "minQuantity": 0,
        • "priceGroupType": "EACH"
        },
      • {
        • "price": "80.0",
        • "label": "Group from 10 to 20",
        • "seatsUsed": 1,
        • "minQuantity": 10,
        • "maxQuantity": 20,
        • "priceGroupType": "EACH"
        }
      ],
    • "currency": "AUD",
    • "unitLabel": "Hiker",
    • "unitLabelPlural": "Hikers",
    • "quantityRequired": true,
    • "quantityRequiredMin": 3,
    • "quantityRequiredMax": 20,
    • "bookingMode": "DATE_ENQUIRY",
    • "charter": false,
    • "extras": [
      • {
        • "name": "Hiking gear rental",
        • "description": "Rental of hiking clothes, shoes, sticks. The price is per a piece of equipment rented.",
        • "price": "10.0",
        • "extraPriceType": "ANY"
        }
      ],
    • "bookingFields": [
      • {
        • "label": "Title",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "TITLE"
        },
      • {
        • "label": "Mobile",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "MOBILE"
        },
      • {
        • "label": "Email",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "EMAIL"
        },
      • {
        • "label": "Address",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "ADDRESS"
        },
      • {
        • "label": "City",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "CITY"
        },
      • {
        • "label": "Country",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "COUNTRY"
        },
      • {
        • "label": "State/County/Region",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "STATE"
        },
      • {
        • "label": "Postcode/ZIP",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "POSTCODE"
        },
      • {
        • "label": "Special Requirements",
        • "requiredPerParticipant": false,
        • "requiredPerBooking": false,
        • "visiblePerParticipant": false,
        • "visiblePerBooking": true,
        • "fieldType": "SPECIALREQS"
        },
      • {
        • "label": "First Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "FIRSTNAME"
        },
      • {
        • "label": "Last Name",
        • "requiredPerParticipant": true,
        • "requiredPerBooking": true,
        • "visiblePerParticipant": true,
        • "visiblePerBooking": true,
        • "fieldType": "LASTNAME"
        }
      ],
    • "confirmMode": "MANUAL",
    • "confirmModeMinParticipants": 0,
    • "dateCreated": "2016-01-18T00:00:22Z",
    • "minimumNoticeMinutes": 2880,
    • "durationMinutes": 600,
    • "dateUpdated": "2020-10-15T05:02:11Z",
    • "locationAddress": {
      • "addressLine": "Slovakia",
      • "city": "Vysoke Tatry",
      • "countryCode": "sk",
      • "latitude": 49.137508,
      • "longitude": 20.2182305,
      • "postCode": "",
      • "state": ""
      },
    • "additionalInformation": "",
    • "languages": [
      • "en_us"
      ],
    • "waitListingEnabled": true,
    • "qrCodeType": "INTERNAL",
    • "barcodeOutputType": "PARTICIPANT"
    }

    Response samples

    Content type
    application/json

    sucessfulWebhookResponse

    { }

    Contact

    new contact

    The webhook is fired whenever a new contact is created regardless of the source - internally or by a new order.

    A new order can trigger both NEW_ORDER and NEW_CONTACT webhook in case of a new customer who is not matched among the existing contacts.

    Request Body schema: application/json

    New Contact Webhook

    id
    integer <int64>

    Rezdy internal ID of the customer

    firstName
    string

    First name

    middleName
    string

    Middle name

    lastName
    string

    Last Name

    name
    string

    Full name - generated from first/middle/last names

    email
    string

    Email

    companyName
    string

    Company name

    phone
    string

    Preferred Phone number

    mobile
    string

    Mobile phone number

    fax
    string

    Fax number

    skype
    string

    Skype alias

    dob
    string <date-time>

    Date of birth

    preferredLanguage
    string

    Preferred language. Should be a 2 letter ISO country code

    newsletter
    boolean

    Subscribe to the newsletter

    marketing
    boolean

    Agree to receive marketing emails

    aboutUs
    string

    How did you hear about us?

    title
    string
    Enum: "MR" "MS" "MRS" "MISS"

    Title

    gender
    string
    Enum: "MALE" "FEMALE"

    Gender: MALE or FEMALE

    addressLine
    string

    Address

    addressLine2
    string

    Extended Address

    postCode
    string

    Postcode / ZIP

    city
    string

    City/Town/Suburb

    state
    string

    State/County/Region

    countryCode
    string

    2 letter ISO country code

    Responses

    Request samples

    Content type
    application/json

    webhookRequest

    {
    • "id": 9873,
    • "firstName": "Homer",
    • "middleName": "",
    • "lastName": "Simpson",
    • "name": "Homer Simpson",
    • "email": "homersimpson.3@rezdy.com",
    • "companyName": "",
    • "phone": "+61484123456",
    • "mobile": "",
    • "fax": "",
    • "skype": "",
    • "preferredLanguage": "",
    • "marketing": false,
    • "aboutUs": "",
    • "addressLine": "",
    • "postCode": "",
    • "city": "",
    • "state": "",
    • "countryCode": ""
    }

    Response samples

    Content type
    application/json

    sucessfulWebhookResponse

    { }