openstay/channel-manager-sdk

Public SDK for connecting channel managers with the OpenStay PMS

Maintainers

Package info

github.com/openstay-pms/channel-manager-sdk

pkg:composer/openstay/channel-manager-sdk

Statistics

Installs: 17

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-04-11 17:32 UTC

This package is auto-updated.

Last update: 2026-04-11 17:32:36 UTC


README

openstay/channel-manager-sdk is the public PHP SDK shared by OpenStay PMS and external connector implementations.

It provides the DTOs and repository abstractions used to exchange listings, availability, prices, bookings, and status updates between openstay-pms-oss and independent connector services.

Packagist: https://packagist.org/packages/openstay/channel-manager-sdk

Documentation

Installation

Until the first stable tag is released, install the development branch:

composer require openstay/channel-manager-sdk:dev-main

Namespaces

  • Api\ for channel-facing DTOs and repositories
  • PMSApi\ for PMS-facing response contracts

What the SDK covers

  • listing creation and retrieval contracts
  • availability and price synchronization
  • listing status actions such as publish, force update, deactivate, cancellation-policy sync, and photo sync
  • booking lookup, booking list polling, and booking actions such as accept, reject, and cancel

Compatibility note

The SDK exposes BookingDTO::getNetRevenue() and BookingDTO::setNetRevenue() as the neutral API for booking net revenue.

For backwards compatibility during migration, the legacy aliases below still exist:

  • BookingDTO::getPayoutAmount()
  • BookingDTO::setPayoutAmount()

New integrations should use the netRevenue naming.

Running tests

composer install
composer test

GitHub Actions runs PHPUnit on pushes and pull requests.

Publishing

  1. Push changes to the GitHub repository.
  2. Create a tag when you want a stable release.
  3. Update Packagist if auto-sync is not enabled.

Purpose in the OpenStay architecture

  • openstay-pms-oss depends on this package.
  • private or third-party connector implementations should target this package instead of coupling directly to PMS internals.
  • the package is intentionally neutral so multiple connector implementations can reuse the same contract.