TSYSDetailRecord Component
Properties Methods Events Configuration Settings Errors
The TSYSDetailRecord component is a tool used to create off-line Credit or Force transactions to be settled by the TSYSSETTLE component. The TSYSDetailRecord component may also be used to modify the XML aggregates returned by the TSYSRETAIL or TSYSECOMMERCE component's GetDetailAggregate method.
Syntax
nsoftware.InPayDirect.Tsysdetailrecord
Remarks
Credit and Force transactions are off-line transactions. This means that there is no authorization of funds using the TSYSECommerce or TSYSRetail components. Instead, you must manually add these transactions to the settlement batch. The TSYSDetailRecord component can be used to create these transactions, which can then be added to the TSYSSettle component's DetailRecords property.
To create a Credit, first set the TransactionType to dttOffLineCredit, and then set the IndustryType. EntryDataSource, and CardholderId based on whether you have a card reader, and how your customer is authenticated. The following example shows how this should be set for Direct Marketing:
TSYSDetailRecord.TransactionType = dttOffLineCredit TSYSDetailRecord.IndustryType = itDirectMarketing TSYSDetailRecord.EntryDataSource = edsManualEntryNoCardReader 'for DirectMarketing TSYSDetailRecord.CardholderId = "N" 'AVS for direct marketing
Next, set the CardNumber, SettlementAmount, and the current TransactionDate and TransactionTime. Note that since this is an off-line transaction, the AuthorizedAmount MUST be either zero or empty string.
TSYSDetailRecord.CardNumber = "4444333322221111" 'Card to credit TSYSDetailRecord.SettlementAmount = "3476" 'Amount of the credit $34.76 TSYSDetailRecord.AuthorizedAmount = "0" 'MUST be zero for credits! TSYSDetailRecord.TransactionDate = "0605" 'Date of this credit in MMDD format TSYSDetailRecord.TransactionTime = "124555" 'Time of this credit in HHMMSS format
Since this is an off-line transaction, the TransactionNumber may be any value (except 0), and need not reflect the value from the original authorization. You may simply set this to the next sequence number used for authorizations, if you wish. However, the TransactionId must be set to "0" or empty string.
TSYSDetailRecord.TransactionNumber = "123" 'Transaction sequence number of the original authorization request TSYSDetailRecord.TransactionId = "" 'ResponseTransactionId from the original authorization responseFinally, set the TSYSSettle component's DetailRecord array property with the value returned by the GetDetailAggregate method. You've just added a Credit to the settlement.
TSYSSettle.DetailRecords.Add(new TSYSRecordType(TSYSDetailRecord.GetDetailAggregate()));
Forced transactions are similar to credits, with the exception that a Forced transaction requires a Voice
Authorization code obtained from your acquiring bank's call center. Generally, the purchase of large high-dollar
items (cars, appliances, etc) will require the merchant to call and receive a voice authorization. Once this code
is received, it should be set to the ApprovalCode property. The following example shows a Force
transaction in a Retail environment.
TSYSDetailRecord.TransactionType = dttForceCardPresent TSYSDetailRecord.IndustryType = itRetail TSYSDetailRecord.ResponseApprovalCode = "123456" ' This is obtained from a voice authorization over the phone TSYSDetailRecord.EntryDataSource = edsTrack1 TSYSDetailRecord.CardholderId = "@" 'Signature TSYSDetailRecord.CardNumber = "4444333322221111" 'Card to credit TSYSDetailRecord.SettlementAmount = "5555" 'Amount of the credit $55.55 TSYSDetailRecord.AuthorizedAmount = 0 'MUST be zero for off-line transactions! TSYSDetailRecord.TransactionDate = "0605" 'Date of this credit in MMDD format TSYSDetailRecord.TransactionTime = "124555" 'Time of this credit in HHMMSS format TSYSDetailRecord.TransactionNumber = "124" 'Transaction sequence number of the original authorization request TSYSDetailRecord.TransactionId = "" 'ResponseTransactionId from the original authorization response TSYSSettle.DetailRecords.Add(new TSYSRecordType(TSYSDetailRecord.GetDetailAggregate()));
In addition to creating Credit and Force transactions, the TSYSDetailRecord component can be used to adjust the Detail Records returned from the TSYSECommerce, TSYSRetail, TSYSDebit, and TSYSBenefit components. The most common reasons to modify these detail records are to add a Gratuity (tip) to a charge (itResturant IndustryType), to add a PurchaseIdentifier or Installment payment info (itDirectMarketing IndustryType) to the detail record, or to add Hotel or Auto Rental specific information when dealing with those IndustryTypes.
For example, to add a gratuity to a charge:
DetailRecord.ParseAggregate(TSYSRetail.GetDetailAggregate()) DetailRecord.Gratuity = "500" DetailRecord.SettlementAmount = DetailRecord.AuthorizedAmount + DetailRecord.Gratuity TSYSSettle.DetailAggregate[0] = DetailRecord.GetDetailAggregate()
To settle a transaction authorized with the ttInstallment TransactionType, you must use the TSYSDetailRecord component to add the number of this installment and the total count of all installments to be made. For instance, if the purchase was for "Three easy payments of $19.95", and this is the first payment, then the installment number will be 1, and the installment count 3. An example is included below:
TSYSECommerce.TransactionType = ttInstallment TSYSECommerce.TransactionAmount = "1995" TSYSECommerce.Authorize() DetailRecord.ParseAggregate TSYSECommerce.GetDetailAggregate() DetailRecord.InstallmentCount = 3 DetailRecord.InstallmentNumber = 1 TSYSSettle.DetailAggregate[5] = DetailRecord.GetDetailAggregate()
Property List
The following is the full list of the properties of the component with short descriptions. Click on the links for further details.
AuthorizedAmount | Original amount authorized before any reversals. |
CardholderId | Specifies the method used to verify the identity of the cardholder. |
CardNumber | Customer's credit card number from the original authorization request. |
DebitCashBack | Contains the ResponseCashBack amount from the original Debit or EBT transaction. |
DebitNetworkId | Contains the ResponseNetworkId returned in the original Debit or EBT response. |
DebitReimbursementAttribute | Contains the ReimbursementAttribute from the original Debit or EBT request. |
DebitRetrievalNumber | Contains the ResponseRetrievalNumber returned in original Debit or EBT response. |
DebitSettleDate | Contains the ResponseSettleDate returned in the original Debit or EBT response. |
DebitTrace | Contains the ResponseTrace returned from the original debit or EBT response. |
ECI | Electronic Commerce Indicator from the original authorization request. |
EntryDataSource | This property contains a 1-character code identifying the source of the customer data. |
GoodsIndicator | Used to identify the type of goods purchased over the Internet. |
Gratuity | Gratuity amount for settling restaurant industry transactions. |
Healthcare | Indicates whether this is a healthcare transaction. |
HotelChargeType | Type of charge made at a hotel (American Express cards only). |
HotelRateAmount | The nightly rate for this hotel room (American Express cards only). |
IndustryType | Code which indicates the industry the merchant is engaged in. |
InstallmentCount | Total number of installments (installment transactions only). |
InstallmentNumber | Current installment number (installment transactions only). |
PartiallyReversed | Indicates whether this transaction has been partially reversed. |
PurchaseIdentifier | Optional purchase order number assigned by the merchant. |
RentalCheckIn | Date the cardholder checked into the hotel or first drove away a rented vehicle. |
RentalExtraCharges | List of extra charges for Hotel/Auto transactions. |
RentalNoShow | Indicates whether the cardholder is a no-show (auto rental and hotel industries only). |
RentalReturnCity | City where the rental car was returned (MasterCard only). |
RentalReturnLocation | Id of the location where the rental vehicle was returned (MasterCard only). |
RentalReturnState | State or country where the rental car was returned (MasterCard only). |
RenterName | Name of the person renting the vehicle (MasterCard only). |
RequestedACI | Authorization Characteristics Indicator from the original authorization request. |
ResponseACI | Authorization Characteristics Indicator from the original authorization response. |
ResponseApprovalCode | Response Approval Code from the original authorization response. |
ResponseAuthSource | Auth Source Code from the original authorization response. |
ResponseAVS | Address Verification Code from the original authorization response. |
ResponseCardLevel | Card Level results returned from the original authorization response. |
ResponseCode | Response code from the original authorization response. |
SettlementAmount | The amount that the customer will be charged. |
Substantiated | Used for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS). |
TotalAuthorizedAmount | Sum total of all the original authorization and all subsequent incremental authorizations. |
TransactionDate | Local Transaction Date from the original authorization response. |
TransactionId | Transaction Identifier from the original authorization response. |
TransactionNumber | Transaction Number from the original authorization request. |
TransactionTime | Local transaction time from the original authorization response. |
TransactionType | Indicates transaction type for this detail record. |
ValidationCode | Validation Code from the original authorization response. |
VoidTransaction | Indicates whether this transaction has been voided. |
Method List
The following is the full list of the methods of the component with short descriptions. Click on the links for further details.
Config | Sets or retrieves a configuration setting . |
GetDetailAggregate | Returns an aggregate containing details of this transaction, which is then used for settlement. |
ParseAggregate | Parses the aggregate returned from another component's GetDetailAggregate method. |
Reset | Clears all properties to their default values. |
Event List
The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
Configuration Settings
The following is a list of configuration settings for the component with short descriptions. Click on the links for further details.
AccountDataSource | Identifies the source of the customer card data entered. |
VisaMVV | Merchant Verification Value used for Visa healthcare transactions. |
EMVData | The EMV Data returned from a Pin Pad after reading an EMV card. |
Processor | Specifies the Processor you are connecting to. |
HeartlandEncryptionMode | Specifies the encryption mode to use in Heartland transactions. |
HeartlandDeviceId | Specifies a device ID to uniquely identify each terminal (card data entry device). |
RequesterName | Name of the requester. |
TotalTaxAmount | Total Tax Amount assessed at the point-of-sale. |
DetailExtension | Detail Extension Optional Data Group. |
TsysETB | The Encryption Transmission Block TSYS uses to decrypt encrypted data. |
Token | The token used in place of Card data. |
MobileDeviceType | Identifies the type of mobile device used by the cardholder to initiate the transaction. |
SpendQualifiedIndicator | Indicates whether or not the spend qualification threshold has been met. |
EMVTranType | The Transaction Type used by the card to calculate the cryptogram. |
EMVTranDate | The local date at the terminal on which the transaction was authorized. |
EMVVerificationResult | The indicators representing the results of offline and online processing, recorded by the terminal. |
EMVCurrencyCode | The currency code of the transaction. |
EMVAppTranCounter | The count of the transactions performed within the application. |
EMVAppInterchangeProfile | A series of indicators that reflect the specific functions supported by the chip card account. |
EMVAppCryptogram | The clearing cryptogram used to validate transaction processing in the event of a dispute. |
EMVUnpredictableNum | The number used in the generation of the cryptogram. |
EMVIssuerAppData | Application data for transmission to the issuer in an online transaction. |
EMVCryptogramInfoData | The type of cryptogram and the actions to be performed by the terminal. |
EMVTerminalCapabilities | Indicates the card input data, the Cardholder Verification Method (CVM), and the security capabilities that are supported by the terminal. |
EMVCardSeqNum | The number assigned to a specific card when two or more cards are associated with a single account number. |
EMVIssuerAuthData | Data sent by the Issuer to the Chip Card for the Chip Card to validate the authenticity of the Issuer. |
EMVCVMResults | The results of the last Cardholder Verification Method (CVM) performed. |
EMVIssuerScriptResults | The update command that the issuer sends in the authorization response to the card during online processing. |
EMVFormFactorID | This indicators related to the attributes of the cardholder's device and the technology used for the communication between the cardholder's device and the acquiring device. |
EMVCryptogramAmount | Contains the transaction amount used by the chip when calculating the last cryptogram. |
CodePage | The system code page used for Unicode to Multibyte translations. |