API Reference (Transaction Record)

Message Exchange Workflow

  • SM_HotelResPaymentReadRQ - request sent by PMS to pull undelivered payment transactions for a hotel.

  • SM_HotelResPaymentReadRS - response sent by SiteMinder with a list of undelivered payment transactions.

  • SM_HotelResPaymentResultRQ - request sent by PMS to confirm after processing and storing the payment transaction in the PMS.

  • SM_HotelResPaymentResultRS - response sent by SiteMinder.

SM_HotelResPaymentReadRQ

The PMS should retrieve payment transactions every 2 to 5 minutes for each hotel. You can opt for a less frequent pull if preferred.

Example

<SM_HotelResPaymentReadRQ EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
	<POS>
		<Source>
			<RequestorID Type="22" ID="PMS1"/>
		</Source>
	</POS>
	<SelectionCriteria HotelCode="ABCD13245" SelectionType="Undelivered"/>
</SM_HotelResPaymentReadRQ>

Specification

Element / @AttributeTypeMDescription

SM_HotelResPaymentReadRQ

Element

1

Root element for the request.

@xmlns

String

1

Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05

@EchoToken

String

1

Unique identifier for the request, used to match requests and responses.

@TimeStamp

DateTime

1

Time when the request was generated.

@Version

Decimal

1

Specifies the API version. Must be set to 1.0.

POS / Source / RequestorID

1

This identifies the system which is sending the reservation. This element must appear in the first Source element.

@Type

1

Fixed at 22 (ESRP)

@ID

1

The ID used will be agreed by the trading partners and remain the same throughout the messages

SelectionCriteria

1

@HotelCode

0..1

As recognised by pmsXchange.

@SelectionType

1

Must be "Undelivered"

SM_HotelResPaymentReadRS

The PMS receives this response from SiteMinder containing a list of undelivered Payment transactions. The PMS must push these payment transactions to a queue or event stream for offline processing.

Examples

<SM_HotelResPaymentReadRS EchoToken="123e4567-e89b-12d3-a456-426614174000"  TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
	<HotelResPaymentList>
		<HotelResPayment TransactionID="200098" HotelCode="ABCD13245">
			<UniqueID ID="BDC-79860526" Type="14" />
			<UniqueID ID="7223a92-d988-46b8-8476-3319285af8a2" Type="34" />
			<PaymentInfo PaymentTransactionTypeCode="charge" PaymentType="5" Remark="" ChargeTypeCode="RM">
				<PaymentCard CardCode="VI" CardType="1" ExpireDate="1020" Mask="xxxxxxxx2257" CardHolderName="Visa Card HolderName" />
				<PaymentAmount Amount="200.20" CurrencyCode="AUD" />
			</PaymentInfo>
		</HotelResPayment>
		<!-- Additional Payment Transactions -->
		<HotelResPayment TransactionID="200099" CreateDateTime="2021-08-01T08:49:34.000+0000" HotelCode="ABCD13245">
			<!-- Payment Transaction Details-->
		</HotelResPayment>
	</HotelResPaymentList>
</SM_HotelResPaymentReadRS>

Specification

Element / @AttributeTypeMDescription

SM_HotelResPaymentReadRS

Element

1

Root element for the request.

@xmlns

String

1

Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05

@EchoToken

String

1

Unique identifier for the request, used to match requests and responses.

@TimeStamp

DateTime

1

Time when the request was generated.

@Version

Decimal

1

Specifies the API version. Must be set to 1.0.

HotelResPaymentList

1

List of HotelResPayments

HotelResPayment

0..n

HotelResPayment data

@HotelCode

1

as recognised by pmsXchange

@TransactionID

1

Transaction Identifier

@CreateDateTime

1

Transaction Create timestamp

HotelResPayment/UniqueID

2

@ID

1

Reservation Identifier

@Type

1

14 and 34

HotelResPayment/PaymentInfo

1

@PaymentTransactionTypeCode

1

@PaymentType

1

Identifies the payment type

  • 5 - Credit Card

  • 6 - Debit Card

  • 46 - Online Payment

@Remark

0..1

Card Based: Open Notes/Remarks

Non-Card Based: Will include the payment provider used.

@PaymentRef

0..1

Payment reference (ie Paypal reference)

@ChargeTypeCode

1

Code

Description

RM

Room

FD

Food/Beverage

OT

Other

EX

Stay Extras

PaymentInfo/PaymentCard

0..1

Card Based Payment

@CardCode

1

OTA Payment Card Provider Code

@CardType

1

OTA Card Type 1 - Credit 2 - Debit

@ExpireDate

1

MMYY format card expire date

@Mask

1

Masked CC number

@CardHolderName

1

Name of card holder

PaymentInfo\PaymentAmount

1

Payment Amount container

@Amount

1

Transaction amount

@CurrencyCode

1

Currency Code

@Due

0..1

Amount outstanding

SM_HotelResPaymentResultRQ

Due to the way payments are processed in SiteMinder, you'll now need to track an additional UniqueID to link payments to reservations.

A new UniqueID of Type="34" has been introduced. This ID contains the payment context ID, which serves as the booking identifier for the transactions.

UniqueID of Type="34" is unique to the reservation itself, not the reservation message. Therefore, if a single reservation is split into two messages, both will share the same master reference ID.

There’s no change to the existing UniqueID of Type="14", which holds the unique reservation ID known as the SiteMinder ID (e.g., 'BDC-79860526').

Grouping Transactions: The SM_HotelResPaymentReadRS can support multiple payment transactions. However, if payments are processed in a batch rather than individually, it’s important to note that each SM_HotelResPaymentResultRQ must include either a Success or an Errors element.

If multiple transactions are processed and both success and error messages need to be returned, you will need to send two separate SM_HotelResPaymentResultRQ requests: one for the Success element with the IDs of the successfully processed transactions, and another for the Errors element with the IDs of the transactions that failed.

Examples

<SM_HotelResPaymentResultRQ EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
	<HotelResPaymentResult TransactionID="200098" HotelCode="ABDGFC9899">
		<UniqueID ID="BDC-79860526" Type="14" /> <!-- Reservation Id-->
		<UniqueID ID="74a63a92-d988-46b8-8476-3319285af8ac" Type="34" /> <!-- Master Res id -->
		<UniqueID ID="077887-200098" Type="40" /> <!-- Delivery Confirmation Id -->
	</HotelResPaymentResult>
	<Success/>
</SM_HotelResPaymentResultRQ>

Specification

Element / @AttributeTypeMDescription

SM_HotelResPaymentResultRQ

Element

1

Root element for the request.

@xmlns

String

1

Defines the XML namespace for the request. Will be set to http://www.opentravel.org/OTA/2003/05

@EchoToken

String

1

Unique identifier for the request, used to match requests and responses.

@TimeStamp

DateTime

1

Time when the request was generated.

@Version

Decimal

1

Specifies the API version. Must be set to 1.0.

HotelResPaymentResult

0..n

@HotelCode

1

As recognised by pmsXchange

@TransactionID

1

Transaction Identifier

HotelResPaymentResult/UniqueID

2..3

@ID

1

Reservation Identifier

@Type

1

14 and 34 40 if Success

Success

0..1

Present if successfully stored and processed

Errors

0..1

Present If unsuccessfully processed

Error

1

Mandatory if Error present. Text can contain a human readable description of the error

@Code

1

Any code from Error Codes (ERR)

@Type

1

SM_HotelResPaymentResultRS

SiteMinder will respond with a Success message and will internally mark the payment transaction as either successfully delivered or delivered with an error. In both scenarios, the transaction will not be included in future requests for undelivered payment transactions.

Example

<SM_HotelResPaymentResultRS EchoToken="123e4567-e89b-12d3-a456-426614174000"  TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
    <Success/>
</SM_HotelResPaymentResultRS>

Specification

Element / @AttributeTypeMDescription

SM_HotelResPaymentResultRS

Element

1

Root element for the request.

@EchoToken

String

1

Unique identifier for the request, used to match requests and responses.

@TimeStamp

DateTime

1

Time when the request was generated.

@Version

Decimal

1

Specifies the API version. Must be set to 1.0.

Success

0..1

Present if successfully stored and processed

Errors

0..1

Present If unsuccessfully processed

Error

1

Mandatory if Error present. Text can contain a human readable description of the error

@Code

1

Any code from Error Codes (ERR)

@Type

1

Last updated