6 Workflow of Use Case

Sequence Diagram


This image shows the workflow sequence.


This image shows a visual of the Configuration of API calls to retrieve data to determine the payment use.

Description of Steps

Steps Description of Steps Operation Samples
1

The Partner queries hotelId for the active Hotel Interfaces to determine if a property has an Oracle Payment Interface (OPI) active. This configuration does not change often, and it is recommended to cache the verification result and revalidate only if issues emerge around the reservation payment methods.

If the response includes an interfaceType=EFT and activeFlag = true for the property, it indicates the following:

  • OPI is active.
  • Tokenization is active.
  • OPI communicates to the Payment Service Providers (PSP) to retrieve tokens.
  • A clear credit card number can NOT be sent in the Property APIs.
  • Tokens are needed in the Property APIs.

If the 200 response is empty of data, this indicates the following:

  • OPI is not active.
  • Tokenization is not active.
  • A clear credit card number can be sent in the Property APIs.

getHotelInterfaces

GET {{HostName}}/int/config/v1/hotelInterfaceTypes?includeInactive=false&interfaceTypes=EFT&hotelIds={{HotelId}}

200 Response with active EFT (OPI):

{
    "hotelInterfaces": [
        {
            "interfaceId": {
                "id": "{{Id}}",
                "type": "InterfaceId"
            },
            "hotelId": "{{HotelId}}",
            "interfaceName": "OPI EFT",
            "interfaceType": "Eft",
            "logo": "{{Logo}}",
            "machineName": "{{Machine}}",
            "status": "Running",
            "activeFlag": true
        }
    ],
    "links": []
}

200 Response without active EFT (OPI):

{
    "hotelInterfaces": [],
    "links": []
}
2 If OPI is active and in use, the Partner can query if OPI Cloud is active. With 200 response where value=Y, it is known that OPI Cloud is available. This is optional, but it will help determine if the Partner can use the postOpenPaymentTokenExchange in Step 4 to get a token for the credit card number. It is not needed if OPI is not active at the property (determined from Step 1) or the Partner already has a token from the relevant PSP (when OPI is active at the property determined from Step 1).

getOperaSettings

GET {{HostName}}/ent/config/v1/settings?hotelId={{HotelId}}&parameterNameWildCard=OPI

200 Response:

{
    "activeFunctions": 143,
    "groups": [
        {
            "appSettings": [
                {
                    "shortDescription": "Activate OPI Cloud Credit Card Processing",
                    "description": "Activate OPI Cloud Credit Card Delivery and Disable IFC Controller for Credit Card Processsing.",
                    "wildCardMatch": true,
                    "name": "OPI_CREDIT_CARD_PROCESSING",
                    "displayName": "OPI Cloud Credit Card Processing",
                    "type": "Parameter",
                    "hotelId": "{{HotelId}}",
                    "sequence": 1,
                    "editAllowed": true,
                    "value": "Y",
                    "scope": "P",
                    "valueType": "Yn",
                    "levelType": "Hotel",
                    "levelCode": "{{HotelId}}",
                    "subscriptionCountEligible": true
                },
                {
                    "shortDescription": "Activate OPI Cloud Credit Card Processing",
                    "description": "Activate OPI Cloud Credit Card Delivery and Disable IFC Controller for Credit Card Processsing",
                    "wildCardMatch": true,
                    "name": "OPI_TOKEN_PROXY_SERVICE",
                    "displayName": "OPI Cloud Credit Card Processing",
                    "type": "Parameter",
                    "hotelId": "{{HotelId}}",
                    "sequence": 1,
                    "editAllowed": true,
                    "scope": "P",
                    "valueType": "Yn",
                    "levelType": "Hotel",
                    "levelCode": "{{HotelId}}",
                    "subscriptionCountEligible": true
                }
            ],
            "groupName": "Credit Card",
            "groupDisplayName": "Credit Card"
        }
    ],
    "links": []
}
3 Partner queries hotelId for available cardTypes and paymentMethods. A successful response contains the Card Types and Payment Methods in use at the property. The "parameterValue" data of the "parameterName"=CardType along with the "parameterValue":"Y" for the "parameterName": "ResvPaymentYN" indicates the cardType and the "code" indicates the paymentMethod that can be used in a post reservation (Step 5). This configuration does not change often, and it is recommended to cache the result and revalidate only if issues emerge around the reservation payment methods.

getPaymentMethodsLOV

GET {{HostName}}/lov/v1/listOfValues/hotels/{{HotelId}}/paymentMethods?includeInactiveFlag=false

200 Response:

{
    "listOfValues": {
        "items": [
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "CP"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "CP"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "CP",
                "name": "Chip and Pin",
                "description": "Chip and Pin",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "9000"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "CA",
                "name": "Cash",
                "description": "Cash",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "AX"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "90025"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "AX",
                "name": "AMEX",
                "description": "American Express",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "96674"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "DB",
                "name": "Direct Bill",
                "description": "Direct Bill",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "DS"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "90004"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "DS",
                "name": "Discover",
                "description": "Discover",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "DC"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "90005"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "DC",
                "name": "Diner Club",
                "description": "Diner Club",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "VA"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "90002"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "VA",
                "name": "VISA",
                "description": "VISA",
                "active": true
            },
            {
                "flexfields": [
                    {
                        "parameterName": "CardType",
                        "parameterValue": "MC"
                    },
                    {
                        "parameterName": "ChipPinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ResvPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "BillingPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "DepositPaymentYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "ARPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CompPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CheckPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "CashPaymentYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DirectBillYN",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "TrxCode",
                        "parameterValue": "90001"
                    },
                    {
                        "parameterName": "AuthDuringStayYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "AuthAtCheckinYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "PostAllowedYN",
                        "parameterValue": "Y"
                    },
                    {
                        "parameterName": "RoundFactorYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "GuestLedgerDepositsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositFoliosYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "DepositReceiptsYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "AuthStlmtAtCheckOutYn",
                        "parameterValue": "N"
                    },
                    {
                        "parameterName": "FiscalPaymentPayloadEligibilityYn",
                        "parameterValue": "N"
                    }
                ],
                "code": "MC",
                "name": "Master Card",
                "description": "Master Card",
                "active": true
            }
        ],
        "lovName": "PaymentMethods",
        "itemCount": 8
    }
}
4

If OPI is not active at the property, skip to Step 5.

If OPI is active at the property, Partners and customers can work with the relevant Payment Service Provider (PSP) for the property to get the token for the credit card number directly (not via OPI) from the PSP. Once you have the token from the PSP, use that token in the post Reservation reservationPaymentMethods section (step 5).

If Step 2 determined OPI Cloud is active, there is the OPI API available through OHIP, post OpenPaymentTokenExchange, allowing you to request the token in exchange of the credit card number. A successful response will provide the token, cardType, last 4 of card number, and expiryDate to then use in the post Reservation reservationPaymentMethods section (step 5).

There is also an intermediate solution that may be available when OPI is active at the property, but OPI Cloud is not in use. You can still call the postOpenPaymentTokenExchange API if the PSP supports it and an OPI Cloud has been provisioned for the property. You must ask if this option is available for you in the Partner Slack Channel.

postOpenPaymentTokenExchange

POST {{HostName}}/tokenExchange/v1/hotels/{{hotelCode}}/tokens

Request Body:

{

  "expiryDate": "2912",

  "pan": "4444333322221111"

}

200 Response:

{

  "cardType": "VA",

  "expiryDate": "2912",

  "pan": "XXXXXXXXXXXX1111",

  "token": "8444048903241827"

}
5

Partner posts the completed reservation to the hotelId with the required reservationPaymentMethods defined in the post Reservation.

When there is no active OPI at a property, clear text credit card numbers can be sent in the Post Reservation, and they will be accepted/handled. The data is secured with the protocol layer and card number is stored encrypted according to PCI compliance.

The Post Reservation contains “reservationPaymentMethods” including the following:

  • ‘cardNumber’ — The actual Credit Card Number.
  • ‘cardOrToken’ — The add the value ‘cardNumber’ to indicate a cardNumber exists.

In the sample Request Body provided here, the result is the following:

  • The VISA payment method is added to the reservation in OPERA Cloud. Within the UI, the "1111" displays for all (as the card’s last 4 digits).
  • Should the OPERA Cloud user have the ‘Sensitive Data Role’ assigned, they have the ability to view the complete card number in OPERA Cloud.
  • Financial transactions are carried out with the credit card number on the reservation.

When OPI is active at the property, tokens are to be sent in the Post Reservation. If credit card numbers are defined, they are stripped from the reservation.

The Post Reservation contains the “reservationPaymentMethods” including the following:

  • ‘cardNumber’ — Set as the token value (retrieved from the PSP directly or through OPI Cloud).
  • cardNumberMasked – 12 XXXs and the last 4 of the actual card number.
  • ‘cardOrToken’ — Set as ‘Token’ to identify the cardNumber is a token.

In the sample Request Body provided here, the result is the following:

  • The AMEX payment method is added to the reservation in OPERA Cloud. Within the UI, the "1007" displays for all (as the card’s last 4 digits).
  • Should OPERA Cloud users have the ‘Sensitive Data Role’ assigned, they have the ability to view the complete Token in OPERA Cloud.
  • Financial transactions are carried out with the Token on the reservation.

postReservation

POST {{HostName}}/rsv/v1/hotels/{{HotelId}}/reservations

Request Body when OPI in not active and credit card number is in use:

{
    "reservations": {
        "reservation": {
            "reservationGuests": {
                "profileInfo": {
                    "profileIdList": {
                        "id":  "{{ProfileId}}",
                        "type": "Profile"
                    }
                }
            },
            "reservationPaymentMethods": {
                "paymentCard": {
                    "cardHolderName": "Test CC Number",
                    "cardType": "VA",
                    "cardNumber": "4444333322221111",
                    "expirationDate": "2029-12-31",
                    "cardOrToken": "CardNumber"
                },
                "folioView": 1,
                "paymentMethod": "VA"
            },
            "markAsRecentlyAccessed": true,
            "hotelId": "{{HotelId}}",
            "reservationStatus": "Reserved",
            "roomStay": {
                "guarantee": {
                    "onHold": false,
                    "guaranteeCode": "6PM"
                },
                "roomRates": {
                    "sourceCode": "CAT",
                    "numberOfUnits": 1,
                    "rates": {
                        "rate": {
                            "start": "2024-05-01",
                            "end": "2024-10-30",
                            "base": {
                                "amountBeforeTax": 150,
                                "currencyCode": "USD"
                            }
                        }
                    },
                    "start": "2024-09-11",
                    "marketCode": "CORP",
                    "end": "2024-09-12",
                    "roomTypeCharged": "STDQ",
                    "ratePlanCode": "IHUBASE1",
                    "roomType": "STDQ",
                    "pseudoRoom": false
                },
                "guestCounts": {
                    "children": 0,
                    "adults": 2
                },
                "departureDate": "2024-09-12",
                "arrivalDate": "2024-09-11"
            }
        }
    }
}

Request Body when OPI is active and token is in use:

{
    "reservations": {
        "reservation": {
            "reservationGuests": {
                "profileInfo": {
                    "profileIdList": {
                        "id":  "{{ProfileId}}",
                        "type": "Profile"
                    }
                }
            },
            "reservationPaymentMethods": {
                "paymentCard": {
                    "cardHolderName": "Test Token",
                    "cardType": "AX",
                    "cardNumberMasked": "XXXXXXXXXXXX1007",
                    "cardNumber": "853230000012007",
                    "expirationDate": "2029-12-31",
                    "cardOrToken": "Token"
                },
                "folioView": 1,
                "paymentMethod": "AX"
            },
            "markAsRecentlyAccessed": true,
            "hotelId": "{{HotelId}}",
            "reservationStatus": "Reserved",
            "roomStay": {
                "guarantee": {
                    "onHold": false,
                    "guaranteeCode": "6PM"
                },
                "roomRates": {
                    "sourceCode": "CAT",
                    "numberOfUnits": 1,
                    "rates": {
                        "rate": {
                            "start": "2024-05-01",
                            "end": "2024-10-30",
                            "base": {
                                "amountBeforeTax": 150,
                                "currencyCode": "USD"
                            }
                        }
                    },
                    "start": "2024-09-11",
                    "marketCode": "CORP",
                    "end": "2024-09-12",
                    "roomTypeCharged": "STDQ",
                    "ratePlanCode": "IHUBASE1",
                    "roomType": "STDQ",
                    "pseudoRoom": false
                },
                "guestCounts": {
                    "children": 0,
                    "adults": 2
                },
                "departureDate": "2024-09-12",
                "arrivalDate": "2024-09-11"
            }
        }
    }
}