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

PTechCanadianResponse Type

Contains the response to the authorization.

Remarks

This type contains the results of a transaction made with the PTechCanadianDebit component. The fields contained by this type are listed below.

Fields

ApprovalCode
String

Contains an authorization code when a transaction has been approved, or an error code. This six character field contains an authorization code when a transaction has been approved. If the Code returned indicates that the transaction has not been approved, then this field will contain an error code, and the Text field will contain the description. Note that the host does not send back an actual authorization code for Credit Returns. Instead, the host sends back six blank spaces in the authorization code field. Credit VOIDS return the original authorization number.

See the list of errors for this component for more information.

AuthSource
String

Indicates the source of the authorization code stored in ApprovalCode. This field contains a one character code indicating the source of the ApprovalCode. The received code must be stored and submitted in the batch settlement. Valid source codes:

CodeDescription
1STIP (Stand-In Processing): time-out response.
2STIP: amount below issuer limit.
3STIP: issuer in Suppress Inquiry mode.
4STIP: issuer unavailable.
5Issuer generated response.
6Off-line approval: POS device generated.
7Acquirer approval: Base I unavailable.
8Acquirer approval of a referral.
9Use for non-authorized transactions; such as credit card credits.
DReferral: authorization code manually keyed.
EOff-line approval: authorization code manually keyed.
FCAFIS Interface Off-Line Post-Auth.*
GIssuer Approval: Post-Auth.*
TAdvice of a Telcode File change initiated by the VisaPhone Issuer Direct Service.

* Currently in use by Japan Acquirer Services (JAS).

BatchNumber
String

Current open batch number This field is returned after sending a BatchInquiry or BatchRelease transaction with the PTechHostSettle component, or after a SendSettlement sent using the PTechManualSettle component.

Code
String

Indicates the status of the authorization request. This is the field used to determine whether a transaction has been approved or not. Valid values for this field are:

ATransaction is Approved.
EError condition or card declined (see the Error section of the help file for more information).

See the list of errors for this component for more information.

ForceKeyRequest
Boolean

Indicates the host requires the component to re-synchronize keys. If after any transaction the ForceKeyRequest is True, you must immediately perform a RequestCurrentKeys transaction to refresh the PIN and MAC keys on the PIN pad. If you do not call RequestCurrentKeys your PIN pad will be out of sync with Paymentech and further transactions may fail.

MACKey
String

MAC Encryption key to be loaded into the PIN pad device. MAC encryption key encrypted under the PIN pad master key. This key changes as required by Interac regulations, and should be loaded into the PIN pad device upon receipt. The developer should validate the MACValue returned in the host response using this key. Future transactions must contain a MACValue that was computed by the PIN pad using this key.

Keys are required to be renewed every:

  • 200 Transactions
  • 24 Hours
  • Each time a Batch is released for settlement
  • Whenever the PIN pad loses sync with the server
When the host changes the key, a new key index is assigned and returned in the EncryptedKeyIndex property. The component needs to update the PIN pad with the PINKey and MACKey after each transaction in order to stay in sync with the host. If the keys and/or the EncryptedKeyIndex become out of sync, you must use the RequestCurrentKeys method to retrieve a valid set of keys and restore the synchronization.

If the ForceKeyRequest field is True after any transaction, you must immediately perform a RequestCurrentKeys transaction before sending any more authorizations.

MACValue
String

Hash value that must be validated by the PIN pad after each response. Each successful response to a transaction will include a MACKey and a MACValue. The MACKey (and PINKey) should be loaded into the PIN pad device upon receipt. The MACValue is a string encrypted by the Paymentech server using the MACKey, and is included in every successful response message. The original unencrypted data is returned by the GetResponseDataToMAC method. After loading the MACKey into the PIN pad device, send both MACValue and GetResponseDataToMAC to the PIN pad device for validation. If the PIN pad indicates the MAC matches, you're done, and you can continue processing transactions. However, if the PIN pad indicates the MAC did not match, you must immediately perform a MACReversal transaction, and consider the request as not approved.

A mismatched MAC value may mean that something was corrupted in data transmission, the response packet was tampered with, or that the keys loaded into your PIN pad device are not synchronized with Paymentech. Try synchronizing your keys with the RequestCurrentKeys method and then re-submitting the transaction.

PINKey
String

PIN Encryption key to be loaded into the PIN pad device. PIN encryption key encrypted under the PIN pad master key. This key changes as required by Interac regulations, and should be loaded into the PIN pad device upon receipt. Future transactions must contain an encrypted PIN block (EncryptedPIN) that was computed by the PIN pad using this key.

Keys are required to be renewed every:

  • 200 Transactions
  • 24 Hours
  • Each time a Batch is released for settlement
  • Whenever the PIN pad loses sync with the server
When the host changes the key, a new key index is assigned and returned in the EncryptedKeyIndex property. The component needs to update the PIN pad with the PINKey and MACKey after each transaction in order to stay in sync with the host. If the keys and/or the EncryptedKeyIndex become out of sync, you must use the RequestCurrentKeys method to retrieve a valid set of keys and restore the synchronization.

If the ForceKeyRequest field is True after any transaction, you must immediately perform a RequestCurrentKeys transaction before sending any more authorizations.

RetrievalNumber
String

Reference number returned from the Paymentech host. This is the reference number of the transaction as assigned by the Paymentech host. This number must remain with the transaction for the duration of the transaction's life cycle. This information is sent as a parameter in the VoidTransaction method.

If the SettlementMode is set to manual this field will contain the POSRetrievalNumber submitted in the authorization. If no POSRetrievalNumber was sent, this field will contain all zeros, and you will not have a reference number for the transaction.

If the SettlementMode is set to host settle, this field will always contain the Paymentech-generated retrieval number returned by the transaction server, regardless of the value contained in the POSRetrievalNumber property.

In all cases, the RetrievalNumber will contain the number used to reference the transaction when issuing voids or reversals.

SequenceNumber
String

SequenceNumber echoed from the authorization. After any transaction this field will contain the same value sent in the SequenceNumber property.

Text
String

Approval/Decline/Error text message information This field contains a response or display text message, and is used by the terminal to display the authorization result. This field will contain human-readable text indicating whether the transaction was approved or declined, or will contain a description of the error. The actual error code will be returned in the ApprovalCode field. The Text field is for informational use only, and should not be used in determining whether a transaction has been approved or not. Instead, use the Code field to determine this.

See the list of errors for this component for more information.

Time
String

The server-normalized Date and Time of the transaction. After a transaction completes (successful or not) this field will contain the date and time of the transaction, returned by the server. The format is "MMddyyyyHHmmss". For example, "01192008171543" indicates the date "January 19th, 2008 5:15:43 pm".

If the host-adjusted date/time is different than what the Point Of Sale has currently, the Point of Sale date/time should be updated to match.

Trace
String

Trace number returned for Canadian Interac Debit transactions. This field is returned in the response to an Interac debit card transaction. The returned value is used for transaction tracking purposes, and must be printed on the customer's receipt.

Constructors

[VB.NET]
Public PTechCanadianResponse()

[C#]
public PTechCanadianResponse();



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