Context and Challenge
The financial module is one of the most important parts of the Guesty platform. It allows users to manage all financial operations related to bookings — tracking income and expenses, managing payouts, calculating commissions and taxes, and syncing data with external systems. These features are vital for property managers who operate at scale.
However, building and maintaining such a module is a challenging task. Each OTA (e.g., Airbnb, Booking.com, Vrbo) has its own tax rules, payout structures, and commission models. Syncing financial data across channels while meeting user expectations requires strong infrastructure, business logic, and attention to detail.
Enhancing Guesty’s financial module involves a high level of complexity due to the following:
- The need for real-time updates from reservations, modifications, and cancellations.
- Ensuring data consistency across integrations.
- Supporting complex financial workflows like dynamic pricing, reverse mapping, or multi-listing fees.
- Growing workload with thousands of users customizing their accounts and setting different configurations.
Client’s Objectives
Guesty partnered with Forbytes to enhance the development of their financial module by regularly adding new features, improving existing functionality, and ensuring the system could scale reliably. Together, we aimed to achieve the following goals:
- Develop new financial features such as nightly rates, custom commissions, advanced additional fee logic, and others.
- Improve and maintain existing functionality, keeping the codebase optimized, reliable, and flexible as requirements evolve.
- Ensure performance and scalability as the volume of data and number of users continue to grow.
- Integrate seamlessly with external OTAs like Airbnb, Vrbo, and Booking.com to offer unified and accurate financial views.
How We Approached the Project
Forbytes engineers followed a collaborative and structured approach as part of Guesty’s internal development team. Here’s how we worked:
- Requirements & planning: We collaborated with Guesty’s product owners and R&D engineers to break features into development-ready tasks and understand dependencies.
- Technical design: Our team contributed to designing the system architecture, defining how each feature should be structured, how it integrates with existing services, and how to handle exceptions.
- Development: We built several financial features using modern technology and best practices in testing and code quality.
- Reverse mapping: We implemented reverse mapping for Airbnb, Booking.com, and Vrbo, enabling Guesty users to view and sync fee configurations between channels accurately.
- Integration testing: We helped to verify that changes did not affect core system performance or break critical workflows.
- Release & support: New features were delivered in iterative releases. Our team provided monitoring, bug fixes, and long-term support post-launch.
Accounting Feature Overview
Additional Fees
One of the main features we helped to design is the Additional Fees feature. It allows property managers to charge guests for extra services such as cleaning, pet stays, early check-in, and more.
These fees can be configured globally across all listings or tailored to individual listings. They can also be integrated with external booking channels, depending on each platform’s capabilities.
Image source: guesty.com
How it works:
- Users select the fee type (e.g., pet fee, beverage fee), define the fee amount, and specify how it should be calculated — per guest, per night, or per stay.
- Fees can be fixed or percentage-based and applied automatically depending on the reservation source.
- Users can sync these fees to external OTAs like Airbnb, Vrbo, and Booking.com if supported.
- Reverse mapping allows users to see how each fee appears across connected platforms, ensuring consistency in guest charges.
Guest Folio Breakdown
The Guest Folio Breakdown displays a complete financial overview for each guest’s reservation. This includes all costs, taxes, and additional fees. The feature already existed on Guesty’s platform when our software engineers joined the team.
The responsibility on Forbytes’ side was to ensure that the Guest Folio Breakdown worked seamlessly with the nightly rates breakdown. While invoice items and adjustments were already part of the existing system, our specialist implemented the necessary logic to integrate nightly rates into the folio structure.
Image source: guesty.com
Key features:
- Can be viewed by line item (e.g., accommodation, tax, pet fee) or per night, giving managers insights into how the cost is spread across a stay.
- Includes details like base price, additional services, local taxes, and discounts.
- Guesty pulls this data from OTAs or calculates it based on configured rules.
- Information is shown internally in the dashboard or via API (not visible to guests).
- Users can manually adjust specific line items when necessary.
This feature provides transparency and helps property managers with reporting, reconciliation, and compliance.
Nightly Rates
The Nightly Rates feature was designed by Forbytes’ engineers to enable Guesty’s users to break down the total reservation cost into individual nightly charges. It replaces the previous single-record booking view and supports granular financial analysis.
Image source: guesty.com
Key functionality:
- Rates are either received from OTAs (like Booking.com or Expedia) or calculated by Guesty using calendar data.
- Once confirmed, nightly rates remain fixed unless the booking channel pushes future updates.
- Managers can view rates per night or per line item, improving clarity in how fares are calculated and allowing for more precise reporting and auditing.
With the help of this feature, property managers can track performance during peak periods, adjust pricing strategies, and improve revenue forecasting.
Channel Commissions and Taxes
Managing commissions and taxes across multiple channels is a critical need of Guesty’s users. With the Channel Commissions and Taxes functionality, Guesty gives them full control over how these are configured and calculated.
Image source: guesty.com
Channel Commissions:
- Managers can define commission rates globally or at the individual listing level.
- Guesty supports pre-deducted (“channel collect”) models or manual commission entry.
- Users can configure commissions for third-party OTAs or direct booking channels like Booking Engine or Rentals United.
Taxes:
- Guesty supports multiple tax types (VAT, city tax, tourism tax) and allows for per night, per guest, or per stay setups.
- Taxes can be defined globally or per listing.
- Some channels (e.g., Airbnb, Vrbo) support limited tax syncing, while others (e.g., Expedia, Agoda) require manual tax configuration.
This feature ensures that revenue and taxes are calculated correctly regardless of where a booking originates. Forbytes’ engineers provide ongoing support to ensure the logic behind commissions and taxes remains robust, up-to-date, and aligned with the unique configurations set by property managers.
Commission Calculation
For property managers who split revenue with property owners, Commission Calculation enables dynamic and flexible revenue sharing.
Image source: guesty.com
How it works:
- Users can create custom formulas to calculate commission, owner revenue, and tax amounts.
- These formulas can be applied globally, by listing, or even per reservation.
- Guesty offers pre-built formula templates with placeholders (e.g., fare accommodation, channel commission) to simplify configuration.
This feature allows property managers to reflect complex business models without needing to calculate values manually. Forbytes’ engineers continue to support and maintain this functionality, ensuring it remains accurate, scalable, and aligned with channel-specific requirements.
Airbnb Resolution Center
The Airbnb Resolution Center (ARC) integration brings resolution data from Airbnb into Guesty automatically. Forbytes’ software engineers supported Guesty’s R&D team in the enhancement of this feature.
Image source: guesty.com
Key functionality:
- When Airbnb closes a resolution case, the final charge or refund is reflected as a separate line item in the guest folio.
- Items are synced once daily and include only closed resolutions for bookings.
- If the resolution data cannot be synced (e.g., due to listing status or account mismatch), property managers can apply manual adjustments.
- ARC entries are shown as positive or negative amounts and are visible in both the folio breakdown and payments section.
This integration helps property managers reconcile Airbnb decisions without needing to manually update reservation data.
Results and Impact
Our collaboration with Guesty delivered tangible benefits:
- Better automation of financial processes like fee syncing, nightly rates, and tax configuration.
- Clear and accurate folio views that support advanced reporting and reduce accounting errors.
- Unified fee visibility across channels, thanks to reverse mapping.
- Improved user experience, as property managers can now handle complex pricing logic with less manual work.
- Increased system performance despite rising data volume and a growing customer base.
Technology Stack
Backend: Node.js, Typescript, Nest
Frontend: React, Redux
Database: MongoDB, PostgreSQL
Test tools: Mocha, Jest, Chai, Sinon
Cloud storage: Snowflake
Cloud platform: AWS, Google Cloud
Logs/Monitoring tools: Grafana, Prometheus, AWS CloudWatch, InfluxDB, Coralogix, Kibana, Datadog
Virtualization: Docker, Nomad
Continuous integration: Circleci, Jenkins, Split.io, GitHub, Vault, Jira
Other tools: Redis, Rabbit, MQKafka
Key Takeaways and Lessons Learned
Success factors:
- Deep collaboration with Guesty teams: Our work depended on close cooperation with financial, product, and integration teams across the company.
- Reverse mapping logic: Together with Guesty, we implemented the reverse mapping logic and enabled accurate synchronization of fee and tax configurations across platforms.
- Adaptability: We adjusted quickly to new requirements, changing third-party APIs, and scaling demands.
Challenges overcome:
- System complexity: Financial features are deeply tied to accounting, pricing, and OTA data. We minimized the risk of data conflicts through thoughtful architecture and testing.
- Third-party dependencies: We successfully integrated features like the Airbnb resolution center, which required coordination and data mapping from external systems.
- Scaling with performance: As features and user counts grew, we ensured that the system remained stable and responsive.