# Stripe app for Oracle Opera

Use the app to integrate Stripe Terminal into Oracle Opera.

The Stripe app for Oracle Opera allows hotels that use Oracle Opera as their property management system (PMS) to accept in-person payments using Stripe. After you set up and configure the app within your Opera environment, you can use [Stripe Terminal](https://docs.stripe.com/terminal.md) devices to process in-person payments. All transactions processed through this system link directly to your Stripe account.

## Before you begin

- Create a [Stripe account](https://stripe.com).
- [Order](https://docs.stripe.com/terminal/fleet/order-and-return-readers.md) a supported [internet-connected reader](https://docs.stripe.com/terminal/payments/setup-reader.md#capabilities), or use a *simulated reader* (Stripe Terminal SDKs and server-driven integrations come with a built-in simulated card reader, so you can develop and test your app without connecting to physical hardware. Whether your integration is complete or you're still building it, use the simulated reader to emulate all the Terminal flows in your app) for testing. The app supports Stripe Reader S700/S710/T600, WisePOS E, and Verifone readers.
- Set up Stripe Terminal. To learn more about how Stripe Terminal works, see [How Terminal works](https://docs.stripe.com/terminal/overview.md). Then [install](https://docs.stripe.com/use-stripe-apps/oracle/opera/installation.md) and [configure](https://docs.stripe.com/use-stripe-apps/oracle/opera/configuration.md) the app.
- Contact your Stripe account executive or [Stripe Support](https://support.stripe.com) as soon as your project begins to confirm which required and optional features your integration needs, and to allow enough time to have them enabled before you go live.

## Supported features

The Stripe app for Opera allows you to perform actions such as:

- Process sales transactions
- Issue refunds
- Collect customer information
- Perform incremental authorizations
- Allow customers to pay in their local currencies
- Secure corporate payment identification

## Compatibility

The app supports the following Oracle Opera and Oracle Payment Interface (OPI) versions. If your property runs an earlier version, confirm backward compatibility and correct configuration with your Oracle representative before you install the app.

| Product | Minimum supported version |
| --- | --- |
| Oracle Payment Interface (on-premises) | 22.0 |
| Opera V5 (on-premises) | 5.5.0.24.4 |
| Opera V5 Hosted | 5.5.0.25.8 |
| Opera Cloud | 1.20.16 |
| Opera Cloud (legacy) | 19.4 |

## Metadata included with payments

To help you reconcile payments without leaving Stripe, the app attaches the following Opera context to each PaymentIntent’s metadata.

| Metadata | Description |
| --- | --- |
| `RRN` | A unique retrieval reference number the app generates for the transaction, used to match reference transactions such as refunds and reversals to their original charge. |
| `OriginalRRN` | For refunds and reversals, the `RRN` of the original transaction being referenced. |
| `GuestNo` | The guest’s profile ID. |
| `ChargeInfo` | Transaction and posting details, such as the amount, type, and billing information. |
| `Operator` | The Opera user or cashier who ran the transaction. |
| `RoomRate` | The rate code or nightly rate. |
| `CheckInDate` and `CheckOutDate` | The reservation’s check-in and check-out dates. |
| `GuestName` | The guest’s name on the reservation. |
| `SiteId` | The property identifier within the Opera environment. |
| `WSNo` | The Workstation ID (Terminal ID) that initiated the transaction. |
| `POSInfo` | Outlet or transaction details passed from a point-of-sale system through Opera. |
| `IsDCC` | Whether dynamic currency conversion (DCC) was applied. |
| `SettleAmount` | The amount settled in your currency. Only present when DCC is applied. |
| `MerchantMarkUp` | Your markup over the foreign exchange rate. Only present when DCC is applied. |
| `ConversionRate` | The foreign exchange rate applied. Only present when DCC is applied. |
| `FXTimestamp` | When the foreign exchange rate was locked. Only present when DCC is applied. |

## Enable required Stripe account features

Stripe enables a number of account-level features that this integration depends on, such as support for collecting and confirming payments through a server-driven integration, tokenization of expired cards to support card updater, and bulk creation of payment methods. Depending on your use case, you might also need optional features enabled, such as unlinked refunds, mail order or telephone order (MOTO) transactions, dynamic currency conversion (DCC), or the secure corporate payment exemption for online travel agency (OTA) virtual card numbers.

## Support online bookings with saved payment methods

If your property also takes online bookings through a booking site that saves payment methods to Opera, such as one connected through the Oracle Hospitality Integration Platform (OHIP), integrate that booking site with Stripe using [Checkout](https://docs.stripe.com/payments/checkout.md) or the [Payment Element](https://docs.stripe.com/payments/payment-element.md) before you switch payment service providers (PSPs).

Because Opera doesn’t accept underscores, save Stripe payment method IDs to Opera using the prefix `pmu` instead of Stripe’s standard `pm_` prefix. For example, save payment method `pm_1Nxxxxxxxxxxxxx` to Opera as `pmu1Nxxxxxxxxxxxxx`.

## See also

- [Install the connector](https://docs.stripe.com/use-stripe-apps/oracle/opera/installation.md)
- [Configure the connector](https://docs.stripe.com/use-stripe-apps/oracle/opera/configuration.md)
