Oracle Hospitality Hotels API

Operations related to e-commerce tokenization for OPERA Cloud Properties.

Operations 3

POST /hotels/{hotelCode}/tokenizations Initiate e-commerce tokenization transaction #
GET /hotels/{hotelCode}/tokenizations/{transactionId} Fetch e-commerce tokenization transaction status and details #
POST /hotels/{hotelCode}/tokens Card Tokenization #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/oracle-hospitality-hotels-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

oracle-hospitality-hotels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Oracle Hospitality Hotels API
  contact:
    email: hospitality_apis_ww_grp@oracle.com
  license:
    name: UPL
    url: https://opensource.org/licenses/upl
  termsOfService: https://www.oracle.com/legal/terms.html
  version: '1.0'
  description: 'Operations tagged Hotels across 2 of this provider''s published API definitions: oracle-hospitality-property-v1-ecommtokenization.json, oracle-hospitality-property-v1-tokenexchange.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /eComm/eToken/v1
- url: /tokenExchange/v1
tags:
- name: Hotels
  description: Operations related to e-commerce tokenization for OPERA Cloud Properties.
paths:
  /hotels/{hotelCode}/tokenizations:
    post:
      operationId: postEcommTokenization
      summary: Initiate e-commerce tokenization transaction
      description: 'Use this operation to initiate the processing of a tokenization transaction via e-commerce token form.

        <p><strong>OperationId:</strong>postEcommTokenization</p>'
      tags:
      - Hotels
      parameters:
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/hotelCode'
      responses:
        '200':
          description: Successful tokenization transaction creation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EcommTokenizationResponse'
        '400':
          description: The request received was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                detail: There are validation errors for the object in the request
                o:errorCode: OPICS-BAD_REQUEST
                o:errorDetails:
                - o:errorCode: OPICS-0300
                  o:errorPath: locale
                  title: locale value is not allowed
                  type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                status: 400
                title: Bad Request
                type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EcommTokenizationRequest'
        required: true
    servers:
    - url: /eComm/eToken/v1
  /hotels/{hotelCode}/tokenizations/{transactionId}:
    get:
      operationId: getEcommTokenizationDetails
      summary: Fetch e-commerce tokenization transaction status and details
      description: "Use this operation to fetch the final status and details of a \ntokenization transaction once it has been processed by e-commerce token form.\n<p><strong>OperationId:</strong>getEcommTokenizationDetails</p>"
      tags:
      - Hotels
      parameters:
      - $ref: '#/components/parameters/authKey'
      - $ref: '#/components/parameters/x-app-key'
      - $ref: '#/components/parameters/hotelCode'
      - $ref: '#/components/parameters/transactionId'
      responses:
        '200':
          description: Response message containing the transaction status and details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EcommTokenizationStatusResponse'
        '400':
          description: The request received was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
              example:
                correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                detail: There are validation errors for the object in the request
                o:errorCode: OPICS-BAD_REQUEST
                o:errorDetails:
                - o:errorCode: OPICS-0300
                  o:errorPath: hotelId
                  title: Invalid Hotel Code
                  type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                status: 400
                title: Bad Request
                type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
    servers:
    - url: /eComm/eToken/v1
  /hotels/{hotelCode}/tokens:
    post:
      parameters:
      - description: OPERA Hotel Code
        in: path
        name: hotelCode
        required: true
        x-example: Hotel123
        schema:
          type: string
      - $ref: '#/components/parameters/authKey_2'
      - $ref: '#/components/parameters/x-app-key'
      responses:
        '200':
          description: Successful Operation
          content:
            application/json:
              schema:
                description: TokenResponse object
                properties:
                  cardType:
                    description: OPERA Card Type
                    example: VA
                    type: string
                  expiryDate:
                    description: Expiration Date, YYMM format
                    example: '2312'
                    type: string
                  pan:
                    description: Masked Primary Account Number (PAN)
                    example: XXXXXXXXXXXX4444
                    type: string
                  token:
                    description: Card Token
                    example: '483204890324827'
                    type: string
                required:
                - cardType
                - expiryDate
                - pan
                - token
                type: object
        '400':
          description: The request received was invalid
          content:
            application/json:
              schema:
                description: Problem Details for HTTP APIs
                example:
                  correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                  detail: There are validation errors for the object in the request
                  o:errorCode: OPICS-BAD_REQUEST
                  o:errorDetails:
                  - o:errorCode: OPICS-0300
                    o:errorPath: expiryDate
                    title: expiryDate must be in the form of YYMM
                    type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                  status: 400
                  title: Bad Request
                  type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                properties:
                  correlationId:
                    description: Unique identifier value that is attached to the request that allows reference to a particular transaction
                    example: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                    type: string
                  detail:
                    description: Detailed error message
                    example: There are validation errors for the object
                    type: string
                  o:errorCode:
                    description: Application specific error code
                    example: OPICS-BAD_REQUEST
                    type: string
                  o:errorDetails:
                    description: Drill down to the details
                    items:
                      $ref: '#/components/schemas/ProblemDetail_2'
                    type: array
                  o:errorPath:
                    description: JSON path to indicate where the error occurs
                    example: cards[1]
                    type: string
                  status:
                    description: HTTP status code
                    example: 400
                    format: int32
                    type: integer
                  title:
                    description: Summary error message
                    example: Bad Request
                    type: string
                  type:
                    description: HTTP error code page
                    example: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                    type: string
                required:
                - title
                - type
                type: object
        '401':
          description: Client request lacks valid authentication credentials for the requested resource
        '403':
          description: Client request lacks permissions for the requested resource
        '404':
          description: The target resouce was not found
        '405':
          description: Method not allowed for the target resource
        '406':
          description: The Server cannot produce a response matching the values in the request's content headers
        '415':
          description: The server refuses to accept the request because the payload is in an unsupported format
        '422':
          description: The server received a decline response from the upstream server it accessed in attempting to complete the request
          content:
            application/json:
              schema:
                description: Problem Details for HTTP APIs
                example:
                  correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                  detail: 'Transaction declined by Payment Service Provider. Decline code: 05 - Do Not Honor'
                  o:errorCode: OPICS-0204
                  status: 422
                  title: Unprocessable Entity
                  type: https://webconcepts.info/specs/IETF/RFC/4918
                properties:
                  correlationId:
                    description: Unique identifier value that is attached to the request that allows reference to a particular transaction
                    example: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                    type: string
                  detail:
                    description: Detailed error message
                    example: There are validation errors for the object
                    type: string
                  o:errorCode:
                    description: Application specific error code
                    example: OPICS-BAD_REQUEST
                    type: string
                  o:errorDetails:
                    description: Drill down to the details
                    items:
                      $ref: '#/components/schemas/ProblemDetail_2'
                    type: array
                  o:errorPath:
                    description: JSON path to indicate where the error occurs
                    example: cards[1]
                    type: string
                  status:
                    description: HTTP status code
                    example: 400
                    format: int32
                    type: integer
                  title:
                    description: Summary error message
                    example: Bad Request
                    type: string
                  type:
                    description: HTTP error code page
                    example: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                    type: string
                required:
                - title
                - type
                type: object
        '500':
          description: The server encountered an internal error or misconfiguration and was unable to complete the request
          content:
            application/json:
              schema:
                description: Problem Details for HTTP APIs
                example:
                  correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                  detail: The server encountered an internal error or misconfiguration and was unable to complete your request
                  o:errorCode: OPICS-INTERNAL_SERVER_ERROR
                  status: 500
                  title: Internal Server Error
                  type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1
                properties:
                  correlationId:
                    description: Unique identifier value that is attached to the request that allows reference to a particular transaction
                    example: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                    type: string
                  detail:
                    description: Detailed error message
                    example: There are validation errors for the object
                    type: string
                  o:errorCode:
                    description: Application specific error code
                    example: OPICS-BAD_REQUEST
                    type: string
                  o:errorDetails:
                    description: Drill down to the details
                    items:
                      $ref: '#/components/schemas/ProblemDetail_2'
                    type: array
                  o:errorPath:
                    description: JSON path to indicate where the error occurs
                    example: cards[1]
                    type: string
                  status:
                    description: HTTP status code
                    example: 400
                    format: int32
                    type: integer
                  title:
                    description: Summary error message
                    example: Bad Request
                    type: string
                  type:
                    description: HTTP error code page
                    example: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                    type: string
                required:
                - title
                - type
                type: object
        '502':
          description: The server received an invalid response from the upstream server it accessed in attempting to complete the request
        '503':
          description: The server is not ready to handle the request
        '504':
          description: The server did not receive a timely response from an upstream server it needed to access in order to complete the request
          content:
            application/json:
              schema:
                description: Problem Details for HTTP APIs
                example:
                  correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                  detail: The server did not receive a timely response from an upstream server it needed to access in order to complete your request
                  o:errorCode: OPICS-0100
                  status: 504
                  title: Gateway Timeout
                  type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5
                properties:
                  correlationId:
                    description: Unique identifier value that is attached to the request that allows reference to a particular transaction
                    example: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
                    type: string
                  detail:
                    description: Detailed error message
                    example: There are validation errors for the object
                    type: string
                  o:errorCode:
                    description: Application specific error code
                    example: OPICS-BAD_REQUEST
                    type: string
                  o:errorDetails:
                    description: Drill down to the details
                    items:
                      $ref: '#/components/schemas/ProblemDetail_2'
                    type: array
                  o:errorPath:
                    description: JSON path to indicate where the error occurs
                    example: cards[1]
                    type: string
                  status:
                    description: HTTP status code
                    example: 400
                    format: int32
                    type: integer
                  title:
                    description: Summary error message
                    example: Bad Request
                    type: string
                  type:
                    description: HTTP error code page
                    example: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
                    type: string
                required:
                - title
                - type
                type: object
      security:
      - jwt: []
      tags:
      - Hotels
      description: Converts Primary Account Number (PAN) into Token issued by Payment Service Providers
      operationId: openPaymentTokenExchange
      summary: Card Tokenization
      requestBody:
        content:
          application/json:
            schema:
              description: JSON object containing the card information
              properties:
                expiryDate:
                  description: Expiration Date, YYMM format
                  example: '2312'
                  pattern: ^[0-9]{2}(0[1-9]|1[0-2])$
                  type: string
                pan:
                  description: Primary Account Number (PAN)
                  example: '1111222233334444'
                  pattern: ^[0-9]{8,19}$
                  type: string
              required:
              - expiryDate
              - pan
              type: object
        description: TokenRequest object
        required: true
    servers:
    - url: /tokenExchange/v1
components:
  responses:
    '406':
      description: The Server cannot produce a response matching the the values in the request's content headers
    '503':
      description: The server is not ready to handle the request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
            detail: Server is temporarily unavailable or busy
            o:errorCode: OPICS-SERVICE_UNAVAILABLE
            status: 503
            title: Service Unavailable
            type: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4
    '404':
      description: The target resouce was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            title: Not Found
            type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5
            correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
            detail: Resource not found
            o:errorCode: OPICS-NOT_FOUND
            status: 404
    '500':
      description: The server encountered an internal error or misconfiguration and was unable to complete the request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
            detail: The server encountered an internal error or misconfiguration and was unable to complete your request
            o:errorCode: OPICS-INTERNAL_SERVER_ERROR
            status: 500
            title: Internal Server Error
            type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1
    '401':
      description: Authentication header was not present in request
    '403':
      description: The Bearer Token is invalid/expired
    '415':
      description: The server refuses to accept the request because the payload format is in an unsupported format
    '405':
      description: Method not allowed for the target resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            correlationId: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
            detail: Method not allowed for the resource
            o:errorCode: OPICS-METHOD_NOT_ALLOWED
            status: 405
            title: Method Not Allowed
            type: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6
  schemas:
    EcommTokenizationRequest:
      type: object
      required:
      - originDomain
      - locale
      properties:
        originDomain:
          type: string
          pattern: ^https://[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\:\d{2,5})?$
          maxLength: 600
          description: The domain of the website that will load the token form. Must be a valid HTTPS domain.
          example: https://www.website-domain-example.com
        locale:
          type: string
          enum:
          - ar
          - da
          - de
          - en
          - es
          - fi
          - fr
          - it
          - ja
          - ko
          - nl
          - 'no'
          - pt-BR
          - pt
          - ru
          - sv
          - th
          - tr
          - zh-CN
          - zh-TW
          description: The language to be used in token form.
          example: en
    ProblemDetail:
      description: Problem Details for HTTP APIs
      properties:
        correlationId:
          description: Unique identifier value that is attached to the request that allows reference to a particular transaction
          type: string
        detail:
          description: Detailed error message
          type: string
        o:errorCode:
          description: Application specific error code
          type: string
        o:errorDetails:
          description: Drill down to the details
          items:
            $ref: '#/components/schemas/ProblemDetail'
          type: array
        o:errorPath:
          description: JSON path to indicate where the error occurs
          type: string
        status:
          description: HTTP status code
          format: int32
          type: integer
        title:
          description: Summary error message
          type: string
        type:
          description: HTTP error code page
          type: string
      required:
      - title
      - type
      type: object
    EcommTokenizationStatusResponse:
      type: object
      required:
      - status
      properties:
        status:
          type: string
          enum:
          - INITIATED
          - CANCELED_BY_USER
          - APPROVED
          - DECLINED
          - ERROR
          description: The transaction status
          example: APPROVED
        tokenInfo:
          $ref: '#/components/schemas/TokenInfo'
        declineDetail:
          type: string
          description: Message containing the details of a transaction that was declined. Present when status is DECLINED.
          example: Declined by Payment Service Provider
        errorDetail:
          type: string
          description: Message containing the details of a transaction that failed to be processed. Present when status is ERROR.
          example: Payment Service Provider was unavailable
    EcommTokenizationResponse:
      type: object
      required:
      - tokenPageUrl
      - transactionId
      - sessionId
      - sessionToken
      - expiresAt
      properties:
        tokenPageUrl:
          type: string
          format: uri
          description: The URL of the ECommerce token form for completing the tokenization transaction.
          example: https://opi-devcorp.oraclehospitality.us-phoenix-1.ocs.oc-test.com/tokenizationPage/widget.html?lang=en
        transactionId:
          type: string
          description: ECommerce Transaction Identifier
          example: 5ad81936-1cb9-4a41-a52f-2f8a08ef520c
        sessionId:
          type: string
          description: ECommerce Session Identifier
          example: c52a1cf9-acc8-4c81-9c03-448bf206fbd2
        sessionToken:
          type: string
          description: ECommerce Session Token
          example: eyJraWQiOiIzNmRhZTU4Yi05ZDg..3MiOiJodHRwcz
        expiresAt:
          type: string
          description: Session expiration date in ISO8601 format
          example: '2025-11-06T13:44:28-05:00'
    TokenInfo:
      type: object
      description: Token information. Present when status is APPROVED.
      required:
      - cardType
      - expiryDate
      - pan
      - token
      properties:
        cardType:
          type: string
          description: OPERA Card Type
          maxLength: 16
          minLength: 2
          example: VA
        expiryDate:
          type: string
          description: Expiration Date, YYMM format
          example: '3012'
        pan:
          type: string
          description: Masked Primary Account Number (PAN)
          maxLength: 19
          minLength: 13
          example: XXXXXXXXXXXX4444
        token:
          type: string
          description: Card Token
          maxLength: 42
          example: '483204890324827'
    ProblemDetail_2:
      description: Problem Details for HTTP APIs
      properties:
        correlationId:
          description: Unique identifier value that is attached to the request that allows reference to a particular transaction
          example: MzdhODNkZmMtNzk5YS00OTYxLTg3YTMtM2ZkYTE4YjJlMzc0
          type: string
        detail:
          description: Detailed error message
          example: There are validation errors for the object
          type: string
        o:errorCode:
          description: Application specific error code
          example: OPICS-BAD_REQUEST
          type: string
        o:errorDetails:
          description: Drill down to the details
          items:
            $ref: '#/components/schemas/ProblemDetail_2'
          type: array
        o:errorPath:
          description: JSON path to indicate where the error occurs
          example: cards[1]
          type: string
        status:
          description: HTTP status code
          example: 400
          format: int32
          type: integer
        title:
          description: Summary error message
          example: Bad Request
          type: string
        type:
          description: HTTP error code page
          example: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
          type: string
      required:
      - title
      - type
      type: object
  parameters:
    authKey:
      name: Authorization
      description: Bearer token
      in: header
      required: true
      schema:
        type: string
    transactionId:
      name: transactionId
      description: ECommerce Transaction Identifier
      in: path
      required: true
      schema:
        type: string
        maxLength: 36
        minLength: 36
    x-app-key:
      name: x-app-key
      description: Client or Partner Application Key
      in: header
      required: true
      schema:
        type: string
        pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$
    hotelCode:
      name: hotelCode
      description: OPERA Hotel Code
      in: path
      required: true
      schema:
        type: string
        maxLength: 50
        minLength: 1
    authKey_2:
      name: authorization
      description: Bearer token that needs to be passed which is generated post user authentication
      in: header
      required: true
      schema:
        type: string
  securitySchemes:
    jwt:
      in: header
      name: Authorization
      type: apiKey
externalDocs:
  description: Find out more about Oracle Hospitality
  url: https://docs.oracle.com/en/industries/hospitality/integration_platforms.html
x-refined-from:
- oracle-hospitality-property-v1-ecommtokenization.json
- oracle-hospitality-property-v1-tokenexchange.json