Airbnb has developed a complex payment and
financial accounting system which operates in roughly 190 countries, with more
than 70 currencies and 20 processors. The firm has experienced such a
significant transaction growth thanks to also an increase, on the platform, of
new features and products. However, since the beginning, online payments were
made straight between lodger and the landlord of the property. In fact, Airbnb
originally implemented a
reasonable solution which allowed guests
to pay via PayPal and hosts instead to collect a check in the mail. Despite of
this, users started demanding another way to process own payments thus, the
firm set up partnerships to use credit cards.
The limitations of Airbnb payment system
came out soon mostly because of the absence of real framework for integrating
processors and the growing complexity of transactions. For instance, those
european guests in search of a good deal in the US would have been charged in
dollars with an additional conversion fee even to pay, while for hosts outside
the US, receiving dollars in a PayPal account wasn’t always convenient due to
the presence of multiple payment networks. Moreover, in case an online
reservation was changed, the process to recalculate the price, fees and
additional taxes such as VAT in Europe became difficult to drive effectively.
The constant variation of the production
data brought initially Airbnb to adopt a MySQL data pipeline financial system
that provided a detailed financial reporting and data accuracy in order to increase the transparency of
each component of the transaction. MySQL database could capture and track
possible change to reservations and payments records.However, the system was not performing as expected due to some crucial
aspects:
SQL is adequate for lightweight data
transformation and not for elaborate data;
SQL was mainly focused on the reservation logic
instead of also supporting the product logic, hard to modify and time
consuming to test the logic of accuracy;
Validation and testing became difficult because
of the array of reports built, according to the different data, by the
financial team to get a better and comprehensive result;
Airbnb integrated new payment processors to use
with SQL increasing the code complexity and the lack of clean interfaces
around billing and payments made it difficult to introduce support for new
products and features.
Although this SQL system worked smootly at the first stage, the money
moving through the platform grew dramatically, thus, the system became
difficult to support mostly because of the continuous development of new
reporting processors and product changes.
Therefore, in order to become a worldwide leading travel company and
achieve a competitive advantage in the market, Airbnb was supposed to create a
solid and more accessible payment infrastructure.