PTechDetailRecord Class
Properties Methods Events Config Settings Errors
The PTechDetailRecord class is a tool used to create off-line Credit or Force transactions to be settled by the PTECHMANUALSETTLE class. The PTDetailRecord class may also be used to modify the XML aggregates returned by the PTECHCHARGE class's GetDetailAggregate method.
Syntax
PTechDetailRecord
Remarks
Credit and voice-authorization Capture transactions are off-line transactions. This means that there is no authorization of funds using the PTechCharge class. Instead, you must manually add these transactions to the settlement batch. The PTDetailRecord class can be used to create these transactions, which can then be added to the PTechManualSettle class's DetailRecords property.
To create a Credit, first set the TransactionType to dttCredit, and then set the IndustryType and EntryDataSource Next, set the Card, SettlementAmount, and the current TransactionDate and TransactionTime.
Since this is an off-line transaction, the SequenceNumber may be any value (except 0), and need not reflect the next available sequence number used for authorizations. Finally, set the PTechManualSettle class's DetailRecords array property with the value returned by the GetDetailAggregate method. You've just added a Credit to the settlement.
Voice authorization Capture transactions are similar to credits, with the exception that it 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.
In addition to creating Credit and Force transactions, the PTechDetailRecord class can be used to adjust the Detail Records returned from the PTechCharge class to reflect changes in the SettlementAmount. The most common reasons to modify these detail records are to add a GratuityAmount (tip) to a charge (itResturant IndustryType), or to add additional charges for the itHotel IndustryType. Note that when the SettlementAmount differs from the original authorized amount, the AmountStatus must be updated to asAmountChanged.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
AmountStatus | Indicates whether SettlementAmount has been modified from the original authorization. |
ApprovalCode | The Approval code returned in the response to the authorization linked to this transaction. |
AuthSource | Indicates the source of the authorization code stored in ApprovalCode . |
CardExpMonth | Expiration month of the credit card specified by CardNumber . |
CardExpYear | Expiration year of the credit card specified by CardNumber . |
CardNumber | Customer's credit card number from the original authorization request. |
CardType | Type of the credit card. |
CVVResult | Contains the returned CVV result code if it was requested. |
ECI | Electronic Commerce Indicator from the original authorization request. |
EntryDataSource | Should reflect the Entry Data Source sent in the original authorization request. |
GoodsIndicator | Indicates the type of goods being sold by an e-Commerce merchant. |
GratuityAmount | Gratuity amount for settling restaurant industry transactions. |
HotelArrivalDate | Date the customer checked in, or the expected arrival date when authorizing a reservation. |
HotelChargeDescriptor | Provides additional information about what this transaction was used for at the hotel. |
HotelDepartureDate | Date the customer checked out, or the expected check-out date when authorizing a reservation. |
HotelDuration | The number of days the customer stayed in the hotel, or the expected duration of stay when authorizing a reservation. |
HotelExtraChargeAmount | Total amount of extra charges incurred by the customer. |
HotelExtraChargesCode | List of extra charges added to the cost of lodging. |
HotelPreferredCustomer | Set this property to True to process a hotel transaction as card-not-present. |
HotelSaleCode | Provides additional details about the type of this transaction. |
IndustryType | Determines the merchant's industry type. |
InvoiceNumber | Invoice Number from the original authorization request. |
Level2PurchaseId | Purchase Identifier for use when sending Level II data. |
Level2SalesTax | Sales Tax for use when sending Level II data. |
Level2ShipToZip | Destination ZipCode for use when sending Level II data. |
NetworkId | The Authorizing network Id from the original authorization response. |
SequenceNumber | Sequence number of the transaction. |
ServerNumber | Used for restaurant transactions: Id number of the server (waiter/waitress) making the transaction. |
SettlementAmount | The amount that the customer will be charged. |
TransactionDate | Local Transaction Date from the original authorization response. |
TransactionTime | Local transaction time from the original authorization response. |
TransactionType | Indicates transaction type for this detail record. |
Method List
The following is the full list of the methods of the class 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 class'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 class 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 class with short descriptions. Click on the links for further details.
SystemInformation | System Information field for Batch Inquiry and Release 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. |
ProcessIdleEvents | Whether the class uses its internal event loop to process events when the main thread is idle. |
SelectWaitMillis | The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process. |
UseInternalSecurityAPI | Whether or not to use the system security libraries or an internal implementation. |
AmountStatus Property (PTechDetailRecord Class)
Indicates whether SettlementAmount has been modified from the original authorization.
Syntax
ANSI (Cross Platform) int GetAmountStatus();
int SetAmountStatus(int iAmountStatus); Unicode (Windows) INT GetAmountStatus();
INT SetAmountStatus(INT iAmountStatus);
Possible Values
AS_ACTUAL_AMOUNT(0),
AS_AMOUNT_CHANGED(1)
int dpaymentssdk_ptechdetailrecord_getamountstatus(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setamountstatus(void* lpObj, int iAmountStatus);
int GetAmountStatus();
int SetAmountStatus(int iAmountStatus);
Default Value
0
Remarks
asActualAmount (0) | The SettlementAmount is the exact amount authorized in the original transaction. |
asAmountChanged (1) | The SettlementAmount is different from the amount originally authorized. This may be due to the addition of a GratuityAmount, or the settlement of a lesser amount. |
Notes for the Hotel IndustryType:
To obtain the best interchange rate for Visa transactions in the Hotel IndustryType, the check out amount (SettlementAmount) must be within 15% of the original authorization amount. If the SettlementAmount is less than the original authorized amount by more than 15%, you must perform an authorization reversal using the PTechReversal class. This will immediately release funds from the cardholder's open to buy amount. The original transaction must then be settled for the new amount as usual. However, if the SettlementAmount exceeds the original authorized amount by more than 15%, you must submit an incremental authorization to make up the remaining amount. In this case even though there are two separate transactions, they are tied together with the same authorization code. Therefore, only the original authorization (with the newly updated SettlementAmount) is to be sent in the settlement.
Non-Visa transactions do not allow for Incrementals to tie transactions together, nor Reversals to release funds from the cardholder's open to buy amount. There are no restrictions on the difference between the SettlementAmount and the original authorization amount. However, if the merchant suspects that the final transaction amount will be substantially higher than the original authorization amount, the merchant should perform an additional authorization for the difference. This subsequent authorization must be sent to the host as a standard authorization-only transaction, and will not be tied in any way to the original transaction. Both transactions must be present in the settlement.
Notes for the Restaurant IndustryType:
For Visa transactions, to obtain the best interchange rate the SettlementAmount must be within 20% of the authorized amount. The initial authorization must be submitted for the actual transaction amount. It must not be altered to include an additional percentage that accounts for a tip being added before settlement.
The same rule applies to MasterCard transactions, with the exception that MasterCard allows the SettlementAmount to be within 25% of the authorized amount.
There are no rules concerning authorization and settlement amounts for other card types.
This information was accurate at the time this document was written. Please see the Processing and Interchange Guidelines (provided by Paymentech) for updates as well as additional information on interchange rate qualification.
Data Type
Integer
ApprovalCode Property (PTechDetailRecord Class)
The Approval code returned in the response to the authorization linked to this transaction.
Syntax
ANSI (Cross Platform) char* GetApprovalCode();
int SetApprovalCode(const char* lpszApprovalCode); Unicode (Windows) LPWSTR GetApprovalCode();
INT SetApprovalCode(LPCWSTR lpszApprovalCode);
char* dpaymentssdk_ptechdetailrecord_getapprovalcode(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setapprovalcode(void* lpObj, const char* lpszApprovalCode);
QString GetApprovalCode();
int SetApprovalCode(QString qsApprovalCode);
Default Value
""
Remarks
If this is a Forced transaction, ApprovalCode should contain the voice auth code received from the call center. If this is a Credit (Refund) transaction it should remain empty or be space filled.
Data Type
String
AuthSource Property (PTechDetailRecord Class)
Indicates the source of the authorization code stored in ApprovalCode .
Syntax
ANSI (Cross Platform) char* GetAuthSource();
int SetAuthSource(const char* lpszAuthSource); Unicode (Windows) LPWSTR GetAuthSource();
INT SetAuthSource(LPCWSTR lpszAuthSource);
char* dpaymentssdk_ptechdetailrecord_getauthsource(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setauthsource(void* lpObj, const char* lpszAuthSource);
QString GetAuthSource();
int SetAuthSource(QString qsAuthSource);
Default Value
""
Remarks
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:
Code | Description |
1 | STIP (Stand-In Processing): time-out response. |
2 | STIP: amount below issuer limit. |
3 | STIP: issuer in Suppress Inquiry mode. |
4 | STIP: issuer unavailable. |
5 | Issuer generated response. |
6 | Off-line approval: POS device generated. |
7 | Acquirer approval: Base I unavailable. |
8 | Acquirer approval of a referral. |
9 | Use for non-authorized transactions; such as credit card credits. |
D | Referral: authorization code manually keyed. |
E | Off-line approval: authorization code manually keyed. |
F | CAFIS Interface Off-Line Post-Auth.* |
G | Issuer Approval: Post-Auth.* |
Data Type
String
CardExpMonth Property (PTechDetailRecord Class)
Expiration month of the credit card specified by CardNumber .
Syntax
ANSI (Cross Platform) int GetCardExpMonth();
int SetCardExpMonth(int iCardExpMonth); Unicode (Windows) INT GetCardExpMonth();
INT SetCardExpMonth(INT iCardExpMonth);
int dpaymentssdk_ptechdetailrecord_getcardexpmonth(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setcardexpmonth(void* lpObj, int iCardExpMonth);
int GetCardExpMonth();
int SetCardExpMonth(int iCardExpMonth);
Default Value
1
Remarks
This property contains the expiration date of the customer's credit card. This property must be in the range 1 - 12.
Data Type
Integer
CardExpYear Property (PTechDetailRecord Class)
Expiration year of the credit card specified by CardNumber .
Syntax
ANSI (Cross Platform) int GetCardExpYear();
int SetCardExpYear(int iCardExpYear); Unicode (Windows) INT GetCardExpYear();
INT SetCardExpYear(INT iCardExpYear);
int dpaymentssdk_ptechdetailrecord_getcardexpyear(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setcardexpyear(void* lpObj, int iCardExpYear);
int GetCardExpYear();
int SetCardExpYear(int iCardExpYear);
Default Value
1
Remarks
This property contains the expiration date of the customer's credit card. This property must be in the range 1 - 12.
Data Type
Integer
CardNumber Property (PTechDetailRecord Class)
Customer's credit card number from the original authorization request.
Syntax
ANSI (Cross Platform) char* GetCardNumber();
int SetCardNumber(const char* lpszCardNumber); Unicode (Windows) LPWSTR GetCardNumber();
INT SetCardNumber(LPCWSTR lpszCardNumber);
char* dpaymentssdk_ptechdetailrecord_getcardnumber(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setcardnumber(void* lpObj, const char* lpszCardNumber);
QString GetCardNumber();
int SetCardNumber(QString qsCardNumber);
Default Value
""
Remarks
This field contains the customer's credit card number used in the original authorization request. This alphanumeric field can be a maximum of 22 characters long, excluding whitespace and dashes which are stripped out when the property is set.
Data Type
String
CardType Property (PTechDetailRecord Class)
Type of the credit card.
Syntax
ANSI (Cross Platform) char* GetCardType();
int SetCardType(const char* lpszCardType); Unicode (Windows) LPWSTR GetCardType();
INT SetCardType(LPCWSTR lpszCardType);
char* dpaymentssdk_ptechdetailrecord_getcardtype(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setcardtype(void* lpObj, const char* lpszCardType);
QString GetCardType();
int SetCardType(QString qsCardType);
Default Value
""
Remarks
Paymentech determines the type of credit card used for each authorization, and returns that value to the merchant in the response. The following is a list of card mnemonics and their meanings.
VI | Visa |
MC | MasterCard |
AX | American Exp. |
DS | Discover |
JC | JCB |
DB | Debit |
EB | EBT |
SV | Stored Value |
CK | Check Authorization |
IG | In Good Taste |
PL | Retail PL |
CC | Club Card |
SC | Smarte Carte |
TH | TCH Light Fleet |
TS | TCRS Consumer Card |
IR | Irving Oil PL |
RA | RAI |
DY | Disney Rewards |
SR | Sears PL |
BE | Best |
EN | Enmark |
GC | FleetCor / GasCard |
VY | Voyager |
FO | Fleet One |
SH | Shell |
GT | Gate |
WX | WEX |
MM | MotoMart |
?? | Included in Batch Totals by Card Type responses when the host has summarized more than 14 card types within the batch (includes all other card types in the batch over 14). |
99 | Supported in Enhanced Batch Inquiry requests when "all" details or totals are being requested. |
Data Type
String
CVVResult Property (PTechDetailRecord Class)
Contains the returned CVV result code if it was requested.
Syntax
ANSI (Cross Platform) char* GetCVVResult();
int SetCVVResult(const char* lpszCVVResult); Unicode (Windows) LPWSTR GetCVVResult();
INT SetCVVResult(LPCWSTR lpszCVVResult);
char* dpaymentssdk_ptechdetailrecord_getcvvresult(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setcvvresult(void* lpObj, const char* lpszCVVResult);
QString GetCVVResult();
int SetCVVResult(QString qsCVVResult);
Default Value
""
Remarks
If a CVV value was sent in the authorization request, then this one character property will contain the host returned Card Verification Value result code.
M | CVV2 match. |
N | CVV2 no match. |
P | Not processed. |
S | Merchant has indicated that CVV2 is not present on card. |
U | Issuer not certified and/or has not provided Visa encryption keys. |
Data Type
String
ECI Property (PTechDetailRecord Class)
Electronic Commerce Indicator from the original authorization request.
Syntax
ANSI (Cross Platform) char* GetECI();
int SetECI(const char* lpszECI); Unicode (Windows) LPWSTR GetECI();
INT SetECI(LPCWSTR lpszECI);
char* dpaymentssdk_ptechdetailrecord_geteci(void* lpObj);
int dpaymentssdk_ptechdetailrecord_seteci(void* lpObj, const char* lpszECI);
QString GetECI();
int SetECI(QString qsECI);
Default Value
""
Remarks
This field should be identical to the ECI property from the original authorization request. This property is used only for eCommerce and Direct Marketing (card not present) transactions, and is ignored for all Card Present (Retail) transactions.
Data Type
String
EntryDataSource Property (PTechDetailRecord Class)
Should reflect the Entry Data Source sent in the original authorization request.
Syntax
ANSI (Cross Platform) int GetEntryDataSource();
int SetEntryDataSource(int iEntryDataSource); Unicode (Windows) INT GetEntryDataSource();
INT SetEntryDataSource(INT iEntryDataSource);
Possible Values
EDS_TRACK_1(0),
EDS_TRACK_2(1),
EDS_MANUAL_ENTRY_TRACK_1CAPABLE(2),
EDS_MANUAL_ENTRY_TRACK_2CAPABLE(3),
EDS_MANUAL_ENTRY_NO_CARD_READER(4),
EDS_TRACK_1CONTACTLESS(5),
EDS_TRACK_2CONTACTLESS(6),
EDS_MANUAL_ENTRY_CONTACTLESS_CAPABLE(7),
EDS_IVR(8),
EDS_KIOSK(9)
int dpaymentssdk_ptechdetailrecord_getentrydatasource(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setentrydatasource(void* lpObj, int iEntryDataSource);
int GetEntryDataSource();
int SetEntryDataSource(int iEntryDataSource);
Default Value
0
Remarks
If sending an off-line credit or capture this property should reflect the way in which the card was presented for the credit or capture.
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). |
edsTrack1Contactless (5) | Full magnetic stripe read (Track 1 only), Chip Card capable terminal (Visa, Mastercard, and JCB Transactions only). |
edsTrack2Contactless (6) | Full magnetic stripe read (Track 2 only), Chip Card capable terminal (Visa, Mastercard, and JCB Transactions only). |
edsManualEntryContactlessCapable (7) | Manually keyed, Chip Card read capable terminal (Visa, MasterCard, and JCB transactions only). |
edsIVR (8) | Interactive Voice Response processing. This is applicable to Mail Order/Telephone Order (MOTO) transactions. (CardNumber, CardExpMonth, and CardExpYear are sent). |
edsKiosk (9) | Automated kiosk transaction. Track1 or Track2 data must be sent. The transaction cannot be manually entered. |
The following data sources are supported - edsTrack1, edsTrack2, edsManualEntryTrack1Capable, edsManualEntryTrack2Capable, edsManualEntryNoCardReader, edsTrack1Contactless, edsTrack2Contactless, edsManualEntryContactlessCapable
This property is not available at design time.
Data Type
Integer
GoodsIndicator Property (PTechDetailRecord Class)
Indicates the type of goods being sold by an e-Commerce merchant.
Syntax
ANSI (Cross Platform) int GetGoodsIndicator();
int SetGoodsIndicator(int iGoodsIndicator); Unicode (Windows) INT GetGoodsIndicator();
INT SetGoodsIndicator(INT iGoodsIndicator);
Possible Values
GI_PHYSICAL_GOODS(0),
GI_DIGITAL_GOODS(1)
int dpaymentssdk_ptechdetailrecord_getgoodsindicator(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setgoodsindicator(void* lpObj, int iGoodsIndicator);
int GetGoodsIndicator();
int SetGoodsIndicator(int iGoodsIndicator);
Default Value
0
Remarks
If the merchant is selling physical goods (goods that are shipped or are otherwise tangible) this property must be set to giPhysicalGoods. If the merchant is selling Digital goods, such a membership, or any software or file that is delivered electronically, this field must be set to giDigitalGoods. This property is only valid when the IndustryType is set to itECommerce.
Data Type
Integer
GratuityAmount Property (PTechDetailRecord Class)
Gratuity amount for settling restaurant industry transactions.
Syntax
ANSI (Cross Platform) char* GetGratuityAmount();
int SetGratuityAmount(const char* lpszGratuityAmount); Unicode (Windows) LPWSTR GetGratuityAmount();
INT SetGratuityAmount(LPCWSTR lpszGratuityAmount);
char* dpaymentssdk_ptechdetailrecord_getgratuityamount(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setgratuityamount(void* lpObj, const char* lpszGratuityAmount);
QString GetGratuityAmount();
int SetGratuityAmount(QString qsGratuityAmount);
Default Value
""
Remarks
This field contains the gratuity (tip) amount of the transaction being settled. This amount is only sent when the PTechCharge class's IndustryType is set to "itRestaurant". If a transaction includes a GratuityAmount amount, the SettlementAmount must reflect the total of the original Authorized Amount plus the GratuityAmount.
This must be formatted as a dollar amount with a real decimal point, excluding the dollar sign. For instance "12.00".
Data Type
String
HotelArrivalDate Property (PTechDetailRecord Class)
Date the customer checked in, or the expected arrival date when authorizing a reservation.
Syntax
ANSI (Cross Platform) char* GetHotelArrivalDate();
int SetHotelArrivalDate(const char* lpszHotelArrivalDate); Unicode (Windows) LPWSTR GetHotelArrivalDate();
INT SetHotelArrivalDate(LPCWSTR lpszHotelArrivalDate);
char* dpaymentssdk_ptechdetailrecord_gethotelarrivaldate(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelarrivaldate(void* lpObj, const char* lpszHotelArrivalDate);
QString GetHotelArrivalDate();
int SetHotelArrivalDate(QString qsHotelArrivalDate);
Default Value
"010101"
Remarks
Date the customer checked in, or the expected arrival date when authorizing a reservation. This property must contain an actual valid date.
Data Type
String
HotelChargeDescriptor Property (PTechDetailRecord Class)
Provides additional information about what this transaction was used for at the hotel.
Syntax
ANSI (Cross Platform) int GetHotelChargeDescriptor();
int SetHotelChargeDescriptor(int iHotelChargeDescriptor); Unicode (Windows) INT GetHotelChargeDescriptor();
INT SetHotelChargeDescriptor(INT iHotelChargeDescriptor);
Possible Values
CD_HEALTH_CLUB(0),
CD_LODGING(1),
CD_RESTAURANT(2),
CD_GIFT_SHOP(3),
CD_HAIR_SALON(4),
CD_CONVENTION_FEES(5),
CD_TENNIS_CLUB(6),
CD_GOLF_SHOP(7)
int dpaymentssdk_ptechdetailrecord_gethotelchargedescriptor(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelchargedescriptor(void* lpObj, int iHotelChargeDescriptor);
int GetHotelChargeDescriptor();
int SetHotelChargeDescriptor(int iHotelChargeDescriptor);
Default Value
1
Remarks
Provides additional information about what this transaction was used for at the hotel. If used to pay for actual hotel accommodations, this should be set to cdLodging. If this transaction was used for any hotel-provided services, it should be set to the corresponding description listed below. Available descriptors include:
- cdHealthClub (0)
- cdLodging (1)
- cdRestaurant (2)
- cdGiftShop (3)
- cdHairSalon (4)
- cdConventionFees (5)
- cdTennisClub (6)
- cdGolfShop (7)
Data Type
Integer
HotelDepartureDate Property (PTechDetailRecord Class)
Date the customer checked out, or the expected check-out date when authorizing a reservation.
Syntax
ANSI (Cross Platform) char* GetHotelDepartureDate();
int SetHotelDepartureDate(const char* lpszHotelDepartureDate); Unicode (Windows) LPWSTR GetHotelDepartureDate();
INT SetHotelDepartureDate(LPCWSTR lpszHotelDepartureDate);
char* dpaymentssdk_ptechdetailrecord_gethoteldeparturedate(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethoteldeparturedate(void* lpObj, const char* lpszHotelDepartureDate);
QString GetHotelDepartureDate();
int SetHotelDepartureDate(QString qsHotelDepartureDate);
Default Value
"010101"
Remarks
Date the customer checked out, or the expected check-out date when authorizing a reservation. This property must contain an actual valid date.
Data Type
String
HotelDuration Property (PTechDetailRecord Class)
The number of days the customer stayed in the hotel, or the expected duration of stay when authorizing a reservation.
Syntax
ANSI (Cross Platform) int GetHotelDuration();
int SetHotelDuration(int iHotelDuration); Unicode (Windows) INT GetHotelDuration();
INT SetHotelDuration(INT iHotelDuration);
int dpaymentssdk_ptechdetailrecord_gethotelduration(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelduration(void* lpObj, int iHotelDuration);
int GetHotelDuration();
int SetHotelDuration(int iHotelDuration);
Default Value
1
Remarks
The number of days the customer stayed in the hotel, or the expected duration of stay when authorizing a reservation. This property must be between 1 and 99 days.
Data Type
Integer
HotelExtraChargeAmount Property (PTechDetailRecord Class)
Total amount of extra charges incurred by the customer.
Syntax
ANSI (Cross Platform) char* GetHotelExtraChargeAmount();
int SetHotelExtraChargeAmount(const char* lpszHotelExtraChargeAmount); Unicode (Windows) LPWSTR GetHotelExtraChargeAmount();
INT SetHotelExtraChargeAmount(LPCWSTR lpszHotelExtraChargeAmount);
char* dpaymentssdk_ptechdetailrecord_gethotelextrachargeamount(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelextrachargeamount(void* lpObj, const char* lpszHotelExtraChargeAmount);
QString GetHotelExtraChargeAmount();
int SetHotelExtraChargeAmount(QString qsHotelExtraChargeAmount);
Default Value
"0.00"
Remarks
Total amount of extra charges incurred by the customer. Use the HotelExtraChargesCode to indicate the types of charges that have been added on to this transaction.
This must be formatted as a dollar amount with a real decimal point, excluding the dollar sign. For instance "12.00"
Data Type
String
HotelExtraChargesCode Property (PTechDetailRecord Class)
List of extra charges added to the cost of lodging.
Syntax
ANSI (Cross Platform) char* GetHotelExtraChargesCode();
int SetHotelExtraChargesCode(const char* lpszHotelExtraChargesCode); Unicode (Windows) LPWSTR GetHotelExtraChargesCode();
INT SetHotelExtraChargesCode(LPCWSTR lpszHotelExtraChargesCode);
char* dpaymentssdk_ptechdetailrecord_gethotelextrachargescode(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelextrachargescode(void* lpObj, const char* lpszHotelExtraChargesCode);
QString GetHotelExtraChargesCode();
int SetHotelExtraChargesCode(QString qsHotelExtraChargesCode);
Default Value
"000000"
Remarks
List of extra charges added to the cost of lodging. You may include a list of extra charges for hotel transactions. Simply add the code below to this property. Multiple codes may be specified by concatenating them together. Only six extra charges may be added. For instance "240000" indicates the customer dined at the hotel restaurant and drank from the mini bar in his room. Available codes include:
0 | None. If there are no extra charges, this property should contain six zeros- "000000". |
2 | Restaurant. |
3 | Gift shop. |
4 | Mini bar. |
5 | Telephone charges. |
6 | Other charges not listed. |
7 | Laundry service. |
Data Type
String
HotelPreferredCustomer Property (PTechDetailRecord Class)
Set this property to True to process a hotel transaction as card-not-present.
Syntax
ANSI (Cross Platform) int GetHotelPreferredCustomer();
int SetHotelPreferredCustomer(int bHotelPreferredCustomer); Unicode (Windows) BOOL GetHotelPreferredCustomer();
INT SetHotelPreferredCustomer(BOOL bHotelPreferredCustomer);
int dpaymentssdk_ptechdetailrecord_gethotelpreferredcustomer(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelpreferredcustomer(void* lpObj, int bHotelPreferredCustomer);
bool GetHotelPreferredCustomer();
int SetHotelPreferredCustomer(bool bHotelPreferredCustomer);
Default Value
FALSE
Remarks
Set this property to True to process a hotel transaction as card-not-present. This can be used for phoned-in reservations, no-show charges, or any transaction that takes place without the customer's physical card present. This property is only applicable for Visa and MasterCard transactions. Other card types must use the PTechECommerce class for phone or internet reservations.
Data Type
Boolean
HotelSaleCode Property (PTechDetailRecord Class)
Provides additional details about the type of this transaction.
Syntax
ANSI (Cross Platform) int GetHotelSaleCode();
int SetHotelSaleCode(int iHotelSaleCode); Unicode (Windows) INT GetHotelSaleCode();
INT SetHotelSaleCode(INT iHotelSaleCode);
Possible Values
SC_NOT_SET(0),
SC_SALE(1),
SC_NO_SHOW(2),
SC_DEPOSIT(3),
SC_DELAYED_CHARGE(4),
SC_EXPRESS_SERVICE(5),
SC_ASSURED_RESERVATION(6)
int dpaymentssdk_ptechdetailrecord_gethotelsalecode(void* lpObj);
int dpaymentssdk_ptechdetailrecord_sethotelsalecode(void* lpObj, int iHotelSaleCode);
int GetHotelSaleCode();
int SetHotelSaleCode(int iHotelSaleCode);
Default Value
1
Remarks
Provides additional details about the type of this transaction.
Data Type
Integer
IndustryType Property (PTechDetailRecord Class)
Determines the merchant's industry type.
Syntax
ANSI (Cross Platform) int GetIndustryType();
int SetIndustryType(int iIndustryType); Unicode (Windows) INT GetIndustryType();
INT SetIndustryType(INT iIndustryType);
Possible Values
PIT_RETAIL(0),
PIT_DIRECT_MARKETING(1),
PIT_ECOMMERCE(2),
PIT_RESTAURANT(3),
PIT_HOTEL(4)
int dpaymentssdk_ptechdetailrecord_getindustrytype(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setindustrytype(void* lpObj, int iIndustryType);
int GetIndustryType();
int SetIndustryType(int iIndustryType);
Default Value
0
Remarks
This property sets the merchant's industry type. Valid values are shown in the table below:
Industry Type | Description |
pitRetail (0) | Retail environments are classified as those environments where the card and cardholder are physically present at the time of purchase. |
pitDirectMarketing (1) | Mail Order or Phone Order (MOPO) environments are classified as those environments where the card and/or cardholder are not physically present at the time of purchase and the transaction is performed through the mail or over the telephone. |
pitECommerce (2) | Electronic Commerce environments are classified as those environments where the card and/or cardholder are not physically present at the time of purchase and the transaction is performed over the Internet. |
pitRestaurant (3) | Restaurant environments are similar to retail environments, where the card and cardholder are physically present at the time of purchase.* A gratuity may be added at the time of authorization, or before settlement. Note that the itRestaurant industry type requires merchants to use Paymentech's Terminal Capture System (TCS) to process transactions, and batches must be manually settled using the PTechManualSettle class. |
pitHotel (4) | Hotel/Lodging environments allow for both card-present and card-not-present transactions* (for instance, a phoned-in reservation or a charge for a no-show). Additional hotel (PTechHotelInfo) information must be submitted in the authorization and capture. Additional charges may be added on to the initial authorization using the PTechDetailRecord class before the transaction is settled with the PTechManualSettle class. Note that the itHotel industry type requires merchants to use Paymentech's Terminal Capture System (TCS) to process transactions, and batches must be manually settled using the PTechManualSettle class. |
* Restaurant orders taken over the phone should be processed as itDirectMarketing transactions. Hotel transactions should always be processed in the itHotel IndustryType. Setting the HotelPreferredCustomer property to True.
Data Type
Integer
InvoiceNumber Property (PTechDetailRecord Class)
Invoice Number from the original authorization request.
Syntax
ANSI (Cross Platform) char* GetInvoiceNumber();
int SetInvoiceNumber(const char* lpszInvoiceNumber); Unicode (Windows) LPWSTR GetInvoiceNumber();
INT SetInvoiceNumber(LPCWSTR lpszInvoiceNumber);
char* dpaymentssdk_ptechdetailrecord_getinvoicenumber(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setinvoicenumber(void* lpObj, const char* lpszInvoiceNumber);
QString GetInvoiceNumber();
int SetInvoiceNumber(QString qsInvoiceNumber);
Default Value
""
Remarks
This property should be identical to the InvoiceNumber from the original authorization request.
Data Type
String
Level2PurchaseId Property (PTechDetailRecord Class)
Purchase Identifier for use when sending Level II data.
Syntax
ANSI (Cross Platform) char* GetLevel2PurchaseId();
int SetLevel2PurchaseId(const char* lpszLevel2PurchaseId); Unicode (Windows) LPWSTR GetLevel2PurchaseId();
INT SetLevel2PurchaseId(LPCWSTR lpszLevel2PurchaseId);
char* dpaymentssdk_ptechdetailrecord_getlevel2purchaseid(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setlevel2purchaseid(void* lpObj, const char* lpszLevel2PurchaseId);
QString GetLevel2PurchaseId();
int SetLevel2PurchaseId(QString qsLevel2PurchaseId);
Default Value
""
Remarks
Purchase Identifier for use when sending Level II data. This property contains a Purchase Identifier (Purchase Order Number or Order Number). The Level2PurchaseId, Level2SalesTax, and Level2ShipToZip properties are used to transmit Level II purchasing card data to the host. If any of these properties contain a value, Level II purchasing data will be sent with the authorization request. If they are all empty, Level II data will not be sent. The maximum length for this property is 17 characters.
Data Type
String
Level2SalesTax Property (PTechDetailRecord Class)
Sales Tax for use when sending Level II data.
Syntax
ANSI (Cross Platform) char* GetLevel2SalesTax();
int SetLevel2SalesTax(const char* lpszLevel2SalesTax); Unicode (Windows) LPWSTR GetLevel2SalesTax();
INT SetLevel2SalesTax(LPCWSTR lpszLevel2SalesTax);
char* dpaymentssdk_ptechdetailrecord_getlevel2salestax(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setlevel2salestax(void* lpObj, const char* lpszLevel2SalesTax);
QString GetLevel2SalesTax();
int SetLevel2SalesTax(QString qsLevel2SalesTax);
Default Value
""
Remarks
Sales Tax for use when sending Level II data. This property contains the portion of the TransactionAmount which is sales tax. This amount is presented in US Dollars with a decimal point in the proper position, and has a maximum length of 9 characters. Set this property to "EXEMPT" if the transaction is not taxable. Set it to "0.00" if there is no tax provided.
The Level2PurchaseId, Level2SalesTax, and Level2ShipToZip properties are used to transmit Level II purchasing card data to the host. If any of these properties contain a value, Level II purchasing data will be sent with the authorization request. If they are all empty, Level II data will not be sent.
Data Type
String
Level2ShipToZip Property (PTechDetailRecord Class)
Destination ZipCode for use when sending Level II data.
Syntax
ANSI (Cross Platform) char* GetLevel2ShipToZip();
int SetLevel2ShipToZip(const char* lpszLevel2ShipToZip); Unicode (Windows) LPWSTR GetLevel2ShipToZip();
INT SetLevel2ShipToZip(LPCWSTR lpszLevel2ShipToZip);
char* dpaymentssdk_ptechdetailrecord_getlevel2shiptozip(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setlevel2shiptozip(void* lpObj, const char* lpszLevel2ShipToZip);
QString GetLevel2ShipToZip();
int SetLevel2ShipToZip(QString qsLevel2ShipToZip);
Default Value
""
Remarks
Destination ZipCode for use when sending Level II data. This property contains the zip code where the purchased goods are to be shipped. If this is a face-to-face transaction in a retail environment where the customer immediately receives the goods, this property should be the Zip code of the merchant location where the item was purchased.
The Level2PurchaseId, Level2SalesTax, and Level2ShipToZip properties are used to transmit Level II purchasing card data to the host. If any of these properties contain a value, Level II purchasing data will be sent with the authorization request. If they are all empty, Level II data will not be sent.
Data Type
String
NetworkId Property (PTechDetailRecord Class)
The Authorizing network Id from the original authorization response.
Syntax
ANSI (Cross Platform) char* GetNetworkId();
int SetNetworkId(const char* lpszNetworkId); Unicode (Windows) LPWSTR GetNetworkId();
INT SetNetworkId(LPCWSTR lpszNetworkId);
char* dpaymentssdk_ptechdetailrecord_getnetworkid(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setnetworkid(void* lpObj, const char* lpszNetworkId);
QString GetNetworkId();
int SetNetworkId(QString qsNetworkId);
Default Value
""
Remarks
This property should be identical to the NetworkId returned from Paymentech in the authorization response.
Data Type
String
SequenceNumber Property (PTechDetailRecord Class)
Sequence number of the transaction.
Syntax
ANSI (Cross Platform) int GetSequenceNumber();
int SetSequenceNumber(int iSequenceNumber); Unicode (Windows) INT GetSequenceNumber();
INT SetSequenceNumber(INT iSequenceNumber);
int dpaymentssdk_ptechdetailrecord_getsequencenumber(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setsequencenumber(void* lpObj, int iSequenceNumber);
int GetSequenceNumber();
int SetSequenceNumber(int iSequenceNumber);
Default Value
1
Remarks
This should be identical to the sequence number sent in the original authorization.
Data Type
Integer
ServerNumber Property (PTechDetailRecord Class)
Used for restaurant transactions: Id number of the server (waiter/waitress) making the transaction.
Syntax
ANSI (Cross Platform) char* GetServerNumber();
int SetServerNumber(const char* lpszServerNumber); Unicode (Windows) LPWSTR GetServerNumber();
INT SetServerNumber(LPCWSTR lpszServerNumber);
char* dpaymentssdk_ptechdetailrecord_getservernumber(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setservernumber(void* lpObj, const char* lpszServerNumber);
QString GetServerNumber();
int SetServerNumber(QString qsServerNumber);
Default Value
""
Remarks
Each server should have his or her own unique Id number.
Data Type
String
SettlementAmount Property (PTechDetailRecord Class)
The amount that the customer will be charged.
Syntax
ANSI (Cross Platform) char* GetSettlementAmount();
int SetSettlementAmount(const char* lpszSettlementAmount); Unicode (Windows) LPWSTR GetSettlementAmount();
INT SetSettlementAmount(LPCWSTR lpszSettlementAmount);
char* dpaymentssdk_ptechdetailrecord_getsettlementamount(void* lpObj);
int dpaymentssdk_ptechdetailrecord_setsettlementamount(void* lpObj, const char* lpszSettlementAmount);
QString GetSettlementAmount();
int SetSettlementAmount(QString qsSettlementAmount);
Default Value
"0.00"
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 GratuityAmount amount, the SettlementAmount must reflect the total of the original authorized amount plus the GratuityAmount (this is only applicable to the itResturant IndustryType).
This must be formatted as a dollar amount with a real decimal point, excluding the dollar sign. For instance "12.00".
Notes for the Hotel IndustryType:
To obtain the best interchange rate for Visa transactions in the Hotel IndustryType, the check out amount (SettlementAmount) must be within 15% of the original authorization amount. If the SettlementAmount is less than the original authorized amount by more than 15%, you must perform an authorization reversal using the PTechReversal class. This will immediately release funds from the cardholder's open to buy amount. The original transaction must then be settled for the new amount as usual. However, if the SettlementAmount exceeds the original authorized amount by more than 15%, you must submit an incremental authorization to make up the remaining amount. In this case even though there are two separate transactions, they are tied together with the same authorization code. Therefore, only the original authorization (with the newly updated SettlementAmount) is to be sent in the settlement.
Non-Visa transactions do not allow for Incrementals to tie transactions together, nor Reversals to release funds from the cardholder's open to buy amount. There are no restrictions on the difference between the SettlementAmount and the original authorization amount. However, if the merchant suspects that the final transaction amount will be substantially higher than the original authorization amount, the merchant should perform an additional authorization for the difference. This subsequent authorization must be sent to the host as a standard authorization-only transaction, and will not be tied in any way to the original transaction. Both transactions must be present in the settlement.
Notes for the Restaurant IndustryType:
For Visa transactions, to obtain the best interchange rate the SettlementAmount must be within 20% of the authorized amount. The initial authorization must be submitted for the actual transaction amount. It must not be altered to include an additional percentage that accounts for a tip being added before settlement.
The same rule applies to MasterCard transactions, with the exception that MasterCard allows the SettlementAmount to be within 25% of the authorized amount.
There are no rules concerning authorization and settlement amounts for other card types.
This information was accurate at the time this document was written. Please see the Processing and Interchange Guidelines (provided by Paymentech) for updates as well as additional information on interchange rate qualification.
Data Type
String
TransactionDate Property (PTechDetailRecord Class)
Local Transaction Date from the original authorization response.
Syntax
ANSI (Cross Platform) char* GetTransactionDate();
int SetTransactionDate(const char* lpszTransactionDate); Unicode (Windows) LPWSTR GetTransactionDate();
INT SetTransactionDate(LPCWSTR lpszTransactionDate);
char* dpaymentssdk_ptechdetailrecord_gettransactiondate(void* lpObj);
int dpaymentssdk_ptechdetailrecord_settransactiondate(void* lpObj, const char* lpszTransactionDate);
QString GetTransactionDate();
int SetTransactionDate(QString qsTransactionDate);
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.
Data Type
String
TransactionTime Property (PTechDetailRecord Class)
Local transaction time from the original authorization response.
Syntax
ANSI (Cross Platform) char* GetTransactionTime();
int SetTransactionTime(const char* lpszTransactionTime); Unicode (Windows) LPWSTR GetTransactionTime();
INT SetTransactionTime(LPCWSTR lpszTransactionTime);
char* dpaymentssdk_ptechdetailrecord_gettransactiontime(void* lpObj);
int dpaymentssdk_ptechdetailrecord_settransactiontime(void* lpObj, const char* lpszTransactionTime);
QString GetTransactionTime();
int SetTransactionTime(QString qsTransactionTime);
Default Value
"000000"
Remarks
This six digit field contains a local transaction time associated with the transaction being settled. If the transaction was authorized on-line, this field must contain the value returned in the original authorization response message. If the transaction was processed off-line, this field must contain a Point of Sale (POS) device generated time. This field must appear in HHMMSS format.
Data Type
String
TransactionType Property (PTechDetailRecord Class)
Indicates transaction type for this detail record.
Syntax
ANSI (Cross Platform) int GetTransactionType();
int SetTransactionType(int iTransactionType); Unicode (Windows) INT GetTransactionType();
INT SetTransactionType(INT iTransactionType);
Possible Values
DTT_SALE(1),
DTT_CAPTURE(3),
DTT_HOTEL_NO_SHOW(4),
DTT_CREDIT(6)
int dpaymentssdk_ptechdetailrecord_gettransactiontype(void* lpObj);
int dpaymentssdk_ptechdetailrecord_settransactiontype(void* lpObj, int iTransactionType);
int GetTransactionType();
int SetTransactionType(int iTransactionType);
Default Value
1
Remarks
This property indicates the type of transaction that is being settled.
Note that only credit card transactions are supported here. EBT, Stored Value, Debit, and Canadian Debit cards must be processed with the Host Capture System, and cannot be manually settled.
dttSale (1) | If the original transaction was a Sale (and not an Auth-only), the TransactionType will be set to dttSale after calling ParseAggregate. You should not then modify this value. |
dttCapture (3) | If the original transaction was an Auth-Only, the TransactionType will be set to dttCapture after calling ParseAggregate. This value may also be used to process voice authorization (Force) transactions. Simply fill out all of the detail record properties manually, and set the ApprovalCode property with the authorization code you received from the call center. |
dttHotelNoShow (4) | This is used only for the Hotel IndustryType, when a customer fails to show for his reservation. |
dttCredit (6) | This is a purely off-line TransactionType. It is used to credit a transaction from a previously settled batch. In this case the ApprovalCode is irrelevant, and all of the detail record properties must be filled manually. The SettlementAmount indicates the amount to be returned to the cardholder. |
Note that transactions Voided with the PTechCharge class must be removed from the batch. Voided transactions must not be settled.
Data Type
Integer
Config Method (PTechDetailRecord Class)
Sets or retrieves a configuration setting.
Syntax
ANSI (Cross Platform) char* Config(const char* lpszConfigurationString); Unicode (Windows) LPWSTR Config(LPCWSTR lpszConfigurationString);
char* dpaymentssdk_ptechdetailrecord_config(void* lpObj, const char* lpszConfigurationString);
QString Config(const QString& qsConfigurationString);
Remarks
Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
GetDetailAggregate Method (PTechDetailRecord Class)
Returns an aggregate containing details of this transaction, which is then used for settlement.
Syntax
ANSI (Cross Platform) char* GetDetailAggregate(); Unicode (Windows) LPWSTR GetDetailAggregate();
char* dpaymentssdk_ptechdetailrecord_getdetailaggregate(void* lpObj);
QString GetDetailAggregate();
Remarks
This method returns an aggregate containing all of the required data to send a transaction to settlement. This aggregate must be passed to the PTechManualSettle class's DetailAggregate array property in order to settle the transaction. If you wish to view or change any part of the aggregate (such as adding a gratuity or additional info for an Installment payment), you may use the PTechDetailRecord class to do so.
Note: This method may only be called after a successful authorization. If the authorization was not successful the method fails with an error.
An example of how this method is used is shown below:
PTechCharge.Sale();
PTechManualSettle.DetailRecord[0] = PTechCharge.GetDetailAggregate();
Error Handling (C++)
This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
ParseAggregate Method (PTechDetailRecord Class)
Parses the aggregate returned from another class's GetDetailAggregate method.
Syntax
ANSI (Cross Platform) int ParseAggregate(const char* lpszAggregate); Unicode (Windows) INT ParseAggregate(LPCWSTR lpszAggregate);
int dpaymentssdk_ptechdetailrecord_parseaggregate(void* lpObj, const char* lpszAggregate);
int ParseAggregate(const QString& qsAggregate);
Remarks
This method takes the XML aggregate returned from the PTechCharge class, parses it, and then fills all the properties of the PTechDetailRecord class. While normally you can pass the results of the GetDetailAggregate method call directly to the PTechManualSettle class, sometimes it is necessary to adjust the contents of the XML aggregate first.
Error Handling (C++)
This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)
Reset Method (PTechDetailRecord Class)
Clears all properties to their default values.
Syntax
ANSI (Cross Platform) int Reset(); Unicode (Windows) INT Reset();
int dpaymentssdk_ptechdetailrecord_reset(void* lpObj);
int Reset();
Remarks
This method clears all properties to their default values.
Error Handling (C++)
This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)
Error Event (PTechDetailRecord Class)
Information about errors during data delivery.
Syntax
ANSI (Cross Platform) virtual int FireError(PTechDetailRecordErrorEventParams *e);
typedef struct {
int ErrorCode;
const char *Description; int reserved; } PTechDetailRecordErrorEventParams;
Unicode (Windows) virtual INT FireError(PTechDetailRecordErrorEventParams *e);
typedef struct {
INT ErrorCode;
LPCWSTR Description; INT reserved; } PTechDetailRecordErrorEventParams;
#define EID_PTECHDETAILRECORD_ERROR 1 virtual INT DPAYMENTSSDK_CALL FireError(INT &iErrorCode, LPSTR &lpszDescription);
class PTechDetailRecordErrorEventParams { public: int ErrorCode(); const QString &Description(); int EventRetVal(); void SetEventRetVal(int iRetVal); };
// To handle, connect one or more slots to this signal. void Error(PTechDetailRecordErrorEventParams *e);
// Or, subclass PTechDetailRecord and override this emitter function. virtual int FireError(PTechDetailRecordErrorEventParams *e) {...}
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 (PTechDetailRecord Class)
The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.PTechDetailRecord Config Settings
The class will construct the System Information data based on the following specifications:
- Application Name - 7 characters
- Release Date - 6 characters (MMDDYY)
- EPROM / Version Number - 10 characters
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 classes: 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 class to use the internal implementation instead of using the system security libraries.
On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.
To use the system security libraries for Linux, OpenSSL support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.
Trappable Errors (PTechDetailRecord Class)
Error Handling (C++)
Call the GetLastErrorCode() method to obtain the last called method's result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. Known error codes are listed below. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.
PTechDetailRecord Errors
501 Property length is invalid | |
502 Property is set with invalid data. | |
504 Luhn digit check failed. | |
505 Card date invalid. | |
506 Card expired. | |
517 Response length mismatch. | |
546 Missing property for current method call. |
The following is a list of error codes which may be returned by the Paymentech Server. In the case of a server-side error condition, the ResponseCode property will contain "E", the error code will be contained in the ResponseApprovalCode property, and the description in ResponseText
Paymentech Issuer Errors
ResponseApprovalCode | ResponseText | Description |
200 | Auth Declined | Cardholder's bank did not approve transaction. |
201 | Call Voice Oper | Authorizer needs more information for approval. |
202 | Hold - Call | Card issuer does not want that card used. Call for further instructions. |
203 | Call Voice Oper | Authorizer didn't respond within allotted time. |
204 | Invalid Card No | Account #/mag stripe is invalid. |
205 | Invalid Exp. Date | Expiration date is either incorrect format or prior to today. |
206 | Invalid ICA No | Invalid International Control Account number. |
207 | Invalid ABA No | Invalid American Banking Association number. |
208 | Invalid PIN No | The Personal ID Number for a debit transaction is incorrect. |
209 | Invalid Bank MID | The Bank Merchant ID is incorrect. |
210 | Invalid Term No | The merchant ID is not valid or active. |
211 | Invalid Amount | Amount is either: equal to 0, has no decimal, has decimal in wrong place, or has multiple decimals. |
213 | Invalid Tran Fmt | The transaction format isn't valid, typically invalid SIC code |
214 | Call Voice Oper | Authorization center cannot be reached. |
215 | Lost/Stolen Card | Card has been reported lost or stolen. |
216 | Invalid PIN | Personal ID code is incorrect. |
217 | Over Credit Flr | Amount requested exceeds credit limit. |
218 | Request Denied | Transaction is not valid for this authorizer. |
220 | Not Online to XX | Fatal communications error. |
221 | Auth Down-Retry | Debit authorizer temporarily unavailable. |
222 | Auth Declined | Vehicle not found in positive file. |
223 | Invalid Pin No | Driver # not found in positive file. |
224 | Auth Declined | Card is on private label negative file. |
225 | Card Not Allowed | Merchant does not accept this card. |
226 | PL Setup Reqd | Merchant not set up for Private Label. |
227 | BIN Not Allowed | Merchant cannot accept this Private Label BIN range. |
228 | Card Not Allowed | Merchant cannot accept this card. |
229 | Inv Merc Rstrct Code | Restriction code field contains invalid data. |
230 | Prod Restricted | Merchant attempted a product code not permitted by this merchant. |
231 | Prod Not On File | Merchant attempted a product code that does not exist on host. |
232 | Auth Declined | Invalid card type for Prior Auth sale. |
233 | Auth Declined | Terminal Type not supported. |
234 | Auth Declined | T&E card used for Sale when merchant only allows Auth Only. |
235 | *Request Denied* | Prior Auth selected with no Auth code provided. |
238 | Invalid Driver Number | The Driver Number entered is invalid. |
247 | PIN Not Selected | EBT recipient has not selected a PIN for this card. |
248 | Unmatch Vch Info | Voucher submitted does not match one previously issued. |
248 | CVC2/CID ERROR | CVC2 or CID entered was not valid for the card number. |
249 | Tran Not Defined | This type of transaction is not allowed for this type of card. |
257 | Block Act Not Alwd | The merchant.is not allowed to process Stored Value Block Activations |
258 | Incorrect Act Amt | The activation amount requested does not match the predenominated amount for the card. |
292 | Auth Down - Retry | Authorizer is not responding. |
293 | Auth Busy - Retry | Authorizer not available at this time. |
294 | Auth Busy - Retry | Authorizer not available at this time. |
297 | Auth Error - Retry | Authorizer not available at this time. |
298 | Err - Pls Retry | Debit authorizer experienced an error. |
299 | Err - Pls Retry | Debit authorizer experienced an error. |
Paymentech Format Errors
ResponseApprovalCode | ResponseText | Description |
300 | Invalid Term ID | The length of the merchant ID is incorrect or contains invalid data. |
301 | Invalid Function | Tran code is incorrect or wrong length. |
302 | Invalid Card | Mag stripe contains invalid data or account # is greater than 19 digits |
303 | Invalid Exp. Date | Card has expired, month was not 01-12 or year was not 00-99. |
304 | Invalid Action Code | Action code is longer than 1 digit. |
305 | Amt Entry Error | Amount less than .01 or greater than 99999.99 or contained non- numeric data. |
306 | Invalid PIN | Incorrect PIN block length. |
307 | Invalid Card | Invalid card type or account number. |
308 | Auth # Not Entered | Auth code was not entered on a Prior Auth, Incremental or Rev. |
309 | Invalid Down Pay Ind | Insurance down payment indicator is invalid. |
310 | Policy # Wrong Len | Insurance policy number is incorrect length. |
311 | Invalid Ind Code | Industry type must be RE or DM. |
312 | Invalid Function | Tran code is invalid or contains alpha data. |
313 | Entry Mode Invalid | POS Entry mode is less than 01 or greater than 04. |
314 | Invalid Industry Data | The Industry Specific field contains invalid data. |
315 | Inv Fleet Data | The Fleet Card field contains invalid data. |
316 | Invalid Sys Info | The System Information field contains invalid data. |
317 | Invalid Format | Payment Service indicator or Transaction ID is invalid. |
318 | Inv Transaction Class | Transaction class not "F" for financial transaction. |
319 | Inv PIN Capability | Pin capability code field contains invalid data. |
320 | Inv/Missing Retr Ref | Retrieval Reference # is missing or contains alpha data. |
321 | Inv MSDI | Market Specific Data field contains invalid data. |
322 | Invalid Duration | Market specific data field Duration is 00, blank or missing. |
323 | Inv Pref Cust Ind | Preferred Customer indicator contains invalid data. |
324 | Inv MO/TO Number | Mail/Telephone Order number is invalid (InvoiceNumber must have a value). |
325 | Inv Sale/Chg Des/Folio | Hotel Sale Code, Charge Descriptor or Folio contains invalid data. |
326 | Inv Mult Clr Seq No | Multiple Clearing sequence number is invalid. |
327 | Inv Purch Card Data | Purchasing card field contains invalid data. |
328 | Inv Input/Use VRU | Insurance transaction not from VRU. |
329 | Invalid EC Data 329 | Invalid Electronic Commerce Data. |
330 | INV Function or Multiple FS or Unknown TKN | Indicates system problem, notify Paymentech Network Services or Multiple field separators received without required data or A token of unknown definition was received |
331 | INV TKN Value | Invalid token value was received. |
332 | CVD Data Error | Error with the cardholder verification data received; invalid value or not allowable for this card for this transaction. |
333 | TKN Data Error | Indicates system problem, notify Paymentech Network Services. |
359 | Invalid Sequence Number | The SequenceNumber must be a number between 0 and 2400. |
Paymentech Host / Setup Errors
ResponseApprovalCode | ResponseText | Description |
400 | Invalid Term ID | Merchant ID not found in merchant file. |
401 | Invalid Term ID | Merchant ID not found in terminal file. |
402 | Term Not Active | Active flag for merchant set to "N". |
403 | Invalid Act Code | Merchant not set up for cash advance function. |
404 | Void Not Allowed | The transaction requested for voiding is not an EFT transaction. |
405 | Ref Num Not Found | Transaction requested for reversal not found. |
406 | Proc Error 7 | The host can't clear all transaction records for the requested Batch Release. |
407 | Too Many Batches | There are 999 open batches for this merchant. |
408 | Release Batch | Current batch has 999 records. Release batch before continuing. |
409 | Invalid Function | Debit transaction requested but debit flag is set to "N". |
410 | Invalid Term ID | The Terminal ID portion of the merchant ID is incorrect. |
411 | Invalid Term ID | The maximum retries for this merchant have been exceeded. |
412 | Proc Error 13 | Unable to read reference number file. |
413 | Proc Error 14 | 413 |
414 | Proc Error 15 | 414 |
415 | Invalid Function | 415 |
416 | Invalid Function | Merchant is Authorization Only and a debit record was sent. |
417 | Invalid Function | Private label flag is "N" but a private label account number was sent. |
418 | Please Try Again | Incorrect debit working key. |
419 | Invalid Function | Manually entered transactions are not allowed for this terminal ID. |
420 | Amount Too Large | Maximum sale amount exceeded. |
421 | Amount Too Large | Maximum return amount exceeded. |
422 | Invalid Term ID | Host couldn't read terminal file within specified time. |
423 | Proc Error 24 | Host couldn't read reference number file within specified time. |
424 | Invalid Term ID | Transaction open flag has been set to "Y" within prior 3 minutes. |
425 | Invalid Function | Cash management not allowed for this merchant ID. |
426 | Rev Not Allowed | Host found no batch number matching the one sent. |
427 | Rev Not Allowed | Host found no transactions meeting the specifications sent. |
428 | Dscv Not Allowed | Merchant not set up for Discover transactions. |
429 | Rev Not Allowed | The batch containing the transaction to void has been released. |
430 | Dscv Not Allowed | Merchant not set up for Discover. |
431 | DC Not Allowed | Merchant not set up for Diners Club. |
432 | CB Not Allowed | Merchant not set up for Carte Blanche. |
433 | Invalid Key | No AMEX subscriber number, process control ID or product code set up |
434 | Invalid Key | Future use. |
435 | Failed-Plz Call | Debit transaction being sent to an authorizer not set up on host file. |
436 | Failed-Plz Call | Debit security key does not exist on the security management file. |
437 | Failed-Plz Call | Failure occurred during encryption/decryption of PIN. |
438 | Failed-Plz Call | Error occurred while generating a debit working key. |
439 | Failed-Plz Call | The DB (debit) sponsor institution on the merchant file is not set up on sponsor file. |
440 | Failed-Plz Call | The network set up on the sponsoring bank file for this institution is not set up on the host's network file. |
441 | Failed-Plz Call | The host is unable to communicate with decryption device. |
442 | JCB Not Allowed | JCB CD flag on merchant record not set up for JCB transactions. |
443 | JCB Not Allowed | JCB subscriber number not set up for JCB transactions. |
444 | Bank Not On File | Debit BIN not set up for this merchant in routing table. |
445 | No Sponsor Inst | No valid sponsorship was found on Merchant record. |
446 | Failed Plz Call | Future use. |
447 | WX Not Allowed | Merchant not set up to accept WEX. |
448 | Amount Too Large | Amount exceeds maximum limit. |
449 | Reenter Odometer | Odometer was 000000 or contained non-numeric data. |
450 | Duplicate Tran | No ACK reversal was followed by a duplicate request |
451 | Tran Not Allowed | Requested transaction type is not allowed for this card/merchant. |
452 | Bat Already Rels | Batch has already been released. |
453 | Invalid Rtng Ind | Invalid Routing Indicator field. |
454 | AX Not Allowed | AMEX not allowed. |
999 | Invalid Merchant | Merchant number not on file. |
Paymentech Debit / EBT Specific Errors
ResponseApprovalCode | ResponseText | Description |
602 | Call Voice Op | Auth center cannot be reached. |
692 | Auth Down-Retry | Debit authorizer temporarily unavailable. |
693 | Auth Busy-Retry | Queue for debit authorizer too long. |
694 | Auth Busy-Retry | Debit authorizer not responding in time. |
Paymentech Batch Management Errors (use the ErrorCode configuration setting to retrieve this information from the PTechHostSettle class.
ErrorCode | ResponseText | Description |
105 | Invalid Term ID | Merchant ID on a Batch Inquiry or Release is incorrect. |
106 | Term Not Active | Active flag for the merchant ID is set to N. |
107 | No Transactions | A Batch Inquiry or Release was requested but no open batch exists. |
108 | Bat Already Rels | A second batch release was attempted. |
109 | Batch Not Found | Requested batch does not exist. |
The class may also return one of the following error codes, which are inherited from other classes.
HTTP Errors
118 Firewall Error. Error description contains detailed message. | |
143 Busy executing current method. | |
151 HTTP protocol error. The error message has the server response. | |
152 No server specified in URL | |
153 Specified URLScheme is invalid. | |
155 Range operation is not supported by server. | |
156 Invalid cookie index (out of range). | |
301 Interrupted. | |
302 Can't open AttachedFile. |
The class may also return one of the following error codes, which are inherited from other classes.
TCPClient Errors
100 You cannot change the RemotePort at this time. A connection is in progress. | |
101 You cannot change the RemoteHost (Server) at this time. A connection is in progress. | |
102 The RemoteHost address is invalid (0.0.0.0). | |
104 Already connected. If you want to reconnect, close the current connection first. | |
106 You cannot change the LocalPort at this time. A connection is in progress. | |
107 You cannot change the LocalHost at this time. A connection is in progress. | |
112 You cannot change MaxLineLength at this time. A connection is in progress. | |
116 RemotePort cannot be zero. Please specify a valid service port number. | |
117 You cannot change the UseConnection option while the class is active. | |
135 Operation would block. | |
201 Timeout. | |
211 Action impossible in control's present state. | |
212 Action impossible while not connected. | |
213 Action impossible while listening. | |
301 Timeout. | |
302 Could not open file. | |
434 Unable to convert string to selected CodePage. | |
1105 Already connecting. If you want to reconnect, close the current connection first. | |
1117 You need to connect first. | |
1119 You cannot change the LocalHost at this time. A connection is in progress. | |
1120 Connection dropped by remote host. |
SSL Errors
270 Cannot load specified security library. | |
271 Cannot open certificate store. | |
272 Cannot find specified certificate. | |
273 Cannot acquire security credentials. | |
274 Cannot find certificate chain. | |
275 Cannot verify certificate chain. | |
276 Error during handshake. | |
280 Error verifying certificate. | |
281 Could not find client certificate. | |
282 Could not find server certificate. | |
283 Error encrypting data. | |
284 Error decrypting data. |
TCP/IP Errors
10004 [10004] Interrupted system call. | |
10009 [10009] Bad file number. | |
10013 [10013] Access denied. | |
10014 [10014] Bad address. | |
10022 [10022] Invalid argument. | |
10024 [10024] Too many open files. | |
10035 [10035] Operation would block. | |
10036 [10036] Operation now in progress. | |
10037 [10037] Operation already in progress. | |
10038 [10038] Socket operation on non-socket. | |
10039 [10039] Destination address required. | |
10040 [10040] Message too long. | |
10041 [10041] Protocol wrong type for socket. | |
10042 [10042] Bad protocol option. | |
10043 [10043] Protocol not supported. | |
10044 [10044] Socket type not supported. | |
10045 [10045] Operation not supported on socket. | |
10046 [10046] Protocol family not supported. | |
10047 [10047] Address family not supported by protocol family. | |
10048 [10048] Address already in use. | |
10049 [10049] Can't assign requested address. | |
10050 [10050] Network is down. | |
10051 [10051] Network is unreachable. | |
10052 [10052] Net dropped connection or reset. | |
10053 [10053] Software caused connection abort. | |
10054 [10054] Connection reset by peer. | |
10055 [10055] No buffer space available. | |
10056 [10056] Socket is already connected. | |
10057 [10057] Socket is not connected. | |
10058 [10058] Can't send after socket shutdown. | |
10059 [10059] Too many references, can't splice. | |
10060 [10060] Connection timed out. | |
10061 [10061] Connection refused. | |
10062 [10062] Too many levels of symbolic links. | |
10063 [10063] File name too long. | |
10064 [10064] Host is down. | |
10065 [10065] No route to host. | |
10066 [10066] Directory not empty | |
10067 [10067] Too many processes. | |
10068 [10068] Too many users. | |
10069 [10069] Disc Quota Exceeded. | |
10070 [10070] Stale NFS file handle. | |
10071 [10071] Too many levels of remote in path. | |
10091 [10091] Network subsystem is unavailable. | |
10092 [10092] WINSOCK DLL Version out of range. | |
10093 [10093] Winsock not loaded yet. | |
11001 [11001] Host not found. | |
11002 [11002] Non-authoritative 'Host not found' (try again or check DNS setup). | |
11003 [11003] Non-recoverable errors: FORMERR, REFUSED, NOTIMP. | |
11004 [11004] Valid name, no data record (check DNS setup). |