TSYSDetailRecord Class

Properties   Methods   Events   Config Settings   Errors  

The TSYSDetailRecord class is a tool used to create off-line Credit or Force transactions to be settled by the TSYSSETTLE class. The TSYSDetailRecord class may also be used to modify the XML aggregates returned by the TSYSRETAIL or TSYSECOMMERCE class's GetDetailAggregate method.

Class Name

DPaymentsSDK_TSYSDetailRecord

Procedural Interface

 dpaymentssdk_tsysdetailrecord_open();
 dpaymentssdk_tsysdetailrecord_close($res);
 dpaymentssdk_tsysdetailrecord_register_callback($res, $id, $function);
 dpaymentssdk_tsysdetailrecord_get_last_error($res);
 dpaymentssdk_tsysdetailrecord_get_last_error_code($res);
 dpaymentssdk_tsysdetailrecord_set($res, $id, $index, $value);
 dpaymentssdk_tsysdetailrecord_get($res, $id, $index);
 dpaymentssdk_tsysdetailrecord_do_config($res, $configurationstring);
 dpaymentssdk_tsysdetailrecord_do_getdetailaggregate($res);
 dpaymentssdk_tsysdetailrecord_do_parseaggregate($res, $aggregate);
 dpaymentssdk_tsysdetailrecord_do_reset($res);

Remarks

Credit and Force transactions are off-line transactions. This means that there is no authorization of funds using the TSYSECommerce or TSYSRetail classs. Instead, you must manually add these transactions to the settlement batch. The TSYSDetailRecord class can be used to create these transactions, which can then be added to the TSYSSettle class's DetailRecord array 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 class's DetailRecord array property with the value returned by the GetDetailAggregate method. You've just added a Credit to the settlement.

TSYSSettle.DetailRecordCount = 1 TSYSSettle.DetailRecordAggregate[0] = 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 ResponseApprovalCode 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.DetailRecordCount = 2 TSYSSettle.DetailRecordAggregate[1] = TSYSDetailRecord.GetDetailAggregate()

In addition to creating Credit and Force transactions, the TSYSDetailRecord class can be used to adjust the Detail Records returned from the TSYSECommerce, TSYSRetail, TSYSDebit, and TSYSBenefit classs. The most common reasons to modify these detail records are to add a Gratuity (tip) to a charge (sitResturant, sitRetail and sitGroceryStore 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 Passenger Transport transaction authorized with the sitPassengerTransport IndustryType, you must use the TSYSDetailRecord class 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 class 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 identifies the source of the customer data.
GoodsIndicatorUsed to identify the type of goods purchased over the Internet.
GratuityGratuity amount for settling restaurant/retail 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 class 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 class's GetDetailAggregate method.
ResetClears all properties to their default values.

Event List


The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.

ErrorInformation about errors during data delivery.

Config Settings


The following is a list of config settings for the class with short descriptions. Click on the links for further details.

AccountDataSourceIdentifies the source of the customer card data entered.
ACHCheckingSavingsIndicatorSpecifies the originating account type.
ACHCheckNumberThe individual check number.
ACHCheckReversalIndicatorACH Check Reversal Indicator.
ACHIndividualNameThe individual or receiving company name.
ACHIndividualReferenceIDMerchant and customer information.
ACHPaymentTypeIndicatorACH Payment Type Indicator.
ACHPrenoteIndicatorACH Prenote Indicator.
ACHPresentmentInformationACH Presentment Information.
ACHReturnedCheckIndicatorACH Returned Check Indicator.
ACHRoutingNumberThe receiving Depository Financial Institution (DFI) identification/routing number and check digit.
ACHSECCodeThe Standard Entry Class (SEC) Code is used to determine the ACH Rules that apply to the transaction.
ACHTelephoneNumberThe merchant / business contact phone number, REVERSAL, or REDEPCHECK.
ACHTerminalCityThe city, town, village, or township in which the merchant's terminal is located.
ACHTerminalStateThe state location for the merchant's terminal.
DepartureDateThe passenger's departure date.
DetailExtensionDetail Extension Optional Data Group.
EMVAppCryptogramThe clearing cryptogram used to validate transaction processing in the event of a dispute.
EMVAppInterchangeProfileA series of indicators that reflect the specific functions supported by the chip card account.
EMVAppTranCounterThe count of the transactions performed within the application.
EMVCardSeqNumThe number assigned to a specific card when two or more cards are associated with a single account number.
EMVCryptogramAmountContains the transaction amount used by the chip when calculating the last cryptogram.
EMVCryptogramInfoDataThe type of cryptogram and the actions to be performed by the terminal.
EMVCurrencyCodeThe currency code of the transaction.
EMVCVMResultsThe results of the last Cardholder Verification Method (CVM) performed.
EMVDataThe EMV Data returned from a Pin Pad after reading an EMV card.
EMVDedicatedFileNameIdentifies the name of the Dedicated File as described in ISO/IEC 7816-4. This field is required for Mastercard and Discover (including Diners, JCB, and CUP).
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.
EMVIssuerAppDataApplication data for transmission to the issuer in an online transaction.
EMVIssuerAuthDataData sent by the Issuer to the Chip Card for the Chip Card to validate the authenticity of the Issuer.
EMVIssuerScriptResultsThe update command that the issuer sends in the authorization response to the card during online processing.
EMVTerminalCapabilitiesIndicates the card input data, the Cardholder Verification Method (CVM), and the security capabilities that are supported by the terminal.
EMVTranDateThe local date at the terminal on which the transaction was authorized.
EMVTranTypeThe Transaction Type used by the card to calculate the cryptogram.
EMVUnpredictableNumThe number used in the generation of the cryptogram.
EMVVerificationResultThe indicators representing the results of offline and online processing, recorded by the terminal.
HeartlandDeviceIdSpecifies a device ID to uniquely identify each terminal (card data entry device).
HeartlandEncryptionModeSpecifies the encryption mode to use in Heartland transactions.
IsBillPaymentIndicates that the transaction is a bill payment transaction.
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.
LocationDetailAddressMerchant's street address.
LocationDetailCityName of the city.
LocationDetailCountryCountry code.
LocationDetailNameMerchant name.
LocationDetailPostalPostal code.
LocationDetailRegionRegion code that corresponds to the state, province, or other country subdivision.
MerchantDescriptorMerchant Soft Descriptor information.
MobileDeviceTypeIdentifies the type of mobile device used by the cardholder to initiate the transaction.
OriginFirst segment travel origination Airport.
PassengerNameThe passenger's name.
PFNameSubMerchantNameMerchant name, Payment Facilitator Name and Sub-Merchant name, or Marketplace name.
PFSubMerchantCityThe Payment Facilitator Sub-Merchant City.
PFSubMerchantCountryThe Payment Facilitator Sub-Merchant Country Code.
PFSubMerchantPostalCodeThe Payment Facilitator Sub-Merchant Postal Code.
PFSubMerchantStateThe Payment Facilitator Sub-Merchant State/Province Code.
POSDataCodeSpecifies the condition of the POS device used at the time of the transaction.
ProcessorSpecifies the Processor you are connecting to.
RequesterNameName of the requester.
RestrictedTicketIndicatorIndicates if there are restrictions associated with this ticket.
SpecialConditionIndicatorDescribes selected special conditions at the POS.
SpendQualifiedIndicatorIndicates whether or not the spend qualification threshold has been met.
TicketNumberThe airline ticket number.
TokenThe token used in place of Card data.
TotalTaxAmountTotal Tax Amount assessed at the point-of-sale.
TsysETBThe Encryption Transmission Block TSYS uses to decrypt encrypted data.
VisaMVVMerchant Verification Value used for Visa transactions.
BuildInfoInformation about the product's build.
CodePageThe system code page used for Unicode to Multibyte translations.
LicenseInfoInformation about the current license.
MaskSensitiveWhether sensitive data is masked in log messages.
ProcessIdleEventsWhether the class uses its internal event loop to process events when the main thread is idle.
SelectWaitMillisThe length of time in milliseconds the class will wait when DoEvents is called if there are no events to process.
UseInternalSecurityAPITells the class whether or not to use the system security libraries or an internal implementation.

AuthorizedAmount Property (DPaymentsSDK_TSYSDetailRecord Class)

Original amount authorized before any reversals.

Object Oriented Interface


public function getAuthorizedAmount();


public function setAuthorizedAmount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 1 );


dpaymentssdk_tsysdetailrecord_set($res, 1, $value );

Default Value

'000000000000'

Remarks

This field contains the transaction amount from the original authorization request message. If any additional authorizations have been made, or the SettlementAmount is different than the originally authorized amount (due to items out of stock or adding a Gratuity) this property should still reflect the original unchanged amount from the initial authorization request.

This amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated CurrencyCode configuration setting. In the United States (default), the number of allowable significant digits is seven. Thus the maximum TransactionAmount is "9999999", yielding a US dollar amount of $99,999.99. This field may not contain a negative number.

Data Type

String

CardholderId Property (DPaymentsSDK_TSYSDetailRecord Class)

Specifies the method used to verify the identity of the cardholder.

Object Oriented Interface


public function getCardholderId();


public function setCardholderId($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 2 );


dpaymentssdk_tsysdetailrecord_set($res, 2, $value );

Default Value

'N'

Remarks

This 1-character property contains a code that specifies the method used to verify the identity of the cardholder. The value may be used in conjunction with AVS and ACI indicators. The following table lists all of the supported cardholder identification codes, but please note that some codes are Direct Marketing-specific and some are Retail-specific.

F PIN Authentication by ICC (Chip Card) (Offline pin authentication for debit and credit chip card transactions). Also used for CDCVM/On device CVM
G Clear Text PIN
K Personal Identification Number - 32-character DUK/PT (Online pin authentication for debit and credit transactions)
M Address Verification Data or CPS/Card Present - Unable to read Magnetic Stripe
N Address Verification Data, CPS/Card Not Present, or Electronic Commerce
P No CVM Required
S Personal Identification Number - 32-character static key
Z Cardholder Signature - Terminal has a PIN Pad. This value can also be used when no signature is required on a mag stripe transaction.
@ Cardholder Signature - No PIN Pad available (default for Retail transactions). This value can also be used when no signature is required on a mag stripe transaction.

Data Type

String

CardNumber Property (DPaymentsSDK_TSYSDetailRecord Class)

Customer's credit card number from the original authorization request.

Object Oriented Interface


public function getCardNumber();


public function setCardNumber($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 3 );


dpaymentssdk_tsysdetailrecord_set($res, 3, $value );

Default Value

''

Remarks

This field contains the customer's credit card number used in the original authorization request. This alphanumeric field can be a maximum of 22 characters long, excluding whitespace and dashes which are stripped out when the property is set.

Data Type

String

DebitCashBack Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ResponseCashBack amount from the original Debit or EBT transaction.

Object Oriented Interface


public function getDebitCashBack();


public function setDebitCashBack($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 4 );


dpaymentssdk_tsysdetailrecord_set($res, 4, $value );

Default Value

''

Remarks

This property contains the cash back amount contained in the original authorization request message. If there was no cash back returned, this property must remain empty.

Note that for EBT Withdrawals DebitCashBack must be identical to the SettlementAmount.

Note: DebitCashBack must be empty for Restaurant IndustryType as this is not supported by TSYS.

Note: TSYS does not support transactions containing both CashBack and Gratuity/Tip amounts.

This amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated CurrencyCode configuration setting. In the United States (default), the number of allowable significant digits is seven. Thus the maximum TransactionAmount is "9999999", yielding a US dollar amount of $99,999.99. This field may not contain a negative number.

This property is valid for Debit card and EBT card transactions only. It will be ignored for all other transactions.

Data Type

String

DebitNetworkId Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ResponseNetworkId returned in the original Debit or EBT response.

Object Oriented Interface


public function getDebitNetworkId();


public function setDebitNetworkId($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 5 );


dpaymentssdk_tsysdetailrecord_set($res, 5, $value );

Default Value

''

Remarks

This property indicates the network through which the transaction was authorized. If this property contains a "V" or a "5", this indicates the transaction was processed as a credit card purchase transaction even though it was originally submitted as a debit transaction. When these values ("V" or "5") are returned, the transaction must be settled as a credit card (non-debit) transaction.

This property is valid for Debit card and EBT card transactions only. It will be ignored for all other TransactionTypes.

Data Type

String

DebitReimbursementAttribute Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ReimbursementAttribute from the original Debit or EBT request.

Object Oriented Interface


public function getDebitReimbursementAttribute();


public function setDebitReimbursementAttribute($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 6 );


dpaymentssdk_tsysdetailrecord_set($res, 6, $value );

Default Value

0

Remarks

The following values are valid for Debit and EBT:

raStandardRetail (0) Standard INTERLINK Retail Merchant.
raQualifiedGrocery (1) Qualified INTERLINK Supermarket/Grocery Merchant.
raPreExistingRetail (2) Pre-existing Qualified INTERLINK Retail Merchant.
raPreExistingGrocery (3) Pre-existing Qualified INTERLINK Supermarket/Grocery Merchant.
raNonDebit (4) EBT, non-debit, or Non-INTERLINK debit.
raTaxExempt (5) Tax exempt organizations.

This property is valid for Debit card transactions only. It must be set to raNonDebit for EBT card transactions, and it will be ignored for all other TransactionTypes.

Data Type

Integer

DebitRetrievalNumber Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ResponseRetrievalNumber returned in original Debit or EBT response.

Object Oriented Interface


public function getDebitRetrievalNumber();


public function setDebitRetrievalNumber($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 7 );


dpaymentssdk_tsysdetailrecord_set($res, 7, $value );

Default Value

''

Remarks

This property contains the ResponseRetrievalNumber returned in the original debit authorization response message. It is utilized for transaction tracking purposes.

This property is valid for Debit card and EBT card transactions only. It will be ignored for all other TransactionTypes.

Data Type

String

DebitSettleDate Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ResponseSettleDate returned in the original Debit or EBT response.

Object Oriented Interface


public function getDebitSettleDate();


public function setDebitSettleDate($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 8 );


dpaymentssdk_tsysdetailrecord_set($res, 8, $value );

Default Value

''

Remarks

This property contains the settlement date returned in the original debit authorization response message. the settlement date must be provided in MMDD format, and is utilized for transaction tracking purposes.

This property is valid for Debit card and EBT card transactions only. It will be ignored for all other TransactionTypes.

Data Type

String

DebitTrace Property (DPaymentsSDK_TSYSDetailRecord Class)

Contains the ResponseTrace returned from the original debit or EBT response.

Object Oriented Interface


public function getDebitTrace();


public function setDebitTrace($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 9 );


dpaymentssdk_tsysdetailrecord_set($res, 9, $value );

Default Value

''

Remarks

This property contains the system trace audit number returned in the original debit authorization response message. This property is utilized for transaction tracking purposes, and is only valid for Debit card and EBT card transactions. It will be ignored for all other TransactionTypes.

Data Type

String

ECI Property (DPaymentsSDK_TSYSDetailRecord Class)

Electronic Commerce Indicator from the original authorization request.

Object Oriented Interface


public function getECI();


public function setECI($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 10 );


dpaymentssdk_tsysdetailrecord_set($res, 10, $value );

Default Value

''

Remarks

This field should be identical to the ECI property from the original authorization request. This property is used only for eCommerce and Direct Marketing (card not present) transactions, and is ignored for all Card Present (Retail) transactions.

Data Type

String

EntryDataSource Property (DPaymentsSDK_TSYSDetailRecord Class)

This property identifies the source of the customer data.

Object Oriented Interface


public function getEntryDataSource();


public function setEntryDataSource($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 11 );


dpaymentssdk_tsysdetailrecord_set($res, 11, $value );

Default Value

0

Remarks

This property contains a 1-character code identifying the source of the customer data. The table below shows all supported values for this property.

edsTrack1 (0) Full Magnetic stripe read and transmit, Track 1.
edsTrack2 (1) Full magnetic stripe read and transmit, Track 2.
edsManualEntryTrack1Capable (2) Manually keyed, Track 1 capable.
edsManualEntryTrack2Capable (3)Manually keyed, Track 2 capable.
edsManualEntryNoCardReader (4)Manually keyed, terminal has no card reading capability (use this for e-commerce and MOTO transactions).
edsTrack2ChipCapable (6)Full magnetic stripe read (Track 2 only), Chip Card capable terminal (Visa, Mastercard, and JCB Transactions only).
edsManualEntryChipCapable (7)Manually keyed, Chip Card read capable terminal (Visa, MasterCard, and JCB transactions only).

Data Type

Integer

GoodsIndicator Property (DPaymentsSDK_TSYSDetailRecord Class)

Used to identify the type of goods purchased over the Internet.

Object Oriented Interface


public function getGoodsIndicator();


public function setGoodsIndicator($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 12 );


dpaymentssdk_tsysdetailrecord_set($res, 12, $value );

Default Value

0

Remarks

This property is used to identify the type of goods purchased over the Internet. Supported types are shown below.

tgiNotUsed (0)GoodsIndicator is not used.
tgiDigitalGoods (1)Customer purchased digital goods (for instance, an application that was electronically delivered).
tgiPhysicalGoods (2)Customer purchased actual physical goods, which were then shipped to the customer.

Data Type

Integer

Gratuity Property (DPaymentsSDK_TSYSDetailRecord Class)

Gratuity amount for settling restaurant/retail industry transactions.

Object Oriented Interface


public function getGratuity();


public function setGratuity($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 13 );


dpaymentssdk_tsysdetailrecord_set($res, 13, $value );

Default Value

''

Remarks

This field contains the gratuity (tip) amount of the transaction being settled. This amount is only sent when the TSYSSettle class's IndustryType is set to "sitRestaurant", "sitRetail " or "sitGroceryStore".

For transactions with Tip at the time of sale, the value of TransactionAmount in the original authorization request must reflect the cost of the goods/service purchased plus this Gratuity amount.

For example, to add a gratuity at the time of sale:

//Cost of goods/services purchased is $10 and Gratuity/Tip amount is $2 TSYSRetail.TransactionAmount = "1200" //$12 TSYSRetail.Authorize() DetailRecord.ParseAggregate(TSYSRetail.GetDetailAggregate()) //SettlementAmount in the Detail Record equals the original authorized amount $12 DetailRecord.Gratuity = "200" //Indicates the Gratuity/Tip included at the time of sale $2 TSYSSettle.DetailAggregate[0] = DetailRecord.GetDetailAggregate()

For Tip Adjusts (transactions where Gratuity/Tip is included after the time of sale), the SettlementAmount must reflect the total of the AuthorizedAmount plus the Gratuity.

For example, to perform a Tip Adjust/adding the gratuity after the time of sale:

//Cost of goods/services purchased is $10; TSYSRetail.TransactionAmount = "1000" TSYSRetail.Authorize() DetailRecord.ParseAggregate(TSYSRetail.GetDetailAggregate()) DetailRecord.Gratuity = "200" //Indicates the Gratuity/Tip added after the time of Sale $2 //SettlementAmount must include the tip, therefore it is higher than the original AuthorizedAmount DetailRecord.SettlementAmount = DetailRecord.AuthorizedAmount + DetailRecord.Gratuity TSYSSettle.DetailAggregate[0] = DetailRecord.GetDetailAggregate()

This amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated CurrencyCode configuration setting. In the United States (default), the number of allowable significant digits is seven. Thus the maximum TransactionAmount is "9999999", yielding a US dollar amount of $99,999.99. This field may not contain a negative number.

NOTE: TSYS does not support Credit/Debit transactions containing both CashOver/CashBack and Gratuity/Tip amounts.

Data Type

String

Healthcare Property (DPaymentsSDK_TSYSDetailRecord Class)

Indicates whether this is a healthcare transaction.

Object Oriented Interface


public function getHealthcare();


public function setHealthcare($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 14 );


dpaymentssdk_tsysdetailrecord_set($res, 14, $value );

Default Value

false

Remarks

When settling IIAS auto-substantiated healthcare transactions, this property should be set to true. It is only necessary to modify this setting when sending off-line transactions or when not using the ParseAggregate method. XML Aggregates passed from the TSYSHealthCare class to the ParseAggregate method of this class will already be marked as healthcare transactions.

Data Type

Boolean

HotelChargeType Property (DPaymentsSDK_TSYSDetailRecord Class)

Type of charge made at a hotel (American Express cards only).

Object Oriented Interface


public function getHotelChargeType();


public function setHotelChargeType($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 15 );


dpaymentssdk_tsysdetailrecord_set($res, 15, $value );

Default Value

0

Remarks

This property contains an indicator used to identify a hotel charge type. It must contain one of the values defined below:

  • ctHotel (0)
  • ctRestaurant (1)
  • ctGiftShop (2)

Note, this property is only applicable when using the Hotel IndustryType for American Express transactions.

If this property is set to ctHotel, RentalNoShow must equal " ", "2", or "3". For any other value, RentalNoShow must equal "1".

Data Type

Integer

HotelRateAmount Property (DPaymentsSDK_TSYSDetailRecord Class)

The nightly rate for this hotel room (American Express cards only).

Object Oriented Interface


public function getHotelRateAmount();


public function setHotelRateAmount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 16 );


dpaymentssdk_tsysdetailrecord_set($res, 16, $value );

Default Value

'0'

Remarks

This property contains the nightly rate for one room at the lodging property. This property is optional on all card types except Amex and may be set to zero. For Amex cards, this field must be greater than zero and less than or equal to $999.99 if ctHotel HotelChargeType and sitHotel IndustryType.

This amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated CurrencyCode configuration setting. In the United States (default), the number of allowable significant digits is seven. Thus the maximum TransactionAmount is "9999999", yielding a US dollar amount of $99,999.99. This field may not contain a negative number.

Data Type

String

IndustryType Property (DPaymentsSDK_TSYSDetailRecord Class)

Code which indicates the industry the merchant is engaged in.

Object Oriented Interface


public function getIndustryType();


public function setIndustryType($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 17 );


dpaymentssdk_tsysdetailrecord_set($res, 17, $value );

Default Value

1

Remarks

This property is used to identify the industry type of the merchant submitting the authorization request. The following table lists the industry types supported by this class.

sitUnknown (0)Unknown or unsure.
sitRetail (1)Retail store.
sitRestaurant (2)Food / Restaurant.
sitGroceryStore (3)Grocery store or supermarket.
sitDirectMarketing (4)eCommerce or Direct Marketing
sitHotel (5)Hotel / Lodging
sitAutoRental (6)Auto Rental
sitPassengerTransport (7)Passenger Transport

Note: American Express cards are NOT currently supported in the sitAutoRental industry.

Data Type

Integer

InstallmentCount Property (DPaymentsSDK_TSYSDetailRecord Class)

Total number of installments (installment transactions only).

Object Oriented Interface


public function getInstallmentCount();


public function setInstallmentCount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 18 );


dpaymentssdk_tsysdetailrecord_set($res, 18, $value );

Default Value

''

Remarks

This property is used when charging installment payments. The InstallmentCount indicates the total number of installments to be charged to the customer, and the InstallmentNumber indicates the current installment which is being charged. Installment payments can only be made for card-not-present transactions initiated by the TSYSECommerce class.

Data Type

String

InstallmentNumber Property (DPaymentsSDK_TSYSDetailRecord Class)

Current installment number (installment transactions only).

Object Oriented Interface


public function getInstallmentNumber();


public function setInstallmentNumber($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 19 );


dpaymentssdk_tsysdetailrecord_set($res, 19, $value );

Default Value

''

Remarks

This property is used when charging installment payments. The InstallmentCount indicates the total number of installments to be charged to the customer, and the InstallmentNumber indicates the current installment which is being charged. Installment payments can only be made for card-not-present transactions initiated by the TSYSECommerce class.

Data Type

String

LodgingRenterName Property (DPaymentsSDK_TSYSDetailRecord Class)

Name of the person or business entity charged for the reservation and/or lodging stay (hotel transactions only).

Object Oriented Interface


public function getLodgingRenterName();


public function setLodgingRenterName($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 20 );


dpaymentssdk_tsysdetailrecord_set($res, 20, $value );

Default Value

''

Remarks

In the Hotel IndustryType, this property must contain the name of the individual or business entity charged for the reservation and/or lodging stay. The maximum length of this property is 26 characters (upper-case). This property is ignored for all other IndustryTypes.

Data Type

String

PartiallyReversed Property (DPaymentsSDK_TSYSDetailRecord Class)

Indicates whether this transaction has been partially reversed.

Object Oriented Interface


public function getPartiallyReversed();


public function setPartiallyReversed($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 21 );


dpaymentssdk_tsysdetailrecord_set($res, 21, $value );

Default Value

false

Remarks

After partially reversing a transaction using the TSYSReversal class, the TotalAuthorizedAmount should indicate the sum total of all authorized amounts, the SettlementAmount should indicate the new settlement amount, and the PartiallyReversed property should be set to True to indicate to the host that this transaction has been partially reversed.

Data Type

Boolean

PassengerCount Property (DPaymentsSDK_TSYSDetailRecord Class)

Total number of passengers (multiple passenger transport transactions only).

Object Oriented Interface


public function getPassengerCount();


public function setPassengerCount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 22 );


dpaymentssdk_tsysdetailrecord_set($res, 22, $value );

Default Value

1

Remarks

This property is used when there are multiple passengers on the same authorization. The PassengerCount indicates the total number of passengers for a specific authorization code, and the PassengerNumber indicates the current passenger. Only Visa card transactions can be captured for Passenger Transport industry type. You need to set additional required Passenger Transport related information using the respective configuration settings.

NOTE: PassengerNumber cannot be greater than PassengerCount

To settle a Passenger Transport transaction authorized with the sitPassengerTransport IndustryType, you must use the TSYSDetailRecord class 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()

Data Type

Integer

PassengerNumber Property (DPaymentsSDK_TSYSDetailRecord Class)

Current passenger number (multiple passenger transport transactions only).

Object Oriented Interface


public function getPassengerNumber();


public function setPassengerNumber($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 23 );


dpaymentssdk_tsysdetailrecord_set($res, 23, $value );

Default Value

1

Remarks

This property is used to identify a specific passenger when there are multiple passengers on the same authorization. The PassengerCount indicates the total number of passengers for a specific authorization code, and the PassengerNumber indicates the current passenger. Only Visa card transactions can be captured for Passenger Transport industry type. You need to set additional required Passenger Transport related information using the respective configuration settings.

NOTE: Passenger Number cannot be greater than PassengerCount

To settle a Passenger Transport transaction authorized with the sitPassengerTransport IndustryType, you must use the TSYSDetailRecord class 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()

Data Type

Integer

PurchaseIdentifier Property (DPaymentsSDK_TSYSDetailRecord Class)

Optional purchase order number assigned by the merchant.

Object Oriented Interface


public function getPurchaseIdentifier();


public function setPurchaseIdentifier($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 24 );


dpaymentssdk_tsysdetailrecord_set($res, 24, $value );

Default Value

''

Remarks

In this field the merchant may assign an optional Purchase Identifier. This field must contain digits, and will be automatically left-justified, space-filled to 25 spaces.

This field is applicable to E-Commerce, Hotel, and Auto Rental transactions.

Note: For the Hotel IndustryType, this property will contain the Hotel Folio Number. For the Auto Rental IndustryType, it should indicate the Rental Agreement Number.

Failure to set a PurchaseIdentifier for the e-commerce IndustryType may result in a CPS downgrade when the transaction is settled. This can result in higher interchange rates.

Data Type

String

RentalCheckIn Property (DPaymentsSDK_TSYSDetailRecord Class)

Date the cardholder checked into the hotel or first drove away a rented vehicle.

Object Oriented Interface


public function getRentalCheckIn();


public function setRentalCheckIn($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 25 );


dpaymentssdk_tsysdetailrecord_set($res, 25, $value );

Default Value

'010101'

Remarks

For the Hotel IndustryType, this property contains the date (in MMDDYY format) reflecting when the cardholder checked into the hotel. If the transaction is an advance check-in, this field should contain the date on which the reservation was made. If the transaction is a No Show, this field must contain the anticipated hotel arrival date.

For the Auto Rental IndustryType, this property contains the date (in MMDDYY format) when the cardholder first drove away the rented vehicle.

Data Type

String

RentalExtraCharges Property (DPaymentsSDK_TSYSDetailRecord Class)

List of extra charges for Hotel/Auto transactions.

Object Oriented Interface


public function getRentalExtraCharges();


public function setRentalExtraCharges($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 26 );


dpaymentssdk_tsysdetailrecord_set($res, 26, $value );

Default Value

'0'

Remarks

This property contains a six-character numeric value used to identify any additional ancillary charges that are booked to the cardholder's card after the transaction was completed. The merchant may enter one or more codes on each transaction being settled. If extra charges are being submitted, this field must contain value(s) as defined below.

Value Auto Rental Definition Hotel Definition
0 or space No Extra Charge. Position Not Used.
1 Gasoline. RESERVED.
2 Extra Mileage. Restaurant.
3 Late Return. Gift Shop.
4 One Way Service Fee. Mini-Bar.
5 Parking or Moving Violation. Telephone.
6 N/A Other.
7 N/A Laundry.

For example, in the Hotel industry to indicate charges in both the gift shop and mini bar, RentalExtraCharges should equal "34".

Note that this property is only applicable for the Hotel and Auto Rental IndustryTypes, and will not be sent for any other IndustryType.

Data Type

String

RentalNoShow Property (DPaymentsSDK_TSYSDetailRecord Class)

Indicates whether the cardholder is a no-show (auto rental and hotel industries only).

Object Oriented Interface


public function getRentalNoShow();


public function setRentalNoShow($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 27 );


dpaymentssdk_tsysdetailrecord_set($res, 27, $value );

Default Value

'0'

Remarks

This property contains a one-character identifier used to indicate whether the cardholder is being billed for a hotel room or rental vehicle that was reserved, but not actually rented. The following values are valid for any card except American Express cards:

"0" Not Applicable
"1" No Show

For American Express cards, this property is used to indicate whether the cardholder is participating in a special program. Allowable values include:

"1" Purchase
"2" Assured Reservation/No Show
"3" CARD Deposit
" " (space)Other

This property is only applicable for the Auto Rental and Hotel IndustryTypes.

Data Type

String

RentalReturnCity Property (DPaymentsSDK_TSYSDetailRecord Class)

City where the rental car was returned (MasterCard only).

Object Oriented Interface


public function getRentalReturnCity();


public function setRentalReturnCity($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 28 );


dpaymentssdk_tsysdetailrecord_set($res, 28, $value );

Default Value

''

Remarks

For MasterCard transactions in the Auto Rental IndustryType, this property must contain the city where the rented vehicle was returned. The maximum length of this property is 18 characters, and it may not remain all spaces. This property is ignored for all other IndustryTypes and all other card types.

Data Type

String

RentalReturnLocation Property (DPaymentsSDK_TSYSDetailRecord Class)

Id of the location where the rental vehicle was returned (MasterCard only).

Object Oriented Interface


public function getRentalReturnLocation();


public function setRentalReturnLocation($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 29 );


dpaymentssdk_tsysdetailrecord_set($res, 29, $value );

Default Value

''

Remarks

For MasterCard transactions in the Auto Rental IndustryType, this property must contain an identifier indicating the location where the rented vehicle was returned. The maximum length of this property is 10 characters, and it may not remain all spaces. This property is ignored for all other IndustryTypes and all other card types.

Data Type

String

RentalReturnState Property (DPaymentsSDK_TSYSDetailRecord Class)

State or country where the rental car was returned (MasterCard only).

Object Oriented Interface


public function getRentalReturnState();


public function setRentalReturnState($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 30 );


dpaymentssdk_tsysdetailrecord_set($res, 30, $value );

Default Value

''

Remarks

For MasterCard transactions in the Auto Rental IndustryType, this property must contain a code indicating the name of the state, province, or country where the rented vehicle was returned. The maximum length of this property is 3 characters, and it may not remain all spaces. This property is ignored for all other IndustryTypes and all other card types.

Data Type

String

RenterName Property (DPaymentsSDK_TSYSDetailRecord Class)

Name of the person renting the vehicle (MasterCard only).

Object Oriented Interface


public function getRenterName();


public function setRenterName($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 31 );


dpaymentssdk_tsysdetailrecord_set($res, 31, $value );

Default Value

''

Remarks

For MasterCard transactions in the Auto Rental IndustryType, this property must contain the name of the individual renting the vehicle. The maximum length of this property is 20 characters, and it may not remain all spaces. This property is ignored for all other IndustryTypes and all other card types.

Data Type

String

RequestedACI Property (DPaymentsSDK_TSYSDetailRecord Class)

Authorization Characteristics Indicator from the original authorization request.

Object Oriented Interface


public function getRequestedACI();


public function setRequestedACI($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 32 );


dpaymentssdk_tsysdetailrecord_set($res, 32, $value );

Default Value

''

Remarks

This field should be identical to the ACI property from the original authorization request.

Data Type

String

ResponseACI Property (DPaymentsSDK_TSYSDetailRecord Class)

Authorization Characteristics Indicator from the original authorization response.

Object Oriented Interface


public function getResponseACI();


public function setResponseACI($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 33 );


dpaymentssdk_tsysdetailrecord_set($res, 33, $value );

Default Value

''

Remarks

This field contains a one character returned Authorization Characteristics Indicator. This indicator provides information on conditions or characteristics of the authorization code. If the transaction being settled was authorized on-line, this field must contain the value returned in that authorization response. If the transaction is a credit or was otherwise processed off-line, this field should be defaulted to SPACE.

Data Type

String

ResponseApprovalCode Property (DPaymentsSDK_TSYSDetailRecord Class)

Response Approval Code from the original authorization response.

Object Oriented Interface


public function getResponseApprovalCode();


public function setResponseApprovalCode($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 34 );


dpaymentssdk_tsysdetailrecord_set($res, 34, $value );

Default Value

''

Remarks

This field contains the authorization code obtained from the original authorization response. If the transaction is a credit or other non-approved transaction type, this property must be empty.

Data Type

String

ResponseAuthSource Property (DPaymentsSDK_TSYSDetailRecord Class)

Auth Source Code from the original authorization response.

Object Oriented Interface


public function getResponseAuthSource();


public function setResponseAuthSource($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 35 );


dpaymentssdk_tsysdetailrecord_set($res, 35, $value );

Default Value

''

Remarks

This field contains a one character authorization source code used to provide information on the source or origin of the ResponseApprovalCode being settled. If the transaction being settled was network authorized, this field must contain the value returned in the authorization response. If the transaction is a credit, or otherwise processed off-line, this field must contain one of the values below.

6POS device generated authorization code.
9Not authorized (includes credits/refunds).
EOff-line voice center or chip-approved transaction, manually keyed approval code (ie: referrals).

Data Type

String

ResponseAVS Property (DPaymentsSDK_TSYSDetailRecord Class)

Address Verification Code from the original authorization response.

Object Oriented Interface


public function getResponseAVS();


public function setResponseAVS($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 36 );


dpaymentssdk_tsysdetailrecord_set($res, 36, $value );

Default Value

'0'

Remarks

This field contains a one character Address Verification (result) Code. This field contains the value returned in the original authorization response message. If the transaction is a credit or was otherwise processed off-line, this field should be defaulted to "0".

Data Type

String

ResponseCardLevel Property (DPaymentsSDK_TSYSDetailRecord Class)

Card Level results returned from the original authorization response.

Object Oriented Interface


public function getResponseCardLevel();


public function setResponseCardLevel($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 37 );


dpaymentssdk_tsysdetailrecord_set($res, 37, $value );

Default Value

''

Remarks

This property contains a two-character code created by Visa during the authorization process. If the transaction being settled was authorized online, this property must contain the value returned in the authorization response. If the transaction is a credit or a force, this property should be left empty. Note that Card Level Results are only applicable to Visa cards.

Data Type

String

ResponseCode Property (DPaymentsSDK_TSYSDetailRecord Class)

Response code from the original authorization response.

Object Oriented Interface


public function getResponseCode();


public function setResponseCode($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 38 );


dpaymentssdk_tsysdetailrecord_set($res, 38, $value );

Default Value

''

Remarks

This field contains a two character Response Code associated with the Authorization Code being settled. If the transaction being settled was authorized on-line, this field must contain the value returned in that authorization response. If the transaction is a credit or off-line approval, this field must be defaulted to spaces.

Data Type

String

SettlementAmount Property (DPaymentsSDK_TSYSDetailRecord Class)

The amount that the customer will be charged.

Object Oriented Interface


public function getSettlementAmount();


public function setSettlementAmount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 39 );


dpaymentssdk_tsysdetailrecord_set($res, 39, $value );

Default Value

'0'

Remarks

This field contains the final settlement amount of the transaction. In most cases, this is the TransactionAmount from the original authorization request. However, you may settle a lesser amount (ie: Partial shipment or backordered stock). This field must always be greater than zero.

Note: If a transaction includes a Gratuity amount, the SettlementAmount must reflect the total of the AuthorizedAmount plus the Gratuity (this is only applicable to the itResturant IndustryType).

This amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated CurrencyCode configuration setting. In the United States (default), the number of allowable significant digits is seven. Thus the maximum TransactionAmount is "9999999", yielding a US dollar amount of $99,999.99. This field may not contain a negative number.

Data Type

String

Substantiated Property (DPaymentsSDK_TSYSDetailRecord Class)

Used for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS).

Object Oriented Interface


public function getSubstantiated();


public function setSubstantiated($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 40 );


dpaymentssdk_tsysdetailrecord_set($res, 40, $value );

Default Value

1

Remarks

This field should be identical to the value of the Substantiated property sent in the authorization via the TSYSHealthCare class. This field is only sent for MasterCard transactions.

Value Description
0 Merchant terminal did not verify the purchased items against an IIAS
1 Merchant terminal verified the purchased items against an IIAS
2 Merchant claims exemption from IIAS based on the 90 percent rule

Data Type

Integer

TotalAuthorizedAmount Property (DPaymentsSDK_TSYSDetailRecord Class)

Sum total of all the original authorization and all subsequent incremental authorizations.

Object Oriented Interface


public function getTotalAuthorizedAmount();


public function setTotalAuthorizedAmount($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 41 );


dpaymentssdk_tsysdetailrecord_set($res, 41, $value );

Default Value

''

Remarks

When supporting incremental authorizations, you must manually keep track of the sum of all authorizations made for a single transaction (all based on the same transaction id). This total must be added to the TotalAuthorizedAmount property of the detail record associated with the first authorization. Only one detail record should be submitted no matter how many incremental authorizations are attached to the transaction.

Data Type

String

TransactionDate Property (DPaymentsSDK_TSYSDetailRecord Class)

Local Transaction Date from the original authorization response.

Object Oriented Interface


public function getTransactionDate();


public function setTransactionDate($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 42 );


dpaymentssdk_tsysdetailrecord_set($res, 42, $value );

Default Value

'010101'

Remarks

This six digit field contains a local transaction date associated with the transaction being settled. If the transaction was authorized on-line, this field must contain the value returned in the original authorization response message. If the transaction was processed off-line, this field must contain a Point of Sale (POS) device generated date. This field must appear in MMDDYY format.

For the Hotel IndustryType, this property must contain the date the customer checked out of the hotel. For the Auto Rental IndustryType it should contain the date that the vehicle was returned.

Data Type

String

TransactionId Property (DPaymentsSDK_TSYSDetailRecord Class)

Transaction Identifier from the original authorization response.

Object Oriented Interface


public function getTransactionId();


public function setTransactionId($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 43 );


dpaymentssdk_tsysdetailrecord_set($res, 43, $value );

Default Value

'000000000000000'

Remarks

This 15-character field contains a Transaction Identifier associated with the transaction being settled. If the transaction was authorized on-line, this field must contain the value (if returned) from the original authorization response message. If a value was not returned in the authorization response or the transaction was processed off-line, this field must be defaulted to zeros.

Data Type

String

TransactionNumber Property (DPaymentsSDK_TSYSDetailRecord Class)

Transaction Number from the original authorization request.

Object Oriented Interface


public function getTransactionNumber();


public function setTransactionNumber($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 44 );


dpaymentssdk_tsysdetailrecord_set($res, 44, $value );

Default Value

0

Remarks

This field should contain the TransactionNumber from the original authorization request. This value must be in the range "0001" to "9999". "0000" is an invalid transaction number.

Data Type

Integer

TransactionTime Property (DPaymentsSDK_TSYSDetailRecord Class)

Local transaction time from the original authorization response.

Object Oriented Interface


public function getTransactionTime();


public function setTransactionTime($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 45 );


dpaymentssdk_tsysdetailrecord_set($res, 45, $value );

Default Value

'000000'

Remarks

This six digit field contains a local transaction time associated with the transaction being settled. If the transaction was authorized on-line, this field must contain the value returned in the original authorization response message. If the transaction was processed off-line, this field must contain a Point of Sale (POS) device generated time. This field must appear in HHMMSS format.

Data Type

String

TransactionType Property (DPaymentsSDK_TSYSDetailRecord Class)

Indicates transaction type for this detail record.

Object Oriented Interface


public function getTransactionType();


public function setTransactionType($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 46 );


dpaymentssdk_tsysdetailrecord_set($res, 46, $value );

Default Value

0

Remarks

This property indicates the type of transaction that was originally authorized. The following table explains the Transaction Types in detail:

dttCardNotPresent (0)This indicates a transaction where no physical card was present. Typically this transaction type is used exclusively for eCommerce or Direct Marketing IndustryType, where instead of a track data, AVS data is sent to verify cardholder identity. However, Retail merchants may also use the dttCardNotPresent transaction type from time to time.
dttCardPresent (1)This indicates a card-present transaction type. The credit card was swiped through a card reader, and Track1 or Track2 data was sent to the processor. This is typical of a retail environment.
dttOffLineCredit (2)This transaction type is used to credit money back to a cardholder's account. An Offline Credit is not based on a previous transaction, and you may credit any card for any amount without restriction. Simply set the CardNumber to the customer's card number, and then the AuthorizedAmount to "0" and the SettlementAmount to the amount you wish to refund. No track data or AVS data is sent in an offline credit transaction.
dttForceCardNotPresent(3)This transaction type is used to force a settlement without a previous authorization. This is generally used when an authorization response indicates that the merchant should call the cardholder's bank to verify the funds transfer. The merchant will then be given an authorization code over the phone, with which to settle the transaction.
dttForceCardPresent(4)Same as above, but for retail (card-present) environments.
dttDebitPurchase (5)This transaction type is used for debit card sales authorized via the TSYSDebit class.
dttDebitRefund (6)This transaction type is used for debit card refund transactions authorized via the TSYSDebit class.
dttFoodStampPurchase (8)This transaction type is used for EBT card Food Stamp purchases authorized via the TSYSBenefit class.
dttFoodStampReturn (9)This transaction type is used for EBT card Food Stamp returns authorized via the TSYSBenefit class.
dttFoodStampVoucher (10) This transaction type is used for EBT card Food Stamp vouchers authorized via the TSYSBenefit class.
dttCashBenefitWithdrawal (12)This transaction type is used for EBT card Cash Benefit withdrawals authorized via the TSYSBenefit class.
dttCashBenefitPurchase (13)This transaction type is used for EBT card Cash Benefit purchases authorized via the TSYSBenefit class.
dttACHPurchase (30)This transaction type is used for ACH Purchase transactions.
dttACHReturn (31)This transaction type is used for ACH Return transactions.

Data Type

Integer

ValidationCode Property (DPaymentsSDK_TSYSDetailRecord Class)

Validation Code from the original authorization response.

Object Oriented Interface


public function getValidationCode();


public function setValidationCode($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 47 );


dpaymentssdk_tsysdetailrecord_set($res, 47, $value );

Default Value

''

Remarks

This field contains a four character Transaction Identifier associated with the transaction being settled. If the transaction was authorized on-line, this field must contain the value (if returned) from the original authorization response message. If a value was not returned in the authorization response or the transaction was processed off-line, this field must be empty.

Data Type

String

VoidTransaction Property (DPaymentsSDK_TSYSDetailRecord Class)

Indicates whether this transaction has been voided.

Object Oriented Interface


public function getVoidTransaction();


public function setVoidTransaction($value);

Procedural Interface


dpaymentssdk_tsysdetailrecord_get($res, 48 );


dpaymentssdk_tsysdetailrecord_set($res, 48, $value );

Default Value

false

Remarks

If you wish to void a previously authorized transaction, Vital/TSYS recommends that you should exclude it from the settlement. However, you may also send the detail record with the VoidTransaction indicator set to True. For example:

DetailRecord.ParseAggregate(TSYSRetail.GetDetailAggregate()) DetailRecord.VoidTransaction = True TSYSSettle.DetailRecordCount = 1 TSYSSettle.DetailAggregate[0] = DetailRecord.GetDetailAggregate()

Data Type

Boolean

Config Method (DPaymentsSDK_TSYSDetailRecord Class)

Sets or retrieves a configuration setting.

Object Oriented Interface

public function doConfig($configurationstring);

Procedural Interface

dpaymentssdk_tsysdetailrecord_do_config($res, $configurationstring);

Remarks

Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.

These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.

To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).

To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.

GetDetailAggregate Method (DPaymentsSDK_TSYSDetailRecord Class)

Returns an aggregate containing details of this transaction, which is then used for settlement.

Object Oriented Interface

public function doGetDetailAggregate();

Procedural Interface

dpaymentssdk_tsysdetailrecord_do_getdetailaggregate($res);

Remarks

This method returns an aggregate containing all of the required data to send a transaction to settlement. This aggregate must be passed to the TSYSSettle class's DetailAggregate array property in order to settle the transaction. If you wish to view or change any part of the aggregate (such as adding a gratuity or additional info for an Installment payment), you may use the TSYSDetailRecord class to do so.

Note: This method may only be called after a successful authorization. If the authorization was not successful the method fails with an error.

An example of how this method is used is shown below:

TSYSRetail.Authorize() TSYSSettle.DetailRecordCount = 1 TSYSSettle.DetailAggregate[0] = TSYSRetail.GetDetailAggregate()

ParseAggregate Method (DPaymentsSDK_TSYSDetailRecord Class)

Parses the aggregate returned from another class's GetDetailAggregate method.

Object Oriented Interface

public function doParseAggregate($aggregate);

Procedural Interface

dpaymentssdk_tsysdetailrecord_do_parseaggregate($res, $aggregate);

Remarks

This method takes the XML aggregate returned from the TSYSRetail or TSYSECommerce class, parses it, and then fills all the properties of the DetailRecord class. While normally you can pass the results of the GetDetailAggregate method call directly to the TSYSSettle class, sometimes it is necessary to adjust the contents of the XML aggregate first.

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()

Reset Method (DPaymentsSDK_TSYSDetailRecord Class)

Clears all properties to their default values.

Object Oriented Interface

public function doReset();

Procedural Interface

dpaymentssdk_tsysdetailrecord_do_reset($res);

Remarks

This method clears all properties to their default values.

Error Event (DPaymentsSDK_TSYSDetailRecord Class)

Information about errors during data delivery.

Object Oriented Interface

public function fireError($param);

Procedural Interface

dpaymentssdk_tsysdetailrecord_register_callback($res, 1, array($this, 'fireError'));

Parameter List

 'errorcode'
'description'

Remarks

The Error event is fired in case of exceptional conditions during message processing.

ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the Error Codes section.

Config Settings (TSYSDetailRecord Class)

The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.

DetailRecord Config Settings

AccountDataSource:   Identifies the source of the customer card data entered.

This field is sent in the request based on the CardEntryDataSource value specified by default. However that value can be overridden by setting this config.

Valid values are:

Code Description
A Bar code/Payment code read
D Full magnetic stripe read and transmit, Track two
G Chip Card Read Data (CCPS)
H Full magnetic stripe read and transmit, Track one
P Manually keyed, Chip Card read capable terminal
Q Proximity payment device using track data rules (transmit only Track two to Sierra)
R Proximity payment device using EMV-Chip data rules
S Full magnetic stripe read (Track two only), Chip Card capable terminal
T Manually keyed, Track two capable
X Manually keyed, Track one capable
@ Manually keyed, terminal has no card reading capability
W Chip Card transaction processed as magnetic stripe due to the terminal application not having any EMV applications in common with the chip card.
Z Chip Card transaction processed as magnetic stripe from a chip capable terminal, due to card or terminal failure.

ACHCheckingSavingsIndicator:   Specifies the originating account type.

Value Description
C Checking
S Savings
G General Ledger. (Valid only when SEC Code is CCD)
ACHCheckNumber:   The individual check number.

This field contains the individual check number. This field must be present for transactions with an SEC Code of POP. Otherwise, it must be space-filled.

ACHCheckReversalIndicator:   ACH Check Reversal Indicator.

This field indicates a check reversal transaction.

Value Description
Y The transaction is a check reversal
N The transaction is not a check reversal
ACHIndividualName:   The individual or receiving company name.

This field contains the individual or receiving company name.

ACHIndividualReferenceID:   Merchant and customer information.

This field may contain meaningful merchant and customer information.

ACHPaymentTypeIndicator:   ACH Payment Type Indicator.

This field indicates the transaction payment type. The following are valid values

Value Description
Spaces Used as a default for Non-WEB Transactions
R Recurring
S Single
A value of R or S is required when the ACH SEC Code is WEB.
ACHPrenoteIndicator:   ACH Prenote Indicator.

This field is used to aid in determination of the proper ACH Transaction Code.

Value Description
0 Not Prenote
1 Prenote
ACHPresentmentInformation:   ACH Presentment Information.

This is submitted as a value of zero.

ACHReturnedCheckIndicator:   ACH Returned Check Indicator.

This field indicates a returned check transaction.

Value Description
Y The transaction is a returned check
N The transaction is not a returned check
ACHRoutingNumber:   The receiving Depository Financial Institution (DFI) identification/routing number and check digit.

This field contains the receiving Depository Financial Institution (DFI) identification/routing number and check digit.

ACHSECCode:   The Standard Entry Class (SEC) Code is used to determine the ACH Rules that apply to the transaction.

Valid values are:

Value Description
CCD Cash Concentration or Disbursement - Can be either a credit or debit application where funds are either distributed or consolidated between corporate entities.
POP Point of Sale Entry - Point of sale debit applications non-shared (POS) environment. These transactions are most often initiated by the consumer via a plastic access card.
PPD Prearranged Payment and Deposits - Used to credit or debit a consumer account. Popularly used for payroll direct deposits and preauthorized bill payments.
TEL Telephone-Initiated Entry - Used for the origination of a single entry debit transaction to a consumer's account pursuant to a verbal authorization obtained from the consumer via the telephone.
WEB Internet (Web)-Initiated Entry - Used for the origination of debit entries (either Single or Recurring Entry) to a consumer's account pursuant to an authorization that is obtained from the Receiver via the Internet.
ACHTelephoneNumber:   The merchant / business contact phone number, REVERSAL, or REDEPCHECK.

This field contains one of three options:

1. The merchant / business contact phone number for customer inquiry
2. REVERSAL indicates a reversal
3. REDEPCHECK indicates a returned check
ACHTerminalCity:   The city, town, village, or township in which the merchant's terminal is located.

This field must be non-blank if the SEC Code is POP.

ACHTerminalState:   The state location for the merchant's terminal.

This field must be non-blank if the SEC Code is POP.

DepartureDate:   The passenger's departure date.

This configuration setting is used to set the passenger's departure date. The format of the date is: MMDDYY. For example: 062117

DetailExtension:   Detail Extension Optional Data Group.

This configuration setting takes a semi-colon separated list of name-value pairs. The available field names and their applicable values can be found below. The fields can be set in any order and not all fields are required to be set.

CodeExample: DetailRecord.Config("DetailExtension=PTI=C02;TTT=02;TMI=01");

AAV (32 A/N) (Accountholder Authentication Value)

AAV is part of Mastercard's SecureCode-specific implementation of UCAF related to issuer authentication. This is a security method designed to authenticate cardholders when they pay online.

ADT (1 A/N) (Acceptance Device Type)

Identifies the type of device used to accept mobile Point of Sale (mPOS) transactions. Valid values are:

Value Description
0 Dedicated mPOS Terminal with PCI compliant dongle (with or without key pad)
1 Off the Shelf Mobile Device
2 Dongle with software-based application that supports PIN entry on glass
3 Off the Shelf Mobile Device with software-based application that supports PIN entry on glass
M Mobile POS Add-On Hardware
T Tap on Mobile No Add-On Hardware

ARS (Account Range Status)

Value Description
R Regulated.
N Non-Regulated.

ATS (Association Timestamp)

This field can be used to set the timestamp data provided by the association.

BAI (2 A/N) (Business Application Identifier)

BAI identifies industry-specific business scenarios.

CMI (4 A/N) (CIT/MIT Indicator)

CMI identifies whether the transaction was initiated by the Cardholder or the Merchant (Mastercard only)

DEI (5 A/N) (Digital Entity Identifier)

DEI is a unique identifier assigned by Visa at the time of authorization to identify transactions that originate from Visa Checkout.

DTI (36 A/N) (Directory Server Transaction ID)

DTI is generated by the EMV 3DS Mastercard Directory Server during the authentication transaction and passed back to the merchant with the authentication results. This field allows the merchant to pass the Directory Server Transaction ID during authorization in order to link authentication and authorization data.

ESI (3 A/N) (e-Commerce Security UCAF Collection Indicator)

If returned in the Mastercard's authorization response, the component will include this field automatically in the settlement.

FRI (3 A/N) (Foreign Retailer Indicator.) This 3-character field is used by marketplaces to uniquely identify domestic transactions in which the retailer is in a different country than the marketplace. Visa classifies an entity as a marketplace if it handles payments on behalf of retailers through an online marketplace that brings together multiple buyers and retailers. This field must be sent when the retailer is foreign.

Valid values are:

Code Description
(Space) (default) Space indicate the retailer is not foreign.
F This value indicates the retailer is located in a different country than the marketplace.
Note: This field will be automatically left-justified, space-filled to 3 characters.

IIA (MC IIAS Indicator)

0 Merchant terminal did not verify the purchased items against an IIAS
1 Merchant terminal did verify the purchased items against an IIAS
2 Merchant claims exemption from IIAS based on the 90 percent rule

ISO (ISO ID)

This 11-digit field, assigned by MasterCard, is assigned during registration via MasterCard Connect for a Service Provider designated as an "Independent Sales Organization". This value must be provided on all MasterCard transactions where the merchant has a relationship with an ISO.

MAR (12 A/N) (Merchant Assigned Reference)

MAR is a value assigned by the merchant to reference the transaction. This is not a settlement field, but can be used for merchant or client reporting purposes.

MCC (4 NUM) (Merchant Category Code)

MCC is a value assigned by the merchant's bank or processor to identify a merchant's industry classification. This field entry must contain the same value submitted in the original authorization request.

MCI (1 A/N) (Multi-Clearing Indicator)

MCI is used in situations where multiple clearing records will be sent with a single authorization. The Multi-Clearing Indicator can be sent for any card brand but will only be used for settlement by Mastercard.

Value Description
M Previously approved authorization-partial amount, multi-clearing
F Previously approved authorization-partial amount, final clearing

MDE (Mobile Device Type) This field is required for all MasterCard PayPass (contactless) transactions. Valid values are:

Value Description
00 Card (default)
01 Mobile Network Operator (MNO) controlled removable secure element (SIM or UICC) personalized for use with a mobile phone or smartphone
02 Key Fob
03 Watch using a contactless chip or a fixed (non-removable) secure element not controlled by the MNO
04 Mobile Tag
05 Wristband
06 Mobile Phone Case or Sleeve
07 Mobile Phone or Smartphone with a fixed (non-removable) secure element controlled by the MNO (such as CDMA)
08 Removable secure element not controlled by the MNO, for example, memory card personalized for use with a mobile phone or smartphone
09 Mobile Phone or Smartphone with a fixed (non-removable) secure element not controlled by the MNO
10 MNO controlled removable secure element (SIM or UICC) personalized for use with a tablet or e-book
11 Tablet or E-Book with a fixed (non-removable) secure element controlled by the MNO
12 Removable secure element not controlled by the MNO (such as memory card personalized for use with a tablet or e-book)
13 Tablet or E-Book with fixed (nonremovable) secure element not controlled by the MNO
14 Mobile Phone or Smartphone with a payment application running in a host processor
15 Tablet or E-Book with a payment application running in a host processor
16 Mobile Phone or Smartphone with a payment application running in the TEE of a host processor
17 Tablet or E-Book with a payment application running in the TEE of a host processor
18 Watch with a payment application running in the TEE of a host processor
19 Watch with a payment application running in a host processor
20 Card
21 Phone (i.e. Mobile phone)
22 Tablet/e-reader (i.e. Tablet computer or e-reader)
23 Watch/Wristband (i.e. Watch or wristband, including a fitness band, smart strap, disposable band, watch add-on, and security/ID band)
24 Sticker
25 PC (i.e. PC or laptop)
26 Device Peripheral (i.e. Mobile phone case or sleeve)
27 Tag (i.e. Key fob or mobile tag)
28 Jewelry (i.e. Ring, bracelet, necklace, and cuff links)
29 Fashion Accessory (i.e. Handbag, bag charm, and glasses)
30 Garment (i.e. Dress)
31 Domestic Appliance (i.e. Refrigerator, washing machine)
32 Vehicle (i.e. Vehicle, including vehicle attached devices)
33 Media/Gaming Device (i.e. Media or gaming device, including a set top box, media player, and television)
34-99 These values reserved for future form factors. Any value in this range may occur within form factors and transaction data without prior notice.

MDO (Domain Server)

0 No domain.
1 Issuer domain.
2 Acquirer domain.

OA (Optional Amount)

This field can be used to set the Optional Amount.

OAI (Optional Amount Identifier)

0 Not Used
1 Local Sales Tax Amount
2 Tax Exempt

PAR (35 A/N) (Payment Account Reference)

PAR is a value assigned by the BIN Controller, which is defined as either an issuer or card brand. This field is associated directly with the cardholder's account. The PAR is considered a non-financial value that cannot be used to initiate a financial transaction. This value is valid for Visa, Mastercard and Discover.

Note: PAR may originate from the EMV chip card.

PEI (1 A/N) (POS Environment Indicator)

This field provides additional information about Visa transactions. Valid values are:

Value Description
C Card On File
I Installment Payment
R Recurring Payment

PFI (Payment Facilitator ID)

This 11-digit field, assigned by Mastercard or Visa, is assigned during registration for the Service Provider designated as a Payment Facilitator or Marketplace. This value must be present on all Mastercard or Visa transactions that originate from a Payment Facilitator/Marketplace.

PGP (1 A/N) (Program Protocol)

PGP must be provided by the merchant if they are participating in Mastercard Identity Check and have previously authenticated using the Mastercard Identity Check or SecureCode program. It identifies the type of 3D-Secure program.

Value Description
1 3D Secure Version 1.0 [3DS 1.0]
2 EMV 3-D Secure [3DS 2.0]

PON (Purchase Order Number)

This field can be used to set a 16, 17, or 25-character Purchase Order Number or Customer Reference Identifier supplied by the Visa or MasterCard Purchasing Card cardholder.

PRI (35 A/N) (PAN Reference Identifier)

PRI is assigned by Discover at the time of token provisioning and is associated with a specific mobile wallet.

PTI (Payment Transaction Indicator)

C03 rePower Load Value
C04 Gaming Re-Pay
C06 Payment of Credit Card Balance with Cash or Check
F07 General Person-to-Person Transfer
F08 Person-to-Person Transfer to Card Account
F52 General Transfer to Own Account
F53 Agent Cash Out
F54 Payment of Own Credit Card Bill
F55 Business Disbursement
F61 Transfer to Own Staged Digital Wallet Account
F64 Transfer to Own Debit or Prepaid Card Account
F65 General Business-to-Business Transfer
P10 Purchase Repayment

SID (Merchant Seller ID)

A seller/vendor code that uniquely identifies an aggregator's specific seller/vendor

SMI (Sub-Merchant ID)

This 15-digit field, assigned by the Payment Facilitator, must be provided on all Mastercard or Visa transactions that originate from a Payment Facilitator.

SQI (Spend Qualified Indicator)

Value Description
B Base spend assessment threshold has been met.
N Spend qualification threshold has not been met.
Q Spend qualification threshold has been met.
[SP] (' ' - Space)Spend qualification does not apply.

TAA (12 NUM) (Total Authorized Amount)

This 12-character numeric field contains the total authorized amount of the transaction being settled. For transactions authorized online, this field contains the sum of the original authorization amount and all subsequent incremental authorization amounts, less any authorization reversal amount. If Incremental Authorization and Authorization Reversal transaction are not being supported, this field will be identical to the Settlement Amount. The field entry must be right justified and zero-filled. For transactions processed offline, this field must be defaulted to zeros.

TAL (Token Assurance Level)

Defined by the token service provider, this Visa or MasterCard value indicates the assigned confidence level of the token-to-PAN/cardholder binding.

TFA (Transaction Fee Amount with Indicator)

C The surcharge indicates a credit to the consumer account.
D The surcharge indicates a debit from the consumer account.

Transaction fee amount is used in credit transactions to carry the acquirer-assessed surcharge for informational purposes only. This field can be zero length or nine alphanumeric characters in length. The format of the nine characters is "annnnnnnn" where "a" is either "D" for debit or "C" for credit and where "nnnnnnnn" is the numeric fee amount with the decimal implied.

Example: "D00000150" is a $1.50 transaction fee amount debited to the cardholder's account.

TIC (Transaction Integrity Class)

If returned in the Mastercard's authorization response, the component will include this field automatically in the settlement.

TMI (Transportation Mode Indicator)

00 Unknown
01 Urban Bus
02 Interurban Bus
03 Light Train Mass Transit (Underground Metro, LTR)
04 Train
05 Communter Train
06 Water Borne Vehicle
07 Toll
08 Parking
09 Taxi
10 High Speed Train
11 Rural Bus
12 Express Commuter Train
13 Para Transit
14 Self Drive Vehicle
15 Coach
16 Locomotive
17 Powered Motor Vehicle
18 Trailer
19 Regional Train
20 Inter City
21 Funicular Trailer
22 Cable Car

TRI (Token Requestor ID)

This 11-character alphanumeric field contains the value that uniquely identifies the pairing of token requestor with the token domain. This value is sent in capture to identify the requestor to the card brand.

TSI (Transaction Status Indicator)

The tables below provide the valid values for each card brand.

Valid value for Visa is:

I One or more incremental authorizations were performed.

Valid values for Mastercard are:

Value Description
0 Normal request (original presentment)
1 Deferred Authorizations
2 SecureCode Phone Order
3 ATM Installment Inquiry
4 Preauthorized request
5 Time Based Payment Authorization Request-Brazil domestic transactions
6 ATC Update
8 Account Status Inquiry Service (ASI)
9 Tokenization Request/Notification

Valid values for Discover are:

Value Description
0 Normal request (original presentment)
4 Preauthorized request
A Re-authorize for Full Amount
D Delayed Card Sale
E Resubmission of Card Sale
G Transit Aggregated Transaction
I Incremental Authorization
N No-Show Charge
P Partial Shipment
R Recurring Payment
S Merchant Installment Payment
T Third Party Installment Payment
U Unscheduled Payment
V Issuer Installment Payment

Note: For Purchase Return Authorization Requests: Value must be 0 (Mastercard and Discover).

TTC (Tax Treatment Code)

Value Description
0 NLL - Net prices with tax calculated at the line item level.
1 NIL - Net prices with tax calculated at the invoice level
2 GLL - Gross prices given with tax information provided at the line item level.
3 GIL - Gross prices given with tax information provided at the invoice level.
4 NON - No tax applies
[SP] (' ' - Space)Field not used.

TTT (Transit Transaction Type Indicator)

01 Prefunded
02 Real-time Authorized
03 Post-Authorized Aggregated
04 Authorized Aggregated Split Clearing
05 Other
07 Debt Recovery

WID (MasterCard Wallet Identifier)

This is a MasterCard value that is generated by the MasterPass online platform. This value is passed to the merchant at the time of consumer checkout for e-commerce transactions, and is included in the authorization request.

EMVAppCryptogram:   The clearing cryptogram used to validate transaction processing in the event of a dispute.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVAppInterchangeProfile:   A series of indicators that reflect the specific functions supported by the chip card account.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVAppTranCounter:   The count of the transactions performed within the application.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVCardSeqNum:   The number assigned to a specific card when two or more cards are associated with a single account number.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVCryptogramAmount:   Contains the transaction amount used by the chip when calculating the last cryptogram.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVCryptogramInfoData:   The type of cryptogram and the actions to be performed by the terminal.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVCurrencyCode:   The currency code of the transaction.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVCVMResults:   The results of the last Cardholder Verification Method (CVM) performed.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVData:   The EMV Data returned from a Pin Pad after reading an EMV card.

This configuration setting takes the entire TLV (tag-length-value) response received from a Pin Pad after reading an EMV card. When setting this field, any EMV tags that are not specified within the TSYS specifications, to include in the request, will be removed from the input. The component will send this data in an authorization request. Note that when performing an EMV transaction, POSDataCode is required.

EMVDedicatedFileName:   Identifies the name of the Dedicated File as described in ISO/IEC 7816-4. This field is required for Mastercard and Discover (including Diners, JCB, and CUP).

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

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.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVIssuerAppData:   Application data for transmission to the issuer in an online transaction.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVIssuerAuthData:   Data sent by the Issuer to the Chip Card for the Chip Card to validate the authenticity of the Issuer.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVIssuerScriptResults:   The update command that the issuer sends in the authorization response to the card during online processing.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVTerminalCapabilities:   Indicates the card input data, the Cardholder Verification Method (CVM), and the security capabilities that are supported by the terminal.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVTranDate:   The local date at the terminal on which the transaction was authorized.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config. The value must be in YYMMDD format.

EMVTranType:   The Transaction Type used by the card to calculate the cryptogram.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVUnpredictableNum:   The number used in the generation of the cryptogram.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

EMVVerificationResult:   The indicators representing the results of offline and online processing, recorded by the terminal.

This value is returned by the EMV Pin Pad/Terminal device and is sent as part of the EMVData in the authorization. The component parses the EMVData to obtain and populate this config.

HeartlandDeviceId:   Specifies a device ID to uniquely identify each terminal (card data entry device).

The specified value must be 4 characters or less. Note that this value is required to comply with MasterCard's Authorization Data Accuracy Initiative.

HeartlandEncryptionMode:   Specifies the encryption mode to use in Heartland transactions.

This field allows you to specify the Heartland E3 encryption mode used when processing Heartland transactions. The available values are (descriptions describe the data that will be encrypted):

0No Encryption (default)
1Merchant ID and Card Data (reserved for future use)
2Merchant ID, Card Data, and Card Security Code (reserved for future use)
3Card Data Only

Note you will also need to set Processor to 1 (Heartland) and HeartlandKeyBlock if you wish to process Heartland E3 transactions.

IsBillPayment:   Indicates that the transaction is a bill payment transaction.

This field, when set to 'True', indicates that the transaction is a Bill Payment transaction and will be processed as such. When set to 'False' (default value) the transaction will be processed normally.

Leg1:   Used by Merchants that are in the airline industry to submit Leg 1 information for Passenger Transport transactions.

This configuration setting takes a semicolon (;) separated list of name-value pairs. The maximum number of travel legs per trip is 4. You must include information for at least the first leg of the trip (Leg 1).

There are four fields (Carrier, ServiceClass, StopOver and Destination) available for each leg, of which Destination is a required field. The list of available field names and their applicable values can be found below. The fields can be set in any order.

Code Example: TSYSDetailRecord.Config("Leg1=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX");

CarrierAirline Carrier Code for Leg 1 on ticket. Example: DL
ServiceClassOne-character value identifying the service class associated with Leg 1 on ticket. Example: C
StopOverOne-character value identifying whether a stop-over is permitted for Leg 1 on ticket. Possible values:
O Stop-over Allowed
X Stop-over Not Allowed
DestinationDestination Airport for Leg 1 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions.

Leg2:   Used by Merchants that are in the airline industry to submit Leg 2 information for Passenger Transport transactions.

This configuration setting takes a semicolon (;) separated list of name-value pairs. The maximum number of travel legs per trip is 4. You must include information for at least the first leg of the trip (Leg 1).

There are four fields (Carrier, ServiceClass, StopOver and Destination) available for each leg, of which Destination is a required field. The list of available field names and their applicable values can be found below. The fields can be set in any order.

Code Example: TSYSDetailRecord.Config("Leg2=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX");

CarrierAirline Carrier Code for Leg 2 on ticket. Example: DL
ServiceClassOne-character value identifying the service class associated with Leg 2 on ticket. Example: C
StopOverOne-character value identifying whether a stop-over is permitted for Leg 2 on ticket. Possible values:
O Stop-over Allowed
X Stop-over Not Allowed
DestinationDestination Airport for Leg 2 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions.

Leg3:   Used by Merchants that are in the airline industry to submit Leg 3 information for Passenger Transport transactions.

This configuration setting takes a semicolon (;) separated list of name-value pairs. The maximum number of travel legs per trip is 4. You must include information for at least the first leg of the trip (Leg 1).

There are four fields (Carrier, ServiceClass, StopOver and Destination) available for each leg, of which Destination is a required field. The list of available field names and their applicable values can be found below. The fields can be set in any order.

Code Example: TSYSDetailRecord.Config("Leg3=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX");

CarrierAirline Carrier Code for Leg 3 on ticket. Example: DL
ServiceClassOne-character value identifying the service class associated with Leg 3 on ticket. Example: C
StopOverOne-character value identifying whether a stop-over is permitted for Leg 3 on ticket. Possible values:
O Stop-over Allowed
X Stop-over Not Allowed
DestinationDestination Airport for Leg 3 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions.

Leg4:   Used by Merchants that are in the airline industry to submit Leg 4 information for Passenger Transport transactions.

This configuration setting takes a semicolon (;) separated list of name-value pairs. The maximum number of travel legs per trip is 4. You must include information for at least the first leg of the trip (Leg 1).

There are four fields (Carrier, ServiceClass, StopOver and Destination) available for each leg, of which Destination is a required field. The list of available field names and their applicable values can be found below. The fields can be set in any order.

Code Example: TSYSDetailRecord.Config("Leg4=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX");

CarrierAirline Carrier Code for Leg 4 on ticket. Example: DL
ServiceClassOne-character value identifying the service class associated with Leg 4 on ticket. Example: C
StopOverOne-character value identifying whether a stop-over is permitted for Leg 4 on ticket. Possible values:
O Stop-over Allowed
X Stop-over Not Allowed
DestinationDestination Airport for Leg 4 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions.

LocationDetailAddress:   Merchant's street address.

The maximum length is 38 characters (upper-case). This field is used to identify the merchant's street address where the transaction took place. If the address is more than 38 characters, use proper and meaningful abbreviation(s) when possible. Do not truncate.

For Mail Order, Phone Order, and Internet Industries, you may substitute the street address where the merchant's order processing facility is located, or the merchant's web address (URL) or e-mail address. URLs and e-mail addresses may be in lower case as appropriate.

LocationDetailCity:   Name of the city.

The maximum length, depending on the card brand, is 21 or 13 characters (upper-case). This field is used to identify the name of the city where the transaction took place. For Visa and Mastercard the maximum length is 13 characters while for Amex it's 21 characters. If the name is more than the maximum allowed, use proper and meaningful abbreviation(s) when possible. Do not truncate. Please refer to the latest "TSYS Sierra EIS-1081" documentation regarding this field's usage for Card Not Present (CNP) transactions and more.

LocationDetailCountry:   Country code.

The maximum length is 3 characters (upper-case). This field is used to identify the country code of the location where the transaction took place. For example, the country code for USA is "840."

LocationDetailName:   Merchant name.

The maximum length is 38 characters (upper-case). This field is used to identify the merchant name that appears on the storefront and/or customer receipts and statements. It is commonly referred to as the DBA (Doing Business As) Name. Use proper and meaningful abbreviation(s) when possible. Do not truncate.

LocationDetailPostal:   Postal code.

The maximum length is 15 characters (upper-case). This field is used to identify the postal / zip code of the location where the transaction took place.

LocationDetailRegion:   Region code that corresponds to the state, province, or other country subdivision.

The maximum length is 3 characters (upper-case). This field is used to identify the region code that corresponds to the state, province, or other country subdivision of the merchant location where the transaction took place. For example, the region code for California, USA is "CA". For non-US and Canada country codes, this field should be populated with spaces or "XX".

MerchantDescriptor:   Merchant Soft Descriptor information.

This is a free-text value field giving more information about the transaction. It can be used for merchant or client reporting purposes. Maximum length of this field is 25 characters.

MobileDeviceType:   Identifies the type of mobile device used by the cardholder to initiate the transaction.

This field is required for all MasterCard PayPass (contactless) transactions. Valid values are:

Value Description
00 Card (default)
01 Mobile Network Operator (MNO) controlled removable secure element (SIM or UICC) personalized for use with a mobile phone or smartphone
02 Key Fob
03 Watch using a contactless chip or a fixed (non-removable) secure element not controlled by the MNO
04 Mobile Tag
05 Wristband
06 Mobile Phone Case or Sleeve
07 Mobile Phone or Smartphone with a fixed (non-removable) secure element controlled by the MNO (such as CDMA)
08 Removable secure element not controlled by the MNO, for example, memory card personalized for use with a mobile phone or smartphone
09 Mobile Phone or Smartphone with a fixed (non-removable) secure element not controlled by the MNO
10 MNO controlled removable secure element (SIM or UICC) personalized for use with a tablet or e-book
11 Tablet or E-Book with a fixed (non-removable) secure element controlled by the MNO
12 Removable secure element not controlled by the MNO (such as memory card personalized for use with a tablet or e-book)
13 Tablet or E-Book with fixed (nonremovable) secure element not controlled by the MNO
14 Mobile Phone or Smartphone with a payment application running in a host processor
15 Tablet or E-Book with a payment application running in a host processor
16 Mobile Phone or Smartphone with a payment application running in the TEE of a host processor
17 Tablet or E-Book with a payment application running in the TEE of a host processor
18 Watch with a payment application running in the TEE of a host processor
19 Watch with a payment application running in a host processor
20 Card
21 Phone (i.e. Mobile phone)
22 Tablet/e-reader (i.e. Tablet computer or e-reader)
23 Watch/Wristband (i.e. Watch or wristband, including a fitness band, smart strap, disposable band, watch add-on, and security/ID band)
24 Sticker
25 PC (i.e. PC or laptop)
26 Device Peripheral (i.e. Mobile phone case or sleeve)
27 Tag (i.e. Key fob or mobile tag)
28 Jewelry (i.e. Ring, bracelet, necklace, and cuff links)
29 Fashion Accessory (i.e. Handbag, bag charm, and glasses)
30 Garment (i.e. Dress)
31 Domestic Appliance (i.e. Refrigerator, washing machine)
32 Vehicle (i.e. Vehicle, including vehicle attached devices)
33 Media/Gaming Device (i.e. Media or gaming device, including a set top box, media player, and television)
34-99 These values reserved for future form factors. Any value in this range may occur within form factors and transaction data without prior notice.
Origin:   First segment travel origination Airport.

This configuration setting is used to set the origination city of the trip. This is a three-character field denoting the airport code of the origination city. For example: LAX

Note: This is a required field for Passenger Transport Transactions.

PassengerName:   The passenger's name.

This configuration setting is used to set the name of the airline passenger. The maximum length is 20 characters. For example: "John Smith"

Note: This is a required field for Passenger Transport Transactions.

PFNameSubMerchantName:   Merchant name, Payment Facilitator Name and Sub-Merchant name, or Marketplace name.

The maximum length is 38 characters (upper-case). This field is used to identify one of those: Merchant (Location Detail) Name, Payment Facilitator Name, or Marketplace Name.

For Payment Facilitators, this field is a concatenation of two fields separated by an asterisk (*).

For Visa, Mastercard and Discover the name submitted should match what the PayFac registered with each brand and should follow the requirements defined by each brand.

For Visa Marketplaces, this field identifies the name of the Marketplace.

PFSubMerchantCity:   The Payment Facilitator Sub-Merchant City.

The maximum length is 21 characters (upper-case). This field is used for Mastercard and Visa to identify the name of the city where the Sub-Merchant is located. For Discover, identify the name of the city where the transaction occurred.

If the name is more than 21 characters, use proper and meaningful abbreviation(s) when possible. Do not truncate.

For Direct Marketing merchants and preferred customer/passenger transport and card not present transactions, this field must contain a phone number for merchant customer service in format XXX-XXXXXXX. The dash is required. If the phone is not available, use the website URL.

Note: For Marketplaces, this field is not required.

PFSubMerchantCountry:   The Payment Facilitator Sub-Merchant Country Code.

The maximum length is 3 characters (upper-case). This field is used to identify the country code of the location where the transaction took place. For example, the country code for USA is "840". It is used for Visa, Mastercard, and Discover transactions and must be included on all transactions that originate from a Payment Facilitator.

Note: For Marketplaces, this field is not required.

PFSubMerchantPostalCode:   The Payment Facilitator Sub-Merchant Postal Code.

The maximum length is 15 characters (upper-case). This field is used to identify the postal / zip code of the Sub-Merchant's location. It is used for Visa, Mastercard, and Discover transactions and must be included on all transactions that originate from a Payment Facilitator.

Note: For Marketplaces, this field is not required.

PFSubMerchantState:   The Payment Facilitator Sub-Merchant State/Province Code.

The maximum length is 3 characters (upper-case). This field is used to identify the region code that corresponds to the state, province, or other country subdivision of the merchant location where the transaction took place. For example, the region code for California, USA is "CA". For non-US and Canada country codes, this field should be populated with spaces or "XX". It is used for Visa, Mastercard, and Discover transactions and must be included on all transactions that originate from a Payment Facilitator.

Note: For Marketplaces, this field is not required.

POSDataCode:   Specifies the condition of the POS device used at the time of the transaction.

This configuration setting takes a semi-colon separated list of name-value pairs. The available field names and their applicable values can be found below. The fields can be set in any order and not all fields are required to be set (unless you wish to change their default values).

Code Example: TSYSRetail.Config("POSDataCode=CardholderAuthCap=1;CardInputMode=2;CardInputCap=2");

CardInputCap (Terminal card data input capability)

0 (default) Unspecified, data not available
1 Manual; no terminal; Voice auth/ARU
2 Magnetic stripe reader capability
3 Bar code/ Payment code
4 Optical character reader (OCR) capability, [MC, AX]
5 Integrated circuit card (ICC) capability and magnetic stripe reader
6 Key entry only capability; Mastercard recurring and installment transactions
A PAN auto-entry via contactless magnetic stripe
B Magnetic stripe reader and key entry capability
C Magnetic stripe reader, ICC, and key entry capability
D Magnetic stripe reader and ICC capability
E ICC entry capability
H ICC Reader and Contactless Capability; Magnetic stripe & manual entry implied
M PAN auto-entry via contactless chip
V Other capability, [MC]
X Reserved for private use

CardholderAuthCap (Terminal cardholder authentication capability)

0 No electronic authentication capability
1 PIN entry capability
2 Electronic signature analysis capability
3 mPOS software-based PIN entry capability
5 Electronic authentication capability is inoperative
6 Other
9 (default) Unspecified, data not available

CardCaptureCap (Terminal card-capture capability)

0 No capture capability
1 Card capture capability
9 (default) Unspecified, data not available

TerminalOpEnv (Terminal operating environment)

0 No terminal used; Voice auth/ARU; Mastercard recurring/installment transactions
1 On card acceptor premises; attended terminal
2 On card acceptor premises; unattended terminal
3 Off card acceptor premises; attended
4 Off card acceptor premises; unattended
5 On cardholder premises; unattended
6 Off cardholder premises; unattended
9 (default) Unspecified, data not available
M Off card acceptor premises; merchant mobile POS environment, including mPOS
P On card acceptor premises; merchant mobile POS environment, including mPOS
Q Off card acceptor premises; cardholder mobile environment, including home PC, mobile phone, PDA
R On card acceptor premises; cardholder mobile environment, including home PC, mobile phone, PDA
S Electronic delivery of product, [AX]
T Physical delivery of product, [AX]

CardholderPresent (Cardholder present data)

0 Cardholder present
1 Cardholder not present; unspecified reason
2 Cardholder not present; mail transaction
3 Cardholder not present; phone transaction
4 Cardholder not present; standing (recurring) transaction
5 Cardholder not present; electronic commerce
8 Cardholder not present; recurrent billing such as a loan or installment payment
R Recurring purchase transaction (original transaction was token-based with valid cryptogram)
T PayButton (Discover only)

CardPresent (Card present data)

0 Card not present
1 Card present
W Transponder, [AX]
X Contactless Chip Transactions, including AMEX Expresspay
Z Digital Wallet [AX]

CardInputMode (Card data input mode)

0 (default) Unspecified, data not available
1 Manual input; no terminal; Voice auth/ARU
2 Magnetic stripe reader input
3 Bar code/Payment code
6 Key entered input
7 Payment Credential stored on file. NOTE: This value is required for all Mastercard recurring transactions.
A PAN auto-entry via contactless magnetic stripe
B Magnetic stripe reader input; track data captured and passed unaltered
C Online Chip
F Offline Chip
M PAN auto-entry via contactless Chip Card (EMV Mode)
N Track data read and sent unaltered, chip capable terminal, chip data could not be read
P Empty candidate list fallback
R PAN Entry via electronic commerce, including remote chip
S Electronic commerce, no security, channel encrypted, or SET without cardholder certificate
V Manually entered with keyed CID, [AX, JCB Canada]
W Swiped transaction with keyed CID, [AX, JCB Canada]
X Reserved for private use
Y Reserved for private use
Z Contactless Interface Change Identifies when a Chip Card Transaction with a dualinterface card switches from a contactless to a contact chip card transaction [Discover]

NOTE: AMEX defines ApplePay with value C - Online Chip

CardholderAuthMethod (Cardholder authentication method)

0 Not authenticated
1 PIN
2 Electronic signature analysis
5 Manual signature verification
6 Other manual verification (such as a driver's license number)
9 (default) Unspecified, data not available
S Other systematic verification
T Electronic ticket environment, [AX]

CardholderAuthEntity (Cardholder authentication entity)

0 Not authenticated
1 ICC - Offline PIN
2 Card acceptance device (CAD)
3 Authorizing agent - Online PIN
4 Merchant/card acceptor - signature
5 Other
9 (default) Unspecified, data not available

CardOutputCap (Card data output capability)

0 (default) Unspecified, data not available
1 None
2 Magnetic stripe write
3 ICC
S Other

TerminalOutputCap (Terminal data output capability)

0 (default) Unspecified, data not available
1 None
2 Printing capability only
3 Display capability only
4 Printing and display capability

PINCaptureCap (PIN capture capability)

0 No PIN capture capability
1 (default) Unspecified, data not available
2 Reserved
3 Reserved
4 PIN capture capability four characters maximum
5 PIN capture capability five characters maximum
6 PIN capture capability six characters maximum
7 PIN capture capability seven characters maximum
8 PIN capture capability eight characters maximum
9 PIN capture capability nine characters maximum
A PIN capture capability 10 characters maximum
B PIN capture capability 11 characters maximum
C PIN capture capability 12 characters maximum

Note: Setting this configuration setting in TSYSDetailRecord class will not update the POSDataCode tag in the detail aggregate of the original transaction.

Processor:   Specifies the Processor you are connecting to.

This field allows you to specify the processor that you are connecting to (thus allowing the class to correctly generate the request and parse the response). The available values are:

0TSYS (default)
1Heartland

Note that when set, this property will set the Server and Port to the default values for the specified processor. Additionally, this config must be set prior to setting Card to ensure the card data is formatted correctly.

RequesterName:   Name of the requester.

This configuration setting can be used to set the name of the requester, if the card holder is not the person that ordered or purchased the product or service. This configuration setting applies to the Amex CAPN Corporate Purchasing Solution Extension.

RestrictedTicketIndicator:   Indicates if there are restrictions associated with this ticket.

This configuration setting is used to specify special restrictions associated with an issued airline ticket. The Default value is False. Possible values:

True Restricted Ticket/Non-Refundable
False No Restriction (default)
SpecialConditionIndicator:   Describes selected special conditions at the POS.

This field describes selected special conditions at the point of sale.

Valid values are:

Value Description
7 Purchase of Cryptocurrency. The transaction is related to purchase of cryptocurrency.
8 Quasi-Cash. The transaction is for a product or item that is representative of actual cash such as money orders, traveler's checks, foreign currency, lottery tickets, or casino gaming chips.
9 Existing Debt Indicator. The transaction includes payment on an existing debt.

SpendQualifiedIndicator:   Indicates whether or not the spend qualification threshold has been met.

This field is for High Value card transactions. Valid values are:

Value Description
B Base spend assessment threshold has been met.
N Spend qualification threshold has not been met.
Q Spend qualification threshold has been met.
[SP] (' ' - Space)Spend qualification does not apply.
TicketNumber:   The airline ticket number.

This configuration setting is used to set the airline ticket number. This 13-character value is comprised of a three-character Carrier Code followed by a 10-character Ticket identifier. For example: "8382152100395"

Note: This is a required field for Passenger Transport Transactions.

Token:   The token used in place of Card data.

This field will contain the token received from TSYS and used in place of Card data. This is used as an added security measure to protect a customer's Card and may also help decrease PCI Compliance verification as storing credit card data is no longer needed.

TotalTaxAmount:   Total Tax Amount assessed at the point-of-sale.

This configuration setting can be used to set the total of all taxes applicable to a transaction and it should not be used to report individual line item details for taxes. This configuration setting applies to the Amex CAPN Corporate Purchasing Solution Extension.

TsysETB:   The Encryption Transmission Block TSYS uses to decrypt encrypted data.

This field is used to specify the Base-64 encoded ETB (Encryption Transmission Block) used by TSYS to decrypt Voltage encrypted data. The value is retrieved from the POS device containing the Voltage encryption software. When specified, the transaction will be sent as a Voltage encrypted transaction. The encrypted card data will be specified as normal via the CardMagneticStripe or CardNumber fields.

VisaMVV:   Merchant Verification Value used for Visa transactions.

The Merchant Verification Value (MVV) is used by Visa to determine a merchant's eligibility to participate in a Select Merchant Fee (SMF) program. The maximum length of this property is 10 characters, and it may only contain 0-9 and A-F.

Base Config Settings

BuildInfo:   Information about the product's build.

When queried, this setting will return a string containing information about the product's build.

CodePage:   The system code page used for Unicode to Multibyte translations.

The default code page is Unicode UTF-8 (65001).

The following is a list of valid code page identifiers:

IdentifierName
037IBM EBCDIC - U.S./Canada
437OEM - United States
500IBM EBCDIC - International
708Arabic - ASMO 708
709Arabic - ASMO 449+, BCON V4
710Arabic - Transparent Arabic
720Arabic - Transparent ASMO
737OEM - Greek (formerly 437G)
775OEM - Baltic
850OEM - Multilingual Latin I
852OEM - Latin II
855OEM - Cyrillic (primarily Russian)
857OEM - Turkish
858OEM - Multilingual Latin I + Euro symbol
860OEM - Portuguese
861OEM - Icelandic
862OEM - Hebrew
863OEM - Canadian-French
864OEM - Arabic
865OEM - Nordic
866OEM - Russian
869OEM - Modern Greek
870IBM EBCDIC - Multilingual/ROECE (Latin-2)
874ANSI/OEM - Thai (same as 28605, ISO 8859-15)
875IBM EBCDIC - Modern Greek
932ANSI/OEM - Japanese, Shift-JIS
936ANSI/OEM - Simplified Chinese (PRC, Singapore)
949ANSI/OEM - Korean (Unified Hangul Code)
950ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC)
1026IBM EBCDIC - Turkish (Latin-5)
1047IBM EBCDIC - Latin 1/Open System
1140IBM EBCDIC - U.S./Canada (037 + Euro symbol)
1141IBM EBCDIC - Germany (20273 + Euro symbol)
1142IBM EBCDIC - Denmark/Norway (20277 + Euro symbol)
1143IBM EBCDIC - Finland/Sweden (20278 + Euro symbol)
1144IBM EBCDIC - Italy (20280 + Euro symbol)
1145IBM EBCDIC - Latin America/Spain (20284 + Euro symbol)
1146IBM EBCDIC - United Kingdom (20285 + Euro symbol)
1147IBM EBCDIC - France (20297 + Euro symbol)
1148IBM EBCDIC - International (500 + Euro symbol)
1149IBM EBCDIC - Icelandic (20871 + Euro symbol)
1200Unicode UCS-2 Little-Endian (BMP of ISO 10646)
1201Unicode UCS-2 Big-Endian
1250ANSI - Central European
1251ANSI - Cyrillic
1252ANSI - Latin I
1253ANSI - Greek
1254ANSI - Turkish
1255ANSI - Hebrew
1256ANSI - Arabic
1257ANSI - Baltic
1258ANSI/OEM - Vietnamese
1361Korean (Johab)
10000MAC - Roman
10001MAC - Japanese
10002MAC - Traditional Chinese (Big5)
10003MAC - Korean
10004MAC - Arabic
10005MAC - Hebrew
10006MAC - Greek I
10007MAC - Cyrillic
10008MAC - Simplified Chinese (GB 2312)
10010MAC - Romania
10017MAC - Ukraine
10021MAC - Thai
10029MAC - Latin II
10079MAC - Icelandic
10081MAC - Turkish
10082MAC - Croatia
12000Unicode UCS-4 Little-Endian
12001Unicode UCS-4 Big-Endian
20000CNS - Taiwan
20001TCA - Taiwan
20002Eten - Taiwan
20003IBM5550 - Taiwan
20004TeleText - Taiwan
20005Wang - Taiwan
20105IA5 IRV International Alphabet No. 5 (7-bit)
20106IA5 German (7-bit)
20107IA5 Swedish (7-bit)
20108IA5 Norwegian (7-bit)
20127US-ASCII (7-bit)
20261T.61
20269ISO 6937 Non-Spacing Accent
20273IBM EBCDIC - Germany
20277IBM EBCDIC - Denmark/Norway
20278IBM EBCDIC - Finland/Sweden
20280IBM EBCDIC - Italy
20284IBM EBCDIC - Latin America/Spain
20285IBM EBCDIC - United Kingdom
20290IBM EBCDIC - Japanese Katakana Extended
20297IBM EBCDIC - France
20420IBM EBCDIC - Arabic
20423IBM EBCDIC - Greek
20424IBM EBCDIC - Hebrew
20833IBM EBCDIC - Korean Extended
20838IBM EBCDIC - Thai
20866Russian - KOI8-R
20871IBM EBCDIC - Icelandic
20880IBM EBCDIC - Cyrillic (Russian)
20905IBM EBCDIC - Turkish
20924IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol)
20932JIS X 0208-1990 & 0121-1990
20936Simplified Chinese (GB2312)
21025IBM EBCDIC - Cyrillic (Serbian, Bulgarian)
21027Extended Alpha Lowercase
21866Ukrainian (KOI8-U)
28591ISO 8859-1 Latin I
28592ISO 8859-2 Central Europe
28593ISO 8859-3 Latin 3
28594ISO 8859-4 Baltic
28595ISO 8859-5 Cyrillic
28596ISO 8859-6 Arabic
28597ISO 8859-7 Greek
28598ISO 8859-8 Hebrew
28599ISO 8859-9 Latin 5
28605ISO 8859-15 Latin 9
29001Europa 3
38598ISO 8859-8 Hebrew
50220ISO 2022 Japanese with no halfwidth Katakana
50221ISO 2022 Japanese with halfwidth Katakana
50222ISO 2022 Japanese JIS X 0201-1989
50225ISO 2022 Korean
50227ISO 2022 Simplified Chinese
50229ISO 2022 Traditional Chinese
50930Japanese (Katakana) Extended
50931US/Canada and Japanese
50933Korean Extended and Korean
50935Simplified Chinese Extended and Simplified Chinese
50936Simplified Chinese
50937US/Canada and Traditional Chinese
50939Japanese (Latin) Extended and Japanese
51932EUC - Japanese
51936EUC - Simplified Chinese
51949EUC - Korean
51950EUC - Traditional Chinese
52936HZ-GB2312 Simplified Chinese
54936Windows XP: GB18030 Simplified Chinese (4 Byte)
57002ISCII Devanagari
57003ISCII Bengali
57004ISCII Tamil
57005ISCII Telugu
57006ISCII Assamese
57007ISCII Oriya
57008ISCII Kannada
57009ISCII Malayalam
57010ISCII Gujarati
57011ISCII Punjabi
65000Unicode UTF-7
65001Unicode UTF-8
The following is a list of valid code page identifiers for Mac OS only:
IdentifierName
1ASCII
2NEXTSTEP
3JapaneseEUC
4UTF8
5ISOLatin1
6Symbol
7NonLossyASCII
8ShiftJIS
9ISOLatin2
10Unicode
11WindowsCP1251
12WindowsCP1252
13WindowsCP1253
14WindowsCP1254
15WindowsCP1250
21ISO2022JP
30MacOSRoman
10UTF16String
0x90000100UTF16BigEndian
0x94000100UTF16LittleEndian
0x8c000100UTF32String
0x98000100UTF32BigEndian
0x9c000100UTF32LittleEndian
65536Proprietary

LicenseInfo:   Information about the current license.

When queried, this setting will return a string containing information about the license this instance of a class is using. It will return the following information:

  • Product: The product the license is for.
  • Product Key: The key the license was generated from.
  • License Source: Where the license was found (e.g., RuntimeLicense, License File).
  • License Type: The type of license installed (e.g., Royalty Free, Single Server).
  • Last Valid Build: The last valid build number for which the license will work.
MaskSensitive:   Whether sensitive data is masked in log messages.

In certain circumstances it may be beneficial to mask sensitive data, like passwords, in log messages. Set this to true to mask sensitive data. The default is true.

This setting only works on these classes: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.

ProcessIdleEvents:   Whether the class uses its internal event loop to process events when the main thread is idle.

If set to False, the class will not fire internal idle events. Set this to False to use the class in a background thread on Mac OS. By default, this setting is True.

SelectWaitMillis:   The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process.

If there are no events to process when DoEvents is called, the class will wait for the amount of time specified here before returning. The default value is 20.

UseInternalSecurityAPI:   Tells the class whether or not to use the system security libraries or an internal implementation.

When set to false, the class will use the system security libraries by default to perform cryptographic functions where applicable.

Setting this setting to true tells the class to use the internal implementation instead of using the system security libraries.

On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.

To use the system security libraries for Linux, OpenSSL support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.

Trappable Errors (TSYSDetailRecord Class)

TSYSDetailRecord Errors

501   Data field invalid length.
502   Data field invalid format.
503   Data field out of range.
592   Invalid or unparseable aggregate.
605   Invalid CardType.