Skip to main content

API Code Examples Unified to cURL and Authentication Guide Corrected

We have aligned the code examples and the authentication and environment guides in the API reference with how integration actually works.

Key Changes​

1. Authentication Guide Corrected (Channel API partners, please check)​

The Channel API authentication guide in the FAQ did not match the actual spec.

  • Before (incorrect): send keys in two headers, x-api-key and x-channel-key
  • After (actual spec): send your issued per-channel key in a single Authorization header
Authorization: {your_issued_key}

The Vendor API (vendor → ONDA calls) works the same way. There is no separate token issuance step (such as OAuth). The "OAuth 2.0" mention on the introduction page has also been removed.

2. Code Examples Unified to cURL​

Every reference page for the Channel API, Vendor API 1.5, and Vendor API 3.0 now shows a single cURL example.

  • Examples include the Authorization header
  • Long URLs and request bodies wrap by default, so you can read them without horizontal scrolling
  • The Send button, which sent requests to the server directly from the docs page, has been removed. Copy the cURL example and run it from your terminal or API client

3. Environment URLs Organized per API​

Environment URLs in the introduction and the FAQ are now listed per API. Previously only the Channel API URLs were listed.

APIDevelopmentProduction
Channel APIhttps://dapi.tport.devProvided by your ONDA contact after testing in the development environment
Vendor API (3.0 / 1.5)https://vendor.dapi.tport.devProvided by your ONDA contact after the contract is signed

4. Guide Cleanup​

  • The "ONDA Hub Introduction" page has been merged into the introduction page. The old URL redirects automatically
  • The Glossary page has been added to the guide menu
  • The API menus on the English site are now shown in English
  • The site theme now follows your system setting (dark/light)

Contact​

If you have any questions about API integration, please feel free to contact us:

Vendor API 3.0 - Booking Retrieval Response Expanded and Booking Delivery Documentation Corrected

Previously, some values sent through booking delivery (POST /bookings) could not be read back through booking retrieval. With this change, every item in the delivery payload also appears in the retrieval response. In addition, three field types that were documented incorrectly for booking delivery have been corrected to match the actual behaviour.

Key Changes​

1. Twelve Fields Added to the Booking Retrieval Response​

GET /gds/vendor/booking/{vendor_booking_number}

FieldTypeRequiredDescription
channel_idnumberRequiredSales channel ID (e.g. 132)
channel_namestringRequiredSales channel name
channel_booking_numberstringOptionalSales channel booking number
gds_booking_numberstringRequiredONDA Hub booking number
gds_sub_booking_numberstringRequiredONDA Hub sub-booking number (one per room within a booking)
rateplan_idstringOptionalVendor rate plan ID. Omitted for bookings with no mapping
total_amountnumberRequiredChannel-side selling price. With postpayment, the amount collected on site
net_pricenumberRequiredDeposit amount (payable to the vendor)
payment_typeprepayment | postpaymentRequiredPayment type (prepaid / pay on arrival)
special_commentstringOptionalGuest requests
visit_typewalk | carOptionalArrival method. Present only when the channel supplies it
secondary_channelstringOptionalSecondary sales channel. Present only when the channel supplies it

When an optional field has no value, the key is omitted entirely rather than set to null. Check for the presence of the key when parsing the response.

Now that the response carries three amount fields, here is what each one means:

FieldBasis
amountVendor-side amount — the per-night amounts plus any extra charges
total_amountChannel-side selling price
net_priceDeposit amount (payable to the vendor)

2. Change to the type Field in the Booking Retrieval Response​

When no value is present
Before"type": null
AfterThe key is omitted

This aligns the response with the booking delivery payload. No booking in production data lacks this value, so responses do not actually change — but if your parsing logic compares against null, please verify it.

3. Booking Delivery Documentation Corrected​

The values being sent have not changed. The documentation did not match the actual behaviour and has been corrected. If you implemented against the documentation, please verify your code.

POST /bookings

FieldDocumentation (before)Actual = documentation (now)
channel_idstring, example 'NAVER'number, example 132
total_amountstring, example '100000'number, example 100000
channel_booking_numberRequiredOptional
  • channel_id and total_amount have always been sent as numbers. Only the documented examples were wrong.
  • channel_booking_number is now optional because the key can be absent when the sales channel does not supply its own booking number.

The total_amount in PUT /bookings/{vendor_booking_number}/modify carried the same documentation error and has also been corrected to number.

Contact​

If you have any questions about API integration, please feel free to contact us:

Vendor API 3.0 Documentation Released

Documentation for Vendor API 3.0, intended for new integrations, is now available. The existing Vendor API 1.5 remains supported, and you can choose either version from the Vendor API menu at the top.

What Changed from 1.5​

Content Delivery Direction Reversed​

Previously, ONDA called the vendor API with GET to fetch content. In 3.0, vendors send content directly to ONDA.

  • Create: POST /gds/vendor/properties
  • Update: PATCH /gds/vendor/properties/{vendor_property_id}

Retrieval (GET) is kept as a fallback option.

Rate Plan Models Introduced​

A rate plan is defined as a combination of room type × rate plan model. Rate plan models are created per property. Each property must have exactly one standalone model, and there is no limit on package models.

Rate and Availability Delivery Separated​

  • Rates and business days → POST .../ari (per rate plan)
  • Availability → POST .../ari/avails (combined availability per room type)

Both calls carry values common to all channels and per-channel values (channels[]) in a single request.

Channel APIs Added​

Channel discovery, opening requests, per-channel settings, and property/room/rate plan mapping are now handled through the API.

Documentation Structure​

SectionContents
Integration guides12 chapters, from setup to channel opening, booking operations, and cancellation/refund policy
API reference38 HUB APIs + 5 vendor APIs = 43 endpoints

In the HUB API (vendor → ONDA), the vendor is the client. In the vendor API (ONDA → vendor), the vendor is the server. Booking create, confirm, modify, and cancel, as well as cancellation/refund policy lookup, are endpoints the vendor must implement.

AI Development Support​

You can download Vendor API 3.0 context files (Claude Code · Cursor · Windsurf) from the AI Tools page.

Notes​

  • Development (alpha) base URL: https://vendor.dapi.tport.dev
  • The production URL and access token are provided by your ONDA contact after the integration contract is signed

Vendor Server URL Change and API Docs UI/UX Improvements

This update changes the Vendor API development (alpha) server URL and adds an important error handling guide to the Channel Create Reservation API. Readability and visual consistency across the API reference pages have also been improved.

Key Changes​

1. Vendor API Development (alpha) Server URL Change​

The server URL for the Vendor API development (alpha) environment only has changed as follows.

  • Before: https://dapi.tport.dev
  • After: https://vendor.dapi.tport.dev

Scope: all 5 Vendor API specs (Property Creation / Property Management (Sync) / Property Management (Push) / Reservation / Other API)

2. Channel Create Reservation: 400 Error Handling Guide Added​

The top of the Channel Create Reservation API page now explains how to handle the 400 channel booking number is exist already error.

This error is returned when a reservation request with the same channel_booking_number is received more than once. Do not treat it as an immediate failure (for example, by cancelling the payment). Instead, re-check the actual reservation status as follows.

  1. Call the Check Reservation API with the received channel_booking_number (use the type=channel_booking_number query parameter)
  2. If the response contains the reservation, treat it as a successful reservation and sync your internal status
  3. If there is no reservation, it is a real failure. Proceed with your usual failure handling, such as cancelling the payment

3. API Reference Page UI/UX Improvements​

The API docs have been aligned with the ONDA design system.

  • Content-type badge: an application/json badge appears to the right of the Request / Responses headings
  • Response code tab position: aligned on the same row as the description to save vertical space
  • Collapsible nested schemas: improved spacing and animation for collapsed object and array fields
  • Schema display cleanup: REQUIRED badge placement, hiding empty examples, and preserving enum values in descriptions

Contact​

If you have any questions about API integration, please feel free to contact us:

Vendor API Error Codes Guide Added

An Error Codes page has been added to the Vendor API development guide.

When a vendor receives an API request from ONDA (ONDA Hub) and fails to process it, the vendor must respond using the standard error format defined on this page.

Key Contents​

Error Response Format​

{
"code": "4000",
"error": "No rooms available for booking"
}

Both code and error are required, and error must use the defined English message exactly as written.

Error Code List​

Twelve error codes are defined, grouped by category.

CategoryCode Range
SYSTEM_ERROR1000
AUTH_ERROR2000
VALIDATION_ERROR3000
BUSINESS_ERROR4000 – 4007
UNKNOWN_ERROR9999

BUSINESS_ERROR codes are documented together with their related endpoints (Create Reservation, Check Reservation, Cancel Reservation, Confirm Reservation), so it is clear which code to return in each situation.

For details, see the Error Codes guide.

Contact​

If you have any questions about API integration, please feel free to contact us:

AI Development Support Page Added

An "AI Tools" menu has been added to the top navigation bar. By injecting the full ONDA API documentation as context into AI development tools like Claude Code, Cursor, and Windsurf, you can receive more accurate code suggestions and API understanding.

Key Changes​

Dedicated AI Tools Page (/ai-tools)​

A dedicated page has been added where Vendor API and Channel API developers can select and download only the context files relevant to their integration scope.

Available Files​

FilePurposeFor
ONDA-VENDOR-CLAUDE.mdClaude Code contextVendor API developers
ONDA-VENDOR.mdcCursor contextVendor API developers
ONDA-VENDOR.windsurfrulesWindsurf contextVendor API developers
ONDA-CHANNEL-CLAUDE.mdClaude Code contextChannel API developers
ONDA-CHANNEL.mdcCursor contextChannel API developers
ONDA-CHANNEL.windsurfrulesWindsurf contextChannel API developers

Each file includes the common guides (Introduction, Getting Started, FAQ) along with the full set of API-specific documentation.

How to Use​

Claude Code

# Save the downloaded file to your project root
mv ~/Downloads/ONDA-VENDOR-CLAUDE.md ./CLAUDE.md
# Claude Code will automatically load the ONDA Vendor API context

Cursor

# Create the .cursor/rules/ directory and move the file
mkdir -p .cursor/rules
mv ~/Downloads/onda-vendor.mdc .cursor/rules/
# Cursor AI will automatically load the ONDA Vendor API context

Windsurf

# Save the downloaded file to your project root
mv ~/Downloads/ONDA-VENDOR.windsurfrules ./.windsurfrules
# Windsurf AI will automatically recognize the ONDA Vendor API context

Contact​

If you have any questions about API integration, please feel free to contact us:

Copy as Markdown Button Added

A "Copy as Markdown" button has been added to the top of Channel API and Vendor API documentation pages. This improvement allows developers to quickly paste API documentation content into AI assistants or Markdown editors.

Key Changes​

Copy as Markdown Button​

  • Location: Top right of Channel API / Vendor API documentation pages
  • Behavior: Clicking the button copies the current page content to the clipboard in Markdown format
  • Feedback: On successful copy, the button switches to a "Copied" state for 2 seconds before reverting

Use Cases​

You can use the copied Markdown in the following ways:

  • Paste into AI assistants like ChatGPT or Claude to ask questions about API integration
  • Save documentation content to Markdown editors like Notion or Obsidian
  • Use as reference material when writing technical documents for your development team

Scope​

  • All API documentation pages under /docs/api/channel/
  • All API documentation pages under /docs/api/vendor/

The button is not displayed on general guide pages (/docs/).

Contact​

If you have any questions about API integration, please feel free to contact us:

Channel API - Property Description Field Character Limits Specified

Maximum character limits are now clearly displayed in the descriptions fields of the Get Property Detail API, providing reference information for channel partners when displaying data in their UI.

Key Changes​

Character Limits Added​

Maximum character limits have been specified for the following 4 description fields:

FieldDescriptionMax Characters
propertyProperty introduction4,000 chars
reservationProperty reservation info4,000 chars
noticeProperty special notices4,000 chars
refundsProperty refund policy info1,000 chars

API Response Example​

descriptions:
property:
type: string
description: 숙소 소개 (최대 4000자)
reservation:
type: string
description: 숙소 예약 정보 (최대 4000자)
notice:
type: string
description: 숙소 별도 공지사항 (최대 4000자)
refunds:
type: string
description: 숙소 취환불 정책 정보 (최대 1000자)

Expected Benefits​

  • Channel partners can reference appropriate character limits when displaying data in UI
  • Prevents potential data errors during API integration
  • Improves developer experience with clearer API documentation

Contact​

If you have any questions about API integration, please feel free to contact us:

Extra Charge Guide - Room Search Criteria Improvement

The room search criteria in the Extra Charge Guide has been improved. You can now search based on maximum occupancy to find all rooms that can accommodate the total number of guests.

Key Changes​

Search Criteria Update​

ItemBeforeAfter
Search CriteriaBase OccupancyMaximum Occupancy
Search ResultsRooms matching base occupancyAll rooms with sufficient max occupancy

Search Result Examples Added​

When searching for 4 guests, rooms with maximum occupancy of 4 or more are returned:

Room TypeBase OccupancyMax OccupancySearch Result
Standard Double24✅ Included
Deluxe Triple36✅ Included
Family Room44✅ Included
Economy Double23❌ Not included

Expected Benefits​

  • More room options available to customers
  • Rooms with lower base occupancy but sufficient max occupancy are now searchable
  • Expanded sales opportunities for partners

Contact​

If you have any questions about the guide contents, please feel free to contact us:

Channel API Development Guide Improvements

The Channel API Development Guide documentation has been improved. We have enhanced the guides based on frequently asked questions from partners during API integration.

Key Changes​

New Extra Charge Guide​

A new guide for handling extra guest charges has been added.

  • Document Location: Extra Charge Guide
  • Key Contents:
    • Why extra charge fields are not used
    • Correct room search method (based on base occupancy)
    • Reservation request guidelines
    • Mandatory customer notice requirements

Cancellation Policy Guide Improvements​

The existing Cancellation Policy Guide has been improved for better clarity.

  • Document Location: Cancellation Policy Guide
  • Improvements:
    • Added key summary section
    • Added Static Policy vs Dynamic Policy comparison table
    • Added 3-step implementation guide (Search → Pre-booking → Cancellation)
    • Enhanced API field information

Contact​

If you have any questions about the guide contents, please feel free to contact us:


We will continue to improve our development guides to provide a better experience.