Payment Transaction Record
Retrieve payment reservation data to your PMS from the SiteMinder Platform.
What is Payment Transaction Record
Payment Transaction Record allows a PMS to retrieve reservation payment transaction data. These transactions represent payments made against a reservation using SiteMinder Pay, which facilitates secure payment processing for booking channels and direct bookings through the SiteMinder Platform.
Each payment transaction includes specific details related to the payment and its corresponding reservation. As multiple payments can be processed at different stages of a reservation's lifecycle, these transactions should be treated as a single entity within the PMS.
Prerequisites:
To access Payment Transaction Record data, the PMS must:
Be certified for Reservations PUSH or Reservations PULL.
Manage the
Payment Context ID
(UniqueID Type="34"
), which serves as the master record for all payments linked to a SiteMinder reservation.
Integration Requirements
Understand the essential requirements for API integration, including connectivity, authentication, message formats, and security protocols.
Web Service Endpoint
SiteMinder will provide a single global endpoint for all hotels for PMS to send pull requests
SM_HotelResPaymentReadRQ
and receive payment data responsesSM_HotelResPaymentReadRS
.
Authentication
SiteMinder will provide a single username/password for all hotels (PMS Level authentication).
PMS must include authentication credentials within the SOAP Security header of each request (
SM_HotelResPaymentReadRQ
andSM_HotelResPaymentResultRQ
).
Message Structure
All messages must adhere to the SOAP message format.
OTA message must be encapsulated within the SOAP Body.
Requests must include a SOAP Security Header for authentication.
Responses will be returned in a SOAP envelope with empty SOAP Header.
Content-Type
text/xml; charset=utf-8
Version
SOAP 1.1
Protocol & Security
All communication must occur over HTTPS using TLS 1.2 or higher.
Non-secure (HTTP) connections are not permitted.
Communication is synchronous request/response pairs.
Each message is atomic - processed entirely or not at all.
Message Exchange Flow
Pull Request (PMS to SiteMinder):
SM_HotelResPaymentReadRQ
Requests undelivered payment transactions for a specific hotel from SiteMinder.Payment Data Response (SiteMinder to PMS):
SM_HotelResPaymentReadRS
Delivers a list of undelivered payment transactions (reserves, charges or refunds) including both card-based and alternative payment methods.Confirmation Request (PMS to SiteMinder):
SM_HotelResPaymentResultRQ
Confirms successful storage and processing of payment transactions, or reports processing failures with specific error codes.Receipt Response (SiteMinder to PMS):
SM_HotelResPaymentResultRS
Acknowledges the confirmation and marks transactions as delivered (successfully or with errors), removing them from future undelivered pulls.
<SOAP-ENV:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<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="PMSCODE"/>
</Source>
</POS>
<SelectionCriteria HotelCode="HOTELCODE" SelectionType="Undelivered"/>
</SM_HotelResPaymentReadRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Multiplicity
In the SOAP Specification tables M refers to the number of instances or occurrences of an element or attribute that are allowed or required in a given context. It defines how many times a particular component (element or attribute) can appear within a specific structure.
1
The element or attribute must be present exactly once.
0..1
The element or attribute is optional; it can be present zero or one time.
0..n
The element or attribute can be present zero or more times, with no upper limit (where n represents an infinite number of occurrences).
1..n
The element or attribute must be present at least once and can be present any number of times, with no upper limit.
n..m
Specific range, the element or attribute must be present at least n times and no more than m times (where n and m are specific numbers).
1. Pull Request
Security Header
The Security Header is a mandatory SOAP header that authenticates every request from your PMS to SiteMinder endpoint. It contains the username and password credentials that we provide to the PMS during integration setup.
Key Requirements:
Validation: Our endpoint will validate these credentials on every request.
Scope: One set of credentials is used for all properties in your integration.
Security: Credentials are transmitted as plain text within the HTTPS encrypted channel.
Response: Invalid credentials will return a SOAP fault with appropriate error code.
<SOAP-ENV:Envelope>
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SM_HotelResPaymentReadRQ
xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
<!-- ... other elements and attributes have been omitted for brevity ... -->
</SM_HotelResPaymentReadRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SM_HotelResPaymentReadRQ
The PMS uses SM_HotelResPaymentReadRQ
to pull undelivered payment transactions from SiteMinder at regular intervals between 2-5 minutes. The request frequency must be no more than every 2 minutes (e.g. not every 1 minute) and no less than every 5 minutes (e.g. not every 6 minutes).
<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="PMSCODE"/>
</Source>
</POS>
<SelectionCriteria HotelCode="HOTELCODE" SelectionType="Undelivered"/>
</SM_HotelResPaymentReadRQ>
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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the request was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
.
POS / Source / RequestorID
Element
1
Identifies the system which is sending the request. Container for the PMS code.
@Type
Integer
1
Fixed at 22
(ESRP)
@ID
String
1
PMS Code assigned by SiteMinder. Remains the same throughout the messages.
SelectionCriteria
Element
1
@HotelCode
String
0..1
Hotel code as recognised by SiteMinder.
@SelectionType
String
1
Must be Undelivered
2. Payment Data Response
SiteMinder returns SM_HotelResPaymentReadRS
with undelivered payment transactions. The PMS must push these payment transactions to a queue or event stream for offline processing.
Transaction Types Returned:
Reserve: Pre-authorisation holding funds without collection (for guarantees/deposits)
Charge: Actual fund collection (room payments, services)
Refund: Return of previously collected funds (cancellations, adjustments)
<SM_HotelResPaymentReadRS EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
<HotelResPaymentList>
<HotelResPayment TransactionID="200098" HotelCode="HOTELCODE">
<UniqueID ID="123456789" Type="14" /> <!-- Reservation ID-->
<UniqueID ID="7223a92-d988-46b8-8476-3319285af8a2" Type="34" /> <!-- Payment Context ID -->
<PaymentInfo PaymentTransactionTypeCode="charge" PaymentType="5" Remark="Charge - Room" 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="HOTELCODE">
<!-- Payment Transaction Details-->
</HotelResPayment>
</HotelResPaymentList>
</SM_HotelResPaymentReadRS>
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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the response was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
HotelResPaymentList
Element
1
List of HotelResPayments
.
HotelResPayment
Element
0..n
HotelResPayment data
@HotelCode
String
1
Hotel code as recognised by SiteMinder.
@TransactionID
String
1
Transaction Identifier.
@CreateDateTime
1
Transaction Create timestamp.
CreateDateTime
must follow the ISO 8601
Date and Time format.
HotelResPayment/UniqueID
Element
2
@ID
String
1
Reservation Identifier.
@Type
Integer
1
14
- Reservation ID
34
- Payment Context ID
HotelResPayment/PaymentInfo
Element
1
@PaymentTransactionTypeCode
Enumeration
1
reserve
charge
refund
@PaymentType
Integer
1
Identifies the payment type
5
- Credit Card
6
- Debit Card
46
- Online Payment
@Remark
String
0..1
Card Based: Open Notes/Remarks.
Non-Card Based: Will include the payment provider used.
@PaymentRef
String
0..1
Payment reference (e.g. Paypal reference)
@ChargeTypeCode
Enumeration
1
Code
Description
RM
Room
FD
Food/Beverage
OT
Other
EX
Stay Extras
PaymentInfo/PaymentCard
Element
0..1
Card Based Payment.
@CardType
String
1
OTA Card Type
1
- Credit
2
- Debit
@ExpireDate
String
1
Expiry date of the credit card (format MMyy
).
@Mask
String
1
Masked CC number.
@CardHolderName
String
1
Name of card holder.
PaymentInfo\PaymentAmount
Element
1
Payment Amount container.
@Amount
Decimal
1
Transaction amount.
@CurrencyCode
String
1
Use ISO 4217
currency codes.
@Due
Decimal
0..1
Amount outstanding.
3. Confirmation Request
The PMS sends SM_HotelResPaymentResultRQ
to confirms successful storage and processing of payment transactions, or reports processing failures with specific error codes.
Unique IDs
To link payments to reservations, an additional ID is now required:
UniqueID Type=“34”
(Payment Context ID) that identifies the reservation as a whole (not just a message). If a reservation is split across multiple messages, each message will carry the same Type=“34” ID.UniqueID Type=“14”
(Reservation ID / SiteMinder ID) remains unchanged and continues to identify the individual reservation reference (e.g., 1234567890).
Grouping Transactions
SM_HotelResPaymentReadRS
can return multiple payment transactions at once. However:
Each
SM_HotelResPaymentResultRQ
must include either<Success>
or<Errors>
, never both.If some payments succeed and others fail, you must:
Send one request with Success + IDs of successful transactions.
Send another request with Errors + IDs of failed transactions.
<SM_HotelResPaymentResultRQ EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
<HotelResPaymentResult TransactionID="200098" HotelCode="HOTELCODE">
<UniqueID ID="123456789" Type="14" /> <!-- Reservation ID-->
<UniqueID ID="74a63a92-d988-46b8-8476-3319285af8ac" Type="34" /> <!-- Payment Context ID -->
<UniqueID ID="077887-200098" Type="40" /> <!-- Delivery Confirmation ID -->
</HotelResPaymentResult>
<Success/>
</SM_HotelResPaymentResultRQ>
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. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the request was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
.
HotelResPaymentResult
Element
0..n
@HotelCode
String
1
Hotel code as recognised by SiteMinder.
@TransactionID
1
Transaction Identifier.
HotelResPaymentResult / UniqueID
Element
2..3
@ID
String
1
Identifier.
@Type
String
1
14
- Reservation ID
34
- Payment Context ID
40
- Delivery Confirmation ID (no returned if Error
)
Success
Element
0..1
Present if successfully stored and processed
Errors
Element
0..1
Present if unsuccessfully processed.
Error
Element
1
Mandatory if Error present. Text must contain a human readable description of the error.
4. Receipt Response
SiteMinder returns SM_HotelResPaymentResultRS
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.
<SM_HotelResPaymentResultRS EchoToken="123e4567-e89b-12d3-a456-426614174000" TimeStamp="2025-08-01T09:30:47+08:00" Version="1.0">
<Success/>
</SM_HotelResPaymentResultRS>
SM_HotelResPaymentResultRS
Element
1
Root element for the request.
@EchoToken
String
1
Unique identifier for the request, used to match requests and responses. Preferred format: UUID 8-4-4-4-12
.
@TimeStamp
DateTime
1
Time when the response was generated. TimeStamp must use ISO 8601
format.
@Version
Decimal
1
Specifies the API version. Must be set to 1.0
.
Success
Element
0..1
Present if successfully stored and processed
Errors
Element
0..1
Present If unsuccessfully processed
Error
Element
1
Mandatory if Error present. Text can contain a human readable description of the error
Last updated
Was this helpful?