| GET | /v2/transaction/{Query}/{CendynPropertyId} | ||
|---|---|---|---|
| GET | /v2/transaction/{Query} |
import Foundation
import ServiceStack
public class TransactionRequest : Codable
{
public var cendynPropertyId:String?
public var transactionSource:String?
public var query:TransactionQueryType?
public var id:String?
public var startDate:Date?
public var endDate:Date?
// @DataMember(Name="Limit")
public var pageSize:Int?
// @DataMember(Name="Page")
public var pageNumber:Int?
required public init(){}
}
public enum TransactionQueryType : String, Codable
{
case TransactionId
case LastUpdated
case TransactionDate
}
public class TransactionResponse : CenResResponse
{
public var records:[Transaction] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case records
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
records = try container.decodeIfPresent([Transaction].self, forKey: .records) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if records.count > 0 { try container.encode(records, forKey: .records) }
}
}
public class CenResResponse : Codable
{
public var status:RequestStatus?
public var statusMessage:String?
public var recordsReturned:Int?
public var recordsAvailable:Int?
public var pageNumber:Int?
public var pageSize:Int?
required public init(){}
}
public enum RequestStatus : String, Codable
{
case Success
case Warning
case Error
case NotAuthorized
case Failure
}
public class Transaction : Codable
{
public var cendynPropertyID:String?
public var sourcePropertyID:String?
public var externalResID1:String?
public var externalProfileID:String?
public var externalRefType:String?
public var externalRefID:String?
public var transactionSource:String?
public var transactionID:String?
public var transactionGroup:String?
public var transactionDate:Date?
public var folioID:String?
public var folioGroupingID:String?
public var transactionCode:String?
public var Description:String?
public var creditAmount:Double?
public var debitAmount:Double?
public var netAmount:Double?
public var displayOnInvoice:Bool?
public var ledgerAccountNum:String?
public var ccTransactionType:String?
public var roomNumber:String?
public var transferType:String?
public var transferredResID:String?
public var referenceNum:String?
public var postedNights:Int?
public var itemQty:Int?
public var userID:String?
public var currencyCode:String?
public var decimals:Int?
public var customValue1:Double?
public var customValue2:Double?
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v2/transaction/{Query}/{CendynPropertyId} HTTP/1.1
Host: cert.cendyn.com
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<TransactionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CenResSS.ServiceModel">
<PageNumber>0</PageNumber>
<PageSize>0</PageSize>
<RecordsAvailable>0</RecordsAvailable>
<RecordsReturned>0</RecordsReturned>
<Status>Success</Status>
<StatusMessage>String</StatusMessage>
<Records>
<Transaction>
<CCTransactionType>String</CCTransactionType>
<CendynPropertyID>String</CendynPropertyID>
<CreditAmount>0</CreditAmount>
<CurrencyCode>String</CurrencyCode>
<CustomValue1>0</CustomValue1>
<CustomValue2>0</CustomValue2>
<DebitAmount>0</DebitAmount>
<Decimals>0</Decimals>
<Description>String</Description>
<DisplayOnInvoice>false</DisplayOnInvoice>
<ExternalProfileID>String</ExternalProfileID>
<ExternalRefID>String</ExternalRefID>
<ExternalRefType>String</ExternalRefType>
<ExternalResID1>String</ExternalResID1>
<FolioGroupingID>String</FolioGroupingID>
<FolioID>String</FolioID>
<ItemQty>0</ItemQty>
<LedgerAccountNum>String</LedgerAccountNum>
<NetAmount>0</NetAmount>
<PostedNights>0</PostedNights>
<ReferenceNum>String</ReferenceNum>
<RoomNumber>String</RoomNumber>
<SourcePropertyID>String</SourcePropertyID>
<TransactionCode>String</TransactionCode>
<TransactionDate>0001-01-01T00:00:00</TransactionDate>
<TransactionGroup>String</TransactionGroup>
<TransactionID>String</TransactionID>
<TransactionSource>String</TransactionSource>
<TransferType>String</TransferType>
<TransferredResID>String</TransferredResID>
<UserID>String</UserID>
</Transaction>
</Records>
</TransactionResponse>