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
- Request API access from Shelter support.
- Install our Bitrix module on your site.
- Configure webhook URL in Shelter admin panel.
- Run initial synchronization and verify mapping.
- Test bookings and cancellations end-to-end.
- 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.







