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 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.
Rezdy Webhooks
Webhooks allow 3rd party applications to be notified or updated when certain events happen on Rezdy, by sending data to configured URLs.
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.
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.
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.
To find out how to set up webhooks in Rezdy UI, please refer to the How To Set Up a Webhook article.
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.
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. |
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. |
| 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. |
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": ""
}sucessfulWebhookResponse
{ }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.
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. |
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. |
| 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. |
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": ""
}sucessfulWebhookResponse
{ }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.
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. |
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. |
| 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. |
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": ""
}sucessfulWebhookResponse
{ }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.
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 | |
| 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. |
| dateCreated required | string <date-time> The product creation date |
| minimumNoticeMinutes | integer <int64>
|
| durationMinutes | integer <int64>
|
| dateUpdated | string <date-time>
|
| pickupId | integer <int64>
|
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: 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: |
| bookingUrl | string The URL for booking this product. |
| apiBookingSupported | boolean |
| multiProductBookingSupported | boolean |
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. <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,
- "images": [
- {
}
], - "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"
}sucessfulWebhookResponse
{ }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.
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 | |
| 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. |
| dateCreated required | string <date-time> The product creation date |
| minimumNoticeMinutes | integer <int64>
|
| durationMinutes | integer <int64>
|
| dateUpdated | string <date-time>
|
| pickupId | integer <int64>
|
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: 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: |
| bookingUrl | string The URL for booking this product. |
| apiBookingSupported | boolean |
| multiProductBookingSupported | boolean |
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. <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,
- "images": [
- {
}
], - "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"
}sucessfulWebhookResponse
{ }The webhook is fired whenever a product is deleted.
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 | |
| 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. |
| dateCreated required | string <date-time> The product creation date |
| minimumNoticeMinutes | integer <int64>
|
| durationMinutes | integer <int64>
|
| dateUpdated | string <date-time>
|
| pickupId | integer <int64>
|
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: 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: |
| bookingUrl | string The URL for booking this product. |
| apiBookingSupported | boolean |
| multiProductBookingSupported | boolean |
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. <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,
- "images": [
- {
}
], - "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"
}sucessfulWebhookResponse
{ }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.
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 |
string | |
| 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 |
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": ""
}sucessfulWebhookResponse
{ }