Skip to main content

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/meta returns the available codes
  • Fetch meta and build the code mapping table before the first sync (content creation)
  • Reference the same code system when setting _tags on 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 i18n field 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.

Rules for rate plan model type

The number you may create differs by type, per property.

  • standalone: exactly one required per property; no more than one
  • package: no limit
Channel-specific rate plans — the channels field on a rate plan model

The 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

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 null clears 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.

ObjectMethodPathRequired fields and notes
PropertyPOST/propertiesRequires id and i18n (ko-kr); supports settings.extra_adult_price
PropertyPATCH/properties/{vendor_property_id}Update; clear extra_adult_price with null
PropertyGET/properties · /{vendor_property_id}Fallback lookup
Room typePOST/properties/{vendor_property_id}/roomtypesRequires id and i18n (ko-kr)
Room typePATCH.../roomtypes/{vendor_roomtype_id}Update
Room typeGET.../roomtypes · /{vendor_roomtype_id}Fallback lookup
Rate plan modelPOST/properties/{vendor_property_id}/rateplan-modelsRequires id and i18n (ko-kr); optional channels
Rate plan modelPATCH.../rateplan-models/{vendor_rateplan_model_id}Update
Rate plan modelGET.../rateplan-models · /{vendor_rateplan_model_id}Fallback lookup
Rate planPOST.../roomtypes/{vendor_roomtype_id}/rateplansRequires id and vendor_rateplan_model_id
Rate planPATCH.../rateplans/{vendor_rateplan_id}Update
Rate planGET.../rateplans · /{vendor_rateplan_id}Fallback lookup
warning

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.