4D Payments SDK 2016 .NET Edition
4D Payments SDK 2016 .NET Edition
Questions / Feedback?

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

DPayments.DPaymentsSDK.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 response  
Finally, 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 or Passenger Transport 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()

To settle a Passenger Transport transaction authorized with the sitPassengerTransport IndustryType, you must use the TSYSDetailRecord component to add the number of this passenger and the total count of all passengers in the authorization code. For instance, if the authorization transaction included "Three passengers", and this is the first passenger, then the passenger number will be 1, and the passenger count 3. An example is included below:


  TSYSRetail.IndustryType = sitPassengerTransport
  TSYSRetail.Authorize()

  DetailRecord.ParseAggregate TSYSRetail.GetDetailAggregate()
  DetailRecord.PassengerCount = 3
  DetailRecord.PassengerNumber = 1
  DetailRecord.Config("RestrictedTicketIndicator=True")
  DetailRecord.Config("TicketNumber=8382152100395")
  DetailRecord.Config("PassengerName=John Smith")
  DetailRecord.Config("DepartureDate=072117")
  DetailRecord.Config("Origin=JFK")
  DetailRecord.Config("Leg1=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX")
  
  TSYSSettle1.IndustryType = sitPassengerTransport
  TSYSSettle1.Config("TravelAgencyCode=12345678") 'if ticket was issued by a travel agency
  TSYSSettle1.Config("TravelAgencyName=Travel and Tours") 'if ticket was issued by a travel agency
  TSYSSettle1.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.

AuthorizedAmountOriginal amount authorized before any reversals.
CardholderIdSpecifies the method used to verify the identity of the cardholder.
CardNumberCustomer's credit card number from the original authorization request.
DebitCashBackContains the ResponseCashBack amount from the original Debit or EBT transaction.
DebitNetworkIdContains the ResponseNetworkId returned in the original Debit or EBT response.
DebitReimbursementAttributeContains the ReimbursementAttribute from the original Debit or EBT request.
DebitRetrievalNumberContains the ResponseRetrievalNumber returned in original Debit or EBT response.
DebitSettleDateContains the ResponseSettleDate returned in the original Debit or EBT response.
DebitTraceContains the ResponseTrace returned from the original debit or EBT response.
ECIElectronic Commerce Indicator from the original authorization request.
EntryDataSourceThis property contains a 1-character code identifying the source of the customer data.
GoodsIndicatorUsed to identify the type of goods purchased over the Internet.
GratuityGratuity amount for settling restaurant industry transactions.
HealthcareIndicates whether this is a healthcare transaction.
HotelChargeTypeType of charge made at a hotel (American Express cards only).
HotelRateAmountThe nightly rate for this hotel room (American Express cards only).
IndustryTypeCode which indicates the industry the merchant is engaged in.
InstallmentCountTotal number of installments (installment transactions only).
InstallmentNumberCurrent installment number (installment transactions only).
LodgingRenterNameName of the person or business entity charged for the reservation and/or lodging stay (hotel transactions only).
PartiallyReversedIndicates whether this transaction has been partially reversed.
PassengerCountTotal number of passengers (multiple passenger transport transactions only).
PassengerNumberCurrent passenger number (multiple passenger transport transactions only).
PurchaseIdentifierOptional purchase order number assigned by the merchant.
RentalCheckInDate the cardholder checked into the hotel or first drove away a rented vehicle.
RentalExtraChargesList of extra charges for Hotel/Auto transactions.
RentalNoShowIndicates whether the cardholder is a no-show (auto rental and hotel industries only).
RentalReturnCityCity where the rental car was returned (MasterCard only).
RentalReturnLocationId of the location where the rental vehicle was returned (MasterCard only).
RentalReturnStateState or country where the rental car was returned (MasterCard only).
RenterNameName of the person renting the vehicle (MasterCard only).
RequestedACIAuthorization Characteristics Indicator from the original authorization request.
ResponseACIAuthorization Characteristics Indicator from the original authorization response.
ResponseApprovalCodeResponse Approval Code from the original authorization response.
ResponseAuthSourceAuth Source Code from the original authorization response.
ResponseAVSAddress Verification Code from the original authorization response.
ResponseCardLevelCard Level results returned from the original authorization response.
ResponseCodeResponse code from the original authorization response.
SettlementAmountThe amount that the customer will be charged.
SubstantiatedUsed for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS).
TotalAuthorizedAmountSum total of all the original authorization and all subsequent incremental authorizations.
TransactionDateLocal Transaction Date from the original authorization response.
TransactionIdTransaction Identifier from the original authorization response.
TransactionNumberTransaction Number from the original authorization request.
TransactionTimeLocal transaction time from the original authorization response.
TransactionTypeIndicates transaction type for this detail record.
ValidationCodeValidation Code from the original authorization response.
VoidTransactionIndicates 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.

ConfigSets or retrieves a configuration setting .
GetDetailAggregateReturns an aggregate containing details of this transaction, which is then used for settlement.
ParseAggregateParses the aggregate returned from another component's GetDetailAggregate method.
ResetClears 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.

ErrorInformation 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.

POSDataCodeSpecifies the condition of the POS device used at the time of the transaction.
IsBillPaymentIndicates that the transaction is a bill payment transaction.
IsQuasiCashSpecifies whether the transaction is Quasi-Cash transaction.
MerchantDescriptorMerchant Soft Descriptor information.
AccountDataSourceIdentifies the source of the customer card data entered.
VisaMVVMerchant Verification Value used for Visa healthcare transactions.
PassengerNameThe passenger's name.
RestrictedTicketIndicatorIndicates if there are restrictions associated with this ticket.
TicketNumberThe airline ticket number.
DepartureDateThe passenger's departure date.
OriginFirst segment travel origination Airport.
Leg1Used by Merchants that are in the airline industry to submit Leg 1 information for Passenger Transport transactions.
Leg2Used by Merchants that are in the airline industry to submit Leg 2 information for Passenger Transport transactions.
Leg3Used by Merchants that are in the airline industry to submit Leg 3 information for Passenger Transport transactions.
Leg4Used by Merchants that are in the airline industry to submit Leg 4 information for Passenger Transport transactions.
EMVDataThe EMV Data returned from a Pin Pad after reading an EMV card.
ProcessorSpecifies the Processor you are connecting to.
HeartlandEncryptionModeSpecifies the encryption mode to use in Heartland transactions.
HeartlandDeviceIdSpecifies a device ID to uniquely identify each terminal (card data entry device).
RequesterNameName of the requester.
TotalTaxAmountTotal Tax Amount assessed at the point-of-sale.
DetailExtensionDetail Extension Optional Data Group.
TsysETBThe Encryption Transmission Block TSYS uses to decrypt encrypted data.
TokenThe token used in place of Card data.
MobileDeviceTypeIdentifies the type of mobile device used by the cardholder to initiate the transaction.
SpendQualifiedIndicatorIndicates whether or not the spend qualification threshold has been met.
EMVTranTypeThe Transaction Type used by the card to calculate the cryptogram.
EMVTranDateThe local date at the terminal on which the transaction was authorized.
EMVVerificationResultThe indicators representing the results of offline and online processing, recorded by the terminal.
EMVCurrencyCodeThe currency code of the transaction.
EMVAppTranCounterThe count of the transactions performed within the application.
EMVAppInterchangeProfileA series of indicators that reflect the specific functions supported by the chip card account.
EMVAppCryptogramThe clearing cryptogram used to validate transaction processing in the event of a dispute.
EMVUnpredictableNumThe number used in the generation of the cryptogram.
EMVIssuerAppDataApplication data for transmission to the issuer in an online transaction.
EMVCryptogramInfoDataThe type of cryptogram and the actions to be performed by the terminal.
EMVTerminalCapabilitiesIndicates the card input data, the Cardholder Verification Method (CVM), and the security capabilities that are supported by the terminal.
EMVCardSeqNumThe number assigned to a specific card when two or more cards are associated with a single account number.
EMVIssuerAuthDataData sent by the Issuer to the Chip Card for the Chip Card to validate the authenticity of the Issuer.
EMVCVMResultsThe results of the last Cardholder Verification Method (CVM) performed.
EMVIssuerScriptResultsThe update command that the issuer sends in the authorization response to the card during online processing.
EMVFormFactorIDThis 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.
EMVCryptogramAmountContains the transaction amount used by the chip when calculating the last cryptogram.
CodePageThe system code page used for Unicode to Multibyte translations.

 
 
Copyright (c) 2017 4D Payments Inc. - All rights reserved.
4D Payments SDK 2016 .NET Edition - Version 16.0 [Build 6431]