Creates a new product

Request

POST https://api.rezdy.com/v1/products

Request body

The request body takes a complete ProductCreateRequest resource, containing the following writable properties:

{
    "additionalInformation": "string",
    "advertisedPrice": "float",
    "barcodeOutputType": "string",
    "bookingFields": [
        {
            "fieldType": "string",
            "label": "string",
            "listOptions": "string",
            "requiredPerBooking": "boolean",
            "requiredPerParticipant": "boolean",
            "visiblePerBooking": "boolean",
            "visiblePerParticipant": "boolean"
        }
    ],
    "bookingMode": "string",
    "charter": "boolean",
    "confirmMode": "string",
    "confirmModeMinParticipants": "int32",
    "description": "string",
    "durationMinutes": "int64",
    "extras": [
        {
            "description": "string",
            "extraPriceType": "string",
            "id": "int64",
            "image": {
                "id": "int64",
                "itemUrl": "string",
                "largeSizeUrl": "string",
                "mediumSizeUrl": "string",
                "thumbnailUrl": "string"
            },
            "name": "string",
            "price": "float",
            "quantity": "int32"
        }
    ],
    "internalCode": "string",
    "languages": [
        "string"
    ],
    "locationAddress": {
        "addressLine": "string",
        "addressLine2": "string",
        "city": "string",
        "countryCode": "string",
        "latitude": "double",
        "longitude": "double",
        "postCode": "string",
        "state": "string"
    },
    "minimumNoticeMinutes": "int64",
    "name": "string",
    "pickupId": "int64",
    "priceOptions": [
        {
            "label": "string",
            "maxQuantity": "int32",
            "minQuantity": "int32",
            "price": "float",
            "priceGroupType": "string",
            "productCode": "string",
            "seatsUsed": "int32"
        }
    ],
    "productType": "string",
    "quantityRequired": "boolean",
    "quantityRequiredMax": "int32",
    "quantityRequiredMin": "int32",
    "shortDescription": "string",
    "terms": "string",
    "unitLabel": "string",
    "unitLabelPlural": "string",
    "xeroAccount": "string"
}

Properties

Name Type Description Additional
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.

Optional
advertisedPrice 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.

Optional
barcodeOutputType string

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
  • Possible values are:

    • PARTICIPANT
    • ORDER
    Optional
    bookingFields[] array

    List of booking fields required for this product.

    Required
    bookingFields[].fieldType string

    Type of a custom booking field. This type does not apply on the Rezdy build-in booking fields. See the section Product booking fields

    Possible values are:

    • String
    • List
    • Boolean
    • Hidden
    Optional
    bookingFields[].label string

    Field label that can be shown to customers

    Optional
    bookingFields[].listOptions string

    If this field only allows limited values to be selected from a list, they'll be included in this string, separated by \r\n

    Optional
    bookingFields[].requiredPerBooking boolean

    true if this field must be populated once per booking, regardless of the number of items or participants. It should be in Booking.fields

    Currently, required fields are not validated when a booking is created though public API, however it's a good practice to support them on in your client code However, soon the required fields will be enforced for public API booking..

    Optional
    bookingFields[].requiredPerParticipant boolean

    true if this field must be populated for each participant. It should be in Booking.BookingItem.Participant.fields.

    Currently, required fields are not validated when a booking is created though public API, however it's a good practice to support them on in your client code. However, soon the required fields will be enforced for public API booking.

    Optional
    bookingFields[].visiblePerBooking boolean

    true if this field should be asked once per booking, regardless of the number of items or participants. It should be in Booking.fields

    Optional
    bookingFields[].visiblePerParticipant boolean

    true if this field should be asked for each participant when doing a booking. It should be in Booking.BookingItem.Participant.fields.

    Optional
    bookingMode string

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

    Possible values are:

    • NO_DATE
    • DATE_ENQUIRY
    • INVENTORY
    Optional
    charter boolean

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

    Optional
    confirmMode string

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

    Possible values are:

    • MANUAL
    • AUTOCONFIRM
    • MANUAL_THEN_AUTO
    • AUTO_THEN_MANUAL
    Optional
    confirmModeMinParticipants int32

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

    Optional
    description string

    Long product description, is between 100 and 15000 characters.

    Required
    durationMinutes int64

    Duration of the product in minutes.

    Required
    extras[] array

    List of extras IDs.

    Optional
    extras[].description string

    Description of the extra

    Optional
    extras[].extraPriceType string

    Price type for this extra. Defines what quantities are allowed and how their price is calculated

    Possible values are:

    • ANY
    • FIXED
    • QUANTITY
    Optional
    extras[].id int64

    ID of the extra

    Optional
    extras[].image object

    Image links.

    Optional
    extras[].image.id int64

    Id of the image. Can be used for DELETE /{productCode}/image/{mediaId} service

    Optional
    extras[].image.itemUrl string

    Full size image link

    Optional
    extras[].image.largeSizeUrl string

    Large size image link (1280px)

    Optional
    extras[].image.mediumSizeUrl string

    Medium size image link (480px)

    Optional
    extras[].image.thumbnailUrl string

    Thumbnail image link (240px)

    Optional
    extras[].name string

    Name of the extra

    Optional
    extras[].price float

    Price for a single quantity of this extra

    Optional
    extras[].quantity int32

    Quantity booked

    Optional
    internalCode string

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

    Optional
    languages[] array of string

    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.

    Optional
    locationAddress object

    Address of a company, customer or product location.

    Optional
    locationAddress.addressLine string

    Address line

    Optional
    locationAddress.addressLine2 string

    Address line 2

    Optional
    locationAddress.city string

    City name

    Optional
    locationAddress.countryCode string

    Country code

    Optional
    locationAddress.latitude double

    Geolocation - latitude

    Optional
    locationAddress.longitude double

    Geolocation - longitude

    Optional
    locationAddress.postCode string

    Post Code

    Optional
    locationAddress.state string

    State name

    Optional
    minimumNoticeMinutes int64

    Minimum book ahead interval for he product in minutes.

    Optional
    name string

    Product name

    Required
    pickupId int64

    If pickups are configured for this product, the field will contain the id of the pickup location list created by the supplier.

    Optional
    priceOptions[] array

    List of price options belonging to this product.

    Required
    priceOptions[].label string

    Label for this price (I.e. "Adult", "Child")

    Optional
    priceOptions[].maxQuantity int32

    Max booking quantity for the product price option. Can be specified, if the price option is fixed or a grouptype. For a successful booking of the product, the number of participants for this price option have to be lesser or equal than this value.

    Optional
    priceOptions[].minQuantity int32

    Min booking quantity for the product price option. Can be specified, if the price option is fixed or a group type. For a successful booking of the product, the number of participants for this price option have to be greater or equal than this value.

    Optional
    priceOptions[].price float

    Price amount (I.e. "200.00")

    Optional
    priceOptions[].priceGroupType string

    If this price is for a group, is the price for the whole group (TOTAL) or per quantity (EACH)

    Possible values are:

    • EACH
    • TOTAL
    Optional
    priceOptions[].productCode string

    Product code to which the price options belongs to. Since Rezdy introduced shared availability option for products, the product sessions can contain price overrides for all of the products, which share the sessions. Therefore it is necessary to filer only the price options matching the chosen product code on the client side, when processing /availability service responses.

    Optional
    priceOptions[].seatsUsed int32

    How many seats one quantity of this price willuse. Used for availability calculations. For example 1 quantity of "Family of 4" will use 4 seats.

    Optional
    productType string

    Type of this product.

    Possible values are:

    • ACTIVITY
    • DAYTOUR
    • MULTIDAYTOUR
    • PRIVATE_TOUR
    • TICKET
    • RENTAL
    • CHARTER
    • EVENT
    • GIFT_CARD
    • TRANSFER
    • LESSON
    • MERCHANDISE
    • CUSTOM
    Required
    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) or a price of a booking is fixed regardless of quantity

    Optional
    quantityRequiredMax 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.

    Optional
    quantityRequiredMin 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.

    Optional
    shortDescription string

    Product description is between 15 and 240 characters.

    Required
    terms string

    Specific terms and conditions for this product.

    Optional
    unitLabel string

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

    Optional
    unitLabelPlural string

    Plural version of unitLabel.

    Optional
    xeroAccount string

    Supplier Xero account for this product.

    Optional

    Response

    The following HTTP status codes may be returned, optionally with a response resource.

    Status code Description Resource
    200 OK

    successful operation

    ResponseProduct

    Explore this API

    apiKey Enter your API Key to try this call
    body

    new product

    Request Content-Type
    Response Content-Type
    Try it out!