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 .xml suffix or ?format=xml

HTTP + 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>