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 'package:servicestack/servicestack.dart';

enum RequestStatus
{
    Success,
    Warning,
    Error,
    NotAuthorized,
    Failure,
}

class CenResResponse implements IConvertible
{
    RequestStatus? status;
    String? statusMessage;
    int? recordsReturned;
    int? recordsAvailable;
    int? pageNumber;
    int? pageSize;

    CenResResponse({this.status,this.statusMessage,this.recordsReturned,this.recordsAvailable,this.pageNumber,this.pageSize});
    CenResResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        status = JsonConverters.fromJson(json['status'],'RequestStatus',context!);
        statusMessage = json['statusMessage'];
        recordsReturned = json['recordsReturned'];
        recordsAvailable = json['recordsAvailable'];
        pageNumber = json['pageNumber'];
        pageSize = json['pageSize'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'status': JsonConverters.toJson(status,'RequestStatus',context!),
        'statusMessage': statusMessage,
        'recordsReturned': recordsReturned,
        'recordsAvailable': recordsAvailable,
        'pageNumber': pageNumber,
        'pageSize': pageSize
    };

    getTypeName() => "CenResResponse";
    TypeContext? context = _ctx;
}

class Transaction implements IConvertible
{
    String? cendynPropertyID;
    String? sourcePropertyID;
    String? externalResID1;
    String? externalProfileID;
    String? externalRefType;
    String? externalRefID;
    String? transactionSource;
    String? transactionID;
    String? transactionGroup;
    DateTime? transactionDate;
    String? folioID;
    String? folioGroupingID;
    String? transactionCode;
    String? description;
    double? creditAmount;
    double? debitAmount;
    double? netAmount;
    bool? displayOnInvoice;
    String? ledgerAccountNum;
    String? ccTransactionType;
    String? roomNumber;
    String? transferType;
    String? transferredResID;
    String? referenceNum;
    int? postedNights;
    int? itemQty;
    String? userID;
    String? currencyCode;
    int? decimals;
    double? customValue1;
    double? customValue2;

    Transaction({this.cendynPropertyID,this.sourcePropertyID,this.externalResID1,this.externalProfileID,this.externalRefType,this.externalRefID,this.transactionSource,this.transactionID,this.transactionGroup,this.transactionDate,this.folioID,this.folioGroupingID,this.transactionCode,this.description,this.creditAmount,this.debitAmount,this.netAmount,this.displayOnInvoice,this.ledgerAccountNum,this.ccTransactionType,this.roomNumber,this.transferType,this.transferredResID,this.referenceNum,this.postedNights,this.itemQty,this.userID,this.currencyCode,this.decimals,this.customValue1,this.customValue2});
    Transaction.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        cendynPropertyID = json['cendynPropertyID'];
        sourcePropertyID = json['sourcePropertyID'];
        externalResID1 = json['externalResID1'];
        externalProfileID = json['externalProfileID'];
        externalRefType = json['externalRefType'];
        externalRefID = json['externalRefID'];
        transactionSource = json['transactionSource'];
        transactionID = json['transactionID'];
        transactionGroup = json['transactionGroup'];
        transactionDate = JsonConverters.fromJson(json['transactionDate'],'DateTime',context!);
        folioID = json['folioID'];
        folioGroupingID = json['folioGroupingID'];
        transactionCode = json['transactionCode'];
        description = json['description'];
        creditAmount = JsonConverters.toDouble(json['creditAmount']);
        debitAmount = JsonConverters.toDouble(json['debitAmount']);
        netAmount = JsonConverters.toDouble(json['netAmount']);
        displayOnInvoice = json['displayOnInvoice'];
        ledgerAccountNum = json['ledgerAccountNum'];
        ccTransactionType = json['ccTransactionType'];
        roomNumber = json['roomNumber'];
        transferType = json['transferType'];
        transferredResID = json['transferredResID'];
        referenceNum = json['referenceNum'];
        postedNights = json['postedNights'];
        itemQty = json['itemQty'];
        userID = json['userID'];
        currencyCode = json['currencyCode'];
        decimals = json['decimals'];
        customValue1 = JsonConverters.toDouble(json['customValue1']);
        customValue2 = JsonConverters.toDouble(json['customValue2']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'cendynPropertyID': cendynPropertyID,
        'sourcePropertyID': sourcePropertyID,
        'externalResID1': externalResID1,
        'externalProfileID': externalProfileID,
        'externalRefType': externalRefType,
        'externalRefID': externalRefID,
        'transactionSource': transactionSource,
        'transactionID': transactionID,
        'transactionGroup': transactionGroup,
        'transactionDate': JsonConverters.toJson(transactionDate,'DateTime',context!),
        'folioID': folioID,
        'folioGroupingID': folioGroupingID,
        'transactionCode': transactionCode,
        'description': description,
        'creditAmount': creditAmount,
        'debitAmount': debitAmount,
        'netAmount': netAmount,
        'displayOnInvoice': displayOnInvoice,
        'ledgerAccountNum': ledgerAccountNum,
        'ccTransactionType': ccTransactionType,
        'roomNumber': roomNumber,
        'transferType': transferType,
        'transferredResID': transferredResID,
        'referenceNum': referenceNum,
        'postedNights': postedNights,
        'itemQty': itemQty,
        'userID': userID,
        'currencyCode': currencyCode,
        'decimals': decimals,
        'customValue1': customValue1,
        'customValue2': customValue2
    };

    getTypeName() => "Transaction";
    TypeContext? context = _ctx;
}

class TransactionResponse extends CenResResponse implements IConvertible
{
    List<Transaction>? records;

    TransactionResponse({this.records});
    TransactionResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        records = JsonConverters.fromJson(json['records'],'List<Transaction>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'records': JsonConverters.toJson(records,'List<Transaction>',context!)
    });

    getTypeName() => "TransactionResponse";
    TypeContext? context = _ctx;
}

enum TransactionQueryType
{
    TransactionId,
    LastUpdated,
    TransactionDate,
}

class TransactionRequest implements IConvertible
{
    String? cendynPropertyId;
    String? transactionSource;
    TransactionQueryType? query;
    String? id;
    DateTime? startDate;
    DateTime? endDate;
    // @DataMember(Name="Limit")
    int? pageSize;

    // @DataMember(Name="Page")
    int? pageNumber;

    TransactionRequest({this.cendynPropertyId,this.transactionSource,this.query,this.id,this.startDate,this.endDate,this.pageSize,this.pageNumber});
    TransactionRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        cendynPropertyId = json['cendynPropertyId'];
        transactionSource = json['transactionSource'];
        query = JsonConverters.fromJson(json['query'],'TransactionQueryType',context!);
        id = json['id'];
        startDate = JsonConverters.fromJson(json['startDate'],'DateTime',context!);
        endDate = JsonConverters.fromJson(json['endDate'],'DateTime',context!);
        pageSize = json['pageSize'];
        pageNumber = json['pageNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'cendynPropertyId': cendynPropertyId,
        'transactionSource': transactionSource,
        'query': JsonConverters.toJson(query,'TransactionQueryType',context!),
        'id': id,
        'startDate': JsonConverters.toJson(startDate,'DateTime',context!),
        'endDate': JsonConverters.toJson(endDate,'DateTime',context!),
        'pageSize': pageSize,
        'pageNumber': pageNumber
    };

    getTypeName() => "TransactionRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'cert.cendyn.com', types: <String, TypeInfo> {
    'RequestStatus': TypeInfo(TypeOf.Enum, enumValues:RequestStatus.values),
    'CenResResponse': TypeInfo(TypeOf.Class, create:() => CenResResponse()),
    'Transaction': TypeInfo(TypeOf.Class, create:() => Transaction()),
    'TransactionResponse': TypeInfo(TypeOf.Class, create:() => TransactionResponse()),
    'List<Transaction>': TypeInfo(TypeOf.Class, create:() => <Transaction>[]),
    'TransactionQueryType': TypeInfo(TypeOf.Enum, enumValues:TransactionQueryType.values),
    'TransactionRequest': TypeInfo(TypeOf.Class, create:() => TransactionRequest()),
});

Dart 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}