Content Creation
Rules to follow when creating property, room type, rate plan model, and rate plan content. For the order of steps, see the Initial Setup overview.
Using the code catalog (meta)
Code-based fields on properties and rooms (_tags and similar) must use tag codes defined by ONDA, not arbitrary strings.
- Lookup:
GET /gds/vendor/metareturns the available codes - Fetch meta and build the code mapping table before the first sync (content creation)
- Reference the same code system when setting
_tagson content updates - Establish a policy for periodically re-fetching meta so code additions and removals are picked up
Sending content in languages other than Korean
To include languages other than Korean, provide per-language values in the i18n field.
- Applies to the
i18nfield on properties, room types, rate plan models, and rate plans - Define the set of supported language codes (for example
ko,en,ja,zh) - Decide the per-language content mapping and the fallback language rule
- Apply the same rules for stripping characters that cannot be displayed
Rate plan model and rate plan structure
A rate plan is a room type combined with a rate plan model. Both room types and rate plan models live beneath a property.
typeThe number you may create differs by type, per property.
standalone: exactly one required per property; no more than onepackage: no limit
channels field on a rate plan modelThe optional channels field on POST .../rateplan-models restricts a model to specific channels.
- Omitted, it sells on all channels; supplied, it sells only on the channels listed in
channels - On channel opening, rate plan mappings are created only for the channels listed in
channels(and only where a room mapping exists and is open on that channel) - Editing it after opening
- Adding (
[131] → [131, 132]): a mapping is created for 132 only - Removing (
[131, 132] → [131]): existing mappings are kept; rate plans created afterwards get no mapping for 132 - Empty (
[131, 132] → []): mappings are created on every eligible channel
- Adding (
Property default extra adult charge (settings.extra_adult_price)
A property-level default extra adult charge, sent in the settings object of the property create or update request.
- Value: integer (KRW). Sending
nullclears it. - Legacy channels: included in occupancy-based rates on Agoda and Trip.com. Not included in per-room rates.
- Plus channels: used as the extra occupancy charge.
Content endpoints
All paths are prefixed with /gds/vendor.
| Object | Method | Path | Required fields and notes |
|---|---|---|---|
| Property | POST | /properties | Requires id and i18n (ko-kr); supports settings.extra_adult_price |
| Property | PATCH | /properties/{vendor_property_id} | Update; clear extra_adult_price with null |
| Property | GET | /properties · /{vendor_property_id} | Fallback lookup |
| Room type | POST | /properties/{vendor_property_id}/roomtypes | Requires id and i18n (ko-kr) |
| Room type | PATCH | .../roomtypes/{vendor_roomtype_id} | Update |
| Room type | GET | .../roomtypes · /{vendor_roomtype_id} | Fallback lookup |
| Rate plan model | POST | /properties/{vendor_property_id}/rateplan-models | Requires id and i18n (ko-kr); optional channels |
| Rate plan model | PATCH | .../rateplan-models/{vendor_rateplan_model_id} | Update |
| Rate plan model | GET | .../rateplan-models · /{vendor_rateplan_model_id} | Fallback lookup |
| Rate plan | POST | .../roomtypes/{vendor_roomtype_id}/rateplans | Requires id and vendor_rateplan_model_id |
| Rate plan | PATCH | .../rateplans/{vendor_rateplan_id} | Update |
| Rate plan | GET | .../rateplans · /{vendor_rateplan_id} | Fallback lookup |
When creating a rate plan, always verify that the required vendor_rateplan_model_id in the request body binds it to a rate plan model.