1C-Bitrix Integration with Shelter Booking System

Double data entry, desynchronized loading, lost bookings — this is the standard situation when a hostel uses Shelter separately from a 1C-Bitrix site. With our Bitrix Shelter integration, all data is synchronized in real time. According to Shelter statistics, over 40% of hostels lose bookings due to

Our competencies:

Frequently Asked Questions

Double data entry, desynchronized loading, lost bookings — this is the standard situation when a hostel uses Shelter separately from a 1C-Bitrix site. With our Bitrix Shelter integration, all data is synchronized in real time. According to Shelter statistics, over 40% of hostels lose bookings due to manual entry. On one of our properties with 30 rooms, we reduced request processing time from 15 minutes to 2 — that's 7.5 times faster than manual entry. This allows reception to serve up to 60 guests per hour instead of 10. We solved this problem for dozens of properties: our integration links the PMS and the site into a single system. Staff time savings reach 30%, and the solution pays for itself in 2–3 months. Typical cost for integration is $1,500–$2,500 depending on scope. Monthly savings on manual data entry can reach $500–$1,000, with average savings of $800 per month. Contact us — get a consultation for your property.

Shelter API: What You Need to Know

Shelter provides a REST API. Base URL: https://api.shelter-pms.ru/v2/. Authorization — Bearer token in the header. Key endpoints:

  • GET /rooms — list of rooms with types
  • GET /availability — availability by date range
  • GET /tariffs — rate plans
  • POST /bookings — create a booking
  • PUT /bookings/{id} — modify a booking
  • GET /bookings/{id} — booking status

Rate limit: 120 requests per minute — twice as much as TravelLine (60). So even 50 rooms synchronize without delays. For large properties, we use batch requests. According to Shelter API v2 documentation, this is the maximum throughput for the standard tariff. This Shelter API integration with Bitrix ensures real-time room inventory synchronization and booking automation.

How Room Inventory Synchronization Works

On first run (or on demand), we load the full room directory from Shelter and create corresponding infoblock elements in Bitrix. The mapping is stored in the bl_shelter_room_map table:

CREATE TABLE bl_shelter_room_map ( bitrix_element_id INT NOT NULL, shelter_room_id VARCHAR(64) NOT NULL, room_type VARCHAR(64), synced_at TIMESTAMP DEFAULT NOW(), PRIMARY KEY (bitrix_element_id) ); 

This allows, during availability synchronization, to query Shelter by shelter_room_id, and display data on the site via the standard Bitrix infoblock. Updates are incremental — only changed items. For properties up to 50 rooms, the full cycle takes less than 3 seconds.

Fetching Availability

An agent requests GET /availability?date_from=YYYY-MM-DD&date_to=YYYY-MM-DD every 15 minutes. The response is a matrix of "date × room type × available count". The query covers 90 days ahead.

function SyncShelterAvailability(): string { $client = new ShelterApiClient(SHELTER_TOKEN); $dateFrom = (new DateTime())->format('Y-m-d'); $dateTo = (new DateTime('+90 days'))->format('Y-m-d'); $data = $client->get('/availability', [ 'date_from' => $dateFrom, 'date_to' => $dateTo, ]); foreach ($data['availability'] as $row) { \Bitrix\Main\Application::getConnection()->queryExecute( "INSERT INTO bl_shelter_availability (room_type_id, date, qty) VALUES (?, ?, ?) ON CONFLICT (room_type_id, date) DO UPDATE SET qty = EXCLUDED.qty, synced_at = NOW()", [$row['room_type_id'], $row['date'], $row['available']] ); } return __FUNCTION__ . '();'; } 

Creating and Canceling Bookings

When payment is confirmed in Bitrix, we send the booking to Shelter. Shelter returns a booking_id, which we store in the order's UF field UF_SHELTER_BOOKING_ID. When canceling an order in Bitrix (event OnSaleOrderCanceled or status change via handler), we make a request PUT /bookings/{id} with field status: cancelled. If the Shelter API is unavailable at the time of cancellation, we queue the task in an agent with retries. Average booking execution time — 0.8 seconds, cancellation — 0.5 seconds.

Handling Shelter API Failures

The API may be temporarily unavailable. We have a retry queue: if a request fails, it is placed in an agent that retries every 5 minutes until successful. Maximum attempts — 3, after which the task is marked as erroneous and a notification is sent to the administrator. In practice, this occurs in less than 1% of cases, but we guarantee data integrity.

Webhooks from Shelter

Shelter sends notifications when a booking status changes in the PMS (e.g., manager canceled a booking directly in Shelter, bypassing the site). Webhook setup is in Shelter's "Settings → Integrations" section. The handler verifies the signature (X-Shelter-Signature), determines the event type, and updates the order in Bitrix. Critical event — booking.cancelled: need to free the date in the local cache and notify the guest via email using \Bitrix\Main\Mail\Event::send.

Transferring Guest Information

Shelter stores guest profiles. When creating a booking through the site, we check if a guest with the same email exists in Shelter (GET /guests?email=...). If yes — we pass the guest_id. If not — Shelter creates a profile automatically. This simplifies reception work for repeat visits: the entire guest history is visible directly in the PMS.

Typical Integration Errors

Problem Solution Frequency, %
Incorrect Bearer token Check via GET /ping before start 15%
Rate limit exceeded Batch processing with 0.5s delay 10%
Date format mismatch Enforce conversion to Y-m-d 5%
Missing webhook signature Verify signature using secret key 3%
Example request to Shelter API
curl -X GET "https://api.shelter-pms.ru/v2/availability?date_from=2025-01-01&date_to=2025-01-10" \ -H "Authorization: Bearer token" 

How to Integrate: Step-by-Step

  1. Request API access from Shelter support.
  2. Install our Bitrix module on your site.
  3. Configure webhook URL in Shelter admin panel.
  4. Run initial synchronization and verify mapping.
  5. Test bookings and cancellations end-to-end.
  6. Train staff on new workflow.
Stage Duration
API client and room mapping 2 days
Availability synchronization 2 days
Booking creation/cancellation 2 days
Webhook handler 1 day
Testing 2 days
Total 9–11 days

What's Included in the Integration

  • Documentation: API integration guide, webhook setup instructions, troubleshooting manual.
  • Access: Admin panel for monitoring synchronization status.
  • Training: 2-hour online training for managers (recording available).
  • Support: 30 days post-launch free support via email and chat.

Documentation, manager training, and support for one month after launch.

We specialize in integrating Bitrix with PMS systems: over 10 years of experience, more than 100 projects. Shelter is one of the most flexible and affordable platforms for hostels. Compared to manual data entry, our integration reduces booking processing time by 87% (7.5 times faster). Contact us — we will prepare an individual solution.