E-Payment Integrator 2020 C++ Edition

Questions / Feedback?

ICharge Gateway Setup and Required Properties

This page contains the available methods, properties, and additional setup information for each gateway.

3DSI EC-Linx (gw3DSI)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

MerchantLogin corresponds to the 3DSI field "MerchId" and MerchantPassword corresponds to "Pwd". You will need to add the "UserId" field with the value supplied from 3DSI using AddSpecialField. The TransactionId property is required for all transactions. Captures of previous auth-only transactions must have the same TransactionId as the original authorization. The Credit method is used for both credits and voids, and the TransactionId must be different than the original authorization. (The TransactionId from the original authorization should be passed in the Credit's TransactionId parameter).

5th Dimension Logistics (gw5thDimension)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The MerchantLogin property corresponds to the 5th Dimension field "mkey".

ACH Federal (gwACHFederal)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

ACH Payments (gwACHPayments)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Adyen (gwAdyen)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The MerchantLogin property maps to the Webservice User, and the password is the password given to that user. These values are accessible from the Adyen's online management console (located at https://ca-live.adyen.com/ or https://ca-test.adyen.com/). You must also set the "TerminalId" configuration setting with the name of your merchant account. Note that this gateway does not make a distinction between Sales and Authorization-Only transactions in the API. Instead, the management console has global settings that control when captures are made. (In other words; you can make only sale transactions, or only auth-only transactions. You cannot send both). You may need to set the "CurrencyCode" config depending on your locale.

American Payment Solutions (gwAmericanPaymentSolutions)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, a value of "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The APSRequestType configuration setting can be used to allow the class to send requests to add, update, or delete customer vault records. After adding a customer vault record, the CustomerId property will contain the customer vault Id. This same Id can be used when making transaction requests, or to update or delete that customer vault record.

Note that, prior to updating an existing customer vault record, you should query it to pre-populate the class with the information currently stored in the customer vault record. If you fail to do this, and send an update request without all of the existing values, then the gateway may clear any fields you did not resubmit in your update request.

The following table shows how various American Payment Solutions gateway request fields are represented in the class. Any fields not listed here from the gateway documentation can be added before making the request using the AddSpecialField method.

APS Field NamesICharge Equivalent
usernameMerchantLogin property.
passwordMerchantPassword property.
ccexp, ccnumber, and cvvCard* properties.
address1, address2, city, country, customer_vault_id, email,
fax, firstname, lastname, phone, state, and zip
Customer* properties.
shipping_address1, shipping_address2, shipping_city, shipping_country,
shipping_email, shipping_firstname, shipping_lastname, shipping_phone,
shipping_state, and shipping_zip
Shipping* properties.
amountTransactionAmount property.
currencyCurrencyCode configuration setting.
orderdescriptionTransactionDesc property.
orderidInvoiceNumber property.
authorization_codeAuthCode property.
transactionid (when sending)The transactionId parameter of the Capture,
Refund, and VoidTransaction methods.
duty_amount, ponumber, ship_from_postal, shipping_postal, shipping, and taxThe Level2 class.
item_commodity_code, item_description, item_discount_amount, item_discount_rate,
item_product_code, item_quantity,item_tax_amount, item_tax_rate, item_tax_type,
item_total_amount, item_unit_cost, and item_unit_of_measure
The Level3 class.
type and customer_vaultSet automatically.

Authorize.NET AIM (gwAuthorizeNet)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

This gateway has a unique security feature. To use it, you must add the secret hash value provided by the Authorize.Net merchant web interface to the "HashSecret" configuration setting (via the Config method). Both of these values are provided by the Authorize.Net merchant web interface, which is used to set up your account. For example; Config("HashSecret=myhashvalue"). If no hash secret is supplied in the config method, the hash value returned by the server will NOT be checked.

Authorize.NET XML (gwAuthorizeNetXML)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Authorize.NET has a large number of level 2 and 3 fields that are supported through the AddSpecialField method of the Level2 component. Note that some of the fields have the same name. Those fields are listed in the table below, which shows the appropriate name to pass to the AddSpecialField method:

Authorize.NET XML Field Special field name
name(tax) taxName
description(tax) taxDescription
name(duty) dutyName
description(duty) dutyDescription
name(shipping) shippingName
description(shipping) shippingDescription
shipFrom fields shipFrom[*] (e.g. "shipFromFirstName")

Additionally, any extra field that applies to a specific line item can be added through the AddSpecialField method of the Level3 component. In that case the field name should be in the format "i:fieldname", where i is the index of the line item the field should be added to.

This gateways implements the Authorize.NET's Advanced Integration Method (AIM) XML API.

Authorize.NET CIM (gwAuthorizeNetCIM)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway performs transactions using customer profiles stored via Authorize.NET's Customer Information Manager (CIM). Therefore ID's will be used instead of payment, billing, and shipping information. The ID's are specified via the following configs: "AuthNetCIMProfileId", "AuthNetCIMPaymentProfileId", and "AuthNetCIMShippingProfileId".

Note: Customer profiles can be managed via the RecurringBilling class.

Bank Of America (gwBankOfAmerica)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The "HashSecret" configuration setting is required by this gateway as an Hmac calculation must be computed and sent in the Authorization header of the request. "HashSecret" must be set to the Hmac Key generated for you by the gateway. Note the component handles the computation of the Hmac.

The CustomerFullName is also required to be specified and an exception will be thrown if not set.

AuthCode is used to perform tagged transactions (transactions that do not require the Card data to be specified). The value to specify within AuthCode is the value contained within ResponseApprovalCode after a successful authorization. This transactions are only applicable for Capture, VoidTransaction, and Refund transactions.

Barclay (gwBarclay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The "UserId" configuration setting is required to be set.

BASYS Gateway (gwBASYS)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not available for this gateway.

TestMode is supported and when set to "True", test transactions can be sent using a live account that will not be captured and settled.

Other fields can also be set by calling AddSpecialField.

This Gateway does not have a test URL. Transactions will be processed using the production server.

This gateway performs transactions using customer profiles. Therefore Id's will be used instead of credit card information. To process transactions using customer profiles, "BASYSProcessRecurringCredit" configuration setting must be set to True. Also "BASYSCardInfoKey" must be set to the Credit Card Info Key obtained from RecurringBilling class at the time the payment record was created, and "MerchantCode" configuration setting must be set to the Merchant ID which is also known as Merchant Number or RPNum.

Our implementation supports BASYS Tokenization implementation via the "BASYSTokenMode" and "BASYSToken" configuration settings (it is not required that you use tokenization). To process a transaction using a token, set "BASYSProcessTokenCredit" configuration setting to True. Tokenization can not be used to Capture or Refund a transaction.

Note: A token can be obtained from RecurringBilling class

Bambora (gwBambora)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

You must set a "username" and "password" in the merchant interface, and add them to the class via the AddSpecialField method if you wish to use any transaction other than Sale.

Bluefin (gwBluefin)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

BluePay (gwBluePay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

BlueSnap (gwBlueSnap)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is supported and when set to "True" test transactions can be sent using a sandbox account that will not be captured and settled.

When using the Sale or AuthOnly method, there are a number of combinations of request fields that BlueSnap will accept. Please refer to BlueSnap's Payment API JSON documentation for more information about which fields to use for your use-case. You can then use the following table to determine how you should specify each BlueSnap field supported by the ICharge class:

The BlueSnapRetrieveTransaction configuration setting can be used to make the class retrieve a previously created transaction. After retrieving the transaction, the class will automatically populate its properties, special fields, and configuration settings based on the retrieved transaction's data.

BlueSnap Field NameICharge Equivalent
amountTransactionAmount property.
cardHolderInfo object fieldsCustomer* properties, and special field personalIdentificationNumber.
cardTransactionType (after retrieving)ResponseProcessorCode property.
creditCard object fieldsCard* properties, or special field cardLastFourDigits and set CardType. (If you wish to send encrypted card number and security code data, set the ValidateCardNumber configuration setting to False first.)
currencyCurrencyCode configuration setting.
merchantTransactionIdInvoiceNumber property.
pfTokenSpecial field pfToken.
softDescriptorTransactionDesc property.
transactionFraudInfo object fieldsSpecial fields fraudSessionId, company, and enterpriseSiteId, and the PayerIP configuration setting.
transactionFraudInfo.enterpriseUdfs contentBlueSnapEnterpriseUdfs configuration setting.
transactionFraudInfo.shippingContactInfo object fieldsShipping* properties.
transactionMetaData contentBlueSnapTransactionMetaData configuration setting.
vaultedShopperIdSpecial field vaultedShopperId.
vendorInfo object fieldsSpecial fields vendorId, commissionPercent, and commissionAmount.
wallet.applePay.encodedPaymentTokenApplePayData configuration setting.
walletIdSpecial field walletId.

Note: The RecurringBilling class can be used to create and update vaulted shopper profiles.

When using the Capture or VoidTransaction method, only the transactionId parameter is relevant. (BlueSnap does not support capturing a different amount than was originally authorized.)

When using the Refund method, both the transactionId and the refundAmount parameters are relevant (though the latter is optional, and can be left empty to refund the whole amount captured). You may also specify a refund reason or a vendor amount by adding special fields with the names reason and vendoramount, respectively.

BrainTree (gwBrainTree)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

CardPointe (gwCardPointe)

Supported Methods:

MerchantLogin and MerchantPassword are required properties. The MerchantCode configuration setting is also used to specify the Merchant Id.

The TransactionAmount can be represented with a decimal ("10.00" = $10) or as cents without a decimal ("1000" = $10).

The CurrencyCode configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

CardPointe Field NameICharge Equivalent
merchidMerchantCode configuration setting.
amountTransactionAmount property.
accountCardNumber property.
expiryCardExpMonth and CardExpYear properties.
cvv2CardCVVData property.
currencyCurrencyCode configuration setting.
nameCustomerFullName property.
address, city, postal, region, country, phone, and emailCustomer properties.
orderid/invoiceidInvoiceNumber property.
authcodeAuthCode property.
taxexempt, taxamount, ponumber, frtamnt, dutyamnt, shiptozip, and shipfromzipLevel2 properties.
orderdate and shiptocountryLevel2 SpecialField properties.
items propertiesLevel3 LineItems properties.
userfieldsSpecialField properties.

When using the Refund method, both the transactionId and the refundAmount parameters are relevant (though the latter is optional, and can be left empty to refund the whole amount captured).

Customer profiles can be used with the CustomerProfileId configuration setting. To create a profile for a customer, set CustomerProfileId to "Y" when making a transaction. Afterward, the CustomerProfileId configuration setting will contain the profile Id and account Id, separated by a '/'. To send a profile Id during a transaction, set CustomerProfileId to the value you want to send (including the '/' and account Id).

When storing card information or using stored card information, the MITFlag and RecurringIndicator configuration settings should be used. MITFlag should be set to False for a customer-initiated transaction and True for a merchant-initiated transaction. RecurringIndicator should be set to N for an unscheduled transaction, or Y for a scheduled recurring transaction. MITFlag will only be sent when RecurringIndicator has been set.

Chase (gwChase)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Your MerchantLogin will be the "Store Number" provided by Linkpoint. This gateway requires a client certificate, which can be set using the SSL Certificate properties. Void transactions with this gateway require a transaction timestamp. This timestamp can be retrieved from the original AuthOnly response through the GetResponseVar; method. Example:

icharge.AuthOnly(); 
String tdate = icharge.GetResponseVar("/root/r_tdate");

This value can be set for the VoidTransaction with the AddSpecialField method. Example:

icharge.AddSpecialField("tdate","YourDate");
icharge.VoidTransaction("TransactionId");

Converge (gwConverge)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

The "ssl_merchant_id" provided by Elavon is your MerchantLogin, and "ssl_merchant_pin" is your MerchantPassword. If provided with an "ssl_user_id", set the "MyVirtualMerchantUserId" configuration setting via the Config method.

Cyber Cash (gwCyberCash)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

CyberSource (gwCyberSource)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

For the possible values for the MITType configuration setting, see the subsequentAuthReason field in CyberSource's documentation.

Data Cash (gwDataCash)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

InvoiceNumber is required for all transactions and must be between 6 and 30 digits in length.

DataCash provides two methods of voiding transactions. The default method for voiding a transaction is by calling VoidTransaction using the TransactionId. DataCash also allows you to void transactions based on the InvoiceNumber (note that your account must be set up to use reference based cancellations).

ECX (gwECX)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

This gateway requires the same setup as the Authorize.Net (1) gateway.

eProcessing (gwEprocessing)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Accounts with this gateway may be configured to require an additional shared secret for stronger authentication. This is called the "RestrictKey". If this is configured for your account you may add this value using the AddSpecialField method like so:

retail.AddSpecialField("RestrictKey", "yFqqXJh9Pqnugfr");

Eway (gwEway)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Your MerchantLogin will be the eWay Customer Id, and the MerchantPassword is only required for performing refunds.

ExPay (gwExPay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Your MerchantLogin will be the Payee ID Key.

The "HashSecret" configuration setting is required by this gateway as an Hmac calculation must be computed and sent in the request. "HashSecret" must be set to the Payee Secret Key provided by the gateway. Note the component handles the computation of the Hmac.

The "ExPayGetMethods" and "ExPayGetStatus" configuration settings are available to perform additional requests not directly available via the component methods.

In addition to the GetResponseVar; method, the "X***" configuration settings are available to help navigate the JSON response. Below is an example of parsing a "GetMethods" response.

ICharge1.Config("XPath=/json/response/methods");
String count = ICharge1.Config("XChildrenCount"); // Returns the number of methods, i.e. 3
ICharge1.Config("XPath=/json/response/methods/[1]"); // XPath Indexes are 1-based
String name = ICharge1.Config("XChildrenName[0]"); // Array indexes are 0-based.  i.e. name = "id"
String value = ICharge1.Config("XChildrenXText[0]"); // Array indexes are 0-based.  i.e. value = "77"

Fast Transact (gwFastTransact)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

First Atlantic Commerce (gwFirstAtlantic)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires the use of a unique InvoiceNumber. AuthOnly and Sale transactions must have a new unique value. All subsequent transactions (Capture, Refund, or VoidTransaction) must use the same InvoiceNumber used in the initial authorization.

Note: VoidTransaction is used to perform a reversal for this gateway and TransactionAmount is used to specify the reversal amount.

First Data (gwFirstData)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Your MerchantLogin will be the "Store Number" provided by Linkpoint. This gateway requires a client certificate, which can be set using the SSL Certificate properties. Void transactions with this gateway require a transaction timestamp. This timestamp can be retrieved from the original AuthOnly response through the GetResponseVar; method. Example:

icharge.AuthOnly(); 
String tdate = icharge.GetResponseVar("/root/r_tdate");

This value can be set for the VoidTransaction with the AddSpecialField method. Example:

icharge.AddSpecialField("tdate","YourDate");
icharge.VoidTransaction("TransactionId");

First Data E4 (gwFirstDataE4)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The "HashSecret" configuration setting is required by this gateway as an Hmac calculation must be computed and sent in the Authorization header of the request. "HashSecret" must be set to the Hmac Key generated for you by the gateway. Note the component handles the computation of the Hmac.

The "FDMSKeyId" configuration setting is also required by this gateway. This configuration setting is used to specify the Key Id, obtained from FDMS, that corresponds to the HMAC Key (specified via HashSecret) and is sent within the Authorization header of the request.

The CustomerFullName is also required to be specified and an exception will be thrown if not set.

AuthCode is used to perform tagged transactions (transactions that do not require the Card data to be specified). The value to specify within AuthCode is the value contained within ResponseApprovalCode after a successful authorization. This transactions are only applicable for Capture, VoidTransaction, and Refund transactions.

First Data PayPoint (gwFirstDataPayPoint)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Global Iris (gwGlobalIris)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The Global Iris gateway does not use a password, but rather requires a SHA-1 hash using a secret key. The secret key assigned to you will be specified via MerchantPassword and the component will compute the SHA-1 hash. Global Iris Refund transactions require a refund password in addition to MerchantPassword. This password can be specified using GlobalIrisRefundPassword.

InvoiceNumber is required for all transactions and must be between 1 and 40 digits in length.

Global Iris only supports the following credit card types: Visa, MasterCard, American Express, and Maestro. Any other card type will be rejected by the server (Setting the card number to a card outside of these ranges will cause an error).

Nuvei / GlobalOnePay (gwNuvei)

Supported Methods:

Authentication with Nuvei is performed by providing the TerminalId and HashSecret. MerchantLogin and MerchantPassword are not used.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

For initial transactions (Sale, AuthOnly, and Credit) an InvoiceNumber must be specified. Follow-up transactions (Capture and Refund) must specify the TransactionId that Nuvei returned in the response to the initial transaction. A transaction can only be voided by refunding the full amount of the transaction.

The "CurrencyCode" configuration setting is available for this gateway, but the value must match the currency of the terminal. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

A card token can be used in place of credit card details using the CardToken configuration setting. Tokens can be managed with the RecurringBilling class.

Nuvei allows for adding custom fields to a request, which will be stored with the transaction as additional information. Custom fields can be added to an AuthOnly or Sale request using the AddSpecialField method. A custom field must first be configured in the terminal's settings before it will be accepted in a request.

Note: When Nuvei is chosen as the gateway it defaults to the testing URL. The live URL is provided by Nuvei after testing is complete.

Global Payroll (gwGlobalPayroll)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

A ClientId must also be set for this gateway via the AddSpecialField method.

ICharge1.AddSpecialField("ClientID", "1009");

Our implementation supports Global Payroll Tokenization via the "GlobalPayrollToken" configuration setting (it is not required that you use tokenization). To process a transaction using a token, set "GlobalPayrollToken" configuration setting to the token obtained by calling the "GlobalPayrollCreateToken" action config. Tokenization can not be used to Capture or Refund a transaction.

GoEMerchant (gwGoEMerchant)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

OmniFund / GoToBilling (gwOmniFund)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

CustomerId is a required field.

Heartland (gwHeartland)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires you set the following configuration settings with the values supplied by Heartland: "HeartlandLicenseId", "HeartlandSiteId", and "HeartlandDeviceId". In addition, you may optionally set the "HeartlandSiteTrace", "HeartlandDeveloperId", and "HeartlandVersionNumber" configuration settings for this gateway.

Our implementation supports Heartland's Tokenization implementation via the "HeartlandTokenMapping" and "HeartlandTokenValue" configuration settings (it is not required that you use tokenization). Note: Heartland's Tokenization implementation requires that your merchant account is properly configured to support tokenization. In addition to the account configurations, there are special pricing considerations for merchants in the production environment. Therefore merchants who wish to use tokenization should contact their Relationship Manager for more details and to configure their account appropriately.

Heartland Portico (gwHeartlandPortico)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

This gateway requires you set the following configuration settings with the values supplied by Heartland: "HeartlandLicenseId", "HeartlandSiteId", and "HeartlandDeviceId". In addition, you may optionally set the "HeartlandSiteTrace", "HeartlandDeveloperId", and "HeartlandVersionNumber" configuration settings for this gateway.

Alternatively, if Heartland has provided you with a secret API key you can specify only the "HeartlandSecretAPIKey" configuration setting.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Our implementation supports Heartland's Tokenization implementation via the "HeartlandTokenMapping" and "HeartlandTokenValue" configuration settings (it is not required that you use tokenization). Note: Heartland's Tokenization implementation requires that your merchant account is properly configured to support tokenization. In addition to the account configurations, there are special pricing considerations for merchants in the production environment. Therefore merchants who wish to use tokenization should contact their Relationship Manager for more details and to configure their account appropriately.

HSBC (gwHSBC)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

The user's "Name" maps to MerchantLogin, and "password" maps to MerchantPassword.

Note: The TestMode property can be overridden by using the AddSpecialField method to add the "Mode" field.

ICharge1.AddSpecialField("Mode", "Y");

Innovative (gwInnovative)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Intellipay (gwIntellipay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

ITransact (gwITransact)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

JetPay XML (gwJetPay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

MerchantLogin must be set to the "TerminalId" JetPay field.

TransactionId is required for Sale, AuthOnly, Credit and Force transactions.

AuthCode is required when performing VoidTransaction transactions.

KartePay (gwKartePay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The TransactionId property and the BankName and PayerIP configuration settings are all required for Sale transactions.

LinkPoint (gwLinkPoint)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Your MerchantLogin will be the "Store Number" provided by Linkpoint. This gateway requires a client certificate, which can be set using the SSL Certificate properties. Void transactions with this gateway require a transaction timestamp. This timestamp can be retrieved from the original AuthOnly response through the GetResponseVar; method. Example:

icharge.AuthOnly(); 
String tdate = icharge.GetResponseVar("/root/r_tdate");

This value can be set for the VoidTransaction with the AddSpecialField method. Example:

icharge.AddSpecialField("tdate","YourDate");
icharge.VoidTransaction("TransactionId");

Litle (gwLitle)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway uses the TransactionDesc property to place transactions in different categories. If TransactionDesc is left blank the transaction will fail.

This gateway also requires you set the "MerchantCode" configuration setting with the Merchant Id supplied to you by Litle.

Merchant Anywhere (gwMerchantAnywhere)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Use the "RegKey" provided by MerchantAnywhere as your MerchantPassword.

Merchant E-Solutions (gwMerchantESolutions)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Merchant Partners (gwMerchantPartners)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Note: To send encrypted card data, the "ValidateCardNumber" configuration setting must be set to 'False' prior to setting the Card data (using either the Number of the MagneticStripe property). You will also need to set the "MerchantPartnersReaderType" configuration setting the value corresponding to the card reader being used.

Metrobank (gwMetrobank)

Supported Methods:

MerchantLogin and MerchantPassword are required properties. For AMA requests, the UserId and UserPassword configuration settings are also used to specify the operator's .

This gateway requires the use of a unique TransactionId for all requests.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The CurrencyCode configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component. Testing is done with a separate account that uses your normal Merchant Id with TEST at the front, like "TEST123456123456".

Metrobank Field NameICharge Equivalent
vpc_MerchantMerchantLogin property.
vpc_AccessCodeMerchantPassword property.
vpc_MerchTxnRefTransactionId property.
vpc_MerchTxnRefTransactionId property.
vpc_OrderInfoInvoiceNumber property.
vpc_AmountTransactionAmount property.
vpc_CardNumCardNumber property.
vpc_CardExpCardExpMonth and CardExpYear properties.
vpc_CurrencyCurrencyCode configuration setting.
vpc_LocaleMetrobankLocale configuration setting.
vpc_ReturnURLMetrobankReturnURL configuration setting.
vpc_AVS_Street, vpc_AVS_City, vpc_AVS_StateProv, vpc_AVS_PostCode, vpc_AVS_CountryCustomer properties.
vpc_CardSecurityCodeCardCVVData property.
vpc_TxSourceECI configuration setting.
vpc_CustomerIPAddressPayerIP configuration setting.
vpc_DescTransactionDesc property.
vpc_CardIssueNumberCardIssueNumber configuration setting.
vpc_CardStartDateCardStartYear and CardStartMonth configuration settings.

Other fields can also be set by calling AddSpecialField.

Metrobank supports 3-Party requests where the merchant collects card data and redirects the customer to the payment gateway for 3DS verification. When using that model of request, set the MetrobankLocale, MetrobankReturnURL, and MetrobankThreePartyRequest configuration settings before making a Sale or AuthOnly request. Then query the RawRequest configuration setting for the request string, which can be sent as POST data when the customer is redirected. When the user is finished authenticating, the response will be sent to the MetrobankReturnURL in the query string of an HTTP request. You can set the MetrobankThreePartyResponse configuration setting to the query string you received from the payment server to parse it into the component's Response fields.

Metrobank supports voiding Sale, Capture, and Refund transactions. You can specify which kind of transaction to void using the MetrobankVoidType configuration setting.

MIT (gwMIT)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "MXN".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

In addition to your merchant login and password, the MIT Gateway also requires the following configs to be specified: "MerchantCode", "MITCompanyId", "MITBranchId", "MITCountry", and "MITTPOperation".

When performing a Refund transaction, AuthCode is required to be set to the value returned in the ApprovalCode obtained from the response of the original authorization.

Moneris Canada (gwMoneris)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

InvoiceNumber is required for all transactions.

Moneris USA (gwMonerisUSA)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

InvoiceNumber is required for all transactions.

Monetra (gwMonetra)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway implementation is using the test environment URL by default. When moving to production please set the GatewayURL property to point to the production server.

Note: Automatic settlement must be activated on the gateway portal.

MPCS (gwMPCS)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

This gateway requires the same setup as the Authorize.Net (1) gateway.

My Virtual Merchant (gwMyVirtualMerchant)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

The "ssl_merchant_id" provided by Elavon is your MerchantLogin, and "ssl_merchant_pin" is your MerchantPassword. If provided with an "ssl_user_id", set the "MyVirtualMerchantUserId" configuration setting via the Config method.

Netbanx (gwNetbanx)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

In addition to your merchant login and password, the Netbanx Gateway also requires an additional "accountNum" field, which must be added using "NetbanxAccountNumber" config.

InvoiceNumber is required for all transactions.

NetBilling (gwNetBilling)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Network Merchants (gwNetworkMerchants)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

NexCommerce (gwNexCommerce)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Ingenico / Ogone (gwIngenico)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The "UserId" configuration setting is required to be set.

Orbital (gwOrbital)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

For the possible values for the MITType configuration setting, see the MITMsgType field in Orbital's documentation.

Orbital may accept Level3 Data. Use the below table to understand which Orbital field maps to the EPLineItem field.

Orbital Field NameLevel3 LineItem Equivalent
PC3DtlQtyQuantity
PC3DtlCommCdCommodityCode
PC3DtlDescDescription
PC3DtlUOMUnits
PC3DtlUnitCostUnitCost
PC3DtlProdCdProductCode
PC3DtlDiscDiscountAmount
PC3DtlDiscountRateDiscountRate
PC3DtllinetotTotal
PC3DtlGrossNetTaxable
PC3DtlTaxAmtTaxAmount
PC3DtlTaxRateTaxRate
PC3DtlTaxTypeTaxType

Anything not covered in the above table should be added with AddSpecialField.

To configure this gateway please note that your merchant/group Id is your MerchantLogin, and your Bank Id (BIN) will be your MerchantPassword (which specifies to use the Salem or Tampa [PNS] platform). The Terminal Id is defaulted to "001" (but can be changed via in Config).

Pay Direct (gwPayDirect)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires PayDirectSettleMerchantCode to be set as it is used in authorization.

In addition to TransactionAmount the amount details are required to be set using PayDirectConvenienceFee and PayDirectMerchantAmount. If these fields are not set, the component will internally set the fields. Please see the config definitions for further details.

Payeezy Gateway (gwPayeezy)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The "HashSecret" configuration setting is required by this gateway as an Hmac calculation must be computed and sent in the Authorization header of the request. "HashSecret" must be set to the Hmac Key generated for you by the gateway. Note the component handles the computation of the Hmac.

The "FDMSKeyId" configuration setting is also required by this gateway. This configuration setting is used to specify the Key Id, obtained from FDMS, that corresponds to the HMAC Key (specified via HashSecret) and is sent within the Authorization header of the request.

The CustomerFullName is also required to be specified and an exception will be thrown if not set.

AuthCode is used to perform tagged transactions (transactions that do not require the Card data to be specified). The value to specify within AuthCode is the value contained within ResponseApprovalCode after a successful authorization. This transactions are only applicable for Capture, VoidTransaction, and Refund transactions.

Pay Junction (gwPayJunction)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Pay Leap (gwPayLeap)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

This gateway requires the CustomerFullName property.

Pay Point (gwPayPoint)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Rather, this gateway supports the 'test_status' SpecialField which allows values of 'true' (simulate authorized transaction), 'false' (simulated declined transaction), or 'live' (send transaction to the bank for authorization).

This gateway supports the use of the Freedom API via the PayPointFreedomAPI.

The supported methods for the Freedom API are:

For the Capture, Refund, and VoidTransaction methods, you must specify your 'remote_pswd' via a SpecialField.

Note: the AuthOnly transaction performs a deferred transaction in which an authorization takes place and funds in the cardholders account are frozen pending release but the money will not be debited. In order for these frozen funds to be released you will need to call Capture. Alternatively you can call VoidTransaction to mark a deferred transaction as cancelled (this only marks the transaction as cancelled on the PayPoint.net system and doesn't send a request to the bank to remove the authorization).

PayFlow Link (gwPayFlowLink)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

PayFlow Pro (gwPayFlowPro)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

The default "Partner" special field is set to "PayPal". You may be required to change it depending on your account setup. If your User Id and Vendor Id (Merchant Login Id) are different, supply the Vendor Id to MerchantLogin and add the User Id like so: AddSpecialField("USER","User Id Value").

PayFuse (gwPayFuse)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

The user's "Name" maps to MerchantLogin, and "password" maps to MerchantPassword.

Note: The TestMode property can be overridden by using the AddSpecialField method to add the "Mode" field.

ICharge1.AddSpecialField("Mode", "Y");

Payment Express (gwPaymentExpress)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Payment WorkSuite [3DSI] (gwPaymentWorkSuite)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USDollars".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Note: The Payment WorkSuite gateway verifies AVS address and zip code data individually. Therefore the ResponseAVSResult will contain both results separated by a '/' (i.e. [AddressAVS]/[ZipCodeAVS]). For example if the address matched but the zip code did not match, ResponseAVSResult will return: Matched/NotMatched.

Forte (gwForte)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Payscape (gwPayscape)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

PayTrace (gwPayTrace)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Payvision (gwPayvision)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires that you set a unique InvoiceNumber for each request made (AuthOnly, Capture, Void, etc.).

After successful authorizations, the "PayvisionTransactionGuid" configuration will be populated along with the response properties. This configuration setting is also required to be specified, using the value obtained from the authorization, when performing subsequent transactions (such as Capture, Refund, Force, and VoidTransaction).

PayWiser (gwPayWiser)

Supported Methods:

MerchantLogin and TransactionDesc are required properties.

MerchantPassword is not applicable.

TerminalID and DynamicDescriptor configuration settings are required for PayWiser Gateway.

BuyerIP and TerminalIP fields are required and must be sent via the AddSpecialField method. For example:

icharge.AddSpecialField("BuyerIP", "1.1.1.1");
icharge.AddSpecialField("TerminalIP", "2.2.2.2");

Other optional fields like Surcharge and CashBack (valid only for Sale) can also be set by calling AddSpecialField.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "EUR".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires the use of a unique TransactionId.

After a successful Sale, the PayWiserReserveReferenceId and PayWiserCaptureReferenceId configuration settings will be populated along with the response properties. If PayWiserTokenizeCard is set to True, PayWiserTokenReferenceId will also be populated after a successful Sale.

A card token or a token reference id can be used to authorize a credit card. A card token can be obtained via the RecurringBilling class by setting the PayWiserRequestType configuration setting to 1.

PhoeniXGate (gwPhoeniXGate)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not available for this gateway.

TestMode is supported and when set to "True", test transactions can be sent using a live account that will not be captured and settled.

Other fields can also be set by calling AddSpecialField.

This Gateway does not have a test URL. Transactions will be processed using the production server.

This gateway performs transactions using customer profiles. Therefore Id's will be used instead of credit card information. To process transactions using customer profiles, "PhoeniXGateProcessRecurringCredit" configuration setting must be set to True. Also "PhoeniXGateCardInfoKey" must be set to the Credit Card Info Key obtained from RecurringBilling class at the time the payment record was created, and "MerchantCode" configuration setting must be set to the Merchant ID which is also known as Merchant Number or RPNum.

Our implementation supports PhoeniXGate Tokenization implementation via the "PhoeniXGateTokenMode" and "PhoeniXGateToken" configuration settings (it is not required that you use tokenization). To process a transaction using a token, set "PhoeniXGateProcessTokenCredit" configuration setting to True. Tokenization can not be used to Capture or Refund a transaction.

Note: A token can be obtained from RecurringBilling class

Planet Payment (gwPlanetPayment)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "840".

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires you to set the "TerminalId" configuration setting. MerchantLogin maps to the company KEY, and MerchantPassword maps to the PIN.

PlugNPay (gwPlugNPay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

PRIGate (gwPRIGate)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Use the "RegKey" provided by PRIGate as your MerchantPassword.

Priority Payment Systems (gwPriorityPaymentSystems)

Supported Methods:

MerchantLogin and MerchantPassword are required properties, and MerchantCode is a required configuration setting.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, a value of "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is supported and when set to "True" test transactions can be sent using a sandbox account that will not be captured and settled.

The following table shows how various Priority Payment Systems gateway request fields are represented in the class:

Priority Payment Systems Field NamesICharge Equivalent
Priority Payment Systems usernameMerchantLogin property.
Priority Payment Systems passwordMerchantPassword property.
Transaction Id (Refund and VoidTransaction requests only)TransactionId property (or the TransactionId method parameter).
amountTransactionAmount property.
authCodeAuthCode property.
clientReferenceSpecial field clientReference.
currencyCurrencyCode configuration setting.
cardAccount.address objectCustomer* properties.
cardAccount.avsStreet and cardAccount.avsZipCustomerAddress and CustomerZip properties.
cardAccount.name and customerNameCustomerFullName property.
cardAccount.number, cardAccount.expiryMonth, cardAccount.expiryYear, and cardAccount.cvvCard* properties
customerCodeCustomerId property.
invoiceInvoiceNumber property.
merchantIdMerchantCode configuration setting.
metaSpecial field meta.
shipToCountrySpecial field shipToCountry.
shipAmount, shipToZip, tax, and taxExemptThe FreightAmount, ShipToZip, TaxAmount, and TaxExempt properties of the Level2 class.

The following table shows which Priority Payment Systems gateway response fields, when present, the class's API members reflect:

ICharge API MembersPriority Payment Systems Field Names
ResponseApprovalCode property.authCode
ResponseAVSResult property.risk.avsResponseCode
ResponseCode property.status, or HTTP status code for Refund and VoidTransaction requests and error responses
ResponseCVVResult property.risk.cvvResponseCode
ResponseErrorCode property.errorCode for error responses
ResponseErrorText property.details[0] for error responses
PPSPaymentToken configuration setting.paymentToken
ResponseProcessorCode property.responseCode for error responses
ResponseText property.authMessage, or message for error responses
ResponseTransactionId property.id

Notes:

  • Special fields can be added using the AddSpecialField method.
  • Level 2 fields are passed to the ICharge class by assigning the value returned by the Level2.GetAggregate method to the ICharge.Level2Aggregate property. (Except for the shipToCountry field, which should be added directly to the ICharge class's special fields.)
  • Note that Priority Payment Systems expects that the TransactionAmount includes the Level2.TaxAmount, if one is specified.
  • When using the Capture method:
    • The AuthCode property is required to be set to the approval code returned in the original AuthOnly response.
    • The PPSPaymentToken configuration setting is required to be set to the payment token (not the transaction Id) returned in the original AuthOnly response. The TransactionId method parameter is ignored.
    • The TransactionAmount property (or the CaptureAmount method parameter) is required to be set, and may differ from the amount originally authorized.
  • Partial refunds are not supported; the TransactionAmount (and the RefundAmount method parameter) are ignored when calling the Refund method.

ProPay XML (gwProPay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

PSIGate HTML (gwPSIGate)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

PSIGate XML (gwPSIGateXML)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Note when performing a VoidTransaction, InvoiceNumber is required to be set to the value returned within ResponseResponseInvoiceNumber of the original transaction that is being voided.

QuickBooks Merchant Services (gwQBMS)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

For the QBMS gateway, your App Login is used for the MerchantLogin, and the Connection Ticket for the MerchantPassword. (Using the Application Id in the MerchantLogin property will cause an error).

TransactionId is required for all transactions.

QuickBooks Payments (gwQBPayments)

Supported Methods:

MerchantLogin is a required property, and should be set to the value of a bearer token obtained through OAuth 2.0. For more information on getting a bearer token, see the documentation for the OAuth component.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The CurrencyCode configuration setting is available for this gateway. If it is not set, no currency field will be sent.

QB Payments Field NameICharge Equivalent
Request-IdTransactionId property.
tokenCardToken configuration setting.
currencyCurrencyCode configuration setting.
amountTransactionAmount property.
context.mobileQBPaymentsMobile configuration setting.
context.deviceinfo fieldsSpecialField properties.
context.taxLevel2.TaxAmount property.
context.recurringRecurringIndicator configuration setting.
descriptionTransactionDesc property.
card.numberCardNumber property.
card.expmonthCardExpMonth property.
card.expyearCardExpYear property.
card.cvcCardCVVData property.
card.nameCustomerFullName property.
card.address.streetAddress, card.address.city, card.address.postalCode, card.address.region, and card.address.countryCustomer properties.

To use a card on file, set the UseCardOnFile configuration setting to true and put the card Id in place of the CardNumber property

This gateway uses a boolean value to indicate a recurring transaction, which will only be included in the request if RecurringIndicator is set to "true".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

TransactionId is required for all transactions.

Repay (gwRepay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not available for this gateway.

TestMode is supported and when set to "True", test transactions can be sent using a live account that will not be captured and settled.

Other fields can also be set by calling AddSpecialField.

This Gateway does not have a test URL. Transactions will be processed using the production server.

This gateway performs transactions using customer profiles. Therefore Id's will be used instead of credit card information. To process transactions using customer profiles, "RepayProcessRecurringCredit" configuration setting must be set to True. Also "RepayCardInfoKey" must be set to the Credit Card Info Key obtained from RecurringBilling class at the time the payment record was created, and "MerchantCode" configuration setting must be set to the Merchant ID which is also known as Merchant Number or RPNum.

Our implementation supports Repay Tokenization implementation via the "RepayTokenMode" and "RepayToken" configuration settings (it is not required that you use tokenization). To process a transaction using a token, set "RepayProcessTokenCredit" configuration setting to True. Tokenization can not be used to Capture or Refund a transaction.

Note: A token can be obtained from RecurringBilling class

RTWare (gwRTWare)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

This gateway requires the same setup as the Authorize.Net (1) gateway.

Sage Payments (gwSagePayments)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

SagePay (gwSagePay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

"RelatedSecurityKey" and "RelatedVendorTXCode" special fields are required for Refunds. These are parsed out of the original authorization response. "SecurityKey" and AuthCode are required for voids and captures.

SEC Pay (gwSECPay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Rather, this gateway supports the 'test_status' SpecialField which allows values of 'true' (simulate authorized transaction), 'false' (simulated declined transaction), or 'live' (send transaction to the bank for authorization).

This gateway supports the use of the Freedom API via the PayPointFreedomAPI.

The supported methods for the Freedom API are:

For the Capture, Refund, and VoidTransaction methods, you must specify your 'remote_pswd' via a SpecialField.

Note: the AuthOnly transaction performs a deferred transaction in which an authorization takes place and funds in the cardholders account are frozen pending release but the money will not be debited. In order for these frozen funds to be released you will need to call Capture. Alternatively you can call VoidTransaction to mark a deferred transaction as cancelled (this only marks the transaction as cancelled on the PayPoint.net system and doesn't send a request to the bank to remove the authorization).

Secure Payments (gwSecurePay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Shift4 (gwShift4)

Supported Methods:

MerchantLogin, MerchantPassword, Shift4InterfaceName, and Shift4InterfaceVersion are required properties.

The MerchantPassword should be set to the AccessToken, which can be obtained by calling the Shift4GetAccessToken action config.

This gateway requires the use of a unique TransactionId for all non-followup requests.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The CurrencyCode configuration setting is not available for this gateway.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Shift4 Field NameICharge Equivalent
CompanyNameMerchantLogin property.
AccessTokenMerchantPassword property.
InterfaceNameShift4InterfaceName configuration setting.
InterfaceVersionShift4InterfaceVersion configuration setting.
amount.taxLevel2.TaxAmount property.
amount.totalTransactionAmount property.
amount.surchargeSurchargeAmount configuration setting.
amount.tipTipAmount configuration setting.
clerk.numericIdUserId configuration setting.
transaction.invoiceTransactionId property.
transaction.purchasecard.customerCustomerId property.
transaction.purchasecard.destinationPostalCodeLevel2.ShipToZip property.
transaction.purchasecard.productDescriptorsTransactionDesc property.
transaction.cardOnFile.indicatorMITType configuration setting.
transaction.cardOnFile.usageIndicatorStoreCardOnFile configuration setting.
transaction.cardOnFile.scheduledIndicatorRecurringIndicator configuration setting.
transaction.cardOnFile.transactionIdMITPriorTransId configuration setting.
apiOptions.ALLOWPARTIALAUTHAllowPartialAuths configuration setting.
apiOptions.TAXEXEMPTLevel2.TaxExempt property.
card fieldsCard properties.
card.token.valueCardToken configuration setting.
customer.addressLine1, customer.firstName, customer.lastName, and customer.postalCodeCustomer properties.
device.manufacturerTerminalManufacturer configuration setting (Retail only).
device.modelTerminalModel configuration setting (Retail only).
device.terminalIdTerminalId configuration setting.
device.capabilityTerminalCapability configuration setting. Should be set to a JSON object with the device.capability fields from Shift4's documentation (Retail only).

Skipjack (gwSkipjack)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

This gateway requires you to set the "TerminalId" configuration setting as developer serial number for Void and Refund transactions.

Sterling XML (gwSterling)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

MerchantLogin must be set to the "SECURENETID" field of the Sterling XML gateway.

Additionally, TransactionId is required for all transactions.

Square (gwSquare)

Supported Methods:

Note: Square has deprecated the API used by this gateway setting, and currently plans to shut down the API on September 1st, 2021. For their more recent "Payments" API, use gwSquarePayments instead.

MerchantLogin is a required property.

The TransactionAmount is required to be represented as cents without a decimal point. For example, "100" would be one dollar.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

The SquareLocationId configuration setting is required to be set to a Square location Id tied to your account. When calling the Sale, AuthOnly, or Refund method, the SquareIdempotencyKey configuration setting is required as well.

Square does not allow passing raw card details. When using the Sale or AuthOnly method, either a card nonce (specified using the CardToken configuration setting) or a customer card Id (specified using the SquareCustomerCardId configuration setting) must be specified to represent a card payment method.

Square returns two Ids in every Sale and AuthOnly response: a transaction Id and a tender Id. Both values are needed in order to perform a Refund request. (A VoidTransaction request only requires the transaction Id, however.)

The following table shows how various Square gateway request fields are represented in the class:

Square Field NamesICharge Equivalent
Square access tokenMerchantLogin property.
additional_recipients arraySquareAdditionalRecipients configuration setting.
amount_money objectTransactionAmount property and CurrencyCode configuration setting.
billing_address objectCustomer* properties and special fields billing_address.organization, billing_address.address_line_3, billing_address.sublocality, billing_address.sublocality_2, billing_address.sublocality_3, billing_address.administrative_district_level_2, and billing_address.administrative_district_level_3.
buyer_email_addressCustomerEmail property.
card_nonceCardToken configuration setting.
customer_card_idSquareCustomerCardId configuration setting.
customer_idCustomerId property.
idempotency_keySquareIdempotencyKey configuration setting.
location_idSquareLocationId configuration setting.
note/reasonTransactionDesc property.
order_idSquareOrderId configuration setting.
reference_idInvoiceNumber property.
shipping_address objectShipping* properties and special fields shipping_address.organization, shipping_address.address_line_3, shipping_address.sublocality, shipping_address.sublocality_2, shipping_address.sublocality_3, shipping_address.administrative_district_level_2, and shipping_address.administrative_district_level_3.
tender_idSquareTenderId configuration setting.
transaction_idTransactionId property.

The following table shows which Square gateway response fields, when present, the class's API members reflect:

ICharge API MembersSquare Field Names
ResponseCode property.HTTP status code
ResponseErrorCode property.errors[0].category
ResponseErrorText property.errors[0].field
ResponseInvoiceNumber property.transaction.reference_id
ResponseProcessorCode property.errors[0].code
SquareTenderId configuration setting.transaction.tenders[0].id
ResponseText property.transaction.tenders[0].card_details.status (or errors[0].detail)
ResponseTransactionId property.transaction.id

Notes:

Square Payments (gwSquarePayments)

Supported Methods:

Note: This gateway setting uses Square's "Payments" API, which replaces the "Transactions" API used by gwSquare.

MerchantLogin is a required property.

The TransactionAmount is required to be represented as cents without a decimal point. For example, "100" would be one dollar.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

The SquareLocationId configuration setting may be set to a Square location Id tied to your account during a Sale or AuthOnly transaction. When calling the Sale, AuthOnly, or Refund method, the SquareIdempotencyKey configuration setting is required.

Square does not allow passing raw card details. When using the Sale or AuthOnly method, either a card nonce or a customer card Id must be specified using the CardToken configuration setting to represent a card payment method.

The following table shows how various Square gateway request fields are represented in the class:

Square Field NamesICharge Equivalent
Square access tokenMerchantLogin property.
amount_money objectTransactionAmount property and CurrencyCode configuration setting.
billing_address objectCustomer* properties and special fields billing_address.organization, billing_address.address_line_3, billing_address.sublocality, billing_address.sublocality_2, billing_address.sublocality_3, billing_address.administrative_district_level_2, and billing_address.administrative_district_level_3.
buyer_email_addressCustomerEmail property.
source_idCardToken configuration setting.
customer_idCustomerId property.
idempotency_keySquareIdempotencyKey configuration setting.
location_idSquareLocationId configuration setting.
note/reasonTransactionDesc property.
order_idSquareOrderId configuration setting.
reference_idInvoiceNumber property.
shipping_address objectShipping* properties and special fields shipping_address.organization, shipping_address.address_line_3, shipping_address.sublocality, shipping_address.sublocality_2, shipping_address.sublocality_3, shipping_address.administrative_district_level_2, and shipping_address.administrative_district_level_3.
transaction_idTransactionId property.

The following table shows which Square gateway response fields, when present, the class's API members reflect:

ICharge API MembersSquare Field Names
ResponseApprovedAmount property.payment.total_money.amount (or refund.amount_money.amount)
ResponseAVSResult property.payment.avs_status
ResponseCode property.HTTP status code
ResponseCVVResult property.payment.cvv_status
ResponseErrorCode property.errors[0].category
ResponseErrorText property.errors[0].detail
ResponseInvoiceNumber property.payment.reference_id
ResponseProcessorCode property.errors[0].code
ResponseText property.payment.status (or refund.status)
ResponseTransactionId property.payment.id (or refund.id)

Notes:

  • Special fields can be added using the AddSpecialField method.
  • When using the Capture method, TransactionAmount (and the captureAmount method parameter) is ignored (partial captures are not supported).

Stripe (gwStripe)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

Either CustomerId or CardNumber is required to complete a transaction.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Stripe Metadata information can also be set by calling the AddSpecialField method.

Stripe Gateway returns two separate results when the address verification is enabled on your Stripe account. Results consist of address verification and zip code verification. By default the ResponseAVSResult property will hold the Zip Code verification result. Address verification result can be retrieved from the original AuthOnly or Sale response through the GetResponseVar; method. For example:

icharge.AuthOnly(); 

string addressResult = icharge.GetResponseVar("/json/source/address_line1_check");

MerchantLogin must be set to the "API Key" field provided by Stripe when creating an account.

Dynamic statement descriptor can be set via the DynamicDescriptor configuration setting.

Transaction Central (gwTransactionCentral)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Use the "RegKey" provided by Transaction Central as your MerchantPassword.

TransFirst (gwTransFirst)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

TransNational Bankcard (gwTransNationalBankcard)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Trust Commerce (gwTrustCommerce)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is not applicable.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

USAePay (gwUSAePay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

USight (gwUSight)

This gateway is no longer in service.

Verifi (gwVerifi)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Veritas (gwVeritas)

Supported Methods:

MerchantLogin property and Customer fields are both required for this gateway.

BankName configuration setting is required when calling the Sale method.

TransactionAmount property and VeritasVoidRefundReasonId configuration setting are both required when the calling the VoidTransaction method.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

WorldPay Select Junior (gwWorldPay)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

You may set the "MerchantCode" configuration setting, if you wish to send a merchant code that is different than your merchant login.

Worldpay Online (gwWorldpayOnline)

Supported Methods:

MerchantLogin is a required property. It should be set to your Worldpay Online service key when making a transaction or deleting a token, and set to your Worldpay Online client key when generating or updating a token.

The TransactionAmount is required to be represented as cents without a decimal point. For example, "100" would be one dollar.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

The WorldpayOnlineToken and WorldpayOnlineTokenAction configuration settings are used to work with tokens. Filling in card information and setting WorldpayOnlineTokenAction to 0 (generate single-use token) or 1 (generate reusable token) will populate WorldpayOnlineToken with a new token.

When sending a transaction using a token, updating a token, or deleting a token, WorldpayOnlineToken must be set first. Keep in mind that you must update a reusable token with the CVC of the card it represents before every reuse.

The following table shows how various Worldpay Online gateway request fields are represented in the class.

Worldpay Online Field NamesICharge Equivalent
Worldpay Online service or client keyMerchantLogin property.
amount, captureAmount, or refundAmountTransactionAmount property.
billingAddress object and shopperEmailAddressCustomer* properties and special field billingAddress.address3.
currencyCodeCurrencyCode configuration setting.
customerIdentifiers objectSpecial fields named like customerIdentifiers.[KeyName]; "[KeyName]" can be any valid JSON field name.
customerOrderCodeInvoiceNumber property.
deliveryAddress objectShipping* properties and special field deliveryAddress.address3.
name and/or paymentMethod.nameCustomerFullName property.
orderCodeTransactionId property;
orderCodePrefix, orderCodeSuffix, settlementCurrency,
shopperLanguageCode, shopperSessionId
Special fields of the same name.
orderDescriptionTransactionDesc property;
paymentMethod object (except name field)Card* properties and the CardStartMonth, CardStartYear, and CardIssueNumber configuration settings.
shopperIpAddressPayerIP configuration setting.
tokenWorldpayOnlineToken configuration setting.

Notes:

  • Special fields can be added using the AddSpecialField method.
  • When using the Capture or Refund method, TransactionAmount can be empty to capture or refund the full amount of the original transaction.
  • The CustomerFullName property will be automatically populated (if not already) using the values of the CustomerFirstName and CustomerLastName properties.
  • The customerIdentifiers object is used to specify MCC 6012 financial services information. Refer to Worldpay Online's documentation for information on what key names to use and how the values should be formatted.
  • When making a transaction request, any card information supplied will be ignored if a token is also supplied.

WorldPay US Link (gwWorldPayLink)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is available for this gateway. This field is only sent if a value is explicitly specified.

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Note: To send encrypted card data, the "ValidateCardNumber" configuration setting must be set to 'False' prior to setting the Card data (using either the Number of the MagneticStripe property). You will also need to set the "MerchantPartnersReaderType" configuration setting the value corresponding to the card reader being used.

WorldPay XML (gwWorldPayXML)

Supported Methods:

MerchantLogin and MerchantPassword are required properties.

The TransactionAmount is required to be represented as cents without a decimal point. For example, a dollar value of "1.00" would equate to "100" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

WorldPay requires you to set the "TerminalId" configuration setting with the Installation Id provided to you by Worldpay. In addition, the CustomerCountry and TransactionDesc are required properties.

YKC (gwYKC)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount can represented as either cents without a decimal point or dollars and cents with a decimal point. For example, a value of "100" would equate to "$1.00" while a value of "100.00" would equate to "$100.00" for this gateway.

The "CurrencyCode" configuration setting is available for this gateway. The default value is "USD".

TestMode is not supported and when set to "True" an exception will be thrown by the component.

Note: Most merchants using YKC will need to set the "CurrencyCode" config to "JPY" for Japanese yen.

Your Pay (gwYourPay)

Supported Methods:

MerchantLogin is a required property. MerchantPassword is not applicable.

The TransactionAmount should be represented as dollars and cents with a decimal point. For example, "1.00".

The "CurrencyCode" configuration setting is not applicable.

This gateway supports sending ThreeDSecure (3DS) verification data by setting the following configs: CAVV, XID, ECI.

TestMode is supported and when set to "True" test transactions can be sent using a live account that will not be captured and settled.

Your MerchantLogin will be the "Store Number" provided by Linkpoint. This gateway requires a client certificate, which can be set using the SSL Certificate properties. Void transactions with this gateway require a transaction timestamp. This timestamp can be retrieved from the original AuthOnly response through the GetResponseVar; method. Example:

icharge.AuthOnly(); 
String tdate = icharge.GetResponseVar("/root/r_tdate");

This value can be set for the VoidTransaction with the AddSpecialField method. Example:

icharge.AddSpecialField("tdate","YourDate");
icharge.VoidTransaction("TransactionId");

Copyright (c) 2021 /n software inc. - All rights reserved.
E-Payment Integrator 2020 C++ Edition - Version 20.0 [Build 7941]