TSYSDetailRecord Component
Properties Methods Events Config Settings Errors
The TSYSDetailRecord component is a tool used to create off-line Credit or Force transactions to be settled by the TSYSSETTLE component. The TSYSDetailRecord component may also be used to modify the XML aggregates returned by the TSYSRETAIL or TSYSECOMMERCE component's GetDetailAggregate method.
Syntax
TibcTSYSDetailRecord
Remarks
Credit and Force transactions are off-line transactions. This means that there is no authorization of funds using the TSYSECommerce or TSYSRetail components. Instead, you must manually add these transactions to the settlement batch. The TSYSDetailRecord component can be used to create these transactions, which can then be added to the TSYSSettle component's 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 component'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 ApprovalCode property. The following example shows a Force
transaction in a Retail environment.
TSYSDetailRecord.TransactionType = dttForceCardPresent
TSYSDetailRecord.IndustryType = itRetail
TSYSDetailRecord.ResponseApprovalCode = "123456" ' This is obtained from a voice authorization over the phone
TSYSDetailRecord.EntryDataSource = edsTrack1
TSYSDetailRecord.CardholderId = "@" 'Signature
TSYSDetailRecord.CardNumber = "4444333322221111" 'Card to credit
TSYSDetailRecord.SettlementAmount = "5555" 'Amount of the credit $55.55
TSYSDetailRecord.AuthorizedAmount = 0 'MUST be zero for off-line transactions!
TSYSDetailRecord.TransactionDate = "0605" 'Date of this credit in MMDD format
TSYSDetailRecord.TransactionTime = "124555" 'Time of this credit in HHMMSS format
TSYSDetailRecord.TransactionNumber = "124" 'Transaction sequence number of the original authorization request
TSYSDetailRecord.TransactionId = "" 'ResponseTransactionId from the original authorization response
TSYSSettle.DetailRecordCount = 2
TSYSSettle.DetailRecordAggregate[1] = TSYSDetailRecord.GetDetailAggregate()
In addition to creating Credit and Force transactions, the TSYSDetailRecord component can be used to adjust the Detail Records returned from the TSYSECommerce, TSYSRetail, TSYSDebit, and TSYSBenefit components. The most common reasons to modify these detail records are to add a Gratuity (tip) to a charge (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 component to add the number of this passenger and the total count of all passengers in the authorization code. For instance, if the authorization transaction included "Three passengers", and this is the first passenger, then the passenger number will be 1, and the passenger count 3. An example is included below:
TSYSRetail.IndustryType = sitPassengerTransport
TSYSRetail.Authorize()
DetailRecord.ParseAggregate TSYSRetail.GetDetailAggregate()
DetailRecord.PassengerCount = 3
DetailRecord.PassengerNumber = 1
DetailRecord.Config("RestrictedTicketIndicator=True")
DetailRecord.Config("TicketNumber=8382152100395")
DetailRecord.Config("PassengerName=John Smith")
DetailRecord.Config("DepartureDate=072117")
DetailRecord.Config("Origin=JFK")
DetailRecord.Config("Leg1=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX")
TSYSSettle1.IndustryType = sitPassengerTransport
TSYSSettle1.Config("TravelAgencyCode=12345678") 'if ticket was issued by a travel agency
TSYSSettle1.Config("TravelAgencyName=Travel and Tours") 'if ticket was issued by a travel agency
TSYSSettle1.DetailAggregate[5] = DetailRecord.GetDetailAggregate()
Property List
The following is the full list of the properties of the component with short descriptions. Click on the links for further details.
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 component with short descriptions. Click on the links for further details.
Config | Sets or retrieves a configuration setting. |
GetDetailAggregate | Returns an aggregate containing details of this transaction, which is then used for settlement. |
ParseAggregate | Parses the aggregate returned from another component's GetDetailAggregate method. |
Reset | Clears all properties to their default values. |
Event List
The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
Config Settings
The following is a list of config settings for the component 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. |
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
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 Component)
Original amount authorized before any reversals.
Syntax
property AuthorizedAmount: String read get_AuthorizedAmount write set_AuthorizedAmount;
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.
CardholderId Property (TSYSDetailRecord Component)
Specifies the method used to verify the identity of the cardholder.
Syntax
property CardholderId: String read get_CardholderId write set_CardholderId;
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. |
CardNumber Property (TSYSDetailRecord Component)
Customer's credit card number from the original authorization request.
Syntax
property CardNumber: String read get_CardNumber write set_CardNumber;
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.
DebitCashBack Property (TSYSDetailRecord Component)
Contains the ResponseCashBack amount from the original Debit or EBT transaction.
Syntax
property DebitCashBack: String read get_DebitCashBack write set_DebitCashBack;
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.
DebitNetworkId Property (TSYSDetailRecord Component)
Contains the ResponseNetworkId returned in the original Debit or EBT response.
Syntax
property DebitNetworkId: String read get_DebitNetworkId write set_DebitNetworkId;
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.
DebitReimbursementAttribute Property (TSYSDetailRecord Component)
Contains the ReimbursementAttribute from the original Debit or EBT request.
Syntax
property DebitReimbursementAttribute: TibcTSYSReimbursementAttributes read get_DebitReimbursementAttribute write set_DebitReimbursementAttribute;
TibcTSYSReimbursementAttributes = ( raStandardRetail, raQualifiedGrocery, raPreExistingRetail, raPreExistingGrocery, raNonDebit, raTaxExempt );
Default Value
raStandardRetail
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.
DebitRetrievalNumber Property (TSYSDetailRecord Component)
Contains the ResponseRetrievalNumber returned in original Debit or EBT response.
Syntax
property DebitRetrievalNumber: String read get_DebitRetrievalNumber write set_DebitRetrievalNumber;
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.
DebitSettleDate Property (TSYSDetailRecord Component)
Contains the ResponseSettleDate returned in the original Debit or EBT response.
Syntax
property DebitSettleDate: String read get_DebitSettleDate write set_DebitSettleDate;
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.
DebitTrace Property (TSYSDetailRecord Component)
Contains the ResponseTrace returned from the original debit or EBT response.
Syntax
property DebitTrace: String read get_DebitTrace write set_DebitTrace;
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.
ECI Property (TSYSDetailRecord Component)
Electronic Commerce Indicator from the original authorization request.
Syntax
property ECI: String read get_ECI write set_ECI;
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.
EntryDataSource Property (TSYSDetailRecord Component)
This property identifies the source of the customer data.
Syntax
property EntryDataSource: TibcTSYSEntryDataSources read get_EntryDataSource write set_EntryDataSource;
TibcTSYSEntryDataSources = ( edsTrack1, edsTrack2, edsManualEntryTrack1Capable, edsManualEntryTrack2Capable, edsManualEntryNoCardReader, edsTrack2ChipCapable, edsManualEntryChipCapable );
Default Value
edsTrack1
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). |
GoodsIndicator Property (TSYSDetailRecord Component)
Used to identify the type of goods purchased over the Internet.
Syntax
property GoodsIndicator: TibcTSYSGoodsIndicators read get_GoodsIndicator write set_GoodsIndicator;
TibcTSYSGoodsIndicators = ( tgiNotUsed, tgiDigitalGoods, tgiPhysicalGoods );
Default Value
tgiNotUsed
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. |
Gratuity Property (TSYSDetailRecord Component)
Gratuity amount for settling restaurant/retail industry transactions.
Syntax
property Gratuity: String read get_Gratuity write set_Gratuity;
Default Value
''
Remarks
This field contains the gratuity (tip) amount of the transaction being settled. This amount is only sent when the TSYSSettle component'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.
Healthcare Property (TSYSDetailRecord Component)
Indicates whether this is a healthcare transaction.
Syntax
property Healthcare: Boolean read get_Healthcare write set_Healthcare;
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 component to the ParseAggregate method of this component will already be marked as healthcare transactions.
HotelChargeType Property (TSYSDetailRecord Component)
Type of charge made at a hotel (American Express cards only).
Syntax
property HotelChargeType: TibcTSYSHotelChargeTypes read get_HotelChargeType write set_HotelChargeType;
TibcTSYSHotelChargeTypes = ( ctHotel, ctRestaurant, ctGiftShop );
Default Value
ctHotel
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".
HotelRateAmount Property (TSYSDetailRecord Component)
The nightly rate for this hotel room (American Express cards only).
Syntax
property HotelRateAmount: String read get_HotelRateAmount write set_HotelRateAmount;
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.
IndustryType Property (TSYSDetailRecord Component)
Code which indicates the industry the merchant is engaged in.
Syntax
property IndustryType: TibcTSYSIndustryTypes read get_IndustryType write set_IndustryType;
TibcTSYSIndustryTypes = ( sitUnknown, sitRetail, sitRestaurant, sitGroceryStore, sitDirectMarketing, sitHotel, sitAutoRental, sitPassengerTransport );
Default Value
sitRetail
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 component.
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.
InstallmentCount Property (TSYSDetailRecord Component)
Total number of installments (installment transactions only).
Syntax
property InstallmentCount: String read get_InstallmentCount write set_InstallmentCount;
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 component.
InstallmentNumber Property (TSYSDetailRecord Component)
Current installment number (installment transactions only).
Syntax
property InstallmentNumber: String read get_InstallmentNumber write set_InstallmentNumber;
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 component.
LodgingRenterName Property (TSYSDetailRecord Component)
Name of the person or business entity charged for the reservation and/or lodging stay (hotel transactions only).
Syntax
property LodgingRenterName: String read get_LodgingRenterName write set_LodgingRenterName;
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.
PartiallyReversed Property (TSYSDetailRecord Component)
Indicates whether this transaction has been partially reversed.
Syntax
property PartiallyReversed: Boolean read get_PartiallyReversed write set_PartiallyReversed;
Default Value
false
Remarks
After partially reversing a transaction using the TSYSReversal component, 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.
PassengerCount Property (TSYSDetailRecord Component)
Total number of passengers (multiple passenger transport transactions only).
Syntax
property PassengerCount: Integer read get_PassengerCount write set_PassengerCount;
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 component to add the number of this passenger and the total count of all passengers in the authorization code. For instance, if the authorization transaction included "Three passengers", and this is the first passenger, then the passenger number will be 1, and the passenger count 3. An example is included below:
TSYSRetail.IndustryType = sitPassengerTransport
TSYSRetail.Authorize()
DetailRecord.ParseAggregate TSYSRetail.GetDetailAggregate()
DetailRecord.PassengerCount = 3
DetailRecord.PassengerNumber = 1
DetailRecord.Config("RestrictedTicketIndicator=True")
DetailRecord.Config("TicketNumber=8382152100395")
DetailRecord.Config("PassengerName=John Smith")
DetailRecord.Config("DepartureDate=072117")
DetailRecord.Config("Origin=JFK")
DetailRecord.Config("Leg1=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX")
TSYSSettle1.IndustryType = sitPassengerTransport
TSYSSettle1.Config("TravelAgencyCode=12345678") 'if ticket was issued by a travel agency
TSYSSettle1.Config("TravelAgencyName=Travel and Tours") 'if ticket was issued by a travel agency
TSYSSettle1.DetailAggregate[5] = DetailRecord.GetDetailAggregate()
PassengerNumber Property (TSYSDetailRecord Component)
Current passenger number (multiple passenger transport transactions only).
Syntax
property PassengerNumber: Integer read get_PassengerNumber write set_PassengerNumber;
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 component to add the number of this passenger and the total count of all passengers in the authorization code. For instance, if the authorization transaction included "Three passengers", and this is the first passenger, then the passenger number will be 1, and the passenger count 3. An example is included below:
TSYSRetail.IndustryType = sitPassengerTransport
TSYSRetail.Authorize()
DetailRecord.ParseAggregate TSYSRetail.GetDetailAggregate()
DetailRecord.PassengerCount = 3
DetailRecord.PassengerNumber = 1
DetailRecord.Config("RestrictedTicketIndicator=True")
DetailRecord.Config("TicketNumber=8382152100395")
DetailRecord.Config("PassengerName=John Smith")
DetailRecord.Config("DepartureDate=072117")
DetailRecord.Config("Origin=JFK")
DetailRecord.Config("Leg1=Carrier=DL;ServiceClass=C;StopOver=X;Destination=LAX")
TSYSSettle1.IndustryType = sitPassengerTransport
TSYSSettle1.Config("TravelAgencyCode=12345678") 'if ticket was issued by a travel agency
TSYSSettle1.Config("TravelAgencyName=Travel and Tours") 'if ticket was issued by a travel agency
TSYSSettle1.DetailAggregate[5] = DetailRecord.GetDetailAggregate()
PurchaseIdentifier Property (TSYSDetailRecord Component)
Optional purchase order number assigned by the merchant.
Syntax
property PurchaseIdentifier: String read get_PurchaseIdentifier write set_PurchaseIdentifier;
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.
RentalCheckIn Property (TSYSDetailRecord Component)
Date the cardholder checked into the hotel or first drove away a rented vehicle.
Syntax
property RentalCheckIn: String read get_RentalCheckIn write set_RentalCheckIn;
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.
RentalExtraCharges Property (TSYSDetailRecord Component)
List of extra charges for Hotel/Auto transactions.
Syntax
property RentalExtraCharges: String read get_RentalExtraCharges write set_RentalExtraCharges;
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.
RentalNoShow Property (TSYSDetailRecord Component)
Indicates whether the cardholder is a no-show (auto rental and hotel industries only).
Syntax
property RentalNoShow: String read get_RentalNoShow write set_RentalNoShow;
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.
RentalReturnCity Property (TSYSDetailRecord Component)
City where the rental car was returned (MasterCard only).
Syntax
property RentalReturnCity: String read get_RentalReturnCity write set_RentalReturnCity;
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.
RentalReturnLocation Property (TSYSDetailRecord Component)
Id of the location where the rental vehicle was returned (MasterCard only).
Syntax
property RentalReturnLocation: String read get_RentalReturnLocation write set_RentalReturnLocation;
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.
RentalReturnState Property (TSYSDetailRecord Component)
State or country where the rental car was returned (MasterCard only).
Syntax
property RentalReturnState: String read get_RentalReturnState write set_RentalReturnState;
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.
RenterName Property (TSYSDetailRecord Component)
Name of the person renting the vehicle (MasterCard only).
Syntax
property RenterName: String read get_RenterName write set_RenterName;
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.
RequestedACI Property (TSYSDetailRecord Component)
Authorization Characteristics Indicator from the original authorization request.
Syntax
property RequestedACI: String read get_RequestedACI write set_RequestedACI;
Default Value
''
Remarks
This field should be identical to the ACI property from the original authorization request.
ResponseACI Property (TSYSDetailRecord Component)
Authorization Characteristics Indicator from the original authorization response.
Syntax
property ResponseACI: String read get_ResponseACI write set_ResponseACI;
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.
ResponseApprovalCode Property (TSYSDetailRecord Component)
Response Approval Code from the original authorization response.
Syntax
property ResponseApprovalCode: String read get_ResponseApprovalCode write set_ResponseApprovalCode;
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.
ResponseAuthSource Property (TSYSDetailRecord Component)
Auth Source Code from the original authorization response.
Syntax
property ResponseAuthSource: String read get_ResponseAuthSource write set_ResponseAuthSource;
Default Value
''
Remarks
This field contains a one character authorization source code used to provide information on the source or origin of the ApprovalCode 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). |
ResponseAVS Property (TSYSDetailRecord Component)
Address Verification Code from the original authorization response.
Syntax
property ResponseAVS: String read get_ResponseAVS write set_ResponseAVS;
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".
ResponseCardLevel Property (TSYSDetailRecord Component)
Card Level results returned from the original authorization response.
Syntax
property ResponseCardLevel: String read get_ResponseCardLevel write set_ResponseCardLevel;
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.
ResponseCode Property (TSYSDetailRecord Component)
Response code from the original authorization response.
Syntax
property ResponseCode: String read get_ResponseCode write set_ResponseCode;
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.
SettlementAmount Property (TSYSDetailRecord Component)
The amount that the customer will be charged.
Syntax
property SettlementAmount: String read get_SettlementAmount write set_SettlementAmount;
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.
Substantiated Property (TSYSDetailRecord Component)
Used for HealthCare transactions. Identifies if the merchant verified the purchased items against an Inventory Information Approval System (IIAS).
Syntax
property Substantiated: Integer read get_Substantiated write set_Substantiated;
Default Value
1
Remarks
This field should be identical to the value of the Substantiated property sent in the authorization via the TSYSHealthCare component. 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 |
TotalAuthorizedAmount Property (TSYSDetailRecord Component)
Sum total of all the original authorization and all subsequent incremental authorizations.
Syntax
property TotalAuthorizedAmount: String read get_TotalAuthorizedAmount write set_TotalAuthorizedAmount;
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.
TransactionDate Property (TSYSDetailRecord Component)
Local Transaction Date from the original authorization response.
Syntax
property TransactionDate: String read get_TransactionDate write set_TransactionDate;
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.
TransactionId Property (TSYSDetailRecord Component)
Transaction Identifier from the original authorization response.
Syntax
property TransactionId: String read get_TransactionId write set_TransactionId;
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.
TransactionNumber Property (TSYSDetailRecord Component)
Transaction Number from the original authorization request.
Syntax
property TransactionNumber: Integer read get_TransactionNumber write set_TransactionNumber;
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.
TransactionTime Property (TSYSDetailRecord Component)
Local transaction time from the original authorization response.
Syntax
property TransactionTime: String read get_TransactionTime write set_TransactionTime;
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.
TransactionType Property (TSYSDetailRecord Component)
Indicates transaction type for this detail record.
Syntax
property TransactionType: TibcTSYSDetailTransactionTypes read get_TransactionType write set_TransactionType;
TibcTSYSDetailTransactionTypes = ( dttCardNotPresent, dttCardPresent, dttOffLineCredit, dttForceCardNotPresent, dttForceCardPresent, dttDebitPurchase, dttDebitRefund, dttFoodStampPurchase, dttFoodStampReturn, dttFoodStampVoucher, dttCashBenefitWithdrawal, dttCashBenefitPurchase, dttACHPurchase, dttACHReturn );
Default Value
dttCardNotPresent
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 component. |
dttDebitRefund (6) | This transaction type is used for debit card refund transactions authorized via the TSYSDebit component. |
dttFoodStampPurchase (8) | This transaction type is used for EBT card Food Stamp purchases authorized via the TSYSBenefit component. |
dttFoodStampReturn (9) | This transaction type is used for EBT card Food Stamp returns authorized via the TSYSBenefit component. |
dttFoodStampVoucher (10) | This transaction type is used for EBT card Food Stamp vouchers authorized via the TSYSBenefit component. |
dttCashBenefitWithdrawal (12) | This transaction type is used for EBT card Cash Benefit withdrawals authorized via the TSYSBenefit component. |
dttCashBenefitPurchase (13) | This transaction type is used for EBT card Cash Benefit purchases authorized via the TSYSBenefit component. |
dttACHPurchase (30) | This transaction type is used for ACH Purchase transactions. |
dttACHReturn (31) | This transaction type is used for ACH Return transactions. |
ValidationCode Property (TSYSDetailRecord Component)
Validation Code from the original authorization response.
Syntax
property ValidationCode: String read get_ValidationCode write set_ValidationCode;
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.
VoidTransaction Property (TSYSDetailRecord Component)
Indicates whether this transaction has been voided.
Syntax
property VoidTransaction: Boolean read get_VoidTransaction write set_VoidTransaction;
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()
Config Method (TSYSDetailRecord Component)
Sets or retrieves a configuration setting.
Syntax
function Config(ConfigurationString: String): String;
Remarks
Config is a generic method available in every component. It is used to set and retrieve configuration settings for the component.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the component, 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 Component)
Returns an aggregate containing details of this transaction, which is then used for settlement.
Syntax
function GetDetailAggregate(): String;
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 component'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 component to do so.
Note: This method may only be called after a successful authorization. If the authorization was not successful the method raises an exception.
An example of how this method is used is shown below:
TSYSRetail.Authorize()
TSYSSettle.DetailRecordCount = 1
TSYSSettle.DetailAggregate[0] = TSYSRetail.GetDetailAggregate()
ParseAggregate Method (TSYSDetailRecord Component)
Parses the aggregate returned from another component's GetDetailAggregate method.
Syntax
procedure ParseAggregate(Aggregate: String);
Remarks
This method takes the XML aggregate returned from the TSYSRetail or TSYSECommerce component, parses it, and then fills all the properties of the DetailRecord component. While normally you can pass the results of the GetDetailAggregate method call directly to the TSYSSettle component, 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 Component)
Clears all properties to their default values.
Syntax
procedure Reset();
Remarks
This method clears all properties to their default values.
Error Event (TSYSDetailRecord Component)
Information about errors during data delivery.
Syntax
type TErrorEvent = procedure ( Sender: TObject; ErrorCode: Integer; const Description: String ) of Object;
property OnError: TErrorEvent read FOnError write FOnError;
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 Component)
The component 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 component, 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 component 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 |
- Product: The product the license is for.
- Product Key: The key the license was generated from.
- License Source: Where the license was found (e.g., RuntimeLicense, License File).
- License Type: The type of license installed (e.g., Royalty Free, Single Server).
- Last Valid Build: The last valid build number for which the license will work.
This setting only works on these components: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to True tells the component to use the internal implementation instead of using the system security libraries.
This setting is set to False by default on all platforms.
Trappable Errors (TSYSDetailRecord Component)
TSYSDetailRecord Errors
501 Data field invalid length. | |
502 Data field invalid format. | |
503 Data field out of range. | |
592 Invalid or unparseable aggregate. | |
605 Invalid CardType. |