Introduction

Get started with BookingBnb, the only travel platform created to join all the booking engines used by hosts, in order to encourage direct bookings all over the World.

Quick start

This chapter is an introduction to the BookingBnb's API system. The system is developed with the XML-RPC protocol (check the next section for a better description of the protocol).

To get started with the BookingBnb API connection, you must become our partner. If you are not our partner yet, please, visit our partners section or send an email to partners@bookingbnb.com

For partners, the URL to acquire the token to access the BookingBnb function is http://api.bookingbnb.com/xrws/ (and notice the final slash: it matters).

Protocol

Many libraries are available for almost all programming languages. Those libraries often allow a very easy development, by completely hiding the XML handling, which is built and sent by the libraries without the need to care about xml formatting.

To better understand this concept, check the following examples:


# python
>>> import xmlrpclib
>>> s=xmlrpclib.Server(url)
>>> res, tok=s.AcquireToken(user, pwd)

/* php */
<?php
  include("xmlrpc.inc");
  $server = new xmlrpc_client($url);
  $args= array(new xmlrpcval($user, 'string'), new xmlrpcval($pass, 'string'));
  $message = new xmlrpcmsg('AcquireToken', $args);
  $struct = $server->send($message)->value();
?>

/** java /*
public String getToken(String username, String password) throws Exception {
  Vector params = new Vector();
  params.addElement(username);
  params.addElement(password);
  Object[] objects = (Object[]) xmlRpcClient.execute(config, "AcquireToken", params);
  return (String) objects[1];
}

# ruby
require 'xmlrpc/client'
token_data = server.call("AcquireToken", @config['account_code'], @config['password'])
status = token_data[0]
@token = token_data[1]

Once you get the token, you are able to access the BookingBnb functions listed in this API Documentation.

Development and debugging

During the first steps of the development, rely on our collaboration. This is -obviously- the moment when we provide more support to our partners. If you need help, for example because you can't succesfully call a function, it's very important to send us the XML you're forwarding to our servers.

If you use high level libraries, you will probably skip the XML production. However, each library, given a call and its arguments, allows to produce the related xml (instead of automatically producing it under the hood and sending it to the servers).

So, please, as one of your first step, try to understand how to use your library to produce XML without sending it, so that we will be able to help you in the case you will encounter issues.