CenResService

<back to all web services

TransactionRequest

The following routes are available for this service:
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(){}
}


Swift TransactionRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"records":[{"cendynPropertyID":"String","sourcePropertyID":"String","externalResID1":"String","externalProfileID":"String","externalRefType":"String","externalRefID":"String","transactionSource":"String","transactionID":"String","transactionGroup":"String","transactionDate":"0001-01-01T00:00:00.0000000","folioID":"String","folioGroupingID":"String","transactionCode":"String","description":"String","creditAmount":0,"debitAmount":0,"netAmount":0,"displayOnInvoice":false,"ledgerAccountNum":"String","ccTransactionType":"String","roomNumber":"String","transferType":"String","transferredResID":"String","referenceNum":"String","postedNights":0,"itemQty":0,"userID":"String","currencyCode":"String","decimals":0,"customValue1":0,"customValue2":0}],"status":"Success","statusMessage":"String","recordsReturned":0,"recordsAvailable":0,"pageNumber":0,"pageSize":0}