---
title: "Oracle Opera"
description: "Use Oracle Opera to process payments for your hospitality business."
url: "https://docs.adyen.com/plugins/oracle-opera"
source_url: "https://docs.adyen.com/plugins/oracle-opera.md"
canonical: "https://docs.adyen.com/plugins/oracle-opera"
last_modified: "2021-01-14T16:14:00+01:00"
language: "en"
---

# Oracle Opera

Use Oracle Opera to process payments for your hospitality business.

[View source](/plugins/oracle-opera.md)

![](/user/pages/docs/05.plugins/11.oracle-opera/oracle-hospitality.svg?decoding=auto\&fetchpriority=auto)  **Read more**

Learn more about [Oracle Hospitality](https://www.adyen.com/partners/oracle-hospitality) in our Partner Directory.

Oracle Opera is a [property management platform](https://www.oracle.com/hospitality//), providing enterprise [point-of-sale (POS)](/get-started-with-adyen/adyen-glossary/#point-of-sale-pos) and back-office functionality to support a wide range of hospitality and property management operations.

Adyen payment terminals use Oracle Payment Interface (OPI) 6.2 to integrate to Oracle Opera. With Opera, you can tokenize your guest's payment information and store the tokens in your Oracle database.

You can also create OPI tokens for ecommerce transactions. See [get an OPI token for online payments](#opi-token-ecommerce) for more information.

## Supported versions

You can use our plugin to integrate with all Opera workstations that are compatible with OPI. With our plugin, we can support on-premise, hosted, and cloud setups.

## Get started

Before you begin to integrate, make sure you have followed the [Get started with Adyen guide](/get-started-with-adyen) to:

* Get an overview of the steps needed to accept live payments.
* Create your test account.

After you have created your test account, contact the [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable OPI in your [Customer Area](https://ca-test.adyen.com/).

## How it works

OPI sends all transaction messages directly from your Opera workstation to Adyen's payment terminal.

[![Diagram](/images/d/2/6/9/9/d26992bac6b6132064d6d8c25ce6e296c62f10ac-screenshot-2020-01-30-at-112837.png)](</user/pages/docs/05.plugins/11.oracle-opera/Screenshot 2020-01-30 at 11.28.37.png>)

## Features

With Adyen's plugin, you can use the following transaction types provided by Oracle:

* **Pre-Authorization**: performed when a guest checks-in. An amount is held temporarily for authorization, but it is not a transaction charge.

* **Top-up Authorization**: at the end of each day, the pre-authorized amount can be increased with a top-up transaction.

* **Authorization Release**: returns the pre-authorized amount to the guest's account.

* **Sales Completion**: performed when a guest checks out. The transaction is completed by charging the final amount.

* **Sale/Purchase**: charges the guest's card directly without a pre-authorization.

* **Refund**: returns the authorized amount to the guest's account.

* **Void**: reverses the original Sale/Purchase or Sales Completion transaction. This transaction type is only supported within the same settlement day.

* **Reversal**: if the connection between the Oracle Hospitality POS system and the OPI terminates before the financial transaction is complete, or the transaction times out, then the OPI reverses the transaction made.

* **Get Token**: requests the cardholder data entered into the terminal. The data is sent to Adyen and exchanged for a token. The token can then be used for further top-ups or final settlement.

* **Get Token Bulk**: exchanges a single token or swaps the entire OPERA database of card data for a token. This transaction type is used for:

  * Migration of payment data when you move to Adyen's services.
  * Reservations from third parties.
  * Manual card entry in Opera for phone reservations.

## Get an OPI token for online payments

Aside from POS payments, you can also create OPI tokens for online payments that your guests make. This way, you can fully benefit from an omnichannel strategy and tokenize guest payment information from multiple channels.

To be able to retrieve OPI tokens for ecommerce payments, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other). They can activate the correct settings for your merchant account.

Once the settings in your account are active, you can request an OPI token in your [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request. The response will return an OPI token that you can use in your Oracle Opera integration. Store the OPI token in your Oracle database.

To return the `recurringDetailReference` in the [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) response, follow the steps in [Create tokens](/online-payments/tokenization/create-tokens).

To get an OPI token, in your [/payments](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments) request, specify the following:

| Parameter                                                                                                                                                                           | Setting           |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| [additionalData.opi.includeTransToken](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/payments__reqParam_additionalData-AdditionalDataOpi-opi-includeTransToken) | **true**          |
| [shopperInteraction](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperInteraction)                                                                  | **Ecommerce**     |
| [shopperReference](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-shopperReference)                                                                      | **not\_provided** |
| [recurringProcessingModel](https://docs.adyen.com/api-explorer/#/CheckoutService/latest/post/payments__reqParam_recurringProcessingModel)                                           | **CardOnFile**    |
| [storePaymentMethod](https://docs.adyen.com/api-explorer/Checkout/latest/post/payments#request-storePaymentMethod)                                                                  | **true**          |

For example:

**/payments request**

```json
{
"amount":{
      "value":"1000",
      "currency":"EUR"
      },
"reference":"YOUR_ORDER_NUMBER",
"merchantAccount":"YOUR_MERCHANT_ACOUNT",
"paymentMethod": {
      "type": "scheme",
      "encryptedCardNumber": "test_4111111111111111",
      "encryptedExpiryMonth": "test_03",
      "encryptedExpiryYear": "test_2030",
      "encryptedSecurityCode": "test_737"
      },
"shopperInteraction":"Ecommerce",
"shopperReference":"not_provided",
"recurringProcessingModel": "CardOnFile",
"storePaymentMethod": true,
"additionalData":{
      "opi.includeTransToken": true
      }
}
```

**/payments response**

```json
{
  "additionalData":{
      "opi.transToken":"GENERATED_OPI_TOKEN",
      "recurring.recurringDetailReference":"8415698462516992",
      "recurring.shopperReference":"GENERATED_UNIQUE_SHOPPER_ID",
      ...
  },
  "pspReference":"8515815919501547",
  "resultCode":"Authorised",
  "amount": {
      "currency": "EUR",
      "value": 1000
  },
  "merchantReference": "YOUR_ORDER_NUMBER"
}
```
