iBex API Documentation (v2.2.1)

Download OpenAPI specification:Download


Documentation for the RESTful iBex API endpoint. Authentication is via OAuth2, and requires a key and secret issued by Seekom. Contact us to get started on developing against our API.

iBex Structure

  • Each arrow represents a one to many relationship.
    • For example, one Account can have multiple Properties, but each Property can only have one Account.
  • Extras belong to the Account, however can further be restricted by being mapped to individual properties.
  • Availability is driven by Units.
    • However when creating bookings via the API, that relationship is hidden. Instead you create bookings against a RoomType, and iBex will automatically assign the appropriate units.

Content Type

The iBex API is a fully JSON api. Responses are returned with the content type application/vnd.ibex.v1+json.

You may send an Accept header. Any content type requested that is not supported will return a 406: Not Acceptable.

When sending a request payload, the endpoint will only accept Content-Type: application/json for requests, and will return a 400: Bad Request if no content type is provided on a request. You do not need to set content type on GET requests.

Versioning

The iBex API is versioned with the request Accept and response Content-Type headers:

Accept: application/vnd.ibex.{version}+json

You may send an Accept header with the version number listed to ensure the same response is given. Omitting a version number and sending Accept: application/json (or no Accept header at all) means that the latest version will be assumed.

The Content-Type of the response will always indicate what version of the API served your request.

Throttling

Responses from the API should be cached to limit the amount of calls being made. Too many hits may result in our system from temporarily blocking access.

Authentication

iBex authenticates using OAuth2 (Authorization Code Grant Type) method. Read more about OAuth2.

After you have been issued a client_id and client_secret by Seekom, you can connect to the API. This authentication method means the account you want to access must consent, via the OAuth2 mechanisms. Seekom/iBex cannot grant access to accounts specifically.

Please note that by authenticating you are being granted access to an individual account rather than every account across iBex. The client_id and client_secret can be used to integrate with multiple accounts but each one will require a separate authentication.

Authorise With Client

Request authorisation with iBex and a client. Note: This must be targeted at the iBex Authentication server, not the API. This is not an API call, instead you need to redirect your users to this page in a web browser.

Response URL

After the user signs in and clicks either Approve or Deny, the page will redirect back to your redirect_url address with authorisation code (or an error).

https://yourwebsite.com?state={random}&code={authorisation_code} Compare the state with what you originally generated, and if it matches hold on to the code for the next step, requesting a token.

query Parameters
client_id
required
string
Example: client_id=abc1234

Client ID is provided by iBex.

response_type
required
string
Value: "code"
redirect_uri
required
string
Example: redirect_uri=https%3A%2F%2Fexample.com%2Foauth%2Freturn

The encoded URI the client that iBex will post the token / error to after the user has signed in. It must match the registered URL.

state
required
string
Example: state=abc123456

A random string you generate for CSRF protection. iBex will return this back to you with the authentication response and you should compare the two before proceeding.

get /oauth/auth

Sandbox

https://www.uat.ibexresdev.com/oauth/auth

Production

https://www.ibexres.com/oauth/auth

Issue Access Token

Request an access token, which can then be used to access the rest of the API.

Request Body schema: application/json
One of
  • object
  • object
client_id
string

The ID issued by Seekom

client_secret
string

The secret issued by Seekom

grant_type
string
Enum: "authorization_code" "refresh_token"
code
string

Authorization code used to generate access token

Responses

200

Returns access token.

404

Not Found

post /oauth/token

Sandbox

https://api.uat.ibexresdev.com/oauth/token

Production

https://api.ibexres.com/oauth/token

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "client_id": "96601ffd639d73bbcd16a5c5b0afc1b2",
  • "client_secret": "Z8bB90qyQBZqPXguNUoEvSMQbyvQuvUSjdFCLoH/TLvqMfzAvJF1vDQTXbWSDKNn",
  • "grant_type": "authorization_code",
  • "code": "2f9b50112fa921aaef8f04931d34617a"
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "access_token": "Z8bB90qyQBZqPXguNUoEvSMQbyvQuvUSjdFCLoH/TLvqMfzAvJF1vDQTXbWSDKNn",
  • "token_type": "Bearer",
  • "expires_in": 86400,
  • "refresh_token": "J2OhjUoTOHpCHd5ho3MLwia7QwHxUxU+Wz08pYo7YaBDih5TDYzOH8ViclvrlzDD",
  • "refresh_token_expires_in": 31536000
}

Properties

A property represents a physical location that holds rooms/units to sell. Many properties can belong to a single account. A booking belongs to a single property. An active user can be restricted to one or more properties, and their privileges can differ between each property.

List Properties

Fetch a paginated list of all properties

query Parameters
types
array
Example: types=1,2,3

The property types to filter against. See the Property MetaData for available values.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Property Objects

401

Unauthorized Access

get /properties

Sandbox

https://api.uat.ibexresdev.com/properties

Production

https://api.ibexres.com/properties

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "properties",
      • "id": 6080,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/properties?page=1",
    • "first": "/properties?page=1",
    • "next": "/properties?page=1",
    • "last": "/properties?page=1"
    }
}

Get Property

Fetch a single property based on the property ID.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
include
string
Value: "photos"
Example: include=photos

Include additional attributes with the main request. This alters the request.

Responses

200

Returns a single Property Object if found

401

Unauthorized Access

404

Not Found

get /properties/{property_id}

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}

Production

https://api.ibexres.com/properties/{property_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "properties",
    • "id": 6080,
    • "attributes":
      {
      • "name": "Albion Manor",
      • "type": 3,
      • "sale-type": 0,
      • "enabled": true,
      • "currency": "NZD",
      • "closed-date-ranges":
        [
        ],
      • "description": "A beautiful property found in the Bowerstone Old Quarter region.",
      • "promotions": "Stay 2 nights to get a better deal",
      • "lead-in-special": "Stay 2 nights to get a better deal",
      • "carpark": "Parking is on the street only.",
      • "additional-information": "Other useful property information that was not categorised anywhere else.",
      • "directions": "From the Airport follow the I32 until the P12 intersection.",
      • "location": "Theme Parks are right across the road.",
      • "star-rating": "2.5",
      • "website": "https://example.com",
      • "reception-hours": "Open from 2pm until 5pm.",
      • "creditcard":
        {
        },
      • "times":
        {
        },
      • "facilities":
        {
        },
      • "policies":
        {
        },
      • "address":
        {
        },
      • "phone":
        {
        },
      • "contact":
        {
        },
      • "deposit":
        {
        },
      • "display-order": 3
      }
    }
}

Get Property Photos

Fetch the photos for single property based on the property ID.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

Responses

200

Returns a collection of Property Photos

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/photos

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/photos

Production

https://api.ibexres.com/properties/{property_id}/photos

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{}

MetaData

List of all static data that is used by bookings/properties, such as facility codes or star rating. These may be referenced when loading specific properties. This rarely changes and can be cached locally for speed.

Responses

200

A JSON collection of different meta objects

401

Unauthorized Access

get /properties-metadata

Sandbox

https://api.uat.ibexresdev.com/properties-metadata

Production

https://api.ibexres.com/properties-metadata

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "facilties":
    {
    • "1": "Parking",
    • "2": "Laundry",
    • "3": "Elevator",
    • "4": "Accessible",
    • "5": "Wifi",
    • "6": "Conference",
    • "7": "Business Facilities",
    • "8": "Room Service",
    • "9": "Restaurant",
    • "10": "Bar",
    • "11": "Pets",
    • "12": "Pool",
    • "13": "Spa",
    • "14": "Air Conditioning",
    • "15": "Satellite TV",
    • "16": "Playground",
    • "17": "24-Hour Front Desk",
    • "18": "Beach",
    • "19": "BBQ Facilities",
    • "20": "Fitness Center",
    • "21": "Netflix",
    • "22": "Sky TV",
    • "23": "Free Parking",
    • "24": "Free Wifi"
    },
  • "types":
    {
    • "3": "PMC Home Rental",
    • "4": "Bed & Breakfast",
    • "5": "Hut / Cabin / Chalet",
    • "6": "Holiday Park",
    • "19": "Backpackers / Hostel",
    • "20": "Hotel",
    • "22": "Lodge",
    • "27": "Motel",
    • "30": "Resort",
    • "33": "Campground",
    • "49": "Other"
    },
  • "sales-types":
    {
    • "0": "Accommodation",
    • "1": "Item Only",
    • "2": "Venue"
    },
  • "ratings":
    {
    • "0": "Pending",
    • "1": "1 Star",
    • "2": "2 Stars",
    • "3": "3 Stars",
    • "4": "4 Stars",
    • "5": "5 Stars",
    • "": "None",
    • "1.5": "1.5 Stars",
    • "2.5": "2.5 Stars",
    • "3.5": "3.5 Stars",
    • "4.5": "4.5 Stars"
    },
  • "times":
    {
    • "1000": "10:00 AM",
    • "1030": "10:30 AM",
    • "1100": "11:00 AM",
    • "1130": "11:30 AM",
    • "1200": "12:00 PM",
    • "1230": "12:30 PM",
    • "1300": "01:00 PM",
    • "1330": "01:30 PM",
    • "1400": "02:00 PM",
    • "1430": "02:30 PM",
    • "1500": "03:00 PM",
    • "1530": "03:30 PM",
    • "1600": "04:00 PM",
    • "1630": "04:30 PM",
    • "1700": "05:00 PM",
    • "1730": "05:30 PM",
    • "1800": "06:00 PM",
    • "1830": "06:30 PM",
    • "1900": "07:00 PM",
    • "1930": "07:30 PM",
    • "2000": "08:00 PM",
    • "2030": "08:30 PM",
    • "2100": "09:00 PM",
    • "2130": "09:30 PM",
    • "2200": "10:00 PM",
    • "2230": "10:30 PM",
    • "2300": "11:00 PM",
    • "0000": "12:00 AM",
    • "0030": "12:30 AM",
    • "0100": "01:00 AM",
    • "0130": "01:30 AM",
    • "0200": "02:00 AM",
    • "0230": "02:30 AM",
    • "0300": "03:00 AM",
    • "0330": "03:30 AM",
    • "0400": "04:00 AM",
    • "0430": "04:30 AM",
    • "0500": "05:00 AM",
    • "0530": "05:30 AM",
    • "0600": "06:00 AM",
    • "0630": "06:30 AM",
    • "0700": "07:00 AM",
    • "0730": "07:30 AM",
    • "0800": "08:00 AM",
    • "0830": "08:30 AM",
    • "0900": "09:00 AM",
    • "0930": "09:30 AM"
    }
}

Bookings

A booking is a reservation covering dates and different room/rates/units.

  • Booking: The overarching object that contains all of the reservation details. Has both a ref and id (also known as resid). The id is the unique ID used by the API, while the ref is the visual booking reference customers should be presented with.
  • Room Reservation: Each booking can have multiple room reservations. Each room reservation represents a set of dates, a number of pax, and a collection of one or more unit reservations. Each room reservation has a unique ID, known as the rmresid
  • Unit Reservation: Each room reservation can have one or more unit reservations. Each unit reservation attaches to a single unit. Having multiple unit reservations against a single room reservation creates a virtual room booking.
  • Extras Reservation: Each booking & room reservation can attach to an extras reservation. Each extras reservation associates with dates, prices and a single extra that is considered booked.
  • Some iBex accounts may be unitless - as in they keep track of availability based on a total number synchronised with another system. In those cases, there will be no UnitReservation or Unit involved.

Creating a Booking Flow Creating a booking is always a multi-step process. Reserve -> (Optionally collect payment) -> Accept/Reject.

  1. Create a Booking Reservation Request. - This lets you reserve the rooms/units, and finalise any prices. At this stage you've not yet charged the customer. iBex will respond with either a success message, or an error. If successful, iBex will return with the booking details, including id and the price.

    NOTE This reservation will last for about 20 minutes. Any longer and iBex will automatically cancel it as it blocks availability.

  1. Collect Payment (optional) - On your own side of things, collect any payment. Use the total from the response to the previous reservation request to calculate the price to charge. The reason for this is there may be hidden mandatory fees that iBex has automatically added and they may only show up at this stage.
  1. Accept/Reject the Booking - If satisfied with the booking, you can send an accept message (along with payment collected info). This will confirm the booking and issue it with a ref (the reference to present to the customer). Otherwise send the reject message which will cancel the reservation and release the availability again.

List Bookings

Fetch a paginated list of all bookings based on the specified property

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
sold_on
timestamp
Example: sold_on=2020-01-01T12:00:00

Only show bookings sold after this date

last_updated
timestamp
Example: last_updated=2020-01-01T12:00:00

Only show bookings last updated after this date

last_change_id
int
Example: last_change_id=12345

Only show bookings with a change id greater than or equal to this value.

Note: When a booking is created or modified the running change_id will be incremented.

from
timestamp
Example: from=2020-01-20

Show bookings arriving on or after the specified date.

to
timestamp
Example: to=2020-01-22

Show bookings departing on or before the specified date.

status_codes
Array of integers
Example: status_codes=1,5,7

Limit to just the specified status or statuses.

  • Confirmed
    • 1 - Enquiry (rarely used).
    • 2 - On Request.
    • 3 - Confirmed (was On Request / another type changed to Confirmed).
    • 4 - Instant Confirmed (created via API, FBS or backend iBex).
    • 13 - Held. Units/availability is updated, but not considered "Confirmed" for business reasons.
  • Temporary Reserved
    • 5 - Temporarily Reserved. Needs to be accepted/rejected, otherwise will auto reject after a period.
    • 6 - Temporarily Reserved for On Request. Needs to be accepted/rejected, otherwise will auto reject after a period.
  • Cancelled
    • 8 - Cancelled.
    • 7 - Cancelled (Unable). Was On Request but could not be accepted.
    • 11 - Cancelled (No Show). Cancelled with the reason set to "No Show".
    • 9 - Cancelled (Follow Up).
    • 14 - Cancelled Quote.
    • 15 - Cancelled Hold.
    • 16 - Cancelled Enquiry.
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Booking objects

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/bookings

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/bookings

Production

https://api.ibexres.com/properties/{property_id}/bookings

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "bookings",
      • "id": 1000000,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/bookings?page=1",
    • "first": "/bookings?page=1",
    • "next": "/bookings?page=2",
    • "last": "/bookings?page=5"
    }
}

Create Booking

Create a booking reservation. This will mark the rooms/units as reserved for a short period of time, until the booking is either accepted or rejected. If the time limit passes (about 20 minutes), the reservation will automatically reject.

This method is used to reserve the units, and then you can collect payment in whatever method you want, before calling the accept or reject endpoint to complete the booking.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

Request Body schema: application/json
One of
  • Item Only
  • Booking
status
required
int

The status to create the booking as.

  • 1 - Enquiry (deprecated)
  • 2 - On Request - No availability is held, the property can choose to accept/reject it.
  • 4 - Instant Confirmation (default)
lead-guest
required
object or object

Details about the person making the booking

extras
required
Array of objects

Required for item-only bookings, optional for accommodation bookings.

agent
string Nullable

The agent ID the booking is to be made against.

notes
object Nullable
attributes
object Nullable

Responses

201

Returns a single Booking Object if created

401

Unauthorized Access

404

Not Found

422

Validation Error

post /properties/{property_id}/bookings

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/bookings

Production

https://api.ibexres.com/properties/{property_id}/bookings

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "extras":
    [
    • {
      • "extra": 654321,
      • "quantity": 1,
      • "notes": "Credit card fee applied",
      • "percentage": 0.02
      }
    ],
  • "status": 4,
  • "lead-guest":
    {
    • "title": "Mrs",
    • "first-name": "Jane",
    • "last-name": "Jetson",
    • "phone": "123-456-789",
    • "mobile": "123-456-789",
    • "fax": "123-456-789",
    • "email": "jane@example.com",
    • "address":
      {
      • "street": "123 Hogwarts Street",
      • "suburb": "Forbidden Forest",
      • "city": "London",
      • "post-code": 4022,
      • "country": 108
      },
    • "newsletter": true,
    • "notes-ref": "Notes that are attached to the customer.",
    • "dob": "1988-07-07T00:00:00.000Z",
    • "vehicle-reg": "WR1111",
    • "memberships": [ ]
    },
  • "agent": "seekom",
  • "notes":
    {
    • "base": "These are my base notes\nMisc info can appear here. It's a free text field.\n",
    • "external": "I'm arriving early, is it possible to check in before\nthe specified time?\n",
    • "external2": "Are we able to get free chocolates on our pillows?\nOnly if they're free though.\n",
    • "voucher": "NEWVOUCHER12345\n"
    },
  • "attributes":
    {
    • "found-via": "Seekom Website"
    }
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "bookings",
    • "id": 1000000,
    • "attributes":
      {
      • "ref": 1001,
      • "property-id": 6680,
      • "status": 5,
      • "status-description": "Confirmed Reserved",
      • "lead-guest":
        {
        },
      • "priced-for":
        {
        },
      • "balance": 1000,
      • "total-cost": 5000,
      • "payments-amount": 2500,
      • "invoiced-amount": 1500,
      • "invoices":
        {
        },
      • "booked": "2019-12-20 00:18:15 (NZT)",
      • "notes":
        {
        },
      • "eta": "2pm",
      • "external-payment-ref": null,
      • "order-ref": "NEWVOUCHER12345",
      • "sell-currency": "NZD",
      • "last-updated": "2019-12-20 00:18:15 (NZT)",
      • "last-change-id": 12345,
      • "has-extras": true,
      • "total-nights": 12,
      • "checkin": "2020-02-01T14:00:00.000Z",
      • "checkout": "2020-02-12T10:00:00.000Z",
      • "never-apploy-credit-card-fee": false,
      • "rooms":
        [
        ]
      }
    }
}

Get Booking

Fetch a single booking based on the booking ID

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Responses

200

Returns a single Booking Object if found

401

Unauthorized Access

404

Not Found

get /bookings/{booking_id}

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}

Production

https://api.ibexres.com/bookings/{booking_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "bookings",
    • "id": 1000000,
    • "attributes":
      {
      • "ref": 1001,
      • "property-id": 6680,
      • "status": 4,
      • "status-description": "Instant Confirmed",
      • "lead-guest":
        {
        },
      • "priced-for":
        {
        },
      • "balance": 1000,
      • "total-cost": 5000,
      • "payments-amount": 2500,
      • "invoiced-amount": 1500,
      • "invoices":
        {
        },
      • "booked": "2019-12-20 00:18:15 (NZT)",
      • "notes":
        {
        },
      • "eta": "2pm",
      • "external-payment-ref": null,
      • "order-ref": "NEWVOUCHER12345",
      • "sell-currency": "NZD",
      • "last-updated": "2019-12-20 00:18:15 (NZT)",
      • "last-change-id": 12345,
      • "has-extras": true,
      • "total-nights": 12,
      • "checkin": "2020-02-01T14:00:00.000Z",
      • "checkout": "2020-02-12T10:00:00.000Z",
      • "never-apploy-credit-card-fee": false,
      • "extras":
        [
        ],
      • "rooms":
        [
        ]
      }
    }
}

Accept Booking

Mark the booking as accepted

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

query Parameters
block-emails
boolean
Example: block-emails=false

If true then emails will not be sent to the Customer by iBex automatically.

Request Body schema: application/json
payment
required
object

Responses

200

Returns the completed booking object.

401

Unauthorized Access

404

Not Found

patch /bookings/{booking_id}/accept

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/accept

Production

https://api.ibexres.com/bookings/{booking_id}/accept

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "payment":
    {
    • "amount": 150,
    • "description": "Deposit taken",
    • "hold": false,
    • "method": "Cash"
    }
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "bookings",
    • "id": 1000000,
    • "attributes":
      {
      • "ref": 1001,
      • "property-id": 6680,
      • "status": 4,
      • "status-description": "Instant Confirmed",
      • "lead-guest":
        {
        },
      • "priced-for":
        {
        },
      • "balance": 1000,
      • "total-cost": 5000,
      • "payments-amount": 2500,
      • "invoiced-amount": 1500,
      • "invoices":
        {
        },
      • "booked": "2019-12-20 00:18:15 (NZT)",
      • "notes":
        {
        },
      • "eta": "2pm",
      • "external-payment-ref": null,
      • "order-ref": "NEWVOUCHER12345",
      • "sell-currency": "NZD",
      • "last-updated": "2019-12-20 00:18:15 (NZT)",
      • "last-change-id": 12345,
      • "has-extras": true,
      • "total-nights": 12,
      • "checkin": "2020-02-01T14:00:00.000Z",
      • "checkout": "2020-02-12T10:00:00.000Z",
      • "never-apploy-credit-card-fee": false,
      • "extras":
        [
        ],
      • "rooms":
        [
        ]
      }
    }
}

Reject Booking

Mark the booking as rejected

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Responses

204

Booking was rejected.

401

Unauthorized Access

404

Not Found

patch /bookings/{booking_id}/reject

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/reject

Production

https://api.ibexres.com/bookings/{booking_id}/reject

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Lead Guest

Update the lead guest of a booking

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Request Body schema: application/json
lead-guest
required
object or object

Details about the person making the booking

Responses

201

Returns a lead guest object if updated

401

Unauthorized Access

404

Not Found

patch /bookings/{booking_id}/lead-guest

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/lead-guest

Production

https://api.ibexres.com/bookings/{booking_id}/lead-guest

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "lead-guest":
    {
    • "title": "Mrs",
    • "first-name": "Jane",
    • "last-name": "Jetson",
    • "mobile": 123456789,
    • "email": "jane@example.com",
    • "address":
      {
      • "street": "123 Maple Lane",
      • "city": "Wellington",
      • "postcode": 1234,
      • "country": 108
      }
    }
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "lead-guest",
    • "id": 1234,
    • "attributes":
      {
      • "title": "Mrs",
      • "first-name": "Jane",
      • "last-name": "Jetson",
      • "phone": 123456789,
      • "mobile": 123456789,
      • "fax": 123456789,
      • "email": "jane@example.com",
      • "address":
        {
        },
      • "newsletter": false,
      • "vip": false,
      • "memberships": null
      }
    }
}

Booking Notes

Insert/Update the notes attached to a booking

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Request Body schema: application/json
action
required
string
Enum: "add" "modify"

add will append notes to the field, modify will overwrite the field completely.

field
required
string
Enum: "base" "external" "external2" "voucher"

The name of the note field that requires adding/modifying.

value
required
string

The actual notes field to append/write.

Responses

200

Returns the completed booking object.

401

Unauthorized Access

404

Not Found

patch /bookings/{booking_id}/notes

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/notes

Production

https://api.ibexres.com/bookings/{booking_id}/notes

Request samples

Content type
application/json
Example

Append some text to the existing note

Copy
Expand all Collapse all
{
  • "action": "add",
  • "field": "external",
  • "value": "This note is added to the end"
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "base": "First notes value",
    • "external": "Second notes value",
    • "external2": "Third notes value",
    • "voucher": "Voucher / Order ref"
    }
}

Room Reservation

Update a room reservation of a booking

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

room_reservation_id
required
int
Example: 12345

The ID of the room reservation.

Request Body schema: application/json
units
Array of objects

Details about the units attached to the room reservation.

room-type
int

The ID of the room type

rate-type
int

The ID of the rate type

name
string Nullable

The room reservation name, leave blank for an automated generated name.

pax
object

An object containing the number of pax (people) in the room reservation.

rate
float

The per-period cost of the room reservation. The period is determined by the rate type.

datetime-in
timestamp

The date and time the room reservation starts from.

datetime-out
timestamp

The date and time the room reservation ends at.

notes
string Nullable

General proviate notes on a room - not shown to customers.

eta
string Nullable

A note field that indicates the ETA. The values have no pattern to them.

vehicle-registration
string Nullable

The licence plate of the vehicle attached to this room reservation.

Responses

200

Returns the completed room reservation object.

400

Validation Error

401

Unauthorized Access

404

Not Found

patch /bookings/{booking_id}/room-reservation/{room_reservation_id}

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/room-reservation/{room_reservation_id}

Production

https://api.ibexres.com/bookings/{booking_id}/room-reservation/{room_reservation_id}

Request samples

Content type
application/json
Example

Update various room reservation details

Copy
Expand all Collapse all
{
  • "datetime-in": "2020-01-01T14:00:00.000Z",
  • "datetime-out": "2020-01-05T10:00:00.000Z",
  • "pax":
    {
    • "adults": 2,
    • "children": 1
    },
  • "name": "Updated reservation name",
  • "notes": "Updated notes"
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "room-reservation",
    • "id": 1234567,
    • "attritubes":
      {
      • "id": null,
      • "name": "string",
      • "room-type": null,
      • "rate-type": null,
      • "pax":
        {
        },
      • "rate": null,
      • "datetime-in": null,
      • "datetime-out": null,
      • "notes": "string",
      • "eta": "string",
      • "vehicle-registration": "string",
      • "units":
        [
        ],
      • "extras":
        [
        ],
      • "checked-in-out": 2
      }
    }
}

Check-In

Check-in a single room reservation.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

room_reservation_id
required
int
Example: 12345

The ID of the room reservation.

Request Body schema: application/json
reverse
boolean
Default: false

If true this will undo the check-in and perform an un-check-in.

Responses

204

Room reservation was checked-in.

401

Unauthorized Access

404

Not Found

406

Unacceptable. Room Reservation was not in a valid state to check-in.

patch /bookings/{booking_id}/room-reservation/{room_reservation_id}/check-in

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/room-reservation/{room_reservation_id}/check-in

Production

https://api.ibexres.com/bookings/{booking_id}/room-reservation/{room_reservation_id}/check-in

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reverse": false
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Check-Out

Check-out a single room reservation.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

room_reservation_id
required
int
Example: 12345

The ID of the room reservation.

Request Body schema: application/json
reverse
boolean
Default: false

If true this will undo the check-out and perform an un-check-out.

Responses

204

Room reservation was checked-out.

401

Unauthorized Access

404

Not Found

406

Unacceptable. Room Reservation was not in a valid state to check-out.

patch /bookings/{booking_id}/room-reservation/{room_reservation_id}/check-out

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/room-reservation/{room_reservation_id}/check-out

Production

https://api.ibexres.com/bookings/{booking_id}/room-reservation/{room_reservation_id}/check-out

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reverse": false
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Bulk Check-In

Check-in all room reservations in a booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Request Body schema: application/json
reverse
boolean
Default: false

If true this will undo the check-in and perform an un-check-in.

Responses

204

Room reservations were checked-in.

401

Unauthorized Access

404

Not Found

406

Unacceptable. Room Reservation was not in a valid state to check-in.

patch /bookings/{booking_id}/bulk-check-in

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/bulk-check-in

Production

https://api.ibexres.com/bookings/{booking_id}/bulk-check-in

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reverse": false
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Bulk Check-Out

Check-out all room reservations in a booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Request Body schema: application/json
reverse
boolean
Default: false

If true this will undo the check-out and perform an un-check-out.

Responses

204

Room reservations were checked-out.

401

Unauthorized Access

404

Not Found

406

Unacceptable. Room Reservation was not in a valid state to check-out.

patch /bookings/{booking_id}/bulk-check-out

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/bulk-check-out

Production

https://api.ibexres.com/bookings/{booking_id}/bulk-check-out

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reverse": false
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Cancel Booking

Cancel the booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Responses

204

Booking was cancelled.

401

Unauthorized Access

404

Not Found

406

Unacceptable. The booking couldn't be cancelled.

patch /bookings/{booking_id}/cancel

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/cancel

Production

https://api.ibexres.com/bookings/{booking_id}/cancel

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

UnCancel Booking

Uncancel a booking. This is a booking that was previously cancelled, and returning it to a confirmed state.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Responses

204

Booking was uncancelled.

401

Unauthorized Access

404

Not Found

406

Unacceptable. The booking couldn't be cancelled.

patch /bookings/{booking_id}/un-cancel

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/un-cancel

Production

https://api.ibexres.com/bookings/{booking_id}/un-cancel

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Add Extras

Add one or more extras to a booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

Request Body schema: application/json
One of
  • Standard Extra
  • Date Range Extra
  • Percentage Extra
extras
required
Array of objects

Responses

200

Returns the completed booking object.

400

Validation Error

401

Unauthorized Access

404

Not Found

post /bookings/{booking_id}/extra-reservations

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/extra-reservations

Production

https://api.ibexres.com/bookings/{booking_id}/extra-reservations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "extras":
    [
    • {
      • "quantity": 2,
      • "notes": "Some notes to apply to the extra's reservation",
      • "price-per-unit": 10,
      • "apply-to-booking": true
      }
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "bookings",
    • "id": 123456789,
    • "attributes":
      {
      • "ref": null,
      • "property-id": null,
      • "status": null,
      • "status-description": "string",
      • "lead-guest":
        {
        },
      • "priced-for":
        {
        },
      • "balance": null,
      • "total-cost": null,
      • "payments-amount": null,
      • "invoiced-amount": null,
      • "invoices":
        {
        },
      • "booked": null,
      • "notes":
        {
        },
      • "eta": "string",
      • "external-payment-ref": "string",
      • "order-ref": "string",
      • "sell-currency": "string",
      • "last-updated": null,
      • "last-change-id": null,
      • "has-extras": true,
      • "total-nights": null,
      • "checkin": null,
      • "checkout": null,
      • "rooms":
        [
        ],
      • "extras":
        [
        ]
      }
    }
}

Modify Extras

Modify one or more extras within a room's / booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

extra_reservation_id
required
int
Example: 12345

The ID of the extra reservation.

Request Body schema: application/json
One of
  • Standard Extra
  • Date Range Extra
  • Percentage Extra
quantity
int [ 1 .. 99 ]

The number of this type of extra that should be added. The price will be multipled by this amount.

notes
string Nullable

Notes held against the extra reservation.

room-reservation-id
int

The ID of the specific room reservation this extra should be attached to. If you wish to attach an extra the whole booking see apply-to-booking.

For example: Extra such as a cleaning fee or breakfast you might want to apply to a certain room if more then one room is booked.
Note: room-reseration-id or apply-to-booking is required to add an extra but cannot have both.

apply-to-booking
boolean

If set to true extra will attached to the whole booking. If you wish to attach extra to a specific room see room-reservation-id.

For example: Extra such as a credit card fee typically are applied across the whole booking.
Note: room-reseration-id or apply-to-booking is required to add an extra but cannot have both.

price-per-unit
float

If provided this will override the standard price-per-unit. This amount is multiplied by the quantity to calculate the final price.

This is only used for regular extras, percentage extras should use percentage instead.

Responses

200

Returns the completed booking object.

400

Validation Error

401

Unauthorized Access

404

Not Found

put /bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Production

https://api.ibexres.com/bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "extra": 12345,
  • "quantity": 2,
  • "notes": "Some notes to apply to the extra's reservation",
  • "price-per-unit": 10,
  • "apply-to-booking": true
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "bookings",
    • "id": 1000000,
    • "attributes":
      {
      • "ref": 1001,
      • "property-id": 6680,
      • "status": 4,
      • "status-description": "Instant Confirmed",
      • "lead-guest":
        {
        },
      • "priced-for":
        {
        },
      • "balance": 1000,
      • "total-cost": 5000,
      • "payments-amount": 2500,
      • "invoiced-amount": 1500,
      • "invoices":
        {
        },
      • "booked": "2019-12-20 00:18:15 (NZT)",
      • "notes":
        {
        },
      • "eta": "2pm",
      • "external-payment-ref": null,
      • "order-ref": "NEWVOUCHER12345",
      • "sell-currency": "NZD",
      • "last-updated": "2019-12-20 00:18:15 (NZT)",
      • "last-change-id": 12345,
      • "has-extras": true,
      • "total-nights": 12,
      • "checkin": "2020-02-01T14:00:00.000Z",
      • "checkout": "2020-02-12T10:00:00.000Z",
      • "never-apploy-credit-card-fee": false,
      • "extras":
        [
        ],
      • "rooms":
        [
        ]
      }
    }
}

Delete Extra

Remove an extra from a room's / booking.

path Parameters
booking_id
required
int
Example: 12345

The ID of the booking. Note: This isn't the 4-5 digit booking reference, this is the unique ID.

extra_reservation_id
required
int
Example: 12345

The ID of the extra reservation.

Responses

204

Successful, no content returned.

401

Unauthorized Access

404

Not Found

405

Method Not Allowed

delete /bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Sandbox

https://api.uat.ibexresdev.com/bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Production

https://api.ibexres.com/bookings/{booking_id}/extra-reservations/{extra_reservation_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Room Types

A Room Type is a collection of one or more Units in iBex. Typically the units represent the physical plots/rooms in the property, with the Room Type used for marketing & sales.

For Example: A property may have 12 specific units, named Unit1 through to Unit12. However they're all sold together under the room type "Single Room" which has a quantity of 12.

When booking a room type, iBex automatically assigns the booking to an available unit.

Virtual Rooms

It's possible for two or more units to be mapped together to the same Room Type. This is known as a Virtual Room. When the room type is booked, both/all units involved are mapped out. This allows some units to be sold in a variety of different combinations.

List Room Types

Fetch a paginated list of room types. Can optionally include phtotos, rates & units.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
include
string
Enum: "photos" "rates" "units"
Example: include=photos

Include additional attributes with the main request. This alters the request.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Room type Objects

401

Unauthorized Access

get /properties/{property_id}/room-types

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/room-types

Production

https://api.ibexres.com/properties/{property_id}/room-types

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "room-types",
      • "id": 20480,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 6,
      • "count": 1,
      • "per_page": 1,
      • "current_page": 1,
      • "total_pages": 6
      }
    },
  • "links":
    {
    • "self": "/properties/{property_id}/room-types?page=1",
    • "first": "/properties/{property_id}/room-types?page=1",
    • "next": "/properties/{property_id}/room-types?page=2",
    • "last": "/properties/{property_id}/room-types?page=6"
    }
}

Get Room Type

Load a single room type

path Parameters
room_type_id
required
int
Example: 1234

Responses

200

Returns a single room type object if found

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/room-types/{room_type_id}

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/room-types/{room_type_id}

Production

https://api.ibexres.com/properties/{property_id}/room-types/{room_type_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "room-types",
    • "id": 20480,
    • "attributes":
      {
      • "name": "singlebed",
      • "marketing-name": "Single Bed Room",
      • "notes":
        {
        },
      • "facilities":
        {
        },
      • "twin-configurable": true,
      • "show-unavailable": true,
      • "max-pax": 3,
      • "enabled": true,
      • "created": "2012-08-23 00:00:00",
      • "last-updated": "2017-07-09 20:24:00",
      • "infants-take-availability": false,
      • "after-hours-cutoff": null,
      • "is-unit-based": true,
      • "part-day": false,
      • "rack-rate": 100,
      • "allocation": 7
      }
    }
}

Get Room Type Photos

Load a single room type's photos

path Parameters
room_type_id
required
int
Example: 1234

Responses

200

Returns a collection of photos

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/room-types/{room_type_id}/photos

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/room-types/{room_type_id}/photos

Production

https://api.ibexres.com/properties/{property_id}/room-types/{room_type_id}/photos

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "photos",
      • "id": "2e7c3e0760ea99315360b941399f118e",
      • "attributes":
        {}
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 6,
      • "count": 1,
      • "per_page": 1,
      • "current_page": 1,
      • "total_pages": 6
      }
    },
  • "links":
    {
    • "self": "/properties/{property_id}/room-types/photos?page=1",
    • "first": "/properties/{property_id}/room-types/photos?page=1",
    • "next": "/properties/{property_id}/room-types/photos?page=2",
    • "last": "/properties/{property_id}/room-types/photos?page=6"
    }
}

Get Room Type Rates

Load a single room type's rates

path Parameters
room_type_id
required
int
Example: 1234

Responses

200

Returns a collection of rates

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/room-types/{room_type_id}/rates

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/room-types/{room_type_id}/rates

Production

https://api.ibexres.com/properties/{property_id}/room-types/{room_type_id}/rates

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "rates",
      • "id": 88590,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 6,
      • "count": 1,
      • "per_page": 1,
      • "current_page": 1,
      • "total_pages": 6
      }
    },
  • "links":
    {
    • "self": "/properties/{property_id}/room-types/{room_type_id}/rates?page=1",
    • "first": "/properties/{property_id}/room-types/{room_type_id}/rates?page=1",
    • "next": "/properties/{property_id}/room-types/{room_type_id}/rates?page=2",
    • "last": "/properties/{property_id}/room-types/{room_type_id}/rates?page=6"
    }
}

Get Room Type Units

Load a single room type's units

path Parameters
room_type_id
required
int
Example: 1234

Responses

200

Returns a collection of units

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/room-types/{room_type_id}/units

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/room-types/{room_type_id}/units

Production

https://api.ibexres.com/properties/{property_id}/room-types/{room_type_id}/units

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "units",
      • "id": 25373,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 6,
      • "count": 1,
      • "per_page": 1,
      • "current_page": 1,
      • "total_pages": 6
      }
    },
  • "links":
    {
    • "self": "/properties/{property_id}/room-types/{room_type_id}/units?page=1",
    • "first": "/properties/{property_id}/room-types/{room_type_id}/units?page=1",
    • "next": "/properties/{property_id}/room-types/{room_type_id}/units?page=2",
    • "last": "/properties/{property_id}/room-types/{room_type_id}/units?page=6"
    }
}

Check Availability

Fetch a paginated list of room types. Can optionally include phtotos, rates & units.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
room-types
required
Array of integers
Example: room-types=1234,5378

A list of room types to look up availability for

from
required
string <date>
Example: from=2020-10-01

A start date to look at prices from. There are some restrictions to the date ranges, including:

  • Date formats must be YYYY-MM-DD
  • To must be greater than From
  • Cannot go further than 1 week prior today's date
  • Cannot go more than 3 years out from today's date
  • Cannot load more than 100 days at a time
to
required
string <date>
Example: to=2020-10-31

A end date to look at prices until.

part-day
boolean

Show more detail about part-day room types. If set, from_time and to_time are both required

from_time
string <time>

Only applicable if part-day is set. ISO-8601 (H:i:s) Time of default checkin. If not defined then the default checkin will be at midnight

to_time
string <time>

Only applicable if part-day is set. ISO-8601 (H:i:s) Time of default checkin. If not defined then the default checkin will be at midnight.

Responses

200

Returns a selection of availability

401

Unauthorized Access

get /properties/{property_id}/availability

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/availability

Production

https://api.ibexres.com/properties/{property_id}/availability

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "rooms-available":
      {
      • "20480":
        [
        ]
      },
    • "sell-mode":
      {
      • "20480":
        [
        ]
      },
    • "dates":
      [
      • "2020-03-01",
      • "2020-03-02",
      • "2020-03-03"
      ]
    }
}

Rates

Rates (or Rate Types) are a collection of marketing information wrapped around some prices. Together with Room Types, Rates create a product that can be sold.

In iBex we distinguish the difference between a Rate (an item with a name, photos, descriptions etc...) and the pricing for that rate.

List Rates

Fetch a paginated list of rates.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of rate objects

401

Unauthorized Access

get /properties/{property_id}/rates

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/rates

Production

https://api.ibexres.com/properties/{property_id}/rates

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "rates",
      • "id": 88590,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 6,
      • "count": 1,
      • "per_page": 1,
      • "current_page": 1,
      • "total_pages": 6
      }
    },
  • "links":
    {
    • "self": "/properties/{property_id}/rates?page=1",
    • "first": "/properties/{property_id}/rates?page=1",
    • "next": "/properties/{property_id}/rates?page=2",
    • "last": "/properties/{property_id}/rates?page=6"
    }
}

Get Rate

Load a single rate type

path Parameters
rate_id
required
int
Example: 1234

Responses

200

Returns a single rate type object if found

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/rates/{rate_id}

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/rates/{rate_id}

Production

https://api.ibexres.com/properties/{property_id}/rates/{rate_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "rates",
    • "id": 88590,
    • "attributes":
      {
      • "name": "holidayspecial",
      • "marketing-name": "Holiday Special",
      • "notes":
        {
        },
      • "minimum-nights-stay": [ ],
      • "max-nights-stay": null,
      • "min-pax": 1,
      • "base-pax": 2,
      • "additional-pax": 4,
      • "is-pax-rate": false,
      • "valid-for":
        {
        },
      • "lead-time-days": null,
      • "expiry-time-days": null,
      • "charge-method": "Month",
      • "rates":
        {
        },
      • "enabled": true
      }
    }
}

Pricing Multiple Rates

Fetch the prices for multiple rates at a time

query Parameters
rates
required
Array of integers
Example: rates=123,456

One or more rate type IDs to fetch prices for

from
required
string <date>
Example: from=2020-10-01

ISO-8601 (YYYY-MM-DD) Date of stay checkin, the date from must be no less than 7 days into the past, and no more than 3 years into the future.

to
required
string <date>
Example: to=2020-10-31

ISO-8601 (YYYY-MM-DD) Date of stay checkout, the date to must be after the date from and must be no more than 1 year from the date from. If the date to is greater than a year the system will automatically make this a year from the provided date from value

childAndInfant
boolean
Default: true
Example: childAndInfant=false

True by default, will include child & infant rates where relevant.

Responses

200

Returns a selection of prices

400

Bad Request. Failed validation / could not be processed.

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/pricing

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/pricing

Production

https://api.ibexres.com/properties/{property_id}/pricing

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "prices":
    {
    • "39925":
      [
      • {
        },
      • {
        },
      • {
        },
      • {
        }
      ]
    },
  • "dates":
    [
    • "2020-03-01",
    • "2020-03-02",
    • "2020-03-03",
    • "2020-03-04",
    • "2020-03-05"
    ]
}

Set Prices

Update the prices for the specific rate for the specific date range.

Note: Setting a price to 0 will set it to free.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

rate_id
required
int
Example: 1234
Request Body schema: application/json
prices
Array of objects <= 10 items

Responses

200

Returns the completed prices

401

Unauthorized Access

404

Not Found

post /properties/{property_id}/rates/{rate_id}/pricing

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/rates/{rate_id}/pricing

Production

https://api.ibexres.com/properties/{property_id}/rates/{rate_id}/pricing

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "prices":
    [
    • {
      • "from": "2020-03-02T00:00:00.000Z",
      • "to": "2020-03-10T00:00:00.000Z",
      • "daysOfWeek":
        [
        ],
      • "minNightStay": 5,
      • "basePrice": 55,
      • "additionalPersonPrice": 10,
      • "fixedBasePrice": 120,
      • "fixedAdditionalPersonPrice": 15
      }
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
[
  • {
    • "from": "2020-03-02T00:00:00.000Z",
    • "to": "2020-03-10T00:00:00.000Z",
    • "minNightStay": 1,
    • "basePrice": 100,
    • "additionalPersonPrice": 12.5,
    • "daysOfWeek": [ ],
    • "success": true
    },
  • {
    • "from": "2020-03-02T00:00:00.000Z",
    • "to": "2020-03-10T00:00:00.000Z",
    • "minNightStay": 2,
    • "basePrice": 75,
    • "additionalPersonPrice": 25,
    • "daysOfWeek":
      [
      • 1,
      • 2,
      • 3,
      • 4,
      • 5
      ],
    • "success": true
    }
]

Clear Prices

Remove prices for the specific rate type & dates. This will make them unbookable.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

rate_id
required
int
Example: 1234
Request Body schema: application/json
prices
Array of objects <= 10 items

Responses

200

Returns the completed prices

401

Unauthorized Access

404

Not Found

delete /properties/{property_id}/rates/{rate_id}/pricing

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/rates/{rate_id}/pricing

Production

https://api.ibexres.com/properties/{property_id}/rates/{rate_id}/pricing

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "prices":
    [
    • {
      • "from": "2020-03-02T00:00:00.000Z",
      • "to": "2020-03-10T00:00:00.000Z",
      • "daysOfWeek":
        [
        ],
      • "minNightStay": 5
      }
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
[
  • {
    • "from": "2020-03-02T00:00:00.000Z",
    • "to": "2020-03-10T00:00:00.000Z",
    • "minNightStay": 1,
    • "daysOfWeek": [ ],
    • "success": true
    },
  • {
    • "from": "2020-03-02T00:00:00.000Z",
    • "to": "2020-03-10T00:00:00.000Z",
    • "minNightStay": 2,
    • "daysOfWeek":
      [
      • 1,
      • 2,
      • 3,
      • 4,
      • 5
      ],
    • "success": true
    }
]

Channels & Agents

Sales Channels / Agents / Companies all extend from the same base structure, and can typically be used interchangeable in places where an agentID is required (such as making a booking).

The differences between the three are in how they're used.

  • Sales Channel (Agent that's Channel Based)

    • Represents an external party that connects to iBex via another API (such as Booking.com or Expedia).
  • Agents

    • Represent a person who is able to book on behalf of customers, with potentially differing rates/availability.
  • Companies

    • Represents a collection of customers, with potentially differing rates/availability.

List Agents

Fetch a paginated list of agents/sales channels. (This is an alias of List Channels).

query Parameters
agent-only
string Nullable
Value: "true"
Example: agent-only=true

If true, limit to only regular Agents.

channel-only
string Nullable
Value: "true"
Example: channel-only=true

If true, limit to only to Channels.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Agents/Sales Channels

401

Unauthorized Access

get /agents

Sandbox

https://api.uat.ibexresdev.com/agents

Production

https://api.ibexres.com/agents

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "agents",
      • "id": "merlinhotel",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/agents?page=1",
    • "first": "/agents?page=1",
    • "next": "/agents?page=2",
    • "last": "/agents?page=5"
    }
}

Get Agent

Fetch a single agent based on the agent ID

path Parameters
agent_id
required
string
Example: greenhouse
query Parameters
include
string
Value: "sellingGroup"

Responses

200

Returns a single Agent Object if found

401

Unauthorized Access

404

Not Found

get /agents/{agent_id}

Sandbox

https://api.uat.ibexresdev.com/agents/{agent_id}

Production

https://api.ibexres.com/agents/{agent_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "agents",
    • "id": "merlinhotel",
    • "attributes":
      {
      • "name": "Agent Name",
      • "note": "Some notes about the agent",
      • "userCode": "ABC123",
      • "contacts":
        {
        },
      • "addresses":
        {
        },
      • "policies":
        {
        },
      • "rules":
        {
        },
      }
    }
}

List Channels

Fetch a paginated list of agents/sales channels. (This is an alias of List Agents).

query Parameters
agent-only
string Nullable
Value: "true"
Example: agent-only=true

If true, limit to only regular Agents.

channel-only
string Nullable
Value: "true"
Example: channel-only=true

If true, limit to only to Channels.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Agents/Sales Channels

401

Unauthorized Access

get /channels

Sandbox

https://api.uat.ibexresdev.com/channels

Production

https://api.ibexres.com/channels

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "channels",
      • "id": "bcom",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/channels?page=1",
    • "first": "/channels?page=1",
    • "next": "/channels?page=2",
    • "last": "/channels?page=5"
    }
}

Get Channel

Fetch a single channel based on the channel ID

path Parameters
channel_id
required
string
Example: bcom
query Parameters
include
string
Value: "sellingGroup"

Responses

200

Returns a single Channel Object if found

401

Unauthorized Access

404

Not Found

get /channels/{channel_id}

Sandbox

https://api.uat.ibexresdev.com/channels/{channel_id}

Production

https://api.ibexres.com/channels/{channel_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "channels",
    • "id": "bcom",
    • "attributes":
      {
      • "name": "Channel Name",
      • "note": "Some notes about the channel",
      • "userCode": null,
      • "contacts":
        {
        },
      • "addresses":
        {
        },
      • "policies":
        {
        },
      • "rules":
        {
        },
      • "isChannelAgent": true
      }
    }
}

Companies

Sales Channels / Agents / Companies all extend from the same base structure, and can typically be used interchangeable in places where an agentID is required (such as making a booking).

The differences between the three are in how they're used.

  • Sales Channel (Agent that's Channel Based)

    • Represents an external party that connects to iBex via another API (such as Booking.com or Expedia).
  • Agents

    • Represent a person who is able to book on behalf of customers, with potentially differing rates/availability.
  • Companies

    • Represents a collection of customers, with potentially differing rates/availability.

List Companies

Fetch a paginated list of companies.

query Parameters
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of Companies

401

Unauthorized Access

get /companies

Sandbox

https://api.uat.ibexresdev.com/companies

Production

https://api.ibexres.com/companies

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "companies",
      • "id": "marksman",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/companies?page=1",
    • "first": "/companies?page=1",
    • "next": "/companies?page=2",
    • "last": "/companies?page=5"
    }
}

Get Company

Fetch a single company based on the company ID

path Parameters
channel_id
required
string
Example: bcom
query Parameters
include
string
Value: "sellingGroup"

Responses

200

Returns a single company Object if found

401

Unauthorized Access

404

Not Found

get /companies/{company_id}

Sandbox

https://api.uat.ibexresdev.com/companies/{company_id}

Production

https://api.ibexres.com/companies/{company_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "companies",
    • "id": "marksman",
    • "attributes":
      {
      • "name": "Marksman School",
      • "note": "Some notes about the company",
      • "userCode": "ABC123",
      • "contacts":
        {
        },
      • "addresses":
        {
        },
      • "policies":
        {
        },
      • "rules":
        {
        },
      }
    }
}

Customers

Customers are also known as Lead Guests in a booking. A customer can be attached to multiple bookings & invoices.

To create a customer there must be a minimum of identifyable information provided. A last name and one other contact field such as address, email or phone number.

If no identifyable information is provided, the customer details will be held against the booking, but they will not appear in the customer list and will not have a customer ID.

List Customers

Fetch a paginated list of customers.

query Parameters
email
required
string
Example: email=julie@example.com

If searching by any of the search fields, the email must be provided. Otherwise email can be left out.

last-name
string
Example: last-name=Jetson

Must be used in conjunction with the email address.

first-name
string
Example: first-name=Julie

Must be used in conjunction with the email address.

phone
string
Example: phone=12345789

Must be used in conjunction with the email address.

mobile
string
Example: mobile=123456789

Must be used in conjunction with the email address.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of customers

400

Bad Request

401

Unauthorized Access

get /customers

Sandbox

https://api.uat.ibexresdev.com/customers

Production

https://api.ibexres.com/customers

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "customers",
      • "id": 27,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/customers?page=1",
    • "first": "/customers?page=1",
    • "next": "/customers?page=2",
    • "last": "/customers?page=5"
    }
}

Create Customer

Create a new customer. Please note when creating a new customer you must include their last-name and at least one of the following items [email, phone, mobile]. Some accounts may also have certain requirements for what fields they consider compulsory. Please check in iBex under Account > Booking Fields Config to see which fields could also be required.

Request Body schema: application/json
title
string

Short title of the guest.

first-name
string

First name of the guest.

last-name
string

Family name of the guest.

phone
string

Phone number.

mobile
string

Mobile phone number.

fax
string

Fax number.

email
string

Contact email address. Reservation confirmation emails will be sent here.

address
object
newsletter
boolean

Whether or not this user consents to being contacted for marketing purposes.

notes-ref
string

Notes that are attached to the customer.

dob
date

The date of birth of the guest.

vehicle-reg
string

The vehicle registration plate code of the Vehicle.

memberships
Array of int Nullable

A collection of IDs of any memberships this customer holds.

Responses

200

Returns the newly created Customer

400

Bad Request. Failed validation / could not be processed.

401

Unauthorized Access

post /customers

Sandbox

https://api.uat.ibexresdev.com/customers

Production

https://api.ibexres.com/customers

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "title": "Mrs",
  • "first-name": "Jane",
  • "last-name": "Jetson",
  • "phone": "123-456-789",
  • "mobile": "123-456-789",
  • "fax": "123-456-789",
  • "email": "jane@example.com",
  • "address":
    {
    • "street": "123 Hogwarts Street",
    • "suburb": "Forbidden Forest",
    • "city": "London",
    • "post-code": 4022,
    • "country": 108
    },
  • "newsletter": true,
  • "notes-ref": "string",
  • "dob": "1988-07-07T00:00:00.000Z",
  • "vehicle-reg": "WR1111",
  • "memberships":
    [
    • null
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "customers",
    • "id": 27,
    • "attributes":
      {
      • "title": "Mr",
      • "first-name": "Walter",
      • "last-name": "Jones",
      • "gender": "Male",
      • "date-of-birth": "1914-02-19",
      • "contacts":
        {
        },
      • "address":
        {
        },
      • "notes": "Private Notes the customer cannot see",
      • "notes-alert": "This customer is in alert",
      • "notes-ref1": "Ref 1",
      • "notes-ref2": "Ref 2",
      • "vehicle-reg": "ABC123456",
      • "driver-license": "ABC123456",
      • "passport-number": "ABC123456",
      • "subscribed-to-newsletter": false,
      • "is-vip": true,
      • "is-alerted": true,
      • "is-private": false,
      • "balance": 0,
      • "invoice-balance": 0,
      • "credit-card-held": null
      }
    }
}

Get Customer

Load a single customer

path Parameters
customer_id
required
int
Example: 1234

Responses

200

Returns a single Customer Object if found

401

Unauthorized Access

404

Not Found

get /customers/{customer_id}

Sandbox

https://api.uat.ibexresdev.com/customers/{customer_id}

Production

https://api.ibexres.com/customers/{customer_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "customers",
    • "id": 27,
    • "attributes":
      {
      • "title": "Mr",
      • "first-name": "Walter",
      • "last-name": "Jones",
      • "gender": "Male",
      • "date-of-birth": "1914-02-19",
      • "contacts":
        {
        },
      • "address":
        {
        },
      • "notes": "Private Notes the customer cannot see",
      • "notes-alert": "This customer is in alert",
      • "notes-ref1": "Ref 1",
      • "notes-ref2": "Ref 2",
      • "vehicle-reg": "ABC123456",
      • "driver-license": "ABC123456",
      • "passport-number": "ABC123456",
      • "subscribed-to-newsletter": false,
      • "is-vip": true,
      • "is-alerted": true,
      • "is-private": false,
      • "balance": 0,
      • "invoice-balance": 0,
      • "credit-card-held": null
      }
    }
}

Edit Customer

Edit an existing customer

path Parameters
customer_id
required
int
Example: 1234
Request Body schema: application/json
title
string

Short title of the guest.

first-name
string

First name of the guest.

last-name
string

Family name of the guest.

phone
string

Phone number.

mobile
string

Mobile phone number.

fax
string

Fax number.

email
string

Contact email address. Reservation confirmation emails will be sent here.

address
object
newsletter
boolean

Whether or not this user consents to being contacted for marketing purposes.

notes-ref
string

Notes that are attached to the customer.

dob
date

The date of birth of the guest.

vehicle-reg
string

The vehicle registration plate code of the Vehicle.

memberships
Array of int Nullable

A collection of IDs of any memberships this customer holds.

Responses

200

Returns the updated Customer

401

Unauthorized Access

404

Not Found

patch /customers/{customer_id}

Sandbox

https://api.uat.ibexresdev.com/customers/{customer_id}

Production

https://api.ibexres.com/customers/{customer_id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "title": "Mrs",
  • "first-name": "Jane",
  • "last-name": "Jetson",
  • "phone": "123-456-789",
  • "mobile": "123-456-789",
  • "fax": "123-456-789",
  • "email": "jane@example.com",
  • "address":
    {
    • "street": "123 Hogwarts Street",
    • "suburb": "Forbidden Forest",
    • "city": "London",
    • "post-code": 4022,
    • "country": 108
    },
  • "newsletter": true,
  • "notes-ref": "string",
  • "dob": "1988-07-07T00:00:00.000Z",
  • "vehicle-reg": "WR1111",
  • "memberships":
    [
    • null
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "customers",
    • "id": 27,
    • "attributes":
      {
      • "title": "Mr",
      • "first-name": "Walter",
      • "last-name": "Jones",
      • "gender": "Male",
      • "date-of-birth": "1914-02-19",
      • "contacts":
        {
        },
      • "address":
        {
        },
      • "notes": "Private Notes the customer cannot see",
      • "notes-alert": "This customer is in alert",
      • "notes-ref1": "Ref 1",
      • "notes-ref2": "Ref 2",
      • "vehicle-reg": "ABC123456",
      • "driver-license": "ABC123456",
      • "passport-number": "ABC123456",
      • "subscribed-to-newsletter": false,
      • "is-vip": true,
      • "is-alerted": true,
      • "is-private": false,
      • "balance": 0,
      • "invoice-balance": 0,
      • "credit-card-held": null
      }
    }
}

Extras

An extra is some additional item to a booking that's not the room reservation. It can be a physical item such as a newspaper, or a fee such as a credit card fee.

Extras may be value based (such as $50 per person) or percentage based (10% of the room reservation's value).

Extras may be attached to either the booking directly, or to a specific room reservation.

List Extras

Fetch a paginated list of extras. Can optionally include custom fields & category information.

query Parameters
include
string
Enum: "categories" "customFields" "photos"
Example: include=categories,photos

Expand the response with category, photo or custom field information. Comma deliminated.

status
string
Enum: "active" "inactive" "all"
Example: status=active

Show extras based on it's status.

reporting-group
int
Example: reporting-group=1234

Show extras belonging to the given reporting group Id.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of extras

401

Unauthorized Access

get /extras

Sandbox

https://api.uat.ibexresdev.com/extras

Production

https://api.ibexres.com/extras

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "extras",
      • "id": 36,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/extras?page=1",
    • "first": "/extras?page=1",
    • "next": "/extras?page=1",
    • "last": "/extras?page=1"
    }
}

Get Extra

Load a single extra

path Parameters
extra_id
required
int
Example: 1234
query Parameters
include
string
Enum: "categories" "customFields" "photos"
Example: include=categories,photos

Expand the response with category, photo or custom field information. Comma deliminated.

Responses

200

Returns a single extra Object if found

401

Unauthorized Access

404

Not Found

get /extras/{extra_id}

Sandbox

https://api.uat.ibexresdev.com/extras/{extra_id}

Production

https://api.ibexres.com/extras/{extra_id}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "extras",
    • "id": 36,
    • "attributes":
      {
      • "valid-for-adults": true,
      • "valid-for-children": true,
      • "valid-for-infants": false,
      • "name": "breakf",
      • "marketing-name": "Breakfast",
      • "description": "Morning breakfast",
      • "chargeable-to-room": true,
      • "chargeable-to-booking": false,
      • "max-periods": null,
      • "tax-code": null,
      • "charge-method": "/ person / day",
      • "max-per-booking": null,
      • "non-refundable": false,
      • "mandatory-front-screen": false,
      • "mandatory-all": false,
      • "show-unavailable": false,
      • "available-with-public-bookings": true,
      • "available-for-public-extras-only-sales": true,
      • "agent-commissionable": false,
      • "prevent-past-bookings": false,
      • "cost-of-sale": false,
      • "valid-for-properties":
        [
        ],
      • "included-rates": [ ],
      • "excluded-rates": [ ],
      • "display-order": 100,
      • "enabled": true,
      • "housekeeping-related": false,
      • "commission-type": 0,
      • "individual-sale": false
      }
    }
}

Pricing Multiple Extras

Fetch the prices for multiple extras at a time

query Parameters
extra_id
required
Array of integers
Example: extra_id=123,456
from
required
string <date>
Example: from=2020-10-01

A start date to look at prices from. There are some restrictions to the date ranges, including:

  • Date formats must be YYYY-MM-DD
  • To must be greater than From
  • Cannot go further than 1 week prior today's date
  • Cannot go more than 3 years out from today's date
  • Cannot load more than 100 days at a time
to
required
string <date>
Example: to=2020-10-31

A end date to look at prices until.

Responses

200

Returns a selection of prices

400

Bad Request. Failed validation / could not be processed.

401

Unauthorized Access

404

Not Found

get /extras/pricing

Sandbox

https://api.uat.ibexresdev.com/extras/pricing

Production

https://api.ibexres.com/extras/pricing

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "prices":
    {
    • "12345":
      {
      • "2020-10-10": 152,
      • "2020-10-11": 152,
      • "2020-10-12": 152,
      • "2020-10-13": 250,
      • "2020-10-14": 250,
      • "2020-10-15": 250,
      • "2020-10-16": 250
      },
    • "12346":
      {
      • "2020-10-10": 50,
      • "2020-10-11": 50,
      • "2020-10-12": 50,
      • "2020-10-13": 50,
      • "2020-10-14": 75,
      • "2020-10-15": 75,
      • "2020-10-16": 50
      }
    },
  • "dates":
    [
    • "2020-10-10",
    • "2020-10-11",
    • "2020-10-12",
    • "2020-10-13",
    • "2020-10-14",
    • "2020-10-15",
    • "2020-10-16"
    ]
}

Exclusions

Unit exclusion is some units excluded for sale for a specific date or date range either from just online sales or for all sales. Unit exclusions can be Full exclusions or Web exclusions. A Full Exclusion means that no booking can be made in that unit. A Web Exclusion means that no online booking can be made for that unit but it can still be booked manually (by you).

List Exclusions

Fetch a list of exclusions of the given property ID in date range. Date range should not be more than 30 days.

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
from
required
string
Example: from=2020-10-01

This is in the format of YYYY-MM-DD cannot be more than 30 days before the date to.

to
required
string
Example: to=2020-10-30

This is in the format of YYYY-MM-DD cannot be more than 30 dates after the date from.

unit_ids
array
Example: unit_ids=1234,5678,9012

By default the API will return all unit exclusions - if this is included only these specific unit ids will be queried.

Responses

200

Returns a collection of unit exclusions

400

Validation Error

401

Unauthorized Access

get /properties/{property_id}/exclusions

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/exclusions

Production

https://api.ibexres.com/properties/{property_id}/exclusions

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "unit_exclusion",
      • "id": 1234567,
      • "attritubes":
        {
        }
      }
    ]
}

Gate Control

A basic list of visitors who have access to gates within gate control. Gate Control is an additional iBex feature and if not available, will return an authorised message.

List Visitors

Return a list of active visitors & cards/pins for the property

path Parameters
property_id
required
int
Example: 12345

The ID of the property.

query Parameters
only_checked_in
boolean
Default: true
Example: only_checked_in=false

If true, will return only the visitors who have checked in via a booking. Otherwise will return the next three days worth of visitors, which can be filtered based on arrival field.

Responses

200

Returns the visitor objects

401

Unauthorized Access

404

Not Found

get /properties/{property_id}/gate-control

Sandbox

https://api.uat.ibexresdev.com/properties/{property_id}/gate-control

Production

https://api.ibexres.com/properties/{property_id}/gate-control

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "gate-visitor",
      • "id": 10,
      • "attributes":
        {
        }
      }
    ]
}

Locations

Properties are attached to a Country, Region & Location/Sub-Region.

Countries are pre-defined in iBex, while Regions & Sub-Regions can be defined by the operator themselves.

List Countries

Returns a list of Country items

query Parameters
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of extras

401

Unauthorized Access

get /countries

Sandbox

https://api.uat.ibexresdev.com/countries

Production

https://api.ibexres.com/countries

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "countries,",
      • "id": "1039,",
      • "attributes":
        {
        }
      },
    • {
      • "type": "countries,",
      • "id": "700,",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 2,
      • "count": 20,
      • "per_page": 2,
      • "current_page": 1,
      • "total_pages": 3
      }
    },
  • "links":
    {
    • "self": "/countries/{country_id}/regions?page=1",
    • "first": "/countries/{country_id}/regions?page=1",
    • "next": "/countries/{country_id}/regions?page=2",
    • "last": "/countries/{country_id}/regions?page=3"
    }
}

Get Country

Load a single country

path Parameters
country_id
required
int
Example: 1234

Responses

200

Returns a single country if found.

401

Unauthorized Access

404

Not Found

get /countries/{country_id}

Sandbox

https://api.uat.ibexresdev.com/countries/{country_id}

Production

https://api.ibexres.com/countries/{country_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "countries",
    • "id": 709,
    • "attributes":
      {
      • "name": "Bahamas",
      • "display-weight": 1,
      • "iso":
        {
        }
      }
    }
}

List Regions

Returns a list of Region items for the Country

Responses

200

Returns a collection of regions

401

Unauthorized Access

get /countries/{country_id}/regions

Sandbox

https://api.uat.ibexresdev.com/countries/{country_id}/regions

Production

https://api.ibexres.com/countries/{country_id}/regions

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "country-regions",
      • "id": 55,
      • "attributes":
        {
        }
      },
    • {
      • "type": "country-regions",
      • "id": 136,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 2,
      • "count": 20,
      • "per_page": 2,
      • "current_page": 1,
      • "total_pages": 3
      }
    },
  • "links":
    {
    • "self": "/countries/{country_id}/regions?page=1",
    • "first": "/countries/{country_id}/regions?page=1",
    • "next": "/countries/{country_id}/regions?page=2",
    • "last": "/countries/{country_id}/regions?page=3"
    }
}

List Sub-Regions

Returns a list of Sub-Region items for the Region

Responses

200

Returns a collection of sub-regions

401

Unauthorized Access

get /countries/{country_id}/regions/{region_id}/sub-regions

Sandbox

https://api.uat.ibexresdev.com/countries/{country_id}/regions/{region_id}/sub-regions

Production

https://api.ibexres.com/countries/{country_id}/regions/{region_id}/sub-regions

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "country-sub-regions",
      • "id": 144,
      • "attributes":
        {
        }
      },
    • {
      • "type": "country-sub-regions",
      • "id": 145,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 2,
      • "count": 20,
      • "per_page": 2,
      • "current_page": 1,
      • "total_pages": 3
      }
    },
  • "links":
    {
    • "self": "/countries/{country_id}/regions/{region_id}/sub-regions?page=1",
    • "first": "/countries/{country_id}/regions/{region_id}/sub-regions?page=1",
    • "next": "/countries/{country_id}/regions/{region_id}/sub-regions?page=2",
    • "last": "/countries/{country_id}/regions/{region_id}/sub-regions?page=3"
    }
}

Memberships

The memberships system allows a Customer to hold a special type of status that adds discounts to bookings when redeemed. A member is typically an extension of a Customer record.

Each type of membership can have rules about redemption - it might require some validation or authentication.

When purchasing, renewing or redeeming a membership, a booking is used/created, with an extra representing the action taking place. These are known as membership extras and should only be used for their specific membership.

List Membership Types

Fetch a paginated list of membership types.

A membership type is also just known as a membership or membership category. It's a specific way a customer can get discounts. An account can have multiple membership systems, and a customer may be a member of any of them.

query Parameters
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of membership types

401

Unauthorized Access

get /memberships

Sandbox

https://api.uat.ibexresdev.com/memberships

Production

https://api.ibexres.com/memberships

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "memberships",
      • "id": "163",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 1,
      • "count": 1,
      • "per_page": 20,
      • "current_page": 1,
      • "total_pages": 1
      }
    },
  • "links":
    {
    • "self": "/memberships?page=1",
    • "first": "/memberships?page=1",
    • "last": "/memberships?page=1"
    }
}

Get Membership Type

Load a single membership type.

path Parameters
membership_type_id
int
Example: 1234

The ID of the membership type

Responses

200

Returns a collection of membership types

401

Unauthorized Access

get /memberships/{membership_type_id}

Sandbox

https://api.uat.ibexresdev.com/memberships/{membership_type_id}

Production

https://api.ibexres.com/memberships/{membership_type_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "memberships",
    • "id": "163",
    • "attributes":
      {
      • "name": "VIP Membership",
      • "description": "The VIP membership entitles you to 12.5% discount on your accommodation.",
      • "created-date": "2020-03-01 21:23:14",
      • "max-discount": 150,
      • "validation":
        {
        },
      • "redemption-extra-id": 29128,
      • "purchase-extras":
        [
        ],
      • "renewal-extras":
        [
        ]
      }
    }
}

Validate Membership

Validate a specific membership based on the provided credentials. If successful the memeber & customer IDs will both be returned.

path Parameters
membership_type_id
int
Example: 1234

The ID of the membership type

Request Body schema: application/json
primary-validator
required
string

The value of the primary validator. The actual required value depends on the validator.primary field in the membership type.

secondary-validator
string

The value of the secondary validator. The actual required value depends on the validator.secondary field in the membership type.

Responses

200

Returns the validation response - valid or invalid

401

Unauthorized Access

422

Validation Error

post /memberships/{membership_type_id}/validate

Sandbox

https://api.uat.ibexresdev.com/memberships/{membership_type_id}/validate

Production

https://api.ibexres.com/memberships/{membership_type_id}/validate

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{
  • "primary-validator": 123456,
  • "secondary-validator": "jane@example.com"
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "valid": true,
  • "member-id": 1234,
  • "customer-id": 5678
}

List Members

Fetch a paginated list of members.

A member is a customer who blongs to a specific membership type.

query Parameters
include
string
Value: "customers"
Example: include=customers

Expand the response with customer entry for each member.

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of members

401

Unauthorized Access

get /memberships/{membership_type_id}/members

Sandbox

https://api.uat.ibexresdev.com/memberships/{membership_type_id}/members

Production

https://api.ibexres.com/memberships/{membership_type_id}/members

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "members",
      • "id": "6909",
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 1,
      • "count": 1,
      • "per_page": 20,
      • "current_page": 1,
      • "total_pages": 1
      }
    },
  • "links":
    {
    • "self": "/memberships/{membership_type_id}/members?page=1",
    • "first": "/memberships/{membership_type_id}/members?page=1",
    • "last": "/memberships/{membership_type_id}/members?page=1"
    }
}

Payments

Payments are records of financial transactions. They are polymorphic and associated with either a customer, a booking or a invoice. This is handled by the invoice-id and booking-id fields.

  1. If invoice-id is not null: The payment belongs to the invoice
  2. If booking-id is not null and invoice-id is null: The payment belongs to the booking
  3. If booking-id is null and invoice-id is null: The payment belongs to the customer

List Payments

Fetch a paginated list of payments.

query Parameters
page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of payments

401

Unauthorized Access

get /payments

Sandbox

https://api.uat.ibexresdev.com/payments

Production

https://api.ibexres.com/payments

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "payments",
      • "id": 123456789,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/payments?page=1",
    • "first": "/payments?page=1",
    • "next": "/payments?page=2",
    • "last": "/payments?page=5"
    }
}

Add Payment

Add a payment. Currently only payments against bookings are supported.

Request Body schema: application/json
amount
required
float

The amount that was taken as a deposit/payment.

booking-id
required
int

The booking to add a payment against

reference
string

A description of the amount. For example, "Booking deposit".

hold
boolean

Whether this deposit should be marked as "held" - as in a reference but not accepted yet.

method
string

One of the payment methods or blank.

Responses

200

Returns a single payment object if successful

401

Unauthorized Access

404

Not Found

422

Validation Error

post /payments

Sandbox

https://api.uat.ibexresdev.com/payments

Production

https://api.ibexres.com/payments

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "booking-id": null,
  • "amount": 50.25,
  • "reference": "Payment via Kiosk",
  • "hold": false,
  • "method": "Cash"
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "payments",
      • "id": 123456789,
      • "attributes":
        {
        }
      }
    ]
}

Update Payment

Update part of a payment. Only the fields that are changing need to be included, otherwise don't include the key/value.

path Parameters
payment_id
required
int
Example: 1234

The ID of the payment

Request Body schema: application/json
booking-id
int

The booking to add a payment against, if changing.

amount
float

The amount that was taken as a deposit/payment, if changing.

reference
string

A description of the amount. For example, "Booking deposit", if changing.

hold
boolean

Whether this deposit should be marked as "held" - as in a reference but not accepted yet, if changing.

method
string

One of the payment methods, if changing.

Responses

200

Returns a single payment object if successful

401

Unauthorized Access

404

Not Found

422

Validation Error

patch /payments

Sandbox

https://api.uat.ibexresdev.com/payments

Production

https://api.ibexres.com/payments

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "booking-id": 123456789,
  • "amount": 50.25,
  • "reference": "Payment via Kiosk",
  • "hold": false,
  • "method": "Cash"
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "payments",
      • "id": 123456789,
      • "attributes":
        {
        }
      }
    ]
}

Delete Payment

Delete a payment.

path Parameters
payment_id
required
int
Example: 1234

The ID of the payment

Responses

202

Successful, no content returned.

401

Unauthorized Access

404

Not Found

405

Method Not Allowed

delete /payments

Sandbox

https://api.uat.ibexresdev.com/payments

Production

https://api.ibexres.com/payments

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "errors":
    [
    • {
      • "code": "401",
      • "title": "Unauthorized"
      }
    ]
}

Get Payment

Get a single payment record by ID

path Parameters
payment_id
required
int
Example: 1234

The ID of the payment

Responses

200

Returns a single payment record

401

Unauthorized Access

get /payments/{payment-id}

Sandbox

https://api.uat.ibexresdev.com/payments/{payment-id}

Production

https://api.ibexres.com/payments/{payment-id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "payments",
    • "id": 123456789,
    • "attributes":
      {
      • "id": 123456789,
      • "amount": 52.55,
      • "currency": "NZD",
      • "reference": "Paid in person",
      • "hold": false,
      • "booking-id": 123456789,
      • "invoice-id": 123456,
      • "method": 123456,
      • "pay-date": "2020-02-24T00:00:00.000Z",
      • "pay-time": "15:30"
      }
    },
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 10,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 5
      }
    },
  • "links":
    {
    • "self": "/payments/{payment_id}?page=1",
    • "first": "/payments/{payment_id}?page=1",
    • "next": "/payments/{payment_id}?page=2",
    • "last": "/payments/{payment_id}?page=5"
    }
}

Promo Codes

Promo Codes are a type of discount code that can be used against bookings. The code itself is tied to an extra, and then that extra can be added to a booking to redeem the relevant discount.

These endpoints allow existing promo codes to be looked up & validated. If validated, the relevant extras are returned which can then be added when making a booking.

Promo codes do not automatically redeem themselves, you must add their associated extra to the booking when creating the booking. It can be redeemed subsequently by calling the Add Extras endpoint for a booking.

This is an additional feature to iBex, if the account does not have access to it these endpoints will return unauthorised.

List Promo Codes

Fetch a paginated list of promo codes.

query Parameters
include
string
Value: "promoExtras"
Example: include=promoExtras

Include the extra name with the promo code call

page[number]
int >= 1
Default: 1
Example: page[number]=3
page[size]
int [ 1 .. 100 ]
Default: 20
Example: page[size]=50

The number of items per page to load. Larger loading will take longer, and it maxes out at 100.

Responses

200

Returns a collection of promo codes

401

Unauthorized Access

get /promo-codes

Sandbox

https://api.uat.ibexresdev.com/promo-codes

Production

https://api.ibexres.com/promo-codes

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "data":
    [
    • {
      • "type": "promo-code",
      • "id": 23,
      • "attributes":
        {
        }
      }
    ],
  • "meta":
    {
    • "pagination":
      {
      • "total": 50,
      • "count": 2,
      • "per_page": 10,
      • "current_page": 1,
      • "total_pages": 1
      }
    },
  • "links":
    {
    • "self": "/promo-codes?page=1",
    • "first": "/promo-codes?page=1",
    • "next": "/promo-codes?page=1",
    • "last": "/promo-codes?page=1"
    }
}

Get Promo Code

Load a single promo code

path Parameters
promo_code_id
required
int
Example: 1234

Responses

200

Returns a single promo code object if found

401

Unauthorized Access

404

Not Found

get /promo-codes/{promo_code_id}

Sandbox

https://api.uat.ibexresdev.com/promo-codes/{promo_code_id}

Production

https://api.ibexres.com/promo-codes/{promo_code_id}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "data":
    {
    • "type": "promo-code",
    • "id": 23,
    • "attributes":
      {
      • "prompt": "This discount is only for members",
      • "description": "Special discount for members",
      • "title": "Discount",
      • "codes":
        {
        },
      • "enabled": true
      }
    }
}

Validate Promo Code

Accepts a specific promo code, and then if valid will return the promo code ID & associated extra ID.

Request Body schema: application/json
promo_code
required
string

The specific promo code value entered by the guest.

Responses

200

Returns the validation response - valid or invalid

401

Unauthorized Access

post /promo-codes/validate

Sandbox

https://api.uat.ibexresdev.com/promo-codes/validate

Production

https://api.ibexres.com/promo-codes/validate

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "promo_code": "ABC123"
}

Response samples

Content type
application/vnd.ibex.v1+json
Example
Copy
Expand all Collapse all
{
  • "valid": true,
  • "promo-id": 1234,
  • "extra-id": 5678
}

Housekeeping

Housekeeping API

Get housekeeping unit status

Loads housekeeping unit status

query Parameters
units
required
array <= 50 items
Example: units=123,456,789

Comma delimited string of unit ids

Responses

200

Returns an object with unit ids as the key and status as the value

400

Bad Request. Failed validation / could not be processed

401

Unauthorized Access

404

Not Found

get /housekeeping/unit-status

Sandbox

https://api.uat.ibexresdev.com/housekeeping/unit-status

Production

https://api.ibexres.com/housekeeping/unit-status

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "123": "unknown",
  • "456": "done",
  • "789": "not-done"
}

Get all housekeeping unit status

Loads all housekeeping unit status

Responses

200

Returns an object with unit ids as the key and status as the value

400

Bad Request. Failed validation / could not be processed

401

Unauthorized Access

404

Not Found

get /housekeeping/unit-status/all

Sandbox

https://api.uat.ibexresdev.com/housekeeping/unit-status/all

Production

https://api.ibexres.com/housekeeping/unit-status/all

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "123": "unknown",
  • "456": "done",
  • "789": "not-done"
}

Update Housekeeping Unit Status

Updates housekeeping unit status given job ids

path Parameters
truefalse
required
string
Example: true

Value of the status to set

Request Body schema: application/json
jobs
array

Array of job ids

Responses

200
400

Bad Request. Failed validation / could not be processed

401

Unauthorized Access

404

Not Found

post /housekeeping/api/jobs/mark-as-done/{truefalse}

Sandbox

https://api.uat.ibexresdev.com/housekeeping/api/jobs/mark-as-done/{truefalse}

Production

https://api.ibexres.com/housekeeping/api/jobs/mark-as-done/{truefalse}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "jobs":
    [
    • 22,
    • 23
    ]
}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "success": true,
  • "http_code": 200,
  • "data": [ ]
}

Generate Jobs by date

Will generate jobs for the given date

path Parameters
date
required
string
Example: 2021-03-18

Date that jobs will be generated from (in the form 'YYYY-MM-DD')

Responses

200

Returns an array of jobs

401

Unauthorized Access

404

Not Found

get /housekeeping/api/jobs/generate/{date}

Sandbox

https://api.uat.ibexresdev.com/housekeeping/api/jobs/generate/{date}

Production

https://api.ibexres.com/housekeeping/api/jobs/generate/{date}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "success": true,
  • "http_code": 200,
  • "data":
    [
    • {
      • "id": 1,
      • "type": "booking",
      • "schedule_id": 1,
      • "account_id": 2,
      • "booking_id": 2,
      • "rule_id": 5,
      • "unit_id": 2345,
      • "category": "arrival",
      • "name": "Arrival",
      • "day": "2021-03-16",
      • "time": null,
      • "done": false,
      • "deleted": false,
      • "deferred": false,
      • "do_not_disturb": false,
      • "notes_for_housekeeping": null,
      • "notes_from_housekeeping": null,
      • "created_at": "2021-03-16 00:00:00",
      • "updated_at": "2021-03-16 00:00:00",
      • "disabled": false,
      • "manual": false,
      • "property_id": 132,
      • "priority": false
      },
    • {
      • "id": 2,
      • "type": "unit",
      • "schedule_id": 2,
      • "account_id": 3,
      • "booking_id": 3,
      • "rule_id": 6,
      • "unit_id": 2134,
      • "category": "departure",
      • "name": "Departure",
      • "day": "2021-03-19",
      • "time": null,
      • "done": false,
      • "deleted": false,
      • "deferred": false,
      • "do_not_disturb": false,
      • "notes_for_housekeeping": null,
      • "notes_from_housekeeping": null,
      • "created_at": "2021-03-12 00:00:00",
      • "updated_at": "2021-03-12 00:00:00",
      • "disabled": false,
      • "manual": false,
      • "property_id": 132,
      • "priority": false
      }
    ]
}

Generate Jobs by booking id

Will generate jobs for the given booking

path Parameters
bookingRef
required
int
Example: 1234

Booking Reference in iBex of the booking which the jobs will be based on

Responses

200

Returns an array of jobs

400

Bad Request. Failed validation / could not be processed

401

Unauthorized Access

404

Not Found

get /housekeeping/api/jobs/generate-booking-jobs/{bookingRef}

Sandbox

https://api.uat.ibexresdev.com/housekeeping/api/jobs/generate-booking-jobs/{bookingRef}

Production

https://api.ibexres.com/housekeeping/api/jobs/generate-booking-jobs/{bookingRef}

Response samples

Content type
application/vnd.ibex.v1+json
Copy
Expand all Collapse all
{
  • "success": true,
  • "http_code": 200,
  • "data":
    [
    • {
      • "id": 1,
      • "type": "booking",
      • "schedule_id": 1,
      • "account_id": 2,
      • "booking_id": 2,
      • "rule_id": 5,
      • "unit_id": 2345,
      • "category": "arrival",
      • "name": "Arrival",
      • "day": "2021-03-16",
      • "time": null,
      • "done": false,
      • "deleted": false,
      • "deferred": false,
      • "do_not_disturb": false,
      • "notes_for_housekeeping": null,
      • "notes_from_housekeeping": null,
      • "created_at": "2021-03-16 00:00:00",
      • "updated_at": "2021-03-16 00:00:00",
      • "disabled": false,
      • "manual": false,
      • "property_id": 132,
      • "priority": false
      },
    • {
      • "id": 2,
      • "type": "unit",
      • "schedule_id": 2,
      • "account_id": 3,
      • "booking_id": 3,
      • "rule_id": 6,
      • "unit_id": 2134,
      • "category": "departure",
      • "name": "Departure",
      • "day": "2021-03-19",
      • "time": null,
      • "done": false,
      • "deleted": false,
      • "deferred": false,
      • "do_not_disturb": false,
      • "notes_for_housekeeping": null,
      • "notes_from_housekeeping": null,
      • "created_at": "2021-03-12 00:00:00",
      • "updated_at": "2021-03-12 00:00:00",
      • "disabled": false,
      • "manual": false,
      • "property_id": 132,
      • "priority": false
      }
    ]
}