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

FDMSDetailRecord Component

Properties   Methods   Events   Configuration Settings   Errors  

The FDMSDetailRecord component is a tool used to create off-line Credit or Force transactions to be settled by the FDMSSETTLE component. The FDMSDetailRecord component may also be used to modify the XML aggregates returned by the FDMSRETAIL or FDMSECOMMERCE component's GetDetailAggregate method.

Syntax

DPayments.DPaymentsSDK.Fdmsdetailrecord

Remarks

Credit and Force transactions are off-line transactions. This means that there is no authorization of funds using the FDMSECommerce, FDMSRetail components. Instead, you must manually add these transactions to the settlement batch. The FDMSDetailRecord component can be used to create these transactions, which can then be added to the FDMSSettle component's DetailRecord array property.

To create a Credit, first set the TransactionType to ttCredit, and then set the IndustryType. CardEntryDataSource, and DirectMarketingType 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:


  FDMSDetailRecord.TransactionType = ttCredit
  FDMSDetailRecord.IndustryType = itDirectMarketing
  FDMSDetailRecord.CardEntryDataSource = edsManualEntryNoCardReader
  FDMSDetailRecord.DirectMarketingType = dmECommerce

Next, set the CardNumber, CardExpMonth, CardExpYear, SettlementAmount, and the current TransactionDate and TransactionTime. Since this example is a Direct Marketing transaction, we're also adding the PurchaseIdentifier. Note that since this is an off-line transaction, the AuthorizedAmount MUST be either zero or empty string.


  FDMSDetailRecord.CardNumber = "4444333322221111"
  FDMSDetailRecord.CardExpMonth = 3
  FDMSDetailRecord.CardExpYear = 2019
  FDMSDetailRecord.AuthorizedAmount = "0"
  FDMSDetailRecord.SettlementAmount = "5000" '$50.00
  FDMSDetailRecord.TransTime = "123456" ' Current time (12:34:56)
  FDMSDetailRecord.TransDate = "040506" ' Current date (MMDDYY)
  FDMSDetailRecord.PurchaseIdentifier = "123456"

Finally, set the FDMSSettle component's DetailRecord array property with the value returned by the GetDetailAggregate method. You've just added a Credit to the settlement.


  
	FDMSSettle.DetailRecords.Add(New FDMSRecordType(FDMSDetailRecord.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 ResponseApprovalCode property. The following example shows a Force transaction in a Retail environment.


  FDMSDetailRecord.TransactionType = ttForce
  FDMSDetailRecord.IndustryType = itRetail
  FDMSDetailRecord.CardEntryDataSource = edsTrack1
  FDMSDetailRecord.CardNumber = "4444333322221111"
  FDMSDetailRecord.CardExpMonth = 3
  FDMSDetailRecord.CardExpYear = 2019
  FDMSDetailRecord.AuthorizedAmount = "0"
  FDMSDetailRecord.SettlementAmount = "500000" '$5000.00
  FDMSDetailRecord.TransTime = "123456" ' Current time (12:34:56)
  FDMSDetailRecord.TransDate = "040506" ' Current date (MMDDYY)
  FDMSDetailRecord.ResponseApprovalCode = "123456"

  FDMSSettle.DetailRecords.Add(New FDMSRecordType(FDMSDetailRecord.GetDetailAggregate()))
  

In addition to creating Credit and Force transactions, the FDMSDetailRecord component can be used to adjust the Detail Records returned from the FDMSECommerce and FDMSRetail components. The most common reasons to modify these detail records are to add a Gratuity (tip) to a charge (itResturant IndustryType), or to add a PurchaseIdentifier or Installment payment info (itDirectMarketing IndustryType) to the detail record.

For example, to add a gratuity to a charge:


  FDMSDetailRecord.ParseAggregate(FDMSRetail.GetDetailAggregate())
  FDMSDetailRecord.Gratuity = "500"
  FDMSDetailRecord.TransactionAmount = FDMSDetailRecord.TransactionAmount + FDMSDetailRecord.Gratuity
  FDMSSettle.DetailRecords.Add(New FDMSRecordType(FDMSDetailRecord.GetDetailAggregate()))

To settle a transaction authorized with the ttInstallment TransactionType, you must use the FDMSDetailRecord 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:


  FDMSECommerce.TransactionType = ttInstallment
  FDMSECommerce.TransactionAmount = "1995"
  FDMSECommerce.Authorize()

  FDMSDetailRecord.ParseAggregate FDMSECommerce.GetDetailAggregate()
  FDMSDetailRecord.InstallmentCount = 3
  FDMSDetailRecord.InstallmentNumber = 1
  
  FDMSSettle.DetailRecords.Add(new FDMSRecordType(FDMSDetailRecord.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.
CardEntryDataSourceThis property identifies the source of the customer data.
CardExpMonthExpiration month of the credit card specified in CardNumber .
CardExpYearExpiration year of the credit card specified in CardNumber .
CardLevelResultsCard Level result code returned only for Visa transactions.
CardNumberCustomer's credit card number from the original authorization request.
CashBackAmount of cash that was returned to the customer.
DebitReceiptMerchant-generated number that identifies the debit or EBT transaction.
DirectMarketingTypeSpecifies the type of transaction to process.
ECIElectronic Commerce Indicator from the original authorization request.
GratuityGratuity amount for settling restaurant industry transactions.
IndustryTypeCode which indicates the industry the merchant is engaged in.
InstallmentCountTotal number of installments (installment transactions only).
InstallmentNumberCurrent installment number (installment transactions only).
PurchaseIdentifierOptional purchase order number assigned by the merchant.
ResponseApprovalCodeResponse Approval Code from the original authorization response.
ResponseAVSResultAddress Verification Code from the original authorization response.
ResponseReturnedACIAuthorization Characteristics Indicator from the original authorization response.
ServerIdSpecifies the employee that served the customer. Used for restaurants only.
SettlementAmountThe amount that the customer will be charged.
TicketNumberTicket (receipt) number for this transaction.
TransactionDateLocal Transaction Date (in MMDDYY format) from the original authorization response.
TransactionIdTransaction Identifier from the original authorization response.
TransactionTimeLocal transaction time from the original authorization response.
TransactionTypeIndicates transaction type for this detail record.
ValidationCodeValidation Code from the original authorization response.

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.

MSDIMarket Specific Data Indicator.
CurrencyCodeCurrency Code for this transaction.
DCCIndicatorStatus of the Dynamic Currency Conversion.
DCCTimeZoneThe time zone of the merchant where the DCC transaction is taking place.
DCCConversionRateThe DCC Conversion rate.
DCCUSAmountThe US Dollar Amount for a DCC transaction.
GUIAvailableTells the component whether or not a message loop is available for processing events.
UseBackgroundThreadWhether threads created by the component are background threads.
UseInternalSecurityAPITells the component whether or not to use the system security libraries or an internal implementation.

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