TSYSDetailRecord Control
Properties Methods Events Config Settings Errors
The TSYSDetailRecord control is a tool used to create off-line Credit or Force transactions to be settled by the TSYSSETTLE control. The TSYSDetailRecord control may also be used to modify the XML aggregates returned by the TSYSRETAIL or TSYSECOMMERCE control's GetDetailAggregate method.
Syntax
TSYSDetailRecord
Remarks
Credit and Force transactions are off-line transactions. This means that there is no authorization of funds using the TSYSECommerce or TSYSRetail controls. Instead, you must manually add these transactions to the settlement batch. The TSYSDetailRecord control can be used to create these transactions, which can then be added to the TSYSSettle control'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 control'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 control can be used to adjust the Detail Records returned from the TSYSECommerce, TSYSRetail, TSYSDebit, and TSYSBenefit controls. 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 control 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 control with short descriptions. Click on the links for further details.
AuthorizedAmount | Original amount authorized before any reversals. |
CardholderId | Specifies the method used to verify the identity of the cardholder. |
CardNumber | Customer's credit card number from the original authorization request. |
DebitCashBack | Contains the ResponseCashBack amount from the original Debit or EBT transaction. |
DebitNetworkId | Contains the ResponseNetworkId returned in the original Debit or EBT response. |
DebitReimbursementAttribute | Contains the ReimbursementAttribute from the original Debit or EBT request. |
DebitRetrievalNumber | Contains the ResponseRetrievalNumber returned in original Debit or EBT response. |
DebitSettleDate | Contains the ResponseSettleDate returned in the original Debit or EBT response. |
DebitTrace | Contains the ResponseTrace returned from the original debit or EBT response. |
ECI | Electronic Commerce Indicator from the original authorization request. |
EntryDataSource | This property identifies the source of the customer data. |
GoodsIndicator | Used to identify the type of goods purchased over the Internet. |
Gratuity | Gratuity amount for settling restaurant/retail industry transactions. |
Healthcare | Indicates whether this is a healthcare transaction. |
HotelChargeType | Type of charge made at a hotel (American Express cards only). |
HotelRateAmount | The nightly rate for this hotel room (American Express cards only). |
IndustryType | Code which indicates the industry the merchant is engaged in. |
InstallmentCount | Total number of installments (installment transactions only). |
InstallmentNumber | Current installment number (installment transactions only). |
LodgingRenterName | Name of the person or business entity charged for the reservation and/or lodging stay (hotel transactions only). |
PartiallyReversed | Indicates whether this transaction has been partially reversed. |
PassengerCount | Total number of passengers (multiple passenger transport transactions only). |
PassengerNumber | Current passenger number (multiple passenger transport transactions only). |
PurchaseIdentifier | Optional purchase order number assigned by the merchant. |
RentalCheckIn | Date the cardholder checked into the hotel or first drove away a rented vehicle. |
RentalExtraCharges | List of extra charges for Hotel/Auto transactions. |
RentalNoShow | Indicates whether the cardholder is a no-show (auto rental and hotel industries only). |
RentalReturnCity | City where the rental car was returned (MasterCard only). |
RentalReturnLocation | Id of the location where the rental vehicle was returned (MasterCard only). |
RentalReturnState | State or country where the rental car was returned (MasterCard only). |
RenterName | Name of the person renting the vehicle (MasterCard only). |
RequestedACI | Authorization Characteristics Indicator from the original authorization request. |
ResponseACI | Authorization Characteristics Indicator from the original authorization response. |
ResponseApprovalCode | Response Approval Code from the original authorization response. |
ResponseAuthSource | Auth Source Code from the original authorization response. |
ResponseAVS | Address Verification Code from the original authorization response. |
ResponseCardLevel | Card Level results returned from the original authorization response. |
ResponseCode | Response code from the original authorization response. |
SettlementAmount | The amount that the customer will be charged. |
Substantiated | Used for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS). |
TotalAuthorizedAmount | Sum total of all the original authorization and all subsequent incremental authorizations. |
TransactionDate | Local Transaction Date from the original authorization response. |
TransactionId | Transaction Identifier from the original authorization response. |
TransactionNumber | Transaction Number from the original authorization request. |
TransactionTime | Local transaction time from the original authorization response. |
TransactionType | Indicates transaction type for this detail record. |
ValidationCode | Validation Code from the original authorization response. |
VoidTransaction | Indicates whether this transaction has been voided. |
Method List
The following is the full list of the methods of the control with short descriptions. Click on the links for further details.
Config | Sets or retrieves a configuration setting. |
GetDetailAggregate | Returns an aggregate containing details of this transaction, which is then used for settlement. |
ParseAggregate | Parses the aggregate returned from another control's GetDetailAggregate method. |
Reset | Clears all properties to their default values. |
Event List
The following is the full list of the events fired by the control with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
Config Settings
The following is a list of config settings for the control with short descriptions. Click on the links for further details.
AccountDataSource | Identifies the source of the customer card data entered. |
ACHCheckingSavingsIndicator | Specifies the originating account type. |
ACHCheckNumber | The individual check number. |
ACHCheckReversalIndicator | ACH Check Reversal Indicator. |
ACHIndividualName | The individual or receiving company name. |
ACHIndividualReferenceID | Merchant and customer information. |
ACHPaymentTypeIndicator | ACH Payment Type Indicator. |
ACHPrenoteIndicator | ACH Prenote Indicator. |
ACHPresentmentInformation | ACH Presentment Information. |
ACHReturnedCheckIndicator | ACH Returned Check Indicator. |
ACHRoutingNumber | 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. |
ACHTelephoneNumber | The merchant / business contact phone number, REVERSAL, or REDEPCHECK. |
ACHTerminalCity | The city, town, village, or township in which the merchant's terminal is located. |
ACHTerminalState | The state location for the merchant's terminal. |
DepartureDate | The passenger's departure date. |
DetailExtension | Detail Extension Optional Data Group. |
EMVAppCryptogram | The clearing cryptogram used to validate transaction processing in the event of a dispute. |
EMVAppInterchangeProfile | A series of indicators that reflect the specific functions supported by the chip card account. |
EMVAppTranCounter | The count of the transactions performed within the application. |
EMVCardSeqNum | The number assigned to a specific card when two or more cards are associated with a single account number. |
EMVCryptogramAmount | Contains the transaction amount used by the chip when calculating the last cryptogram. |
EMVCryptogramInfoData | The type of cryptogram and the actions to be performed by the terminal. |
EMVCurrencyCode | The currency code of the transaction. |
EMVCVMResults | The results of the last Cardholder Verification Method (CVM) performed. |
EMVData | The EMV Data returned from a Pin Pad after reading an EMV card. |
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). |
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. |
EMVIssuerAppData | Application data for transmission to the issuer in an online transaction. |
EMVIssuerAuthData | Data sent by the Issuer to the Chip Card for the Chip Card to validate the authenticity of the Issuer. |
EMVIssuerScriptResults | The update command that the issuer sends in the authorization response to the card during online processing. |
EMVTerminalCapabilities | Indicates the card input data, the Cardholder Verification Method (CVM), and the security capabilities that are supported by the terminal. |
EMVTranDate | The local date at the terminal on which the transaction was authorized. |
EMVTranType | The Transaction Type used by the card to calculate the cryptogram. |
EMVUnpredictableNum | The number used in the generation of the cryptogram. |
EMVVerificationResult | The indicators representing the results of offline and online processing, recorded by the terminal. |
HeartlandDeviceId | Specifies a device ID to uniquely identify each terminal (card data entry device). |
HeartlandEncryptionMode | Specifies the encryption mode to use in Heartland transactions. |
IsBillPayment | Indicates that the transaction is a bill payment transaction. |
Leg1 | Used by Merchants that are in the airline industry to submit Leg 1 information for Passenger Transport transactions. |
Leg2 | Used by Merchants that are in the airline industry to submit Leg 2 information for Passenger Transport transactions. |
Leg3 | Used by Merchants that are in the airline industry to submit Leg 3 information for Passenger Transport transactions. |
Leg4 | Used by Merchants that are in the airline industry to submit Leg 4 information for Passenger Transport transactions. |
LocationDetailAddress | Merchant's street address. |
LocationDetailCity | Name of the city. |
LocationDetailCountry | Country code. |
LocationDetailName | Merchant name. |
LocationDetailPostal | Postal code. |
LocationDetailRegion | Region code that corresponds to the state, province, or other country subdivision. |
MerchantDescriptor | Merchant Soft Descriptor information. |
MobileDeviceType | Identifies the type of mobile device used by the cardholder to initiate the transaction. |
Origin | First segment travel origination Airport. |
PassengerName | The passenger's name. |
PFNameSubMerchantName | Merchant name, Payment Facilitator Name and Sub-Merchant name, or Marketplace name. |
PFSubMerchantCity | The Payment Facilitator Sub-Merchant City. |
PFSubMerchantCountry | The Payment Facilitator Sub-Merchant Country Code. |
PFSubMerchantPostalCode | The Payment Facilitator Sub-Merchant Postal Code. |
PFSubMerchantState | The Payment Facilitator Sub-Merchant State/Province Code. |
POSDataCode | Specifies the condition of the POS device used at the time of the transaction. |
Processor | Specifies the Processor you are connecting to. |
RequesterName | Name of the requester. |
RestrictedTicketIndicator | Indicates if there are restrictions associated with this ticket. |
SpecialConditionIndicator | Describes selected special conditions at the POS. |
SpendQualifiedIndicator | Indicates whether or not the spend qualification threshold has been met. |
TicketNumber | The airline ticket number. |
Token | The token used in place of Card data. |
TotalTaxAmount | Total Tax Amount assessed at the point-of-sale. |
TsysETB | The Encryption Transmission Block TSYS uses to decrypt encrypted data. |
VisaMVV | Merchant Verification Value used for Visa transactions. |
CodePage | The system code page used for Unicode to Multibyte translations. |
MaskSensitive | Whether sensitive data is masked in log messages. |
UseInternalSecurityAPI | Whether or not to use the system security libraries or an internal implementation. |
AuthorizedAmount Property (TSYSDetailRecord Control)
Original amount authorized before any reversals.
Syntax
tsysdetailrecordcontrol.AuthorizedAmount[=string]
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 (TSYSDetailRecord Control)
Specifies the method used to verify the identity of the cardholder.
Syntax
tsysdetailrecordcontrol.CardholderId[=string]
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 (TSYSDetailRecord Control)
Customer's credit card number from the original authorization request.
Syntax
tsysdetailrecordcontrol.CardNumber[=string]
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 (TSYSDetailRecord Control)
Contains the ResponseCashBack amount from the original Debit or EBT transaction.
Syntax
tsysdetailrecordcontrol.DebitCashBack[=string]
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 (TSYSDetailRecord Control)
Contains the ResponseNetworkId returned in the original Debit or EBT response.
Syntax
tsysdetailrecordcontrol.DebitNetworkId[=string]
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 (TSYSDetailRecord Control)
Contains the ReimbursementAttribute from the original Debit or EBT request.
Syntax
tsysdetailrecordcontrol.DebitReimbursementAttribute[=integer]
Possible Values
raStandardRetail(0), raQualifiedGrocery(1), raPreExistingRetail(2), raPreExistingGrocery(3), raNonDebit(4), raTaxExempt(5)
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 (TSYSDetailRecord Control)
Contains the ResponseRetrievalNumber returned in original Debit or EBT response.
Syntax
tsysdetailrecordcontrol.DebitRetrievalNumber[=string]
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 (TSYSDetailRecord Control)
Contains the ResponseSettleDate returned in the original Debit or EBT response.
Syntax
tsysdetailrecordcontrol.DebitSettleDate[=string]
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 (TSYSDetailRecord Control)
Contains the ResponseTrace returned from the original debit or EBT response.
Syntax
tsysdetailrecordcontrol.DebitTrace[=string]
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 (TSYSDetailRecord Control)
Electronic Commerce Indicator from the original authorization request.
Syntax
tsysdetailrecordcontrol.ECI[=string]
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 (TSYSDetailRecord Control)
This property identifies the source of the customer data.
Syntax
tsysdetailrecordcontrol.EntryDataSource[=integer]
Possible Values
edsTrack1(0), edsTrack2(1), edsManualEntryTrack1Capable(2), edsManualEntryTrack2Capable(3), edsManualEntryNoCardReader(4), edsTrack2ChipCapable(6), edsManualEntryChipCapable(7)
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 (TSYSDetailRecord Control)
Used to identify the type of goods purchased over the Internet.
Syntax
tsysdetailrecordcontrol.GoodsIndicator[=integer]
Possible Values
tgiNotUsed(0), tgiDigitalGoods(1), tgiPhysicalGoods(2)
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 (TSYSDetailRecord Control)
Gratuity amount for settling restaurant/retail industry transactions.
Syntax
tsysdetailrecordcontrol.Gratuity[=string]
Default Value
""
Remarks
This field contains the gratuity (tip) amount of the transaction being settled. This amount is only sent when the TSYSSettle control'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 (TSYSDetailRecord Control)
Indicates whether this is a healthcare transaction.
Syntax
tsysdetailrecordcontrol.Healthcare[=boolean]
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 control to the ParseAggregate method of this control will already be marked as healthcare transactions.
Data Type
Boolean
HotelChargeType Property (TSYSDetailRecord Control)
Type of charge made at a hotel (American Express cards only).
Syntax
tsysdetailrecordcontrol.HotelChargeType[=integer]
Possible Values
ctHotel(0), ctRestaurant(1), ctGiftShop(2)
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 (TSYSDetailRecord Control)
The nightly rate for this hotel room (American Express cards only).
Syntax
tsysdetailrecordcontrol.HotelRateAmount[=string]
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 (TSYSDetailRecord Control)
Code which indicates the industry the merchant is engaged in.
Syntax
tsysdetailrecordcontrol.IndustryType[=integer]
Possible Values
sitUnknown(0), sitRetail(1), sitRestaurant(2), sitGroceryStore(3), sitDirectMarketing(4), sitHotel(5), sitAutoRental(6), sitPassengerTransport(7)
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 control.
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 (TSYSDetailRecord Control)
Total number of installments (installment transactions only).
Syntax
tsysdetailrecordcontrol.InstallmentCount[=string]
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 control.
Data Type
String
InstallmentNumber Property (TSYSDetailRecord Control)
Current installment number (installment transactions only).
Syntax
tsysdetailrecordcontrol.InstallmentNumber[=string]
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 control.
Data Type
String
LodgingRenterName Property (TSYSDetailRecord Control)
Name of the person or business entity charged for the reservation and/or lodging stay (hotel transactions only).
Syntax
tsysdetailrecordcontrol.LodgingRenterName[=string]
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 (TSYSDetailRecord Control)
Indicates whether this transaction has been partially reversed.
Syntax
tsysdetailrecordcontrol.PartiallyReversed[=boolean]
Default Value
False
Remarks
After partially reversing a transaction using the TSYSReversal control, 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 (TSYSDetailRecord Control)
Total number of passengers (multiple passenger transport transactions only).
Syntax
tsysdetailrecordcontrol.PassengerCount[=integer]
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 control 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 (TSYSDetailRecord Control)
Current passenger number (multiple passenger transport transactions only).
Syntax
tsysdetailrecordcontrol.PassengerNumber[=integer]
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 control 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 (TSYSDetailRecord Control)
Optional purchase order number assigned by the merchant.
Syntax
tsysdetailrecordcontrol.PurchaseIdentifier[=string]
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 (TSYSDetailRecord Control)
Date the cardholder checked into the hotel or first drove away a rented vehicle.
Syntax
tsysdetailrecordcontrol.RentalCheckIn[=string]
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 (TSYSDetailRecord Control)
List of extra charges for Hotel/Auto transactions.
Syntax
tsysdetailrecordcontrol.RentalExtraCharges[=string]
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 (TSYSDetailRecord Control)
Indicates whether the cardholder is a no-show (auto rental and hotel industries only).
Syntax
tsysdetailrecordcontrol.RentalNoShow[=string]
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 (TSYSDetailRecord Control)
City where the rental car was returned (MasterCard only).
Syntax
tsysdetailrecordcontrol.RentalReturnCity[=string]
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 (TSYSDetailRecord Control)
Id of the location where the rental vehicle was returned (MasterCard only).
Syntax
tsysdetailrecordcontrol.RentalReturnLocation[=string]
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 (TSYSDetailRecord Control)
State or country where the rental car was returned (MasterCard only).
Syntax
tsysdetailrecordcontrol.RentalReturnState[=string]
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 (TSYSDetailRecord Control)
Name of the person renting the vehicle (MasterCard only).
Syntax
tsysdetailrecordcontrol.RenterName[=string]
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 (TSYSDetailRecord Control)
Authorization Characteristics Indicator from the original authorization request.
Syntax
tsysdetailrecordcontrol.RequestedACI[=string]
Default Value
""
Remarks
This field should be identical to the ACI property from the original authorization request.
Data Type
String
ResponseACI Property (TSYSDetailRecord Control)
Authorization Characteristics Indicator from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseACI[=string]
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 (TSYSDetailRecord Control)
Response Approval Code from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseApprovalCode[=string]
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 (TSYSDetailRecord Control)
Auth Source Code from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseAuthSource[=string]
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.
6 | POS device generated authorization code. |
9 | Not authorized (includes credits/refunds). |
E | Off-line voice center or chip-approved transaction, manually keyed approval code (ie: referrals). |
Data Type
String
ResponseAVS Property (TSYSDetailRecord Control)
Address Verification Code from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseAVS[=string]
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 (TSYSDetailRecord Control)
Card Level results returned from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseCardLevel[=string]
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 (TSYSDetailRecord Control)
Response code from the original authorization response.
Syntax
tsysdetailrecordcontrol.ResponseCode[=string]
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 (TSYSDetailRecord Control)
The amount that the customer will be charged.
Syntax
tsysdetailrecordcontrol.SettlementAmount[=string]
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 (TSYSDetailRecord Control)
Used for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS).
Syntax
tsysdetailrecordcontrol.Substantiated[=integer]
Default Value
1
Remarks
This field should be identical to the value of the Substantiated property sent in the authorization via the TSYSHealthCare control. 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 (TSYSDetailRecord Control)
Sum total of all the original authorization and all subsequent incremental authorizations.
Syntax
tsysdetailrecordcontrol.TotalAuthorizedAmount[=string]
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 (TSYSDetailRecord Control)
Local Transaction Date from the original authorization response.
Syntax
tsysdetailrecordcontrol.TransactionDate[=string]
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 (TSYSDetailRecord Control)
Transaction Identifier from the original authorization response.
Syntax
tsysdetailrecordcontrol.TransactionId[=string]
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 (TSYSDetailRecord Control)
Transaction Number from the original authorization request.
Syntax
tsysdetailrecordcontrol.TransactionNumber[=integer]
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 (TSYSDetailRecord Control)
Local transaction time from the original authorization response.
Syntax
tsysdetailrecordcontrol.TransactionTime[=string]
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 (TSYSDetailRecord Control)
Indicates transaction type for this detail record.
Syntax
tsysdetailrecordcontrol.TransactionType[=integer]
Possible Values
dttCardNotPresent(0), dttCardPresent(1), dttOffLineCredit(2), dttForceCardNotPresent(3), dttForceCardPresent(4), dttDebitPurchase(5), dttDebitRefund(6), dttFoodStampPurchase(8), dttFoodStampReturn(9), dttFoodStampVoucher(10), dttCashBenefitWithdrawal(12), dttCashBenefitPurchase(13), dttACHPurchase(30), dttACHReturn(31)
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 control. |
dttDebitRefund (6) | This transaction type is used for debit card refund transactions authorized via the TSYSDebit control. |
dttFoodStampPurchase (8) | This transaction type is used for EBT card Food Stamp purchases authorized via the TSYSBenefit control. |
dttFoodStampReturn (9) | This transaction type is used for EBT card Food Stamp returns authorized via the TSYSBenefit control. |
dttFoodStampVoucher (10) | This transaction type is used for EBT card Food Stamp vouchers authorized via the TSYSBenefit control. |
dttCashBenefitWithdrawal (12) | This transaction type is used for EBT card Cash Benefit withdrawals authorized via the TSYSBenefit control. |
dttCashBenefitPurchase (13) | This transaction type is used for EBT card Cash Benefit purchases authorized via the TSYSBenefit control. |
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 (TSYSDetailRecord Control)
Validation Code from the original authorization response.
Syntax
tsysdetailrecordcontrol.ValidationCode[=string]
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 (TSYSDetailRecord Control)
Indicates whether this transaction has been voided.
Syntax
tsysdetailrecordcontrol.VoidTransaction[=boolean]
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 (TSYSDetailRecord Control)
Sets or retrieves a configuration setting.
Syntax
tsysdetailrecordcontrol.Config ConfigurationString
Remarks
Config is a generic method available in every control. It is used to set and retrieve configuration settings for the control.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the control, 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 (TSYSDetailRecord Control)
Returns an aggregate containing details of this transaction, which is then used for settlement.
Syntax
tsysdetailrecordcontrol.GetDetailAggregate
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 control'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 control 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 (TSYSDetailRecord Control)
Parses the aggregate returned from another control's GetDetailAggregate method.
Syntax
tsysdetailrecordcontrol.ParseAggregate Aggregate
Remarks
This method takes the XML aggregate returned from the TSYSRetail or TSYSECommerce control, parses it, and then fills all the properties of the DetailRecord control. While normally you can pass the results of the GetDetailAggregate method call directly to the TSYSSettle control, 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 (TSYSDetailRecord Control)
Clears all properties to their default values.
Syntax
tsysdetailrecordcontrol.Reset
Remarks
This method clears all properties to their default values.
Error Event (TSYSDetailRecord Control)
Information about errors during data delivery.
Syntax
Sub tsysdetailrecordcontrol_Error(ErrorCode As Integer, Description As String)
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 Control)
The control 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 control, access to these internal properties is provided through the Config method.DetailRecord Config Settings
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. |
Value | Description |
C | Checking |
S | Savings |
G | General Ledger. (Valid only when SEC Code is CCD) |
Value | Description |
Y | The transaction is a check reversal |
N | The transaction is not a check reversal |
Value | Description |
Spaces | Used as a default for Non-WEB Transactions |
R | Recurring |
S | Single |
Value | Description |
0 | Not Prenote |
1 | Prenote |
Value | Description |
Y | The transaction is a returned check |
N | The transaction is not a returned check |
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. |
1. | The merchant / business contact phone number for customer inquiry |
2. | REVERSAL indicates a reversal |
3. | REDEPCHECK indicates a returned check |
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 |
AFS (1 A/N) (Account Funding Source)
This field contains the Account Funding Source returned by Visa and describes the type of product that funded the transaction. If returned in the authorization response, the component will include this field automatically in the settlement. Valid values are:
Value | Description |
C | Credit |
D | Debit |
H | Charge |
P | Prepaid |
R | Deferred Debit |
ARS (Account Range Status)
Value | Description |
R | Regulated. |
N | Non-Regulated. |
ATR (Additional Token Response)
This one-character field is assigned by Visa and is used to identify transactions that are eligible for token services. If returned in the authorization response, the component will include this field automatically in the settlement. Valid values are:
Value | Description |
1 | Token Program |
(Space) | N/A |
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. |
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.
0 | No Encryption (default) |
1 | Merchant ID and Card Data (reserved for future use) |
2 | Merchant ID, Card Data, and Card Security Code (reserved for future use) |
3 | Card Data Only |
Note you will also need to set Processor to 1 (Heartland) and HeartlandKeyBlock if you wish to process Heartland E3 transactions.
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");
Carrier | Airline Carrier Code for Leg 1 on ticket. Example: DL | ||||
ServiceClass | One-character value identifying the service class associated with Leg 1 on ticket. Example: C | ||||
StopOver | One-character value identifying whether a stop-over is permitted for Leg 1 on ticket. Possible values:
| ||||
Destination | Destination Airport for Leg 1 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions. |
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");
Carrier | Airline Carrier Code for Leg 2 on ticket. Example: DL | ||||
ServiceClass | One-character value identifying the service class associated with Leg 2 on ticket. Example: C | ||||
StopOver | One-character value identifying whether a stop-over is permitted for Leg 2 on ticket. Possible values:
| ||||
Destination | Destination Airport for Leg 2 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions. |
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");
Carrier | Airline Carrier Code for Leg 3 on ticket. Example: DL | ||||
ServiceClass | One-character value identifying the service class associated with Leg 3 on ticket. Example: C | ||||
StopOver | One-character value identifying whether a stop-over is permitted for Leg 3 on ticket. Possible values:
| ||||
Destination | Destination Airport for Leg 3 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions. |
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");
Carrier | Airline Carrier Code for Leg 4 on ticket. Example: DL | ||||
ServiceClass | One-character value identifying the service class associated with Leg 4 on ticket. Example: C | ||||
StopOver | One-character value identifying whether a stop-over is permitted for Leg 4 on ticket. Possible values:
| ||||
Destination | Destination Airport for Leg 4 of trip. Example for Los Angeles (CA): LAX. This is a required field for Visa Passenger Transport Transactions. |
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.
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. |
Note: This is a required field for Passenger Transport Transactions.
Note: This is a required field for Passenger Transport Transactions.
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.
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.
Note: For Marketplaces, this field is not required.
Note: For Marketplaces, this field is not required.
Note: For Marketplaces, this field is not required.
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 control will not update the POSDataCode tag in the detail aggregate of the original transaction.
0 | TSYS (default) |
1 | Heartland |
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.
True | Restricted Ticket/Non-Refundable |
False | No Restriction (default) |
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. |
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. |
Note: This is a required field for Passenger Transport Transactions.
Base Config Settings
The following is a list of valid code page identifiers:
Identifier | Name |
037 | IBM EBCDIC - U.S./Canada |
437 | OEM - United States |
500 | IBM EBCDIC - International |
708 | Arabic - ASMO 708 |
709 | Arabic - ASMO 449+, BCON V4 |
710 | Arabic - Transparent Arabic |
720 | Arabic - Transparent ASMO |
737 | OEM - Greek (formerly 437G) |
775 | OEM - Baltic |
850 | OEM - Multilingual Latin I |
852 | OEM - Latin II |
855 | OEM - Cyrillic (primarily Russian) |
857 | OEM - Turkish |
858 | OEM - Multilingual Latin I + Euro symbol |
860 | OEM - Portuguese |
861 | OEM - Icelandic |
862 | OEM - Hebrew |
863 | OEM - Canadian-French |
864 | OEM - Arabic |
865 | OEM - Nordic |
866 | OEM - Russian |
869 | OEM - Modern Greek |
870 | IBM EBCDIC - Multilingual/ROECE (Latin-2) |
874 | ANSI/OEM - Thai (same as 28605, ISO 8859-15) |
875 | IBM EBCDIC - Modern Greek |
932 | ANSI/OEM - Japanese, Shift-JIS |
936 | ANSI/OEM - Simplified Chinese (PRC, Singapore) |
949 | ANSI/OEM - Korean (Unified Hangul Code) |
950 | ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) |
1026 | IBM EBCDIC - Turkish (Latin-5) |
1047 | IBM EBCDIC - Latin 1/Open System |
1140 | IBM EBCDIC - U.S./Canada (037 + Euro symbol) |
1141 | IBM EBCDIC - Germany (20273 + Euro symbol) |
1142 | IBM EBCDIC - Denmark/Norway (20277 + Euro symbol) |
1143 | IBM EBCDIC - Finland/Sweden (20278 + Euro symbol) |
1144 | IBM EBCDIC - Italy (20280 + Euro symbol) |
1145 | IBM EBCDIC - Latin America/Spain (20284 + Euro symbol) |
1146 | IBM EBCDIC - United Kingdom (20285 + Euro symbol) |
1147 | IBM EBCDIC - France (20297 + Euro symbol) |
1148 | IBM EBCDIC - International (500 + Euro symbol) |
1149 | IBM EBCDIC - Icelandic (20871 + Euro symbol) |
1200 | Unicode UCS-2 Little-Endian (BMP of ISO 10646) |
1201 | Unicode UCS-2 Big-Endian |
1250 | ANSI - Central European |
1251 | ANSI - Cyrillic |
1252 | ANSI - Latin I |
1253 | ANSI - Greek |
1254 | ANSI - Turkish |
1255 | ANSI - Hebrew |
1256 | ANSI - Arabic |
1257 | ANSI - Baltic |
1258 | ANSI/OEM - Vietnamese |
1361 | Korean (Johab) |
10000 | MAC - Roman |
10001 | MAC - Japanese |
10002 | MAC - Traditional Chinese (Big5) |
10003 | MAC - Korean |
10004 | MAC - Arabic |
10005 | MAC - Hebrew |
10006 | MAC - Greek I |
10007 | MAC - Cyrillic |
10008 | MAC - Simplified Chinese (GB 2312) |
10010 | MAC - Romania |
10017 | MAC - Ukraine |
10021 | MAC - Thai |
10029 | MAC - Latin II |
10079 | MAC - Icelandic |
10081 | MAC - Turkish |
10082 | MAC - Croatia |
12000 | Unicode UCS-4 Little-Endian |
12001 | Unicode UCS-4 Big-Endian |
20000 | CNS - Taiwan |
20001 | TCA - Taiwan |
20002 | Eten - Taiwan |
20003 | IBM5550 - Taiwan |
20004 | TeleText - Taiwan |
20005 | Wang - Taiwan |
20105 | IA5 IRV International Alphabet No. 5 (7-bit) |
20106 | IA5 German (7-bit) |
20107 | IA5 Swedish (7-bit) |
20108 | IA5 Norwegian (7-bit) |
20127 | US-ASCII (7-bit) |
20261 | T.61 |
20269 | ISO 6937 Non-Spacing Accent |
20273 | IBM EBCDIC - Germany |
20277 | IBM EBCDIC - Denmark/Norway |
20278 | IBM EBCDIC - Finland/Sweden |
20280 | IBM EBCDIC - Italy |
20284 | IBM EBCDIC - Latin America/Spain |
20285 | IBM EBCDIC - United Kingdom |
20290 | IBM EBCDIC - Japanese Katakana Extended |
20297 | IBM EBCDIC - France |
20420 | IBM EBCDIC - Arabic |
20423 | IBM EBCDIC - Greek |
20424 | IBM EBCDIC - Hebrew |
20833 | IBM EBCDIC - Korean Extended |
20838 | IBM EBCDIC - Thai |
20866 | Russian - KOI8-R |
20871 | IBM EBCDIC - Icelandic |
20880 | IBM EBCDIC - Cyrillic (Russian) |
20905 | IBM EBCDIC - Turkish |
20924 | IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol) |
20932 | JIS X 0208-1990 & 0121-1990 |
20936 | Simplified Chinese (GB2312) |
21025 | IBM EBCDIC - Cyrillic (Serbian, Bulgarian) |
21027 | Extended Alpha Lowercase |
21866 | Ukrainian (KOI8-U) |
28591 | ISO 8859-1 Latin I |
28592 | ISO 8859-2 Central Europe |
28593 | ISO 8859-3 Latin 3 |
28594 | ISO 8859-4 Baltic |
28595 | ISO 8859-5 Cyrillic |
28596 | ISO 8859-6 Arabic |
28597 | ISO 8859-7 Greek |
28598 | ISO 8859-8 Hebrew |
28599 | ISO 8859-9 Latin 5 |
28605 | ISO 8859-15 Latin 9 |
29001 | Europa 3 |
38598 | ISO 8859-8 Hebrew |
50220 | ISO 2022 Japanese with no halfwidth Katakana |
50221 | ISO 2022 Japanese with halfwidth Katakana |
50222 | ISO 2022 Japanese JIS X 0201-1989 |
50225 | ISO 2022 Korean |
50227 | ISO 2022 Simplified Chinese |
50229 | ISO 2022 Traditional Chinese |
50930 | Japanese (Katakana) Extended |
50931 | US/Canada and Japanese |
50933 | Korean Extended and Korean |
50935 | Simplified Chinese Extended and Simplified Chinese |
50936 | Simplified Chinese |
50937 | US/Canada and Traditional Chinese |
50939 | Japanese (Latin) Extended and Japanese |
51932 | EUC - Japanese |
51936 | EUC - Simplified Chinese |
51949 | EUC - Korean |
51950 | EUC - Traditional Chinese |
52936 | HZ-GB2312 Simplified Chinese |
54936 | Windows XP: GB18030 Simplified Chinese (4 Byte) |
57002 | ISCII Devanagari |
57003 | ISCII Bengali |
57004 | ISCII Tamil |
57005 | ISCII Telugu |
57006 | ISCII Assamese |
57007 | ISCII Oriya |
57008 | ISCII Kannada |
57009 | ISCII Malayalam |
57010 | ISCII Gujarati |
57011 | ISCII Punjabi |
65000 | Unicode UTF-7 |
65001 | Unicode UTF-8 |
Identifier | Name |
1 | ASCII |
2 | NEXTSTEP |
3 | JapaneseEUC |
4 | UTF8 |
5 | ISOLatin1 |
6 | Symbol |
7 | NonLossyASCII |
8 | ShiftJIS |
9 | ISOLatin2 |
10 | Unicode |
11 | WindowsCP1251 |
12 | WindowsCP1252 |
13 | WindowsCP1253 |
14 | WindowsCP1254 |
15 | WindowsCP1250 |
21 | ISO2022JP |
30 | MacOSRoman |
10 | UTF16String |
0x90000100 | UTF16BigEndian |
0x94000100 | UTF16LittleEndian |
0x8c000100 | UTF32String |
0x98000100 | UTF32BigEndian |
0x9c000100 | UTF32LittleEndian |
65536 | Proprietary |
This setting only works on these controls: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to tells the control to use the internal implementation instead of using the system security libraries.
This setting is set to by default on all platforms.
Trappable Errors (TSYSDetailRecord Control)
TSYSDetailRecord Errors
20502 Data field invalid length. | |
20503 Data field invalid format. | |
20504 Data field out of range. | |
20593 Invalid or unparseable aggregate. | |
20606 Invalid CardType. |