E-Payment Integrator 2022 C++ Edition
Version 22.0 [Build 8593]

Introduction

Welcome to E-Payment Integrator, a comprehensive set of components for Credit Card & Electronic Check (ACH) processing via major Internet payment gateways. Rock-solid E-Commerce components trusted by thousands of developers worldwide.

Included Classes

CardValidatorThe CardValidator component is used to verify that a given credit card number is formatted properly, and could be a valid card number. Validating a card before actually submitting a transaction for authorization can reduce the fees that may be associated with invalid or declined transactions.
CertMgrThe CertMgr component is used to manage the digital certificates installed on a system.
Check21The Check21 component is used to construct a file containing scanned images of paper checks, and optionally upload it to an FTPS server.
DirectPaymentObtain payment through PayPal directly from a buyer's credit card.
ECheckThe ECheck component is used to process Electronic Check (ACH) transactions through Internet Payment services such as the Authorize.Net eCheck.Net service.
ExpressCheckoutExpress Checkout allows customers the option to quickly pay through PayPal.
IChargeThe ICharge component is used to authorize credit card transactions with any of the supported Internet Payment Gateways.
Level2The Level2 component is a tool used to create Level2 Corporate Purchasing Card aggregates, which can then be passed to the ICharge or Retail components.
Level3The Level3 component is a tool used to create Level3 Corporate Purchasing Card aggregates, which can then be passed to the ICharge or Retail components.
OAuthThe OAuth component is used to authorize a client and provide an authorization string used in future requests.
RecurringBillingThe RecurringBilling component is used to authorize and set up recurring transactions with any of the supported Internet Payment Gateways.
RetailThe Retail component is used to authorize credit card transactions with any of the supported Internet Payment Gateways.

Additional Information

You will always find the latest information about E-Payment Integrator at our web site: www.4dpayments.com. We offer free, fully-functional 30-day trials for all of our products, and our technical support staff are happy to answer any questions you may have during your evaluation.

Please direct all technical questions to support@4dpayments.com. To help support technicians assist you as quickly as possible, please provide an detailed and accurate description of your problem, the results you expected, and the results that you received while using our product. For questions about licensing and pricing, and all other general inquiries, please contact sales@4dpayments.com.

Thank You!

Thank you for choosing E-Payment Integrator for your development needs. We realize that you have a choice among development tools, and that by choosing us you are counting on us to be a key component in your business. We work around the clock to provide you with ongoing enhancements, support, and innovative products; and we will always do our best to exceed your expectations!

Basic Credit Card Information

A credit card number consists of anywhere between 12 and 19 digits (depending upon the credit card type). The first six digits of a credit card number are known as the Issuer Identification Number (IIN) or Bank Identification Number (BIN), which is used to identify which organization issued the card along with other information. The remaining digits make up the account identifier/number with the exception of the last digit, which is the checksum digit used to validate the card number via the LUHN formula.

With the IIN/BIN, one can identify the card type (i.e. Visa, MasterCard, etc.), card level (i.e. business or purchasing card), along with issuer details (such as bank and country). The only type of card information able to be obtained by directly viewing the card number is the card type, as card brands are all assigned the same starting digits (i.e. all Visa cards start with a 4). Therefore the CardValidator component is only able to determine the CardType (along with validating the card number via the LUHN formula and verifying the Expiration Date). The remaining digits of the IIN/BIN are not specifically assigned (based on a formula) for a card issuer or level. Thus we cannot determine this information. However all this information is stored within IIN/BIN databases. There are multiple databases available but often require some sort of subscription to access the data. These are very helpful resources in the case that you need to determine if the card is a commercial card and sending Level2 and Level3 data (which is often associated with lower interchange fees).

Gateway Response Codes

The current (at the time of this release) response codes for the supported Gateways are listed below. Please see the individual specifications for each Gateway (available from the Gateway itself) for an updated list of these codes.

3DSI EC-Linx:

ResponseCode Description
0 Transaction succeeded
1 The Total Amount must be a numeric value
2 The Tax Amount must be a numeric value
3 The Freight Amount must be a numeric value
4 The Duty Amount must be a numeric value
5 The Order Number is a required field
6 The Response URL is a required field
7 The Transaction Type is a required field
8 Unrecognized Transaction Type
9 The Debit/Credit indicator is a required field
10 Invalid Debit/Credit indicator
11 The Original Order Number is a required field
12 The Cardholder Name is a required field
13 The Expiration Month is a required field
14 Invalid Expiration Month
15 The Expiration Year is a required field
16 Invalid Expiration Year
17 Credit Card Number is a required field
18 Credit Card Number must contain only numbers
19 Credit Card Number is invalid
20 The number of line items must be a numeric value
21 The Quantity field is not numeric for line item X
22 The Amount field is not numeric for line item X
25 Authorization Code is required for a Forced Transaction
30 Original Order Number does not exist
31 The Credit Card Number passed for the credit does not match Credit Card Number of the original transaction
32 The credit amount cannot exceed the original transaction amount
33 The original order has not been processed by the bank
34 The original order is not a debit therefore it cannot be credited
35 An unknown error has occurred. Retry your request.
36 Order Number does not exist
37 The Credit Card number authorized does not match the capture Credit Card Number
38 The total amount to capture cannot be more than was authorized
39 The order has not been authorized. You must authorize the order before requesting a capture
40 The requested credit amount must equal the original transaction amount
48 The transaction amount exceeds the bank's limit of {#########.##}. Please split the transaction so that the transaction amount for each transaction is less than this amount.
49 DetailLevel must be one of the following values: 1, 2, 3.
50 User locked out
51 Unable to validate user
52 Order Number entered already exists
53 Card rejected. Verify it is a card that you accept
54 Message returned from bank (reason for decline-not always populated)
55 Not a valid user for external processing. (This error usually occurs when using an EC-Zone User Id and Password).
56 Merchant is not certified for external processing
59 User is temporarily locked out due to too many consecutive password failures.
60 Currency must be one of the following values: CAD, USD.
61 The Invoice Date must be a valid date value in the form 'YYYYMMDD'.
70-74An error occurred processing the request. Retry your request.
75 An error occurred while processing your request. Object 'GetMaxTransLimit' failed.
76 The Canadian GST Tax must be a numeric value
77 The Canadian PST Tax must be a numeric value
78 The Canadian QST Tax must be a numeric value
79 The Canadian HST Tax must be a numeric value
80 An error occurred while processing your request. Object 'IsValidSENum' failed.
81 Valid service establishment number does not exist for credit card.
-1:-14An error occurred processing the request. Retry your request.
-15 The Credit Card Number failed account number validation
-16 The Expiration Date failed validation
-17 The Amount field failed validation
-18 The AddressVerifyZip field failed validation
-19 The AddressVerifyState field failed validation
-20 The ShipToZip field failed validation
-21 The SalesTaxAmount1 field failed validation
-22 The SalesTaxAmount2 field failed validation
-23 The SE Number field failed validation
-24 The SE Number was not provided
-25 The SE Number was provided but is not used for this card company
-26 The CVV2 Indicator field failed validation
-27 The CVV2 Value field failed validation
-28 The CVV2 Value was not provided
-29 The CVV2 Value was provided but is not required
-30:-99An error occurred processing the request. Retry your request.

Note: All negative (-) value Return Codes are due to Network/Communications issues.

5th Dimension Logistics:

ResponseCode Description
1 Approved
520 Approved
A Approved
00 Approved
100 Approved
2 Declined
530 Declined
540 Declined
D Declined
05 Declined
500 Declined
3 Error
550 Error
X Error
ER Error

ACH Federal:

ResponseCode Description
AApproved
DDeclined
EError

ACH Payments/Forte:

ResponseCode Description
AApproved
DDeclined
EError

Adyen:

ResponseCode Description
AuthorisedAuthorization approved
RefusedDeclined, possibly due to fraud.
ErrorAn error occurred.
[refund-received]Credit transaction approved.
[cancel-received]Void transaction approved.
[capture-received]Capture transaction approved.

American Payment Solutions:

ResponseCode Description
1Transaction approved.
2Transaction declined.
3Error in transaction data.

Processor Codes for American Payment Solutions are also shown below:

ResponseProcessorCodeDescription
100Transaction was approved.
200Transaction was declined by processor.
201Do not honor.
202Insufficient funds.
203Over limit.
204Transaction not allowed.
220Incorrect payment information.
221No such card issuer.
222No card number on file with issuer.
223Expired card.
224Invalid expiration date.
225Invalid card security code.
226Invalid PIN.
240Call issuer for further information.
250Pick up card.
251Lost card.
252Stolen card.
253Fraudulent card.
260Declined with further instructions available. (See response text)
261Declined-Stop all recurring payments.
262Declined-Stop this recurring program.
263Declined-Update cardholder data available.
264Declined-Retry in a few days.
300Transaction was rejected by gateway.
400Transaction error returned by processor.
410Invalid merchant configuration.
411Merchant account is inactive.
420Communication error.
421Communication error with issuer.
430Duplicate transaction at processor.
440Processor format error.
441Invalid transaction information.
460Processor feature not available.
461Unsupported card type.

Authorize.NET/ECX/MPCS/RTWare:

ResponseCode Description
1Approved.
2Declined.
3Error.
4Held for review. (Approved is set to 'True', so transaction is assumed to be successful)

Authorize.NET CIM

ResponseCode Description
I00001The request was processed successfully.
I00003The record has already been deleted.
E00001An unexpected system error occurred while processing this request.
E00002The only supported content-types are text/xml and application/xml.
E00003This is the result of an XML parser error.
E00004The name of the root node of the XML request is the API method being called. It is not valid.
E00005Merchant authentication requires a valid value for transaction key.
E00006Merchant authentication requires a valid value for name.
E00007The name/and or transaction key is invalid.
E00008The payment gateway or user account is not currently active.
E00009The requested API method cannot be executed while the payment gateway account is in Test Mode.
E00010The user does not have permission to call the API.
E00011The user does not have permission to call the API method.
E00013One of the field values is not valid.
E00014One of the required fields was not present.
E00015One of the fields has an invalid length.
E00016The field type is not valid.
E00019The customer tax ID or driver's license information (driver's license number, driver's license state, driver's license DOB) is required for the subscription.
E00027An approval was not returned for the transaction.
E00029Payment information is required when creating a subscription or payment profile.
E00039A duplicate of the customer profile, customer payment profile, or customer address was already submitted.
E00040The profileID, paymentProfileId, or shippingAddressId for this request is not valid for this merchant.
E00041All of the fields were empty or missing.
E00042The maximum number of payment profiles for the customer profile has been reached.
E00043The maximum number of shipping addresses for the customer profile has been reached.
E00044The payment gateway account is not enabled for Customer Information Manager (CIM).
E00045An error exists in the XML namespace. This error is similar to E00003
E00051If the customer profile ID, payment profile ID, and shipping address ID are included, they must match the original transaction.

Barclay:

ResponseCode Description
1Approved.
3Referred. Transaction was declined by the authoriser, but it might receive voice approval. This is also known as a soft decline.
50Declined. Transaction was declined by the authoriser and it is unlikely that it would receive voice approval. This is also known as a hard decline.
-Error. There is something wrong with the transaction which prevents it from processing. See ErrorText for more information.

BASYS:

ResponseCode Description
-100 Transaction NOT Processed; Generic Host Error.
0 Approved.
1 User Authentication Failed.
2 Invalid Transaction.
3 Invalid Transaction Type.
4 Invalid Amount.
5 Invalid Merchant Information.
7 Field Format Error.
8 Not a Transaction Server.
9 Invalid Parameter Stream.
10 Too Many Line Items.
11 Client Timeout Waiting for Response.
12 Decline.
13 Referral.
14 Transaction Type Not Supported In This Version.
19 Original Transaction ID Not Found.
20 Customer Reference Number Not Found.
22 Invalid ABA Number.
23 Invalid Account Number.
24 Invalid Expiration Date.
25 Transaction Type Not Supported by Host.
26 Invalid Reference Number.
27 Invalid Receipt Information.
28 Invalid Check Holder Name.
29 Invalid Check Number.
30 Check DL Verification Requires DL State.
40 Transaction did not connect (to NCN because SecureNCIS is not running on the web server).
50 Insufficient Funds Available.
99 General Error.
100 Invalid Transaction Returned from Host.
101 Timeout Value too Small or Invalid Time Out Value.
102 Processor Not Available.
103 Error Reading Response from Host.
104 Timeout waiting for Processor Response.
105 Credit Error.
106 Host Not Available.
107 Duplicate Suppression Timeout.
108 Void Error.
109 Timeout Waiting for Host Response.
110 Duplicate Transaction.
111 Capture Error.
112 Failed AVS Check.
113 Cannot Exceed Sales Cap.
1000 Generic Host Error.
1001 Invalid Login.
1002 Insufficient Privilege or Invalid Amount.
1003 Invalid Login Blocked.
1004 Invalid Login Deactivated.
1005 Transaction Type Not Allowed.
1006 Unsupported Processor.
1007 Invalid Request Message.
1008 Invalid Version.
1010 Payment Type Not Supported.
1011 Error Starting Transaction.
1012 Error Finishing Transaction.
1013 Error Checking Duplicate.
1014 No Records To Settle (in the current batch).
1015 No Records To Process (in the current batch).

Bambora:

ResponseCode Description
1Transaction approved.
0Transaction declined.

Bluefin:

ResponseCode Description
0 Declined
1 Approved

BluePay:

ResponseCode Description
0Declined
1Approved
EError

BlueSnap:

ResponseCode Description
successTransaction approved (Card transactions).
PENDINGTransaction approved (ECheck transactions).
failTransaction failed.

HTTP Status Code-only responses for the BlueSnap gateway are included below:

ResponseCode Description
2xx(Any HTTP 2xx) Indicates success.
403(HTTP 403) Indicates user doesn't have the necessary permission to complete the requested action, or that a resource doesn't exist.
500(HTTP 500) Internal server error. Contact BlueSnap for help.

Additional error responses for the BlueSnap gateway are included below; the HTTP Status code will be 400 unless otherwise noted. The BlueSnap gateway can return multiple errors in one response, be sure to check the ResponseData property if you recieve one of the following error codes so that you do not miss any additional errors that might have been returned:

ResponseCode ResponseErrorCode Description
7INVALID_TRANSACTION_TYPETransaction type is invalid. (Note: HTTP status is 403 Forbidden)
30MISSING_SHOPPER_OR_CARD_HOLDERNo card holder or vaulted shopper id.
85INVALID_HTTP_METHODCAPTURE transactions should be sent using an HTTP PUT method.
10000INVALID_API_VERSIONThe API version passed in the request is invalid.
10000PAYMENT_GENERAL_FAILUREA general payment failure has occurred.
10001VALIDATION_GENERAL_FAILUREThe resource passed in the request has violated validation rules. Additional information about the specific issue is provided in the error description.
10001INVALID_MERCHANT_TRANSACTION_IDmerchantTransactionId should be up to 50 characters.
10001MERCHANT_CONFIGURATION_ERRORMerchant Configuration Error.
10001MISSING_CARD_TYPEcardType element is required.
11001XSS_EXCEPTIONUser input suspected as malicious.
14001THREE_D_SECURITY_AUTHENTICATION_REQUIRED3D security authentication is required.
14002CALL_ISSUERPayment processing failure due to an unspecified error. Please contact the issuing bank.
14002CARD_LOST_OR_STOLENThe card is lost or stolen. Retry the transaction using a different card or decline the transaction.
14002CVV_ERRORPayment processing failure due to CVV error. Correct the CVV code and retry the transaction.
14002DO_NOT_HONORPayment processing failure due to a "Do not honor" status. The issuing bank has put a temporary hold on the card, retry with a different card.
14002EXPIRED_CARDPayment processing failure due to expired card. Correct the expiration date and retry. If the transaction still fails, retry with a different payment method or decline the transaction.
14002GENERAL_PAYMENT_PROCESSING_ERRORPayment processing failure due to an unspecified error. Description will contain the error code and message sent by the processor if applicable.
14002HIGH_RISK_ERRORPayment processing failure due to high risk.
14002INCORRECT_INFORMATIONPayment processing failure due to incorrect information. See error description for additional information.
14002INSUFFICIENT_FUNDSPayment processing failure due to insufficient funds. Retry the transaction at a later date, use a new payment method, or decline the transaction.
14002INVALID_CARD_NUMBERPayment processing failure due to invalid card number. Correct the card number and retry the transaction. If the transaction still fails, try a new payment method or decline the transaction.
14002INVALID_CARD_TYPEPayment processing failure due to invalid card type. Correct the card number and retry the transaction. If the transaction still fails, try a new payment method or decline the transaction.
14002INVALID_PIN_OR_PW_OR_ID_ERRORPayment processing failure due to invalid PIN, password or ID error.
14002LIMIT_EXCEEDEDPayment processing failure because card limit has exceeded. Retry the transaction later, use a new payment method, or decline the transaction.
14002PICKUP_CARDPayment processing failure. The card has been reported lost or stolen and should be removed from use.
14002PROCESSING_AMOUNT_ERRORPayment processing failure due to invalid amount for this transaction. Validate the amount submitted is correct and resubmit. If the transaction still fails decline the transaction.
14002PROCESSING_DUPLICATEPayment processing failure due to duplication. The transaction is a duplicate of a previously submitted transaction.
14002PROCESSING_GENERAL_DECLINEPayment processing failure due to an unspecified error returned. Retry the transaction and if problem continues contact the issuing bank, or decline the transaction.
14002PROCESSING_TIMEOUTPayment processing failure due to timeout. Retry the transaction.
14002SYSTEM_TECHNICAL_ERRORPayment processing failure due to system technical error. Retry the transaction.
14002THE_ISSUER_IS_UNAVAILABLE_OR_OFFLINEPayment processing failure because the issuer is unavailable or offline. Retry the transaction.
14002THREE_D_SECURE_FAILUREPayment processing failure due to 3D secure failure.
14002RESTRICTED_CARDPayment processing failure due to restricted card.
14004REFUND_GENERAL_FAILUREA general refund failure has occurred. Retry the transaction.
14005REFUND_MIN_AMOUNT_FAILUREThe refund amount passed in the request is smaller than the minimum amount allowed. Correct the amount and resubmit.
14006REFUND_MAX_AMOUNT_FAILUREThe refund amount passed in the request exceeds the maximum amount allowed. Correct the amount and resubmit.
14007REFUND_PERIOD_EXPIREDRefund failed because the allowed refund period has ended.
14008INSUFFICIENT_FUNDS_FOR_REFUNDThere are insufficient funds to perform the requested refund.
14009INVOICE_ALREADY_REFUNDEDRefund failed because the payment was already refunded.
14016NO_AVAILABLE_PROCESSORSThere are no available processors for the specific request.
14020PARTIAL_REFUND_CREATED_LESS_THAN_24_HOURS_AGOPartial refund is not possible because the transaction was created less than 24 hours ago. Retry the transaction after the 24-hour window has elapsed.
14022INVOICE_ALREADY_FULLY_REFUNDEDInvoice has already been fully refunded.
14023REFUND_IN_PROCESSAnother refund request for this invoice is currently in process. Please wait for it to finish before submitting new request.
14024PARTIAL_REFUND_NOT_SUPPORTEDInvoice cannot be partially refunded.
15008SHOPPER_NOT_FOUNDThe Shopper ID passed in the request was not found. Validate the shopper id is correct and resubmit.
15011FRAUD_DETECTEDThe transaction triggered one or more fraud rules. Check the ResponseData property for the full response data for more information.
15012SHOPPER_COUNTRY_OFAC_SANCTIONEDOne of the shopper's countries was defined as OFAC sanctioned. Do not resubmit.
16003MULTIPLE_PAYMENT_METHODS_NON_SELECTEDShopper has multiple payment methods, but none is selected. Correct the payment method and resubmit.
20002MULTIPLE_TRANSACTIONS_FOUNDTransaction retrieval service failure. Multiple transactions found with merchant transaction ID: ${merchantTransactionId}.
20003TRANSACTION_LOCKEDTransaction ${transactionType} failed. Transaction locked.
20004TRANSACTION_PAYMENT_METHOD_NOT_SUPPORTEDPayment method is not supported. Retry the transaction with another payment method or decline the transaction.
20005TRANSACTION_NOT_AUTHORIZEDTransaction is not authorized.
20006TRANSACTION_ALREADY_EXISTSTransaction AUTH_REVERSAL FAILED. Transaction already exists.
20007TRANSACTION_EXPIREDTransaction is expired.
20008TRANSACTION_ID_REQUIREDTransaction ID is required. Add the transaction ID and retry the transaction.
20008INVALID_TRANSACTION_IDTransaction ID is invalid. Correct the transaction ID and retry the transaction.
20010TRANSACTION_ALREADY_CAPTUREDTransaction was already captured.
20020INVALID_ALT_TRANSACTION_TYPEInvalid Transaction Type.
20021MULTI_SHOPPER_INFORMATIONCannot accept 'payerInfo' and 'vaultedShopperId' elements.
20022MISSING_SHOPPER_INFORMATIONECP transaction must include a 'payerInfo' or 'vaultedShopperId' element.
20023MISSING_PAYER_INFO_FIELDSThis transaction must include a {fieldName} element within its 'payer-info' element.
20024EXPECT_NO_ECP_DETAILSECP transaction with Vaulted Shopper ID expect no ECP details, but an empty 'ecpTransaction' element instead.
20025INVALID_ECP_ACCOUNT_TYPEInvalid Account Type. Please insert a valid value.
20030MISSING_VAULTED_SHOPPER_FIELDSECP shopper must include a zip/phone element.
(Undefined)CREDIT_CARD_DETAILS_PLAIN_AND_ENCRYPTEDShopper credit card cannot contain both plain and encrypted details. Correct the shopper details and resubmit.
(Undefined)CREDIT_CARD_ENCRYPTED_NUMBER_REQUIREDEncrypted Field 'Encrypted Card Number' is required. Add the encrypted card number and resubmit.
(Undefined)CREDIT_CARD_ENCRYPTED_SECURITY_CODE_REQUIREDEncrypted Field 'Encrypted Security Code' is required. Add the encrypted security code and resubmit.
(Undefined)MISSING_ARGUMENTS"Cancel URL is a mandatory field." or "Return URL is a mandatory field."
(Undefined)EXPIRED_TOKENToken is expired
(Undefined)TOKEN_NOT_FOUNDCould not find the token

Note: The HTTP status code may be used if there is not a defined error code.

BrainTree:

ResponseCode Description
1Transaction Approved.
2Transaction Declined.
3Error in transaction data or system error.

Additional response codes for the BrainTree gateway are included below:

ResponseProcessorCodeDescription
100Transaction was approved (Approved).
200Transaction was declined by Processor.
201Do Not Honor.
202Insufficient Funds.
203Over Limit.
204Transaction not allowed.
220Incorrect Payment Data.
221No such card issuer.
222No card number on file with Issuer.
223Expired card.
224Invalid expiration date.
225Invalid card security code.
240Call Issuer for further information.
250Pick up card.
251Lost card.
252Stolen card.
253Fraudulent card.
260Declined with further instructions (see response text).
261Declined - Stop all recurring payments.
262Declined - Stop this recurring program.
263Declined - Updated cardholder data available.
264Declined - Retry in a few days.
300Transaction was rejected by gateway.
400Transaction error returned by processor.
410Invalid merchant configuration.
411Merchant account is inactive.
420Communication error.
421Communication error with issuer.
430Duplicate transaction at processor.
440Processor format error.
441Invalid transaction information.
460Processor feature not available.
461Unsupported card type.

CardPointe:

ResponseCode Description
ATransaction approved.
BRetry.
CDeclined.

ResponseErrorCode Description
00Approval
01VoiceAuth Approved
08Profile Deleted
09Profile Saved
11Invalid card
12Invalid track
13Bad card check digit
14Non-numeric CVV
15Non-numeric expiry
16Card expired
17Invalid zip
18CardDefense Review
19CardDefense Decline
21Invalid merchant
22No auth route
23No auth queue
24Reversal not supported
25No matching auth for reversal
26Txn Settled
27Txn Batched
28Txn not settled
29Txn not found
31Invalid currency
32Wrong currency for merch
33Unknown card type
34Invalid field
35No postal code
36Duplicate sequence
37CVV mismatch
38CVV is required
41Below min amount
42Above max amount
43Invalid amount
44Prepaid not supported
45Refunds without reference not supported
61Line down
62Timed out
63Bad resp format
64Bad HTTP header
65Socket close error
66Response mismatch
70Voice authorization cannot be voided
91No TokenSecure
92No Merchant table
93No Database
94No action
95Missing config
96Profile not found
97Merchant disabled
98Invalid token
101AVS Mismatch
102Service Fee Declined
103Service Fee Txn not found
104Surcharge Not Supported

Converge:

ResponseCode ResponseText Description
0APPROVED Transaction approved.
1(Custom server response)Declined or error condition. See ResponseText for additional information.
[Empty][Empty] See ErrorCode and ErrorText for error information.

Cyber Cash:

ResponseCode Description
0Approved
-Anything other than an approved transaction will return no code. However, the ResponseText property will contain the error message.

CyberSource:

ResponseCode Description
ACCEPTTransaction approved.
REJECTThe request was rejected. Check the ResponseText for the reason why.
ERRORThere was a system error.

Data Cash:

ResponseCode Description
1 Success - Transaction accepted and logged.
2 Socket write error - Communication was interrupted. The argument is e.g. 523/555 (523 bytes written but 555 expected).
3 Timeout - A timeout occurred while we were reading the transaction details.
5 Edit error - A field was specified twice, you sent us too much or invalid data, a pre-auth lookup failed during a fulfill transaction, the swipe field was incorrectly specified, or you omitted a field. The argument will give a better indication of what exactly went wrong.
6 Comms error - Error in communications link; resend.
7 Not authorised - Transaction declined. The arguments are as return code 1, except the first argument is the bank's reason for declining it (e.g. REFERRAL, CALL AUTH CENTRE, PICK UP CARD etc.) or the result from a failed fraud check (e.g. FRAUD DECLINED reason code)
9 Currency error - The currency you specified does not exist.
10 Authentication error - The vTID or password were incorrect.
12 Invalid authorisation code - The authcode you supplied was invalid.
13 Type field missing - You did not supply a transaction type.
14 Database server error - Transaction details could not be committed to our database.
15 Invalid type - You specified an invalid transaction type.
19 Cannot fulfill transaction - You attempted to fulfill a transaction that either could not be fulfilled (e.g. auth, refund) or already has been.
20 Duplicate transaction reference - A successful transaction has already been sent using this vTID and reference number.
21 Invalid card type - This terminal does not accept transactions for this type of card (e.g. Diner's Club, American Express if the merchant does not take American Express, Domestic Maestro if multicurrency only).
22 Invalid reference - Reference numbers should be 16 digits for fulfill transactions, or between 6 and 30 digits for all others.
23 Expiry date invalid - The expiry dates should be specified as MM/YY or MM-YY.
24 Card has already expired - The supplied expiry date is in the past.
25 Card number invalid - The card number does not pass the standard Luhn checksum test.
26 Card number wrong length - The card number does not have the expected number of digits.
27 Issue number error - You did not supply an issue number when we expected one, or the issue number you supplied was non-numeric or too long.
28 Start date error - The start date was missing or malformed (must be MM/YY).
29 Card is not valid yet - The supplied start date is in the future
30 Start date after expiry date.
34 Invalid amount - The amount is missing, is not fully specified to x.xx format.
40 Invalid cheque type - Must be either "business" or "personal".
41 Invalid cheque number - Cheque number was missing or was not 6 digits.
42 Invalid sort code - The sort code was missing or was not 6 digits.
44 Invalid account number - The account number was missing or was not 8 digits.
51 Reference in use - A transaction with this reference number is already going through the system.
53 No free TIDs available for this vTID - There are matching TIDs available, but they are all in use.
56 Card used too recently.
57 Invalid velocity_check value - The velocity_check value must be numeric and between 0 and 120.
59 This combination of currency, card type and environment is not supported by this vTID.
60 Invalid XML - The XML Document is not valid with our Request schema. The reason is detailed in the "information" element of the Response document.
61 Configuration error - An error in account configuration caused the transaction to fail. Contact DataCash Technical Support.
62 Unsupported protocol - Please use the DataCash XML API.
63 Method not supported by acquirer - The transaction type is not supported by the Acquirer.
104 APACS30: WRONG TID - Error in bank authorization, where APACS30 Response message refers to different TID to that used in APACS30 Request message; resend.
105 APACS30: MSG SEQ NUM ERR - Error in bank authorization, where APACS30 Response message refers to different message number to that used in APACS30 Request message; resend.
106 APACS30: WRONG AMOUNT - Error in bank authorization, where APACS30 Response message refers to different amount to that used in APACS30 Request message; resend.
190 No capture method specified - Your vTID is capable of dealing with transactions from different environments (e.g. MoTo, e-comm), but you have not specified from which environment this transaction has taken place.
271 Cannot query transactions of this kind.
274 Cannot locate transaction to query.
280 Unknown format of datacash reference - The datacash reference should be a 16 digit number. The first digit (2, 9, 3 or 4) indicates the format used and whether the txn was processed in a live or test environment.
281 Datacash reference fails Luhn check - The new format of datacash reference includes a luhn check digit. The number supplied failed to pass the luhn check.
282 Mismatch between historic and current site_id - The site_id extracted from the datacash reference does not match the current environment.
283 Mismatch between historic and current modes - The mode flag extracted from the datacash reference does not match the current environment.
425 ISO8583 - message corrupted - Encoded characters are not supported.
440 Payment Gateway Busy - Out of external connections.
470 Maestro txns for CNP not supported for clearinghouse - Maestro transactions for Card Holder not present are not supported for the given clearinghouse.
471 3-D Secure Required - This transaction must be a 3dsecure transaction.
472 Invalid capturemethod - International Maestro is not permitted in a Mail order / telephone order environment.
473 Invalid transaction type - Keyed International Maestro transaction not permitted.
480 Invalid value for merchantid - The Merchant Id provided is invalid .
481 Element merchantid required - The merchant is expected to provide a Merchant Id with each transaction.
482 Invalid element merchantid - The merchant is not set to provide Merchant Id for a transaction.
510 GE Capital: Inappropriate GE Capital card number - The merchant attempted to use a GE Capital card with a BIN that does not belong to them.
1100 No referenced transaction found.
1101 Only referred transactions can be authorised.
1102 Only pre or auth transaction can be authorised.
1103 Must supply updated authcode to authorise transaction.
1104 Transactions cannot be authorized after time limit expired - The default timeout value is set to 6hours but can be amended per Vtid by contacting DataCash Support.
1105 Fraud challenged transactions cannot be authorized.
1106 Historic reference already in use
12001vtidconfiguration - There are more than one active passwords already registered against your vTID at the time the txn was received.
12002vtidconfiguration - The IP address of the system submitting the vtidconfiguration request is not registered against your vTID.

eProcessing:

ResponseCode Description
0Approved.
1Declined.
2Error.

Eway:

ResponseCode Description
TrueTransaction authorized.
Anything elseTransaction declined.

ExPay:

ExPay Response Codes for the ExPayGetMethods call:

ResponseCodeDescription
200 The request has been successfully processed
401 Invalid request hash
402 Invalid Payee ID key
404 Mandatory attribute is missing
405 Invalid format of the attribute
500 Internal server error

ExPay Response Codes for the AuthOnly method:

ResponseCodeDescription
204 Payment is rejected
206 Waiting for payment by the payer
401 Invalid request's hash
402 Invalid Payee ID Key
404 Required attribute is missing
405 Invalid format of the attribute
406 The amount of payment is less than the minimum possible at a selected payment method
407 The amount of payment larger than the maximum possible in a selected payment method
413 The amount of payment is less than commission
479 This payment ID already exists in the system
483 This payment method is not available
500 Internal server error
545 This merchant is blocked, contact support
583 The payment system provides payment method is blocked
999 Unknown status, contact support

ExPay Response Codes for the ExPayGetStatus call:

ResponseCodeDescription
201 Payment is in the processing queue
203 Payment in the processing
204 Payment is rejected
205 Payment has been successfully completed
206 Waiting for payment by the payer
207 Payment is returned
401 Invalid hash of request
402 Invalid Payee ID Key
404 Mandatory attribute is missing
405 Invalid attribute format
474 Payment with the specified parameters is not found
500 Internal server error
999 Unknown status, contact support

Fast Transact/Net Billing:

ResponseCode Description
I (letter I) = IncompleteThese are transactions that are successful, but may fail at a later date, ie: An ACH transaction is approved, but then is later denied due to NSF.
1 (number 1) = Approved, GoodThis is a transaction that is approved and charged.
R = RefundedThis transaction has been refunded. It is extremely unlikely you will ever see this return code in this context, although you may see it when browsing old transactions in the NetBilling database (via the Admin tools).
T = TicketThis is returned when an Authorize-Only or AVS-Only transaction is good.
F or 0 = FailureThe number zero "0" or the letter "F" indicates that the transaction failed. A more detailed message will be available in the ResponseText property.
Other CodeAny other non-zero, non-null codes should be interpreted as success for compatibility with future response codes.

First Atlantic Commerce:

ResponseCode Description
1 Approved
2 Declined
3 Error

First Data E4/Bank Of America:

ResponseCode Description
00 Transaction Normal
08 CVV2/CID/CVC2 Data not verified
10 Invalid Transaction Description
11 Invalid Sequence No
12 Message Timed-out at Host
14 Invalid Gateway Id
15 Invalid Transaction Number
16 Connection Inactive
17 Unmatched Transaction
18 Invalid Reversal Response
19 Unable to Send Socket Transaction
20 Unable to Write Transaction to File
21 BCE Function Error
22 Invalid Credit Card Number
23 Invalid Response from First Data
24 Unable to Void Transaction
25 Invalid Expiry Date
26 Invalid Amount
27 Invalid Card Holder
28 Invalid Authorization No
30 Invalid Date From Host
31 Invalid Verification String
32 Invalid Transaction Code
40 Unable to Connect
41 Unable to Send Logon
42 Unable to Send Trans
43 Invalid Logon
44 Address not Verified
52 Terminal not Activated
53 Terminal/Gateway Mismatch
54 Invalid Processing Center
55 No Processors Available
56 Database Unavailable
57 Invalid Reference No
58 Invalid AVS String, The length of the AVS String has exceeded the max. 40 characters
60 Invalid Customer Reference Number
61 Socket Error
62 Host not Ready
63 Invalid Duplicate
64 Invalid Refund
68 Restricted Card Number
70 Transaction Placed in Queue
72 Data within the transaction is incorrect
73 Transaction Received from Bank
76 Reversal Pending
77 Reversal Complete
79 Reversal Sent to Bank
93 Invalid authorization number entered on a pre-auth completion
F1 Address check failed - Fraud suspected
F2 Card/Check Number check failed - Fraud suspected
F3 Country Check Failed - Fraud Suspected
F4 Customer Reference Check Failed - Fraud Suspected
F5 Email Address check failed - Fraud suspected
F6 IP Address check failed - Fraud suspected

First Data PayPoint:

ResponseCode Description
Unknown
Success Request was received and successfully processed. Returned on API calls which don't involve executing a payment or payment cancellation.
Payment_Success Specific to Make a Payment. Indicates the payment was accepted and successfully issued for authorization.
Cancel_Success Specific to Cancel Payment. Indicates the request to cancel a payment was received and successfully issued to the processor.
Error Indicates an error occurred in processing your request. Any number of problems could produce an error condition. ResponseText will contain the further error details.
Declined Indicates that a payment authorization has been denied by the processor. ResponseText may contain further details.
Verification_failed Indicates that the consumer identity information did not match the processors records.
Communication_Error Indicates that the PayPoint system is experiencing issues communicating with in its internal systems.
Settled Indicates that the transaction was issued for Settlement and was successfully accepted.
Settlement_Error Indicates that when the payment action was issued for settlement an error occurred. If a payment action receives a Settlement Error you should contact PayPoint Support personnel for additional details.
Network_Error Indicates that the PayPoint system is experiencing issues communicating with third party processing.
Processor_Mismatch There is a processor mismatch in the internal systems.
CreditCards_Disabled Indicates that the application you are attempting to issue a credit card payment action against is currently not enabled for Credit Cards. If you wish to start accepting credit cards contact PayPoint Support personnel.
Unaccepted_Card_Type Indicates the Make A Payment request was rejected because the card type used is not valid for this application. PayPoint enables only cards being accepted by your Payment Processor.
Payment_Exceeds_System_Limit PayPoint has the ability to set a daily limit on payments received and processed for a given account. This limit is determined at the time you fill out your PayPoint application. The default setting is unlimited. Unless you explicitly request a limitation on your PayPoint application you will never see this return code.
Payment_Exceeds_Card_Limit PayPoint has the ability to set a single payment limit on payments received and processed for a given card. This limit is determined at the time you fill out your PayPoint application. The default setting is unlimited. Unless you explicitly request a limitation on your PayPoint application you will never see this return code.
Possible_Duplicate_Payment PayPoint has the ability to track duplicate payments received and can reject them as a part of the Make A Payment request. This feature is determined at the time you fill out your PayPoint Application. The default setting is set to not check for duplicates. Unless you explicitly request a duplicate payment check option on your PayPoint application you will never see this return code.
Unresolved_Cancellation A cancellation was not resolved on the internal systems.
Undefined_Item Prior to processing a request within PayPoint the data you send is run through a data validation process. This process checks to ensure that your request conforms to the specification. For example that you have provide all required data elements in your request, or that you are passing proper data types (i.e. not passing characters in numeric values). If your request fails this validation process PayPoint will reject your request with this return code. The Result Message will provide more specific details on what data failed validation.
Chargeback Indicates that the payment was successfully charged back.
Chargeback_Reversal Indicates that a charge back request was successfully reversed.
Settlement_Incomplete Catch all error for technical problems encountered during settlement processing. You should never see this result code. If this error is ever seen contact PayPoint Support personnel.
Partial_Settlement Anytime there are multiple payments actions under a single transaction where one payment is settled but the other has not you will see a Partial_Settlement Result Code. For example if you have a primary payment and a convenience fee payment under the same transaction and only the primary payment has been issued for settlement. Another possible example is a E-Check payment which is refunded, the original payment would be settled but the refund may not have settled yet.
Settlement_Pending This result code is specific to E-Check payments which have a longer settlement process than Credit Cards. This result code means a payment has been sent off for settlement, but we have not received back confirmation of the settlement result. Settlement results within ACH are typically updated as a result of no negative activity within the first 6 days from the settlement issuance.
eChecks_Disabled Indicates that the application you are attempting to issue a E-Check payment action against is currently not enabled for E-Checks. If you wish to start accepting E-Checks contact PayPoint Support personnel.
Missing_Identification The result code is specific to E-Checks. PayPoint provides fraud detection services. PayPoint provides the ability to enable identity verification services for an additional cost. These services are offered to allow clients to be NACHA compliant with consumer identity requirements. If enabled this result code indicates that the payment is being rejected because you did not provide the required identity data such as Driver's License Number or SSN.
Waiting_On_PreNote This result code is specific to E-Checks. PayPoint supports the ability to require the issuance of Pre-Notes for registered accounts. If your application is enabled to require Pre-Notes it may also be set to require a successful pre-note before accepting payments. You will receive this result code for any payments received prior to completion of the pre-note process for a given registered account.
PreNote_Failed This result code is specific to E-Checks. PayPoint supports the ability to require the issuance of Pre-Notes for registered accounts. If your application is enabled to require Pre-Notes it may also be set to require a successful pre-note before accepting payments. Indicates that the Pre-Note request for a registered account has failed. No Payments can be applied against the registered account until the account information is updated and a new pre-note is issued by PayPoint. You will receive this result code for any payments received prior to correcting the registration information and successful issuance of the pre-note.
Stop_Payment_Issued This result code is specific to E-Checks. Consumers have the right to issue a stop payment up to 60 days after making an original payment. This result code indicates that we received a stop payment request through the ACH network and have reversed the original payment transaction within PayPoint and a reversal has been issued against the merchants account.
Non_Sufficient_Funds This result code is specific to E-Checks. This indicates that a E-Check which was issued for settlement resulted in a Non-Sufficient Funds return. Depending on your configuration the payment will be re-presented through the ACH network up to 2 additional times. If you see this message it indicates 1 of 2 possible attempts. If after re-presentment the payment still results in Non-Sufficient funds in the consumers account a Final_Non_Sufficient_Funds result code is returned.
Final_Non_Sufficient_Funds This result code is specific to E-Checks. This indicates that the consumers account has insufficient funds to process the original payment request. As a result PayPoint will reverse the transaction. In addition a reversal of the original payment request will be issued against the merchants account.
Account_Invalid This result code is specific to E-Checks. When a E-Check payment request is received PayPoint will perform a basic check of the account and routing numbers provided against known data sources such as Thomson account files to ensure the account number is valid. However after a payment is issued for settlement there can be other conditions that result in invalidating the use of the account number. One example is consumers who may have debit blocks on their accounts which would result in a denial by the consumers back to allow the debit to take place. If an Invalid account result is received PayPoint will reverse the transaction within PayPoint. In addition a reversal of the original payment request will be issued against the merchants account.
Payment_Pending Indicates that the original Payment was issued with a postdated payment. PayPoint only support postdated transactions for E-Check payments. Once the payment date is reached the payment request will be sent through the normal payment authorization and settlement processing.
Post_Date_Too_Large This result code is specific to E-Checks. This result indicates that at the time the Make A Payment request sent the payment was posted dated beyond the acceptable limits. PayPoint can support postdated payments up to 365 days. The default value is to not accept postdated payments. When you fill out your PayPoint Application form you must identify the number of days your application will accept posted dated payments.
Refund_Settlement_Pending E-Check Only result code. This result code indicates that a E-Check Payment which is currently in Settlement_Pending status was refunded. (i.e. before the original payment fully settled through ACH). The refund stays in a Refund_Settlement_Pending status until the original payment fully settles and the refund can be settled against the original payment.
Pre_Auth_Success This result code is specific to Credit Card payments and is only seen when PayPoint is responsible for doing account verifications when new registrations are created. Account Verification is a feature that can be enabled on your PayPoint account to make a verification request of the account data associated with the registration data being created or updated. To verify a credit card a Pre-Authorization for $1.00 is made to verify account is valid.
Eligible Result code is specific to PINless debit cards. The result is returned as a result of a call to the PinlessDebitCheck API call. This result code indicates that the card is eligible to be processed through the PINless debit network.
Not_Eligible Result code is specific to PINless debit cards. The result is returned as a result of a call to the PinlessDebitCheck API call. This result code indicates that the card is NOT eligible to be processed through the PINless debit network.
PINLessDebit_Disabled Result code is specific to PINless debit cards. This result is returned when your PayPoint account is not enabled to process PINless debit transactions.
PINDebit_Disabled Result is specific to PIN based debit cards. This result is returned when your PayPoint account is not enabled to process PIN debit transactions.

Global Iris:

ResponseCode Description
00 Successful
101 Declined by Issuing Bank
102 Referral by Issuing Bank (treat as decline in automated system such as internet)
103 Card reported Lost or Stolen
106 AUTH FAILED CONTACT AUTH CENTRE
107 FAILS REALSCORE FRAUD CHECKS
108 USING TEST SYSTEM. PLEASE USE PREAPPROVED TEST CARDS ONLY
109 COMMS ERROR SCHEDULED Issuing BANK MAINTENANCE
200 UNSPECIFIED BANK ERROR
202 NETWORK ERROR: CANNOT CONNECT TO EpoS.
205 Comms error Bank connection error.
301 Cannot connect to Database.
302 Configuration error with your bank details acquiring bank). Please contact Global Iris.
303 Error in configuration, merchant has more than one config for this currency/card combination.
304 Can't find transaction details in database.
305 HSBC Merchant Services are currently updating the system. We apologise for the inconvenience.
501 This transaction has already been processed.
502 Compulsory field not present, cannot continue.
503 Request type not allowed for this merchant.
504 There is no merchant id. Please contact Global Iris Support Team if you continue to experience this problem.
505 Sha1hash incorrect.
506 Bad XML formation.
507 Currency/Card combination not allowed.
508 Invalid request data.
509 Invalid credit card data.
510 That amount is greater than the max allowed.
511 Unable to connect to the merchant response URL.
512 Original transaction not found.
513 Can't void a settled transaction.
514 Can't settle the transaction.
600 "INTERNAL PROBLEM" Application has identified an issue with a resource dependency and cannot process the request.
601 "INVALID REQUEST" Request Format does not conform and cannot be parsed.
603 "INTERNAL EXCEPTION" Application has encountered an unknown error and cannot process the request.
666 This account has been deactivated. Please contact Global Iris Support Team for further details.

Nuvei:

ResponseCode Description
A Approved
D Declined
R Referral

Global Payroll:

ResponseCode Description
00 Transaction was Approved
01 Error - invalid request.
02 Error - invalid credentials.
03 Error - internal GPG Error.
05 Merchant processing network error - timeout.
20 Declined - Exceeds Maximum Ticket.
21 Declined - CVV No Match.
22 Declined - AVS No Match.
23 Declined - Fraud Prevention.
24 Declined - Test Card.
25 Declined - Transaction Not Allowed.
26 Declined - Prepaid Card Not Allowed.
27 Declined - Transaction Not Allowed.
28 Declined - Transaction Not Allowed.
200 Transaction was declined by processor.
201 Do not honor.
202 Insufficient Funds.
203 Over Limit.
204 Transaction not allowed.
220 Incorrect payment data.
221 No such card issuer.
222 No card number on file with issuer.
223 Expired card.
224 Invalid expired date.
225 Invalid card security code.
240 Call issuer for further information.
250 Pick-up card.
251 Lost card.
252 Stolen card.
253 Fraudulent card.
260 Declined with further information available.
261 Declined - stop all recurring payment.
262 Declined - stop this recurring program.
263 Declined - update cardholder data available.
264 Declined - retry in few days.
300 Transaction was rejected by gateway.
400 Transaction error returned by processor.
410 Invalid merchant configuration.
411 Merchant account is inactive.
420 Communication error.
421 Communication error with issuer.
430 Duplicate transaction at processor.
440 Processor format error.
441 Invalid transaction information.
460 Processor feature not available.
461 Unsupported card type.

GoEMerchant:

ResponseCode Description
0Error
1Transaction successful
2Transaction declined

OmniFund:

ResponseCode Description
0 Normal Termination
20978A required transaction field is invalid/missing
20979A required transaction field is missing
20988Merchant is not approved for service
20989Both Card and Check services are turned off
20995Invalid transaction type
20996Missing transaction type
20997Invalid server (potential security violation)
20998Could not validate Merchant Id
20999Missing or invalid Merchant Id
30998Internal software error

Heartland/Heartland Portico:

ResponseCode Description
-21Unauthorized.
-2Authentication error.
-1Portico error.
0Success.
1Gateway system error.
2Duplicate transactions.
3Invalid original transaction.
4Transaction already associated with batch.
5No current batch.
6Invalid return amount.
7Invalid report parameters.
8Bad track data.
9No transaction associated with batch.
10Empty report.
11Original transaction not CPC.
12Invalid CPC data.
13Invalid edit data.
14Invalid card number.
15Batch close in progress.
16Invalid Ship Date.
17Invalid encryption version.
18E3 MSR Failure.
19Invalid Reversal Amount.
20Database operation time out.
21Archive database is currently unavailable.
22Archive database is currently unavailable, but an attempt was made to retrieve the data from the real-time database.
23An error was returned from the tokenization service when looking up a supplied token.
24A token was supplied in the request but tokenization is not yet supported for the requested service type.
25A token value was both supplied and requested.
30POS Gateway did not receive a response from the back end systems. POS Gateway is not sure if the transaction was successful or not.
32Missing KTB error.
33Missing KSN error.
34Invalid data received.
35Device setting error.
36Invalid Original Txn for Repeat.
37Missing Element.
38Invalid auth amount.
39Transaction rejected because EMV TLV data was invalid.
40Transaction rejected the referenced transaction has invalid EMV TLV data.
41Transaction declined because possible fraud was detected.
50Processor System Error.
51Processor Configuration error.
52Service Not Allowed.

HSBC

ResponseCode Description
AApproved.
DDeclined. Transaction was declined by the authoriser and it is unlikely that it would receive voice approval. This is also known as a hard decline.
RReferred. Transaction was declined by the authoriser, but it might receive voice approval. This is also known as a soft decline.
EError. There is something wrong with the transaction which prevents it from processing.

Innovative:

ResponseCode Description
0 Transaction Approved
* All other codes should be considered as declined.

Intellipay:

ResponseCode Description
AApproved. The purchase has been authorized by the issuer.
SSame. The DTS has detected a possible duplicate transaction. You can treat this as a decline, or you can send the transaction again after adding the following special field with the AddSpecialField method: AddSpecialField("DUPEOK", "Y");.
DDeclined. The authorizer has declined the purchase request.
XExpired. The card has expired.
EError. A data entry error of some kind has occurred.
UUnknown. An unknown processor or issuer error has occurred.
FFailure. A system failure of some kind has occurred.

ITransact/NexCommerce:

ResponseCode Description
0Approved.
1Declined or error condition.

JetPay XML:

ResponseCode Description
000Approved
001Refer to card issuer.
002Refer to card issuer, special condition.
003Pick up card.
005Do not honor.
006Error.
007Pickup card, special condition.
014Invalid account number (no such number).
015No such issuer.
025Record cannot be found.
041Pick up card (lost card).
043Pick up card (stolen card).
051Insufficient funds.
052No checking account.
054Expired Card.
057Transaction not permitted to cardholder.
062Restricted card.
100Do not honor.
103Invalid manual Entry 4DBC.
104New card issued.
105Account Canceled.
107Please Call Issuer.
109Invalid merchant.
110Invalid amount.
111Invalid account.
115Service not permitted.
122Invalid card (CID) security code.
125Invalid effective date.
181Format error.
182Please wait.
183Invalid currency code.
188Expiration date required.
189Canceled or Closed Merchant/SE.
200Pick up card.
400Reversal accepted.
913Merchants who do not accept certain credit card types.
917Expired card.
981Merchant accounts that are configured to reject transactions based on AVS results.
992Decline/Timeout.
900XML syntax error.

KartePay:

ResponseCode Description
1 Transaction successful
0 Transaction failed
101 Invalid request method. Only post is allowed.
102 MerchantID field is empty
103 OrderNumber field is empty
104 OrderNumber is already used
105 FirstName field is empty
106 LastName field is empty
107 EmailAddress field is empty
108 PhoneNumber field is empty
109 BankName field is empty
110 CountryName field is empty
111 StateName field is empty
112 CityName field is empty
113 Address1 field is empty
114 ZIPCode field is empty
115 OrderAmount field is empty
116 CurrencyCode field is empty
117 CurrencyCode is invalid
118 CardNumber field is empty
119 CardNumber field is invalid
120 ExpMonth field is empty
121 ExpMonth field is invalid
122 ExpYear field is empty
123 ExpYear field is invalid
124 CVC field is empty
125 PayerIP field is empty
126 CSID field is empty (Customer ID)
127 MerchantID field is invalid
128 Terminal is inactive
129 Gateway is inactive
130 Bad gateway error

LinkPoint/Chase/First Data/Your Pay:

ResponseCode Description
APPROVED The transaction was approved.
DECLINED the transaction was declined.
FRAUD Fraudulent transaction detected.

Litle:

ResponseCode Description
000 Approved
010 Partially Approved
100 Processing Network Unavailable
101 Issuer Unavailable
102 Re-submit Transaction
110 Insufficient Funds
111 Authorization amount has already been depleted
120 Call Issuer
121 Call AMEX
122 Call Diners Club
123 Call Discover
124 Call JBS
125 Call Visa/MasterCard
126 Call Issuer - Update Cardholder Data
127 Exceeds Approval Amount Limit
130 Call Indicated Number
140 Update Cardholder Data
191 The merchant is not registered in the update program.
301 Invalid Account Number
302 Account Number Does Not Match Payment Type
303 Pick Up Card
304 Lost/Stolen Card
305 Expired Card
306 Authorization has expired; no need to reverse
307 Restricted Card
308 Restricted Card - Chargeback
310 Invalid track data
311 Deposit is already referenced by a chargeback
320 Invalid Expiration Date
321 Invalid Merchant
322 Invalid Transaction
323 No such issuer
324 Invalid Pin
325 Transaction not allowed at terminal
326 Exceeds number of PIN entries
327 Cardholder transaction not permitted
328 Cardholder requested that recurring or installment payment be stopped
330 Invalid Payment Type
335 This method of payment does not support authorization reversals
340 Invalid Amount
346 Invalid billing descriptor prefix
349 Do Not Honor
350 Generic Decline
351 Decline - Request Positive ID
352 Decline CVV2/CID Fail
353 Merchant requested decline due to AVS result
354 3-D Secure transaction not supported by merchant
355 Failed velocity check
356 Invalid purchase level III, the transaction contained bad or missing data
360 No transaction found with specified litleTxnId
361 Authorization no longer available
362 Transaction Not Voided - Already Settled
363 Auto-void on refund
365 Total credit amount exceeds capture amount
370 Internal System Error - Call Litle
400 No Email Notification was sent for the transaction
401 Invalid Email Address
500 The account number was changed
501 The account was closed
502 The expiration date was changed
503 The issuing bank does not participate in the update program
504 Contact the cardholder for updated information
505 No match found
506 No changes found
601 Soft Decline - Primary Funding Source Failed
602 Soft Decline - Buyer has alternate funding source
610 Hard Decline - Invalid Billing Agreement Id
611 Hard Decline - Primary Funding Source Failed
612 Hard Decline - Issue with Paypal Account
701 Under 18 years old
702 Bill to outside USA
703 Bill to address is not equal to ship to address
704 Declined, foreign currency, must be USD
705 On negative file
706 Blocked agreement
707 Insufficient buying power
708 Invalid Data
709 Invalid Data - data elements missing
710 Invalid Data - data format error
711 Invalid Data - Invalid T&C version
712 Duplicate transaction
713 Verify billing address
714 Inactive Account
716 Invalid Auth
717 Authorization already exists for the order

Merchant Anywhere:

ResponseCode Description
0 Approved
1 Declined

Merchant E-Solutions:

ResponseCode Description
000Transaction Approved.
085No reason to decline (Response to an AVS Only transaction)
0xxTransaction declined. xx = decline reason code.
101Invalid Profile ID or Profile Key.
102Incomplete Request.
103Invoice Number Length Error.
104Reference Number Length Error.
105AVS Address Length Error.
106AVS Zip Length Error.
107Merchant Name Length Error.
108Merchant City Length Error.
109Merchant State Length Error.
110Merchant Zip Length Error.
111Merchant Category Code Length Error.
112Merchant Phone Length Error.
113Reference Number Must Be Numeric.
114Missing Card Holder Account Data.
115Invalid Card Number.
116Credits Not Allowed.
117Card Type Not Accepted.
118Currency Type Not Accepted.
119Retry ID length error. Must be 16 characters or less
120An invoice number is required for a 3D enrollment check
121MOTO/e-Commerce indicator length error.
122Non-USD offline transaction are not supported
123Client Reference Number length error
124Batch Number Required
125Invalid Batch Number
201Invalid Transaction ID.
202Invalid Transaction Amount.
203Void Failed.
204Transaction Already Settled.
205Transaction Already Voided.
206Transaction Already refunded.
207Refund failed.
208Failed to receive a response from auth host.
209Invalid tax amount.
210AVS result is declined by user.
211CVV2 result is declined by user.
212Refund amount must be between zero and the original amount.
213Only sale transactions can be refunded.
214Only one type of card data allowed per request.
215Invalid Card ID.
216Failed to load card data, retry request.
217Failed to store card data, retry request.
218Card ID parameter cannot be included in this type of transaction.
219Offline transactions requires an authorization code
220Failed to delete card data, retry request
221Invalid Card ID
222Card ID required
223Retry Request ID Lookup Failed
224FX rate ID invalid.
225FX rate has expired.
226FX rate lookup failed, retry request.
227FX rate ID required for foreign currency transactions.
228Base and consumer amounts are inconsistent with the FX rate.
229Failed to find currency code for the requested country code.
230Failed to post transaction the FX service.
231FX amount in base currency is required.
232FX transactions not accepted for this account.
233Request currency code must match FX rate currency code
234Pin debit transactions require track 2 swipe data.
235Invalid pin debit transaction type.
236Non-USD pin debit transactions are not supported.
237Batch Close Failed
238Quit Duplicate Batch
300Failed to capture International transaction.
301Failed to void International transaction.
302Failed to refund International transaction.
303Card Verify not supported.
304Failed to reverse International authorization.
400VBV/MSC Enrollment Check
401VBV/MSC Verification Failed.
999Internal Error.

Merchant Partners:

ResponseCode Description
DeclinedTransaction declined.
ApprovedTransaction accepted.

Metrobank:

ResponseCode Description
0Transaction successful.
1Transaction could not be processed.
2Transaction declined - Contact issuing bank.
3Transaction declined - No reply from bank.
4Transaction declined - Expired card.
5Transaction declined - Insufficient credit.
6Transaction declined - Bank system error.
7Payment server processing error.
8Transaction declined - Transaction type not supported.
9Bank declined transaction.
ATransaction aborted.
BTransaction blocked.
CTransaction cancelled.
DDeferred transaction.
ETransaction declined - Refer to card issuer.
F3D Secure authentication failed.
ICard security code failed.
LShopping transaction locked.
NCardholder is not enrolled in 3D Secure (Authentication only).
PTransaction is pending.
RRetry limits exceeded.
TAddress verification failed.
UCard security code failed.
VAddress verification and card security code failed.

Monetra:

ResponseCodeDescription
AUTH Transaction authorized/approved.
CALL Call processor for authorization.
DENY transaction denied, permanent denial, not likely to succeed on further attempts.
DUPL Duplicate transaction.
PKUP Confiscate card.
RETRY Temporary error, retrying the transaction may yield a different result. Typically these are clerk-initiated retries, not automated.
SETUP Setup error.
TIMEOUT Transaction not processed in allocated amount of time.

Moneris (Canada and USA):

ResponseCode Description
0Declined or incomplete.
1Approved.

My Virtual Merchant:

ResponseCode ResponseText Description
0APPROVED Transaction approved.
1(Custom server response)Declined or error condition. See ResponseText for additional information.
[Empty][Empty] See ErrorCode and ErrorText for error information.

Netbanx:

ResponseCode Description
ACCEPTED The transaction was processed.
DECLINED The transaction was declined before it was sent for processing.
ERROR The transaction was attempted but failed.

Network Merchants:

ResponseCode Description
1Accepted
2Declined
3Error

Ingenico/ Ogone:

ResponseCode Description
0 Incomplete or invalid
1 Cancelled by client
2 Authorization refused
4 Order stored
41 Waiting client payment
5 Authorized
51 Authorization waiting
52 Authorization not known
55 Stand-by
59 Authoriz. to get manually
6 Authorized and cancelled
61 Author. deletion waiting
62 Author. deletion uncertain
63 Author. deletion refused
64 Authorized and cancelled
7 Payment deleted
71 Payment deletion pending
72 Payment deletion uncertain
73 Payment deletion refused
74 Payment deleted
75 Deletion processed by merchant
8 Refund
81 Refund pending
82 Refund uncertain
83 Refund refused
84 Payment declined by the acquirer
85 Refund processed by merchant
9 Payment requested
91 Payment processing
92 Payment uncertain
93 Payment refused
94 Refund declined by the acquirer
95 Payment processed by merchant
99 Being processed

Orbital:

ResponseCode Description
0Decline.
1Approved.
2Message/System error.

Pay Direct:

ResponseCode Description
0 Failed Transaction
1 Successful Transaction (for Charge and Settle)
2 Voided or Refunded Transaction
5 Pending Credit for First Data
7 Successful Authorization Transaction
9 Pending Transaction
10 Successful Pending E-Check Transaction
21 eCheck NSF
22 eCheck NSF
23 eCheck Return
24 eCheck Return

Pay Junction:

ResponseCode Description
00Approved.
85Approved.
FE There was a format error with your Trinity Gateway Service (API) request.
LE Could not log you in (problem with dc_logon and/or dc_password).
AE Address verification failed because address did not match.
ZE Address verification failed because zip did not match.
XE Address verification failed because zip and address did not match.
YE Address verification failed because zip and address did not match.
OE Address verification failed because address or zip did not match..
UE Address verification failed because cardholder address unavailable.
RE Address verification failed because address verification system is not working.
SE Address verification failed because address verification system is unavailable.
EE Address verification failed because transaction is not a mail or phone order.
GE Address verification failed because international support is unavailable.
CE Declined because CVV2/CVC2 code did not match.
NL Aborted because of a system error, please try again later.
AB Aborted because of an upstream system error, please try again later.
04 Declined. Pick up card.
07 Declined. Pick up card (Special Condition).
41 Declined. Pick up card (Lost).
43 Declined. Pick up card (Stolen).
13 Declined because of the amount is invalid.
14 Declined because the card number is invalid.
80 Declined because of an invalid date.
05 Declined. Do not honor.
51 Declined because of insufficient funds.
N4 Declined because the amount exceeds issuer withdrawal limit.
61 Declined because the amount exceeds withdrawal limit.
62 Declined because of an invalid service code (restricted).
65 Declined because the card activity limit exceeded.
93 Declined because there a violation (the transaction could not be completed).
06 Declined because address verification failed.
54 Declined because the card has expired.
15 Declined because there is no such issuer.
96 Declined because of a system error.
N7 Declined because of a CVV2/CVC2 mismatch.
M4 Declined.

Pay Leap:

ResponseCode Description
-100Transaction NOT Processed; Generic Host Error
0Approved
1User Authentication Failed
2Invalid Transaction
3Invalid Transaction Type
4Invalid Amount
5Invalid Merchant Information
7Field Format Error
8Not a Transaction Server
9Invalid Parameter Stream
10Too Many Line Items
11Client Timeout Waiting for Response
12Decline
13Referral
14Transaction Type Not Supported In This Version
19Original Transaction ID Not Found
20Customer Reference Number Not Found
22Invalid ABA Number
23Invalid Account Number
24Invalid Expiration Date
25Transaction Type Not Supported by Host
26Invalid Reference Number
27Invalid Receipt Information
28Invalid Check Holder Name
29Invalid Check Number
30Check DL Verification Requires DL State
40Transaction did not connect (to NCN because SecureNCIS is not running on the web server)
50Insufficient Funds Available
99General Error
100Invalid Transaction Returned from Host
101Timeout Value too Small or Invalid Time Out Value
102Processor Not Available
103Error Reading Response from Host
104Timeout waiting for Processor Response
105Credit Error
106Host Not Available
107Duplicate Suppression Timeout
108Void Error
109Timeout Waiting for Host Response
110Duplicate Transaction
111Capture Error
112Failed AVS Check
113Cannot Exceed Sales Cap
1000Generic Host Error
1001Invalid Login
1002Insufficient Privilege or Invalid Amount
1003Invalid Login Blocked
1004Invalid Login Deactivated
1005Transaction Type Not Allowed
1006Unsupported Processor
1007Invalid Request Message
1008Invalid Version
1010Payment Type Not Supported
1011Error Starting Transaction
1012Error Finishing Transaction
1013Error Checking Duplicate
1014No Records To Settle (in the current batch)
1015No Records To Process (in the current batch)

PayFlow Link:

ResponseCode Description
0Approved
-Anything other than an approved transaction will return no code. However, the ResponseText property will contain the error message.

PayFlow Pro:

ResponseCode Description
0Approved.
1User authentication failed.
2Invalid tender type. Your merchant bank account does not support the following credit card type that was submitted.
3Invalid transaction type. Transaction type is not appropriate for this transaction. For example, you cannot credit an authorization-only transaction.
4Invalid amount format.
5Invalid merchant information. Processor does not recognize your merchant account information. Contact your bank account acquirer to resolve this problem.
7Field format error. Invalid information entered.
8Not a transaction server.
9Too many parameters or invalid stream.
10Too many line items.
11Client timeout waiting for response.
12Declined. Please check the credit card number and transaction information to make sure they were entered correctly. If this does not resolve the problem, have the customer call the credit card issuer to resolve.
13Referral. Transaction was declined but could be approved with a verbal authorization from the bank that issued the card. Submit a manual Voice Authorization transaction and enter the verbal auth code.
19Original transaction ID (PNRef) not found. The transaction ID you entered for this transaction is not valid.
20Cannot find the customer reference number.
22Invalid ABA number.
23Invalid account number. Please check credit card number and re-submit.
24Invalid expiration date. Please check and re-submit.
25Transaction type not mapped to this host.
26Invalid vendor account.
27Insufficient partner permissions.
28Insufficient user permissions.
29Invalid XML document. This could be caused by an unrecognized XML tag or a bad XML format that cannot be parsed by the system.
30Duplicate transaction.
31Error in adding the recurring profile.
32Error in modifying the recurring profile.
33Error in canceling the recurring profile.
34Error in forcing the recurring profile.
35Error in reactivating the recurring profile.
36OLTP Transaction failed.
50Insufficient funds available.
99General error.
100Transaction type not supported by host.
101Timeout value too small.
102Processor not available.
103Error reading response from host.
104Timeout waiting for processor response. Try your transaction again.
105Credit Error. Please make sure you have not already credited this transaction, or that this transaction ID is for a creditable transaction (for example, you cannot credit an authorization.)
106Host not available.
107Duplicate suppression timeout.
108Void error. Please make sure the transaction ID entered has not already been voided. If not, then look at the Transaction Detail screen for this transaction to see if it has settled (the Batch field will be set to a number greater than zero if the transaction has been settled.) If the transaction has already settled your only recourse is a reversal (credit a payment or submit a payment for a credit).
109Timeout waiting for host response.
111Capture error. Only authorization transactions can be captured.
112Failed AVS check. Address and zip code do not match.
113Cannot exceed sales cap. For ACH transactions only (not supported.)
114CVV2 Mismatch. An authorization may still exist on the cardholder's account.
115System is busy, try again later.
116VPS Internal error - Failed to lock terminal number.
117Failed merchant rule check. An attempt was made to submit a transaction that failed to meet the security settings specified on the VeriSign Manager Security Settings page. See VeriSign Manager User's Guide.
118Invalid keywords found in string fields.
1000Generic host error. This is a generic message returned by your credit card processor. The message itself will contain more information describing the error.

PayFuse: (Note, this is a selection of error codes. Please see the API docs for a complete list. Only codes 1 and 4 indicate approval.)

ResponseCode Description
1 Approved.
2 Referral (General).
3 Referral - Call bank for manual approval.
4 AVS request accepted.
50 Declined (General).
51 Connection timed-out.
52 Error connecting to processor or sending data.
53 Error during Payment Commit phase.
54 Timed out waiting for response.
100 Transaction failed to settle due to Soft Error.
101 Transaction failed to settle due to Hard Error.
102 Transaction failed to settle because the transaction is marked as Locked.
500 Declined - Transaction considered fraudulent by Fraud component.
501"The transaction was Approved by the processor. However, it failed a postprocessing fraud rule and has been voided."
502 "The transaction was Approved by the processor. However, it failed a fraud rule and has been marked for review."

Payment Express:

ResponseCode Description
1 Approved
0 Decline or error

Payscape:

ResponseCode Description
1Accepted
2Declined
3Error

PayTrace / PayTraceJSON:

ResponseCode Description
0Approved.
-1The response from the PayTrace API was null.
30Customer ID, xxxxx, was not found or is incomplete.
35Please provide a valid Credit Card Number.
36Customer ID, xxxxxx, does not have a valid billing address.
37Customer ID, xxxxxx, does not have a valid billing ZIP.
39Your PayTrace account is not set up to accept this card type.
40An error occurred during the decryption process.
43Please provide a valid Expiration Month.
44Please provide a valid Expiration Year.
45Please provide a valid Checking Account Number.
46Please provide a valid Transit Routing Number.
47Please provide an Amount that is less than your Sale Ceiling Amount.
48Please provide an Amount that is less than your Refund Ceiling Amount.
51Please provide a valid Amount.
54Cash Advances may only be processed as Sales.
55Cash Advances may only be processed through accounts set up in the TSYS/Vital network.
56Cash Advances may not be processed to stored customers.
57Your PayTrace account is not set up to process Cash Advances.
58Please provide a valid Transaction ID.
59Please provide a valid Check ID.
61The Customer ID that you provided was not found in the PayTrace records.
62Please provide a valid Photo ID.
63Please provide a valid ID Expiration.
64Please provide a valid Last 4 of Card.
65Cash Advances may only be processed on Visa, MasterCard, and Discover cards.
80The Check ID that you provided was not found in the PayTrace records. It may already be voided or settled.
81The Transaction ID that you provided was not found in the PayTrace records. It may be a voided a transaction or an unsettled transaction.
82Please provide a valid Batch Number.
83This is not an approved transaction so it can not be captured.
84This transactions approval code has expired as it was obtained more than 20 days ago.
85The Transaction ID that you provided was not found in the PayTrace records. It may already be captured or settled.
86The Transaction ID that you provided was not found in the PayTrace records. It may already be voided, settled, or an uncaptured authorization.
87The Transaction ID that you provided was not found in the PayTrace records, and the receipt could not be emailed.
88The Transaction ID that you provided was not found in the PayTrace records, and level 3 data could not be added to the Visa transaction.
89The Transaction ID that you provided was not found in the PayTrace records, and level 3 data could not be added to the MasterCard transaction.
90The Transaction ID that you provided was not found in the PayTrace records, and the amount was not updated.
115Please provide a valid Approval Code.
116Please provide a valid Transaction Type.
117Please provide a valid Billing Name.
118Please provide a valid Billing Address.
119Please provide a valid Billing Address 2.
120Please provide a valid City.
121Please provide a valid State.
122Please provide a valid Zip Code.
124Please provide a valid Shipping Name.
125Please provide a valid Shipping Address.
126Please provide a valid Shipping Address 2.
127Please provide a valid Shipping City.
128Please provide a valid Shipping County.
129Please provide a valid Shipping State.
130Please provide a valid Shipping Zip Code.
131Please provide a valid Shipping Country
132Please provide a valid Phone Number.
133Please provide a valid Source State.
134Please provide a valid Source Zip Code.
135Please provide a valid list of Shippers.
136Please provide a valid Weight.
137Please provide a valid Fax Number.
139Please make sure the Shipping State and Shipping Zip are accurate.
141Please provide a valid Email Address.
148Please provide a valid CSC.
149Please provide a valid Invoice Number.
150Please provide a valid Description.
151Please provide a valid Tax Amount.
152Please provide a valid Customer Reference.
153This customer profile does not have an email address to send the receipt.
160Please provide a valid Frequency.
161Please provide a valid Transaction Count.
162Please provide a valid Start Date.
163Please provide a valid Next Date.
164Please provide a valid Repeat value.
165Please provide a valid Recurring Payment ID.
169No recurring payments were found with this criteria.
170No approved transactions were found for this customer.
171Please provide a unique customer ID.
172Please provide a Customer Password that is greater than 6 characters and less than 255 characters.
175Please provide a valid Start Date.
176Please provide a valid End Date.
177Please provide a date range.
178Please provide a valid User.
180No transactions were found with these criteria.
185No customers were found with these criteria.
190Please provide a valid National Tax Amount.
191Please provide a valid Merchant Tax ID.
192Please provide a valid Customer Tax ID.
193Please provide a valid Commodity Code.
194Please provide a valid Discount Amount.
195Please provide a valid Freight Amount.
196Please provide a valid Duty Amount.
197Please provide a valid Additional Tax Amount.
198Please provide a valid Additional Tax Rate.
199Please provide a valid Additional Tax Indicator.
200Please provide a valid Line Item record.
201Please provide a valid Line Item Commodity Code.
202Please provide a valid Line Item Description.
203Please provide a valid Line Item Product ID.
204Please provide a valid Line Item Quantity.
205Please provide a valid Line Item Measure.
206Please provide a valid Line Item Unit Cost.
207Please provide a valid Line Item Additional Tax Amount.
208Please provide a valid Line Item Additional Tax Rate.
209Please provide a valid Line Item Discount.
210Please provide a valid Line Item Amount.
211Please provide a valid Line Item Additional Tax Indicator.
212Please provide a valid Line Item Discount Rate.
213Please provide a valid Line Item Discount Indicator.
214Please provide a valid Line Item Net Gross Indicator.
215Please provide a valid Line Item Debit Credit Indicator.
230Batch was not initiated as no transactions are pending settlment.
231Batch was not initiated as another batch is in progress or pending.
700This transaction was not approved because the authorization network was not available. Please retry this transaction again.
740PayTrace is unable to process this check as the check processor information is incomplete or the network returned an error.
750PayTrace does not support this transaction type for this check processor.
777PayTrace blocked this transaction because it is a duplicate, and it may be reprocessed in ### minute(s).
867Please provide valid new passwords.
869Please provide new passwords that are unique to your previous 4 passwords.
880This customer is schedule for recurring payment #xxxxx and may not be deleted.
900Please indicate that you agree with PayTrace's terms and conditions.
950Unreferenced refunds are not permitted for Optima Payments accounts.
951Forced Sales are not permitted for Optimal Payments accounts.
952Swiped/card present transactions are not permitted for Optimal Payments accounts.
973The processor information for xxxxxx is incomplete.
974Your PayTrace account is not set up to use the PayTrace API.
975Your PayTrace account is not set up to process recurring transactions.
976Your account is only set up to process Cash Advances and Voids.
978Your account is not set up to process checks.
979Password is expired. Please log into virtual terminal to reset password.
980~986Log in failed for insufficient permissions.
987Please provide a valid method or request to process.
988Log in failed.
989Log in failed for insufficient permissions.
990Please provide a properly formatted parameter string.
991Log in failed.
992Please ensure you have exactly one '~' between each of the name and value pairs in the parameter string.
993xxxxxx is not a valid parameter name.
994Please provide a valid user name.
995Please provide a valid password.
998Log in failed.
999Log in failed for insufficient permissions.

Payvision:

ResponseCode Description
0 There were no errors during the execution of the operation.
1000 This code groups all errors related to the parameters sent.
2000 Groups all errors related to Payvision.
3000 Groups all responses related to declines.
3100 Groups all responses related to Referral transactions.
3200 Groups all errors related to the acquiring bank.
4000 Groups all errors regarding security issues.
5000 Groups all unexpected errors.
6000 Groups all codes different than 0 given by the business rules applied to the execution of an operation.

PayWiser:

ResponseCode Description
-1 Invalid caller
-2 Invalid parameters
-3 Duplicate ReferenceID
-4 Error calling bank
-5 Unknown card type
-6 Wrong format of CardExpDate
-7 Invalid CheckReferenceID
-8 Invalid PGReferenceID
-9 Amount is out of bounds (either 0 or not between min and max)
-10 Invalid ReservationReferenceID
-11 General processing error
-12 Invalid InitPaymentReferenceID
-13 Web payment is no longer active
-14 Web payment was already processed
-15 Invalid PaymentCheckURL response
-16 Invalid card region (intra)
-17 Invalid card region (inter)
-18 Hourly transaction count limit exceeded
-19 Daily transaction count limit exceeded
-20 Monthly transaction count limit exceeded
-21 Hourly transaction sum limit exceeded
-22 Daily transaction sum limit exceeded
-23 Monthly transaction sum limit exceeded
-24 Hourly card transaction count limit exceeded
-25 Daily card transaction count limit exceeded
-26 Monthly card transaction count limit exceeded
-27 Invalid WebFormLanguage
-28 Invalid TemplateID
-29 Invalid RecurringScheduleID
-30 General Moneta error
-31 Invalid AgreementID
-32 Agreement not confirmed
-33 3DS error - wrong card type
-34 3DS processing error
-35 3DS is not set up for this account
-36 3DS is not allowed for this account
-37 3DS error - parameter ThreeDSecurePaRes or ThreeDSecureReferenceID is required
-38 3DS error - parameter ThreeDSecureData is required
-39 3DS error - ThreeDSecureReferenceID not found or not completed
-40 Maestro cards cannot be tokenized. Use /Reserve with card data instead.
-41 Merchant requires 3DS, but this card does not support 3DS
-42 Maestro cards processing require 3DS enabled account
-43 Maestro cards cannot be tokenized.
-44 Maestro cards require 3DS.
-45 3DS error - parameter ThreeDSecureReferenceID is required
-46 Yearly transaction count limit exceeded
-47 Yearly transaction sum limit exceeded
-48 Yearly card transaction count limit exceeded
-49 Account has been temporarily suspended
-50 Card has already been declined by the bank. Unable to process this card for 10 minutes.
-51 Recurring payments or installments are not allowed with mandatory 3DS.
-52 Down payments, skipping payments or shitfing first payment are not alloweed with mandatory 3DS.
-53 Invalid RecurringPlanID
-54 Invalid FirstPaymentDate
-55 Invalid ExpiryDate
-56 PaymentsSkipCount cannot be greater than total number of payments
-57 Recurring payments cannot have Amount (use RecurringPayment.PaymentAmount instead)
-58 Recurring ExpiryDate must be after FirstPaymentDate
-59 Recurring FirstPaymentDate can not be before today
-60 Duplicate RecurringReferenceID
-61 Recurring payments are now allowed for this account
-62 Recurring schedule does not exist
-63 Recurring schedule is already terminated
-64 Invalid PlanPattern value
-65 Invalid RetryPattern value
-66 MaxRetryCount must be greater or equal to 0
-67 Either both MaxRetryCount and RetryPattern or none of them must be specified
-68 PaymentHour must be between 0 and 23
-69 Card with specified CardToken does not exist
-70 Recurring plan can not have InstallmentTotalValue
-71 ImmediatePaymentAmount is out of bounds (either 0 or not between min and max)
-72 PaymentAmount is out of bounds (either 0 or not between min and max)
-73 Card payments are now allowed, specifying AllowCards is not allowed
-74 Moneta payments are now allowed, specifying AllowMoneta is not allowed
-75 AdjustPlanWithStartDate is not allowed with specified recurring plan pattern
-76 RenewYearly is only allowed with installment type (not recurring) and for monthly plans with less than 12 installments only
-77 Sepa payments are now allowed for this account
-78 Invalid MandateSignatureDate
-79 Duplicate MandateID
-80 MandateID does not exist
-81 MandateID is already revoked
-82 Amount is out of bounds (either 0 or not between min and max)
-83 Invalid CheckPaymentReferenceID
-84 Invalid Sepa Sequence
-85 Invalid MandateValidFromDate
-86 Sepa collection date can not be before current day
-87 Sepa payment date is out of bounds (either to soon or too late) for bank processing, check StartDate
-88 Invalid CollectionDate
-89 MandateID is allowed only for Sepa payments
-90 Sepa mandate is canceled
-91 Currency mismatch (different currency than used for Reserve)
-92 Invalid Amount (larger than used for Reserve)
-93 Sepa mandate has already been used
-94 Invalid combination of CardToken, SepaMandateID and MonetaAgreementID - only one can be used
-95 Recurring payments require recurring mandate
-96 One or more itms in the list has Currency different from the payment Currency
-97 Either CardToken, SepaCreditorMandateID or MonetaAgreementID must be specified
-98 Sepa first payment date is out of bounds (either to soon or too late) for bank processing
-99 Sepa consecutive payment dates are out of bounds (either to soon or too late) for bank processing
-100 Sepa consecutive retry dates are out of bounds (either to soon or too late) for bank processing
-101 Sepa payments are now allowed, specifying AllowSepa is not allowed
-102 MonetaDO settings missing
-103 MonetaDO error
-104 MonetaDO agreement does not exist
-105 MonetaDO agreement is not yet confirmed by the customer
-106 MonetaDO agreement is canceled
-107 MonetaDO reservation does not exist
-108 Only EUR currency is allowed for Moneta payments
-109 AgreementID is not allowed for non-recurring payments
-110 AgreementID is allowed only for moneta payments
-111 MobileNumber does not support Moneta payments
-113 General Sepa error
-114 Invalid characters
-115 Sepa error - access token not available
-116 Payouts are not allowed for this account
-117 Surcharge+Cashback can not be greater than Amount
-118 Invalid Surcharge amount (larger than used for Reserve)
-119 Invalid CashBack amount (larger than used for Reserve)
-120 Surcharge is allowed only for card payments
-121 Surcharge can not be greater than Amount
0 Ok
305 3DS is needed
1000 Confirmation requested
1001 Agreement not active
20000 Approved
40000 General input error
40110 Invalid card number
40120 Invalid CSC
40130 Invalid expire date
40135 Card expired
40140 Invalid currency
40200 Clearhaus rule violation
40300 3-D Secure problem
40310 3-D Secure authentication failure
40400 Backend problem
40410 Declined by issuer or card scheme
40411 Card restricted
40412 Card lost or stolen
40413 Insufficient funds
40414 Suspected fraud
40415 Amount limit exceeded
50000 Clearhaus error
40000 General input error
40110 Invalid card number
40120 Invalid CSC
40130 Invalid expire date
40135 Card expired
40140 Invalid currency
40200 Clearhaus rule violation
40300 3-D Secure problem

PhoeniXGate:

ResponseCode Description
-100 Transaction NOT Processed; Generic Host Error.
0 Approved.
1 User Authentication Failed.
2 Invalid Transaction.
3 Invalid Transaction Type.
4 Invalid Amount.
5 Invalid Merchant Information.
7 Field Format Error.
8 Not a Transaction Server.
9 Invalid Parameter Stream.
10 Too Many Line Items.
11 Client Timeout Waiting for Response.
12 Decline.
13 Referral.
14 Transaction Type Not Supported In This Version.
19 Original Transaction ID Not Found.
20 Customer Reference Number Not Found.
22 Invalid ABA Number.
23 Invalid Account Number.
24 Invalid Expiration Date.
25 Transaction Type Not Supported by Host.
26 Invalid Reference Number.
27 Invalid Receipt Information.
28 Invalid Check Holder Name.
29 Invalid Check Number.
30 Check DL Verification Requires DL State.
40 Transaction did not connect (to NCN because SecureNCIS is not running on the web server).
50 Insufficient Funds Available.
99 General Error.
100 Invalid Transaction Returned from Host.
101 Timeout Value too Small or Invalid Time Out Value.
102 Processor Not Available.
103 Error Reading Response from Host.
104 Timeout waiting for Processor Response.
105 Credit Error.
106 Host Not Available.
107 Duplicate Suppression Timeout.
108 Void Error.
109 Timeout Waiting for Host Response.
110 Duplicate Transaction.
111 Capture Error.
112 Failed AVS Check.
113 Cannot Exceed Sales Cap.
1000 Generic Host Error.
1001 Invalid Login.
1002 Insufficient Privilege or Invalid Amount.
1003 Invalid Login Blocked.
1004 Invalid Login Deactivated.
1005 Transaction Type Not Allowed.
1006 Unsupported Processor.
1007 Invalid Request Message.
1008 Invalid Version.
1010 Payment Type Not Supported.
1011 Error Starting Transaction.
1012 Error Finishing Transaction.
1013 Error Checking Duplicate.
1014 No Records To Settle (in the current batch).
1015 No Records To Process (in the current batch).

Planet Payment:

ResponseCode ResponseText Description
01 CALL See ResponseText for issuer phone number
02 CALL See ResponseText for issuer phone number
03 TERM ID ERROR Invalid merchant ID
04 HOLD - CALL Pick up card
05* DECLINE Do not honor
06 ERROR General error
07 PICKUP CARD Do not honor
08 HONOR WITH ID Honor with customer ID
10 PARTIAL APPROVAL Partial approval for the authorized amount returned
11 APPROVAL VIP approval
12* INVALID TRANS Invalid transaction
13* AMOUNT ERROR Invalid transaction amount
14* CARD NO. ERROR Invalid card number
15* NO SUCH ISSUER No such issuer
17 CUST CANCELATION Customer cancellation
19* RE ENTER Re-enter transaction
21 NO ACTION TAKEN Unable to back out transaction
25* NO RECORD FOUND Unable to locate record in file, or account number is missing from inquiry
27* ERROR Issuer File Update field edit error
28* NO REPLY Temporarily unavailable
30* CALL Format error
32 PARTIAL REVERSAL Partial reversal
40 NOT SUPPORTED Requested function not supported
41 HOLD-CALL Pickup card-lost
43 HOLD-CALL Pickup card-stolen
51* DECLINE Insufficient funds
52 NO CHECK ACCOUNT No checking account
53 NO SAVE ACCOUNT No savings account
54* EXPIRED CARD Expired card
55 WRONG PIN Incorrect PIN
57 SERV NOT ALLOWED Transaction not permitted-card
58 SERV NOT ALLOWED Transaction not permitted-terminal
59 DECLINE Suspected fraud
61* DECLINE Exceeds withdrawal limit
62 DECLINE Invalid service code, restricted
63 SEC VIOLATION Security violation
65* DECLINE Activity limit exceeded
68 LATE RESPONSE Response received late
75 PIN EXCEEDED PIN tries exceeded
76* NO ACTION TAKEN Unable to locate
77* NO ACTION TAKEN Inconsistent data, rev. or repeat
78* NO ACCOUNT No account
79 ALREADY REVERSED Already reversed
80 DATE ERROR Invalid date
81* ENCRYPTION ERROR Cryptographic error
82 INCORRECT CVV CVV data incorrect
83 CANT VERIFY PIN Cannot verify PIN
84 BAD LIFE CYCLE Invalid authorization life cycle
85 CARD OK No reason to decline
86 CANT VERIFY PIN Cannot verify PIN
87 DECLINE Network unavailable
91* NO REPLY Issuer unavailable
92* INVALID ROUTING Destination not found
93 DECLINE Violation, cannot complete
94* DECLINE Duplicate transmission detected
96* SYSTEM ERROR Re-send, system error
AX EXCEEDS AMOUNT Amount exceeds either the minimum or maximum allowed amount
B1 SURCHARGE NOT ALLOWED Surcharge amount not permitted on Visa cards or EBT food stamps
ER ERROR Error-see MRC response
N0* FORCE STIP Force STIP
N3 CASHBACK NOT AVAIL Cash back service not available
N4* DECLINE Exceeds issuer withdrawal limit
N7 CVV2 MISMATCH CVV2 value supplied is invalid
P2 INVALID BILL INFO Invalid biller information
P5 PIN CHARGE/UNBLOCK DECLINED PIN charge/unblock declined
P6 UNSAFE PIN Unsafe PIN
Q1 AUTHENTIC FAILED Card authentication failed
R0 STOP RECURRING Customer requested stop of specific recurring payment.
R1 STOP RECURRING Customer requested stop of all recurring payments from specific merchant.
R3 ALL AUTH REVOKED Revocation of All Authorizations Order SD SOFT DECLINE Transaction is declined by the Gateway based on merchant's settings for ACCOUNT_VALIDATION and CONSUMER_VALIDATION TO (Tee-oh)* TIME OUT Re-submit
XA* FORWARD 2 ISSUER Forward to issuer
XD* FORWARD 2 ISSUER Forward to issuer
Z3* UNABLE TO ONLINE Unable to go online, declined.

An asterisk (*) denotes a recoverable ARC for recurring transactions. If any other ARC is returned for a recurring transaction, the schedule is automatically canceled.

PlugNPay:

ResponseCode Description
A Approved.
C Call Auth Center.
D Declined.
P Pick up card.
X Expired.
E Other Error.

Priority Payment Systems:

ResponseCodeDescription
Approved, Settled, Voided, AuthOnly, InProgress, and 200-299Successes
400-499Client request errors
500-599Server errors

(Numeric values are HTTP status codes)

ProPay XML:

ResponseCode Description
00Success
20Invalid username
21Invalid transType
23Invalid accountType
24Invalid sourceEmail
25Invalid firstName
26Invalid mInitial
27Invalid lastName
28Invalid billAddr
29Invalid aptNum
30Invalid city
31Invalid state
32Invalid billZip
33Invalid mailAddr
34Invalid mailApt
35Invalid mailCity
36Invalid mailState
37Invalid mailZip
38Invalid dayPhone
39Invalid evenPhone
40Invalid ssn
41Invalid dob
42Invalid recEmail
43Invalid knownAccount
44Invalid amount
45Invalid invNum
46Invalid rtNum
47Invalid accntNum
48Invalid ccNum
49Invalid expDate
50Invalid cvv2
51Invalid transNum or unavailable to act on transNum due to funding
52Invalid splitNum
53A ProPay account with this e-mail address already exists or User has no AccountNumber
54A ProPay account with this social security number already exists
55The email address provided does not correspond to a ProPay account.
56Recipient's e-mail address shouldn't have a ProPay account and does
57Cannot settle transaction because it already expired
58Credit card declined
59User not authenticated
60Credit card authorization timed out; retry at a later time
61Amount exceeds single transaction limit
62Amount exceeds monthly volume limit
63Insufficient funds in account
64Over credit card use limit
65Miscellaneous error
66Denied a ProPay account (Developer should display a descriptive message that guides a new user to fill out ProPay exceptions form and submit it.)
67Unauthorized service requested
68Account not affiliated
69Duplicate invoice number (Transaction succeeded in a prior attempt within the previous 24 hours. This return code should be handled as a success. Details about the original transaction are included whenever a 69 response is returned. These details include a repeat of the authcode, the original AVS response, and the original CVV response.)
70Duplicate external ID
71Account previously set up, but problem affiliating it with partner
72The ProPay Account has already been upgraded to a Premium Account
73Invalid Destination Account
74Account or Trans Error
75Money already pulled
76Not Premium (used only for push/pull transactions)
77Empty results
78Invalid Authentication
79Generic account status error
80Invalid Password
81AccountExpired
82InvalidUserID
83BatchTransCountError
84InvalidBeginDate
85InvalidEndDate
86InvalidExternalID
87DuplicateUserID
88Invalid track 1
89Invalid track 2
90Transaction already refunded
91Duplicate Batch ID
92Duplicate Batch Transaction
93Batch Transaction amount error
94Unavailable Tier
95Invalid Country Code
97Account created in documentary status, but still must be validated.
98Account created in documentary status, but still must be validated and paid for.
99Account created successfully, but still must be paid for.
100Transaction Already Refunded
101Refund Exceeds Original Transaction
102Invalid Payer Name
103Transaction does not meet date criteria
104Transaction could not be refunded due to current transaction state.

PSIGate:

ResponseCode Description
APPROVED The card issuing bank approved the transaction request.
DECLINED The transaction request was accepted as a valid request and was declined by the card issuing bank.
ERROR The transaction request encountered an error.

QuickBooks Merchant Services (QBMS):

ResponseCode Description
0Status Ok - Request succeeded.
10100 The transaction had a validation error, but could not be voided automatically. If you want to void or cancel it, you must do so manually. This is a warning and can happen if there is an incorrect street address and/or zip code. Depending on the merchant's fraud settings, QBMS may try to automatically void the transaction. If that fails, as is the case with this status code, you must void or cancel the transaction manually.
10101 This is a validation error warning and can be returned if the merchant's fraud settings cause some auth transactions to be rejected. In this case, even though the auth is rejected, the auth is kept on file against the customer card up to 15-30 days after the rejection.
10200 An error occurred while communicating with the processing gateway. Indicates a communication problem, rather than an error resulting from transaction content.
10201 An error occurred during login to the processing gateway. Could not log in to the QBMS processing gateway.
10202 An error occurred during account validation. Could not validate the QBMS account.
10300 A numeric value was of the wrong type. For example, some values require integers only, while others require decimals.
10301 This credit card number is invalid.
10302 An error occurred while validating a date field. Format is invalid.
10303 A mandatory element is missing from the request.
10304 A field in the request is too long. The maximum length has been exceeded.
10305 An error occurred during data validation. Unexpected data was found during the validation.
10306 You may only supply the Boolean values true or false in the indicated field.
10307 A field in the request is too short - The expected minimum data is not present.
10309 A field is not formatted correctly.
10312 Invalid data contained in a field. This error can occur for various reasons, for example if the value supplied in the TransactionAmount property is not formatted correctly (dollars, period, cents to two decimal places), you'll get this error.
10314 You can not reuse a TransactionId for a different type of transaction within a 5 minute period. The TransactionId should be unique within this time window.
10400 This account does not have sufficient funds to process this transaction. The attempted transaction exceeded the customer's credit limit on the credit card. The transaction failed.
10401 Declined: The card issuer/processor refused to authorize the transaction. For example, the account may have been closed, or activities may have been temporarily stopped for that card due to security reasons.
10402 The merchant bank account does not support this type of credit card.
10403 The QBMS account contained in the request is not valid.
10404 This transaction has been declined, but can be approved by obtaining a Voice Authorization code from the card issuer and then calling the Force method.
10405 An error occurred while attempting to void this transaction. The transaction may have already been settled.
10406 This capture transaction could not be processed for one of the following reasons. The transaction has been captured already, has been voided, has expired, or the capture request has used the incorrect authorization transaction ID.
10407 The transaction amount exceeded the per transaction limit imposed by the card issuer.
10408 An error occurred due to invalid data format. An incorrect format was used for a field value, such as the transaction ID.
10409 A validation error occurred while processing this transaction:
10415 This transaction has been declined because the credit card used for the original transaction has expired. For example, this error could occur if the card in question has expired between the time of authorization and the time of an attempted capture.
10416 This transaction was already submitted and processed. A check transaction is being duplicated.
10417 A particular type of check is not supported for an attempted check transaction (i.e. a Payroll Check).
10418 Total amount of checks submitted exceeds allowed daily maximum.
10419 Number of transactions exceeds allowed daily maximum.
10420 The check transaction was declined due to suspected fraud.
10500 An unknown server error occurred that prevents processing of the request.
10501 An unknown server error occurred that prevents processing of the request.

QuickBooks Payments (QBPayments):

ResponseErrorCode Description
PMT-1000 Incorrect CVC (fraud_warning)
PMT-1001 CVC check could not be validated (fraud_warning)
PMT-1002 Incorrect address information (fraud_warning)
PMT-1003 Address information could not be validated (fraud_warning)
PMT-2000 Incorrect CVC (fraud_error)
PMT-2001 CVC check unavailable (fraud_error)
PMT-2002 Incorrect address information (fraud_error)
PMT-2003 Address information unavailable (fraud_error)
PMT-3000 The merchant account could not be validated (account_error)
PMT-4000 {0} is invalid (invalid_request)
PMT-4001 No {0} found (invalid_request)
PMT-4002 {0} is required (invalid_request)
PMT-5000 Transaction declined (transaction_declined)
PMT-5001 Unsupported payment method (transaction_declined)
PMT-5002 Transaction declined due to risk (transaction_declined)
PMT-6000 Temporary system error (system_error)

Repay Gateway:

ResponseCode Description
-100 Transaction NOT Processed; Generic Host Error.
0 Approved.
1 User Authentication Failed.
2 Invalid Transaction.
3 Invalid Transaction Type.
4 Invalid Amount.
5 Invalid Merchant Information.
7 Field Format Error.
8 Not a Transaction Server.
9 Invalid Parameter Stream.
10 Too Many Line Items.
11 Client Timeout Waiting for Response.
12 Decline.
13 Referral.
14 Transaction Type Not Supported In This Version.
19 Original Transaction ID Not Found.
20 Customer Reference Number Not Found.
22 Invalid ABA Number.
23 Invalid Account Number.
24 Invalid Expiration Date.
25 Transaction Type Not Supported by Host.
26 Invalid Reference Number.
27 Invalid Receipt Information.
28 Invalid Check Holder Name.
29 Invalid Check Number.
30 Check DL Verification Requires DL State.
40 Transaction did not connect (to NCN because SecureNCIS is not running on the web server).
50 Insufficient Funds Available.
99 General Error.
100 Invalid Transaction Returned from Host.
101 Timeout Value too Small or Invalid Time Out Value.
102 Processor Not Available.
103 Error Reading Response from Host.
104 Timeout waiting for Processor Response.
105 Credit Error.
106 Host Not Available.
107 Duplicate Suppression Timeout.
108 Void Error.
109 Timeout Waiting for Host Response.
110 Duplicate Transaction.
111 Capture Error.
112 Failed AVS Check.
113 Cannot Exceed Sales Cap.
1000 Generic Host Error.
1001 Invalid Login.
1002 Insufficient Privilege or Invalid Amount.
1003 Invalid Login Blocked.
1004 Invalid Login Deactivated.
1005 Transaction Type Not Allowed.
1006 Unsupported Processor.
1007 Invalid Request Message.
1008 Invalid Version.
1010 Payment Type Not Supported.
1011 Error Starting Transaction.
1012 Error Finishing Transaction.
1013 Error Checking Duplicate.
1014 No Records To Settle (in the current batch).
1015 No Records To Process (in the current batch).

Sage Payments:

ResponseCode Description
ATransaction approved.
EFront-End Error (Not approved)
XGateway Error (Not approved)

SagePay:

ResponseCode Description
OK Process executed without error. The DEFERRED payment was released.
MALFORMEDInput message was malformed - normally will only occur during development.
INVALID Unable to authenticate you or find the transaction, or the data provided is invalid. If the Deferred payment was already released, an INVALID response is returned.
ERROR Only returned if there is a problem at Protx.

SEC Pay/Pay Point:

ResponseCode Description
A Transaction authorized by bank. Approval Code available as bank reference
N Transaction not authorized. Failure message text available to merchant
C Communication problem. Trying again later may well work
P:A Pre-bank checks. Amount not supplied or invalid
P:X Pre-bank checks. Not all mandatory parameters supplied
P:P Pre-bank checks. Same payment presented twice
P:S Pre-bank checks. Start date invalid
P:E Pre-bank checks. Expiry date invalid
P:I Pre-bank checks. Issue number invalid
P:C Pre-bank checks. Card number fails LUHN check
P:T Pre-bank checks. Card type invalid - i.e. does not match card number prefix
P:N Pre-bank checks. Customer name not supplied
P:M Pre-bank checks. Merchant does not exist or not registered yet
P:B Pre-bank checks. Merchant account for card type does not exist
P:D Pre-bank checks. Merchant account for this currency does not exist
P:V Pre-bank checks. CV2 security code mandatory and not supplied / invalid
P:R Pre-bank checks. Transaction timed out awaiting a virtual circuit. Merchant may not have enough virtual circuits for the volume of business.
P:# Pre-bank checks. No MD5 hash / token key set up against account

Secure Payments:

ResponseCode Description
YTransaction approved.
NHost decline.

Skipjack:

ResponseCode Description
0 Transaction is not approved.
1 Transaction is approved.
-1 Error in transaction.

Square: Square uses HTTP status codes to indicate success and failure.

ResponseCode Description
200 Success
Anything else Failure

Square Payments: Square Payments uses HTTP status codes to indicate success and failure.

ResponseCode Description
200 Success
Anything else Failure

Sterling XML:

ResponseCode Description
1Approved
2Declined
3Error / Invalid Data

Transaction Central/PRIGate/Merchant Anywhere:

ResponseCode Description
Settled The transaction has been processed AND sent to bank for settlement.
Authorized The Transaction was processed.
Declined The bank declined the transaction.
Voided Canceled by user.
Canceled Canceled by PRIGate. Usually because provided data is insufficient.
Qued Placed in que for later processing. Credit cards usually take 2 hours. ACH 11am next day.
UnKnownUnknown transaction status.

TransFirst:

ResponseCode ResponseText Description
00 APPROVAL Approved and completed.
01 CALL Refer to issuer.
02 CALL Refer to issuer - Special condition.
03 TERM ID ERROR Invalid merchant ID.
04 HOLD-CALL Pick up card.
05 DECLINE Do not honor.
06 ERROR xx General error.
06 ERROR xxxx General error.
07 HOLD-CALL Pick up card - Special condition.
13 AMOUNT ERROR Invalid amount.
14 CARD NO. ERROR Invalid card number.
15 NO SUCH ISSUER No such issuer.
19 RE ENTER Re-enter transaction.
21 NO ACTION TAKEN Unable to back out transaction.
28 NO REPLY File is temporarily unavailable.
39 NO CREDIT ACCOUNT No credit account.
41 HOLD-CALL Pickup card - Lost.
43 HOLD-CALL Pickup card - Stolen.
51 DECLINE Insufficient funds.
54 EXPIRED CARD Expired card.
57 SERV NOT ALLOWED Transaction not permitted - Card.
61 DECLINE Exceeds withdrawal limit.
62 DECLINE Invalid service code, restricted.
65 DECLINE Activity limit exceeded.
76 NO ACTION TAKEN Unable to locate, no match.
77 NO ACTION TAKEN Inconsistent data, rev. or repeat.
78 NO ACCOUNT No account.
80 DATE ERROR Invalid date.
85 CARD OK No reason to decline.
91 NO REPLY Issuer or switch is unavailable.
93 DECLINE Violation, cannot complete.
96 SYSTEM ERROR System malfunction.
98 VOID ERROR No matching transaction to void.
L2 PASSWORD INVALID Password is missing or invalid.
L3 EXPIRATION DATE INVALID Expiration Date is not formatted correctly.
L6 ORDER NUMBER MISSING The Order Number is required but missing.
L7 WRONG TRANSACTION CODE Transaction Code must be either a 30 for Authorize Only, 32 for Authorize and Settle.
L8 NETWORK The Network Connection timed out due to a communications error.

TransNational Bankcard:

ResponseCode Description
1Transaction approved.
2Transaction declined.
3Error in transaction data.

Trust Commerce:

ResponseCode Description
approved Transaction received on-line approval (sales, auth-onlys)
accepted Transaction accepted for later processing (credits, captures, etc)
error Gateway system error
baddata Invalid fields sent to gateway.

USAePay:

ResponseCode Description
ApprovedTransaction approved.
DeclinedTransaction declined.
ErrorThere is an error in the data received.

uSight:

This gateway is no longer in service.

Verifi:

ResponseCode Description
1Transaction approved.
2Transaction declined.
3Error in transaction data.

Veritas:

ResponseCode Description
0 Transaction Successful.
1000.1 Missing Input.
1001.2 Unknown error, please contact support. Ref:
2001.8 Mid not found.
2101.5 Mid is Inactive.
2101.6 Switch is Inactive.
2900.1 Credit transactions are currently disabled on this device.
2900.5 Invalid card type.
2900.2 Mid not found.
2900.3 Mid is Inactive.
2900.4 Switch is Inactive.
2900.6 Invalid currency..
2900.7 Invalid Switch.
2900.8 Invalid System Mode.
2900.9 Unknown error, please contact support. Reference Number.
2100.2 Invalid transaction number.
2100.3 Merchant Mismatch.
2100.4 Transaction not found.
2100.5 No previous completed sale transaction found.
2100.6 Transaction already void.
2100.7 Transaction exceeded total amount of transaction.
2100.8 Transaction exceeded total amount of transaction.
2100.9 Transaction exceeded total amount of transaction.
2100.10 Unable to decrypt card details.
2101.11 Unknown error, please contact support. Reference Number:
2111.1 This transaction require customer to enter their billing address.
2111.2 Transaction failed. Please contact Support.
2111.4 Transaction failed. Switch not yet supported. Please contact Support.

WorldPay Select Junior:

ResponseCode Description
ATransaction authorized.
Anything elseTransaction declined.

WorldPay Online:

ResponseCode (HTTP Response Code)Description
200Success
400Something was wrong with the request, e.g. invalid JSON or token
401Something was wrong with authentication, e.g. invalid key
404The requested item was not found, e.g. invalid token
405The endpoint does not support the requested method
415Unsupported media type defined in the HTTP header
500Something went wrong on Worldpay's end

WorldPay US Link:

ResponseCode Description
DeclinedTransaction declined.
ApprovedTransaction accepted.

WorldPay XML:

ResponseCode Description
AUTHORISEDTransaction authorized. (AuthOnly/Sale)
okTransaction accepted (Void, Capture, Credit, and Force)
Anything elseTransaction declined.

YKC:

ResponseCode Description
1OK.
2NG.

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 zipCustomer* properties.
shipping_address1, shipping_address2, shipping_city, shipping_country,shipping_email, shipping_firstname, shipping_lastname, shipping_phone,shipping_state, and shipping_zipShipping* 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_measureThe 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. COFPermission can be set to True to indicate that the customer gave permission to use stored card data for the transaction. MITFlag and COFPermission 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.

PayTraceJSON (gwPayTraceJSON)

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 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.

PayTrace JSON API supports Protected (tokenized) Transactions via hosted sensitive fields through Protect.js. To perform a Protected transaction the following steps are necessary:

  1. Obtain Bearer Token through the OAuth component.
  2. Use Bearer Token to obtain Client Key utilizing the PayTraceJSONGetClientKeyToken action config of ICharge component. (The same config is available in the Retail component as well.)
  3. Use the Client Key above to obtain Card Token (hpf token) and Encryption Key (enc key) utilizing Protect.js (see PayTrace documentation for details).
  4. Use Bearer Token, Card Token, and Encryption Key when submitting the transaction (Sale or AuthOnly transactions only).
icharge = new Icharge(); icharge.Gateway = IchargeGateways.gwPayTraceJSON; icharge.GatewayURL = "https://api.paytrace.com"; icharge.MerchantLogin = bearerToken; icharge.Config("PayTraceJSONCardToken=" + hpfToken); icharge.Config("PayTraceJSONEncryptionKey=" + encKey); icharge.Card.ExpMonth = 1; icharge.Card.ExpYear = 25; icharge.TransactionAmount = "1.00"; icharge.Sale();

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.

PSIGate Field NameICharge Equivalent
RecurringMITType configuration setting.
Iteration1 when StoreCardOnFile is True, or 2 when UseCardOnFile is True.
COFScheduleRecurringIndicator configuration setting.

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, shopperSessionIdSpecial 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");

ECheck Gateway Setup and Required Properties

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, CheckNumber

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".

Additional check-relevant properties supported are:

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

Additional check-relevant properties supported are:

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.

This gateway also requires that the "shopperIP" field be added via AddSpecialField method..

You may need to set the "CurrencyCode" config depending on your locale.

Authorize.NET (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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

For Government Checks, set "BASYSGovernmentCheck" configuration setting to True.

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

To process Recurring Billing Checks, "BASYSProcessRecurringCheck" configuration setting must be set to True. Also "BASYSCheckInfoKey" must be set to the Check 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.

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".

Additional check-relevant properties supported are: CheckNumber

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".

Additional check-relevant properties supported are:

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".

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 Authorize 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 ECheck 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 NameECheck Equivalent
amountTransactionAmount property.
authorizedByShopperEnsure that the PaymentType property is set to ptWEB (0).
currencyCurrencyCode configuration setting.
ecpTransaction object fieldsBankAccountNumber, BankRoutingNumber, BankAccountClass, and BankAccountType properties.
merchantTransactionIdInvoiceNumber property.
payerInfo object fieldsCustomer* and CompanyName properties, and special field personalIdentificationNumber.
softDescriptorTransactionDesc property.
transactionFraudInfo object fieldsSpecial fields fraudSessionId, company, and enterpriseSiteId, and the PayerIP configuration setting.
transactionFraudInfo.enterpriseUdfs contentBlueSnapEnterpriseUdfs configuration setting.
transactionFraudInfo.shippingContactInfo object fieldsSpecial fields shipFirstName, shipLastName, shipAddress1, shipAddress2, shipCity, shipState, shipZip, and shipCountry.
transactionMetaData contentBlueSnapTransactionMetaData configuration setting.
vaultedShopperIdSpecial field vaultedShopperId.
vendorInfo object fieldsSpecial fields vendorId, commissionPercent, and commissionAmount.

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

When using the Credit method to refund, both the transactionId and the creditAmount 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".

Additional check-relevant properties supported are:

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, TaxId, CheckNumber

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");

CyberSource (gwCyberSource)

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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

Fast Transact (gwFastTransact)

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, TaxId

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

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".

Additional check-relevant properties supported are:

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.

Additional check-relevant properties supported are: CheckNumber

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 Customer's Name or the CompanyName must be set. If not, an error will occur.

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.

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.

Additional check-relevant properties supported are:

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

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.

Additional check-relevant properties supported are: CheckNumber

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");

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".

Additional check-relevant properties supported are: CheckNumber

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.

Additional check-relevant properties supported are: CheckNumber

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.

InvoiceNumber is required for all transactions.

AuthCode is required when performing VoidTransaction 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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, TaxId, CheckNumber

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.

Additional check-relevant properties supported are: CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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 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".

Additional check-relevant properties supported are: LicenseNumber, TaxId, CheckNumber

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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.

BankName and CheckNumber are both required for all transactions.

NetBilling (gwNetBilling)

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId

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.

Additional check-relevant properties supported are:

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".

Additional check-relevant properties supported are: CheckNumber

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

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.

Additional check-relevant properties supported are: CheckNumber

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

To configure this gateway please note that your merchant/group Id is your MerchantLogin, and your Bank Id (BIN) will be your MerchantPassword. 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".

Additional check-relevant properties supported are: CheckNumber

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.

Pay Flow 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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseDOB, TaxId, CheckNumber

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.

Additional check-relevant properties supported are: CheckNumber

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");

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

Additional check-relevant properties supported are:

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".

Additional check-relevant properties supported are:

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

For Government Checks, set "PhoeniXGateGovernmentCheck" configuration setting to True.

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

To process Recurring Billing Checks, "PhoeniXGateProcessRecurringCheck" configuration setting must be set to True. Also "PhoeniXGateCheckInfoKey" must be set to the Check 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.

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".

Additional check-relevant properties supported are: CheckNumber

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".

Additional check-relevant properties supported are: CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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.

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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

For the QBMS gateway, your Application Name 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".

QB Payments Field NameECheck Equivalent
Request-IdTransactionId property.
amountTransactionAmount property.
descriptionTransactionDesc property.
checkNumberCheckNumber property.
context.deviceinfo fieldsSpecialField properties.
bankAccount.name BankAccountHolderName property.
bankAccount.accountNumber BankAccountNumber property.
bankAccount.phone CustomerPhone property.
bankAccount.accountType BankAccountClass and BankAccountType properties.
bankAccount.routingNumber BankRoutingNumber property.
bankAccount.country CustomerCountry property.
tokenAccountToken configuration setting.

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

TransactionId is required for all transactions.

Repay Gateway (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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

For Government Checks, set "RepayGovernmentCheck" configuration setting to True.

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

To process Recurring Billing Checks, "RepayProcessRecurringCheck" configuration setting must be set to True. Also "RepayCheckInfoKey" must be set to the Check 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.

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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

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".

Additional check-relevant properties supported are: CheckNumber

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.

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, LicenseDOB, TaxId, CheckNumber

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.

Additional check-relevant properties supported are:

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.

Additional check-relevant properties supported are:

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, CheckNumber

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

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.

Additional check-relevant properties supported are:

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

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".

Additional check-relevant properties supported are: LicenseNumber, TaxId, CheckNumber

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

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".

Additional check-relevant properties supported are: LicenseNumber, LicenseState, TaxId, CheckNumber

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");

RecurringBilling Gateway Setup and Required Properties

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

Please note: All date formats must be entered in the format specified via the DateFormat configuration setting. The default format is "MM/dd/yyyy".

ACH Payments (gwACHPayments)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleInitialAmount Specifies the initial transaction amount. If a PaymentScheduleRecurAmount is specified, this amount will not count towards the specified PaymentScheduleTotalPayments.
PaymentScheduleRecurAmount Specifies the amount of the recurring transactions if different from the initial transaction fee (PaymentScheduleInitialAmount).
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments Number of recurring payments.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (Every seven days)
  • "BiWeekly" (Every fourteen days)
  • "Monthly" (Same day every month)
  • "BiMonthly" (Every two months)
  • "Quarterly" (Every three months)
  • "SemiAnnually" (Twice a year)
  • "Annually" (Once a year)

TransactionAmount is required to be specified. If an initial fee is not desired, PaymentSchedule can be adjusted to account for the initial charge or the transaction can be voided (using the ICharge component) later (as the recurring schedule will remain in place unless explicitly canceled).

Authorize.NET AIM (gwAuthorizeNet)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount, PaymentScheduleTrialPayments

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "M" or "Months"
PaymentScheduleFrequency The length of time between charges. If PaymentScheduleFrequencyUnit is "Days", valid values are between 7 and 365. If PaymentScheduleFrequencyUnit is "Months", valid values are between 1 and 12.
PaymentScheduleInitialAmount The amount to be charged for each payment during a trial period.
PaymentScheduleRecurAmount The amount to be billed to the customer for each payment in the subscription.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "9999" to submit a subscription with no end date.
PaymentScheduleTrialPayments The number of trial payments. If specified, this number must be included in PaymentScheduleTotalPayments.

Note: If the PaymentScheduleStartDate is the 31st, and PaymentScheduleFrequencyUnit is set to "Months", the billing date is the last day of each month (even when the month does not have 31 days).

Method Notes:UpdateSubscription

Authorize.NET CIM (gwAuthorizeNetCIM)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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 is used to manage profiles within Authorize.NET's Customer Information Manager (CIM) system.

Each customer profile contains one or more payment profiles (card/bank and billing information) and shipping addresses. When creating a profile, both a payment profile and shipping address can be specified at the time of creation (by setting the appropriate properties). Each of these profile types has it's own ID. The Profile ID will be returned via Response, the Payment Profile ID will be returned via the AuthNetCIMPaymentProfileId config, and the Shipping Address ID will be returned via the AuthNetCIMShippingAddressId config.

The AuthNetCIMRequestType config is used to specify the profile request type to perform an operation on: Profile, Payment Profile, or Shipping Address. Additional Payment Profiles and Shipping Addresses can be added by setting the appropriate AuthNetCIMRequestType and calling the CreateSubscription method. Note when creating additional Payment Profiles and Shipping Addresses, the Profile ID you wish to add them to must be specified via SubscriptionName.

Profiles, Payment Profiles and Shipping Addresses can also be updated (UpdateSubscription), deleted (CancelSubscription), and retrieved (GetSubscriptionStatus) by setting the appropriate AuthNetCIMRequestType value. When performing these operations, the Profile ID must be specified via the "SubscriptionId" method parameter and the Payment Profile ID or Shipping Address ID must be specified via the AuthNetCIMPaymentProfileId config or AuthNetCIMShippingAddressId config (respectively).

When GetSubscriptionStatus is called for a Profile ("AuthNetCIMRequestType" set to '0'), it is possible for multiple Payment Profiles and Shipping Addresses to be returned in the response. To navigate through these multiple profiles, the following configs will be populated: AuthNetCIMPaymentProfileCount, AuthNetCIMPaymentProfileIndex, AuthNetCIMShippingAddressCount, and AuthNetCIMShippingAddressIndex. Please refer to the "Configuration" page for further information regarding these configuration settings.

Note: When GetSubscriptionStatus is called for a Profile ("AuthNetCIMRequestType" set to '0'), it is acceptable to pass an email address instead of a Profile ID for the "SubscriptionID" method parameter, as long as each profile has a unique email address associated with it.

BASYS Gateway (gwBASYS)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

"MerchantCode" configuration setting must also be set. This may also be called Merchant ID, Merchant Number, or RPNum.

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

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

Other fields can also be set by calling AddSpecialField.

When creating a Payment Schedule by setting the "BASYSRequestType" configuration setting to 3, the "BASYSContractID", "BASYSNextBillingDate", and "BASYSPaymentType" must be set as well.

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "FourWeeks" (28 days)
  • "Monthly" (1 month)
  • "Quarterly" (3 months)
  • "SemiAnnually" (6 months)
  • "Annually" (12 months)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment. To be represented as cents with a decimal point.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
BASYSNextBillingDate The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Note: If the StartDate is the 31st, and FrequencyUnit is set to "Monthly", the billing date is the last day of each month (even when the month does not have 31 days).

Each Customer Profile contains one or more "sub profiles" which are tied to the customer via a unique Customer Key generated by BASYS Gateway. Each sub profile has its own key which is returned by BASYS at the time the customer record is created.

The first step towards successfully storing and initiating recurring payments is to create the customer profile and get the unique Customer Key. The "BASYSRequestType" configuration setting is used to specify the profile request type to perform an operation on: Customer Profile, Credit Card Profile, Bank Account Profile, PaymentSchedule etc... First set the "BASYSRequestType" configuration setting to 0 (Default) to create a Customer Profile and get the Customer Key via Response.

A separate request must be sent for each sub profile by setting the "BASYSRequestType" configuration setting. Note that for each subsequent request the "BASYSCustomerKey" configuration setting must be set to the Customer Key obtained from the first step. The other profile Ids will be returned via the "BASYSCardInfoKey", "BASYSCheckInfoKey", and "BASYSContractKey", configuration settings.

A token can also be requested for this Gateway by setting the "BASYSRequestType" configuration setting to 5. After a successful request "BASYSToken" configuration setting will contain the generated token.

This Gateway does not provide a way to retrieve profile information.

When modifying a customer by calling UpdateSubscription, or CancelSubscription the Customer Key value must be passed as the SubscriptionId parameter.

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

UpdateSubscription Method Notes:

IMPORTANT NOTE: It is very important to understand that when updating a Customer Profile, Credit Card Profile, Bank Account Profile or Payment Schedule by calling UpdateSubscription method, any values that are left "NULL" will overwrite existing data with a "NULL" value. If the desired request is to simply update the next billing date, set the "BASYSRequestType" configuration setting to 4 and call UpdateSubscription method by passing the amount of days you want to add to the next billing day via the "BASYSNumberOfDays" configuration setting.

Bambora / Beanstream (gwBambora)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

Amounts 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.

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleStartDate, PaymentScheduleEndDate

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The date that the recurring billing account will expire. If no value is passed the account will continue charging the customer indefinitely until manually closed. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "W" or "Weeks"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing.
PaymentScheduleRecurAmount The amount to be billed to the customer for each payment in the subscription.
PaymentScheduleStartDate The first billing date. If no value is passed, the first billing date will default to the date of the transaction request. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

The following fields may be added when calling CreateSubscription by first calling the AddSpecialField method:

Special Field Values
rbEndMonth Set this variable to "1" to charge a customer on the last day of the month (PaymentScheduleFrequencyUnit must be "M").
rbCharge Set to "0" to delay the first charge until the PaymentScheduleStartDate date. If this parameter is not passed, the customer"s account will be billed the PaymentScheduleRecurAmount on the date of the transaction request.
rbSecondBilling Use this field in combination with PaymentScheduleStartDate to prorate a first payment. The second billing date will mark the start of the regular billing schedule. The first customer payment will be prorated based on the difference between the first and second billing date. All subsequent billing intervals will be counted after this date. This value must be formatted as MMDDYYYY.

The following fields may be added when calling UpdateSubscription by first calling the AddSpecialField method:

Special Field Values
rbBillingState Changes the state of the account. Possible values are:
  • "O" (Places the account on hold. No future transactions will be process until re-activated.)
  • "C" (Closes the account. No future transactions will be processed until re-activated.)
  • "A" (Re-activates an account that has been closed or placed on hold.)
rbBillingEndMonth Specifies whether the account is billed on the last day of the month. This applies to all occurrences. Possible values are:
  • "0" (Disabled)
  • "1" (Enabled)
rbNeverExpires Specifies whether the account expires. Possible values are:
  • "0" (The account will expire on the rbExpiry date.)
  • "1" (The recurring billing account will never expire, billing will continue until manually closed or disabled.)
rbSecondBilling This is the date of the second charge against the customer"s recurring billing account. The second billing date will be automatically updated to reflect one full billing period after the First Billing date. Use this field to process the second charge at a date outside of the regular schedule and pro-rate the first payment. All subsequent payments will be scheduled at regular increments after the second billing date. This value must be formatted as MMDDYYYY.

MerchantLogin is used to specify the "merchant_id" and must be specified for all transaction types. When performing a CreateSubscription transaction, MerchantPassword is used to set the "password" and the "BamboraUsername" config must be set to the "username" value. When performing a UpdateSubscription, CancelSubscription, or GetSubscriptionStatus; MerchantPassword is used to set the Recurring Billing API "passcode" value.

BlueSnap (gwBlueSnap)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

TestMode is supported and when set to "True" vaulted shoppers can be created and updated using a sandbox account.

This gateway is used to manage BlueSnap Vaulted Shopper profiles only. For more information about how BlueSnap's vaulted shopper profiles works, please refer to BlueSnap's Payment API JSON documentation.

Working with BlueSnap vaulted shoppers is a complex topic, and there's a lot of information associated with it. Some basic information is available below, but we recommend referring to the Working with BlueSnap Vaulted Shoppers KB article (#08311701) on our website for detailed usage steps, code examples, and more.

In general, you use the BlueSnapRequestType and BlueSnapVaultedShopperId configuration settings to determine what portion of a specific vaulted shopper's information you wish to work with (basic information, Card payment sources, or the ECheck payment source). Refer to the documentation for those settings, as well as the KB article linked above, for more details.

The following tables list the currently supported BlueSnap JSON API request fields, and show what the RecurringBilling equivalent is.

When Creating, Retrieving, or Updating a Vaulted Shopper's Basic Information:

BlueSnap Field NameRecurringBilling Equivalent
address, address2, city, country, email, firstName,lastName, merchantShopperId, phone, state, and zip fieldsCustomer* properties.
companyNameCompanyName configuration setting.
personalIdentificationNumberSpecial field personalIdentificationNumber.
shippingContactInfo object fieldsShippingInfo* properties.
shopperCurrencyCurrencyCode configuration setting.
vendorInfo object fieldsSpecial fields vendorId, commissionPercent, and commissionAmount.
walletIdSpecial field walletId.

When Adding, Retrieving, or Updating a Payment Source for a BlueSnap Vaulted Shopper:

BlueSnap Field NameRecurringBilling Equivalent
companyName (when adding/updating ECheck)CompanyName configuration setting.
paymentSources.creditCardInfo.creditCard object fieldsCard* properties, or special field cardLastFourDigits and the CardType configuration setting. (If you wish to send encrypted card number and security code data, set the ValidateCardNumber configuration setting to False first.)
paymentSources.creditCardInfo.pfTokenSpecial field pfToken.
paymentSources.ecpInfo.ecp object fieldsECheckBankAccountNumber, ECheckBankRoutingNumber, ECheckBankAccountClass, and ECheckBankAccountType properties.
paymentSources.[creditCardInfo|ecpInfo].billingContactInfo object fieldsCustomer* properties, and special field personalIdentificationNumber.
softDescriptor (when adding/updating a card)Special field softDescriptor.
transactionFraudInfo object fieldsSpecial fields fraudSessionId, company, and enterpriseSiteId, and the PayerIP configuration setting.
transactionFraudInfo.enterpriseUdfs contentBlueSnapEnterpriseUdfs configuration setting.
transactionFraudInfo.shippingContactInfo object fieldsShippingInfo* properties.

Chase (gwChase)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A PaymentScheduleFrequencyUnit of "M" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleRecurAmount The total dollar amount to be charged with each recurring transaction.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of recurring payments to charge the customer. Valid values are between 0 and 99.

The MerchantLogin value is the "Store Number" provided by Chase. This gateway requires a client certificate, which can be set using the SSL Certificate properties.

Converge (gwConverge)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Daily"
  • "Weekly"
  • "BiWeekly"
  • "SemiMonthly"
  • "Monthly"
  • "BiMonthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
  • "SEMESTER"
  • "SUSPENDED"
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set MerchantLogin to the "ssl_merchant_id" provided by Converge. Set MerchantPassword to the "ssl_merchant_pin". If provided with a "ssl_user_id", set the "MyVirtualMerchantUserId" configuration setting via the Config method.

CyberSource (gwCyberSource)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleEndDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date for the installment subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleInitialAmount The initial (setup) amount to be charged.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date for an installment or recurring subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments When calling Create this is the total number of payments for the duration of the installment subscription. When calling Update this is the number of payments to add to an existing installment subscription.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "None" (No payment schedule; valid only for on-demand profiles)
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "SemiMonthly" (15 days)
  • "Monthly" (1 month)
  • "Quarterly" (3 months)
  • "FourWeeks" (4 weeks)
  • "SemiAnnually" (26 weeks)
  • "Annually" (1 year)

eProcessing (gwEprocessing)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "Monthly" (1 month)
  • "BiMonthly" (2 months)
  • "Quarterly" (3 months)
  • "SemiAnnually" (6 months)
  • "Annually" (12 months)
PaymentScheduleInitialAmount The initial amount to charge.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "0" to submit a subscription with no end date.

Eway (gwEway)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

Amounts are 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.

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleStartDate, PaymentScheduleEndDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "W" or "Weeks"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 31 only.
PaymentScheduleInitialAmount The initial amount to charge.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

To specify the date on which PaymentScheduleInitialAmount will be charged set EwayInitialDate.

MerchantLogin is the eWay Username, MerchantPassword is the eWay Password, and the EwayCustomerId setting is the Customer Id value for the eWay account.

The EwayTransactionType configuration setting is used to specify whether to perform Customer or Recurring transactions.

Create a Customer

A customer must be created before a recurring transaction (Event Rebill) can be created. To create a customer set EwayTransactionType to "1" (Customer) and call CreateSubscription. The customer Id is returned in Response.

When modifying a customer by calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus, the customer Id value must be passed as the SubscriptionId parameter.

The GetSubscriptionStatus method will populate Customer and CompanyName when called and EwayTransactionType is set to 1 (Customer).

Create a Recurring Transaction

A customer must be created before creating a recurring transaction. Before creating a recurring transaction TransactionId must be set to the customer Id. To create a recurring transaction set EwayTransactionType to "0" (Rebill Event) and call CreateSubscription.

When updating both Customers and Recurring Transactions, existing details must be specified. Details can be retrieved for each EwayTransactionType by calling GetSubscriptionStatus.

First Data (gwFirstData)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A PaymentScheduleFrequencyUnit of "M" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of recurring payments to charge the customer. Valid values are between 0 and 99.

The MerchantLogin value will be the "Store Number" provided by First Data. This gateway requires a client certificate, which can be set using the SSL Certificate properties.

First Data PayPoint (gwFirstDataPayPoint)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleStartDate, PaymentScheduleEndDate

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleFrequency The frequency in which the payments should occur. Valid values are: Daily, Monthly, and Annually. This value is used in conjunction with the IntervalParam* special fields.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

There are four IntervalParam SpecialField values (IntervalParam1, IntervalParam2, IntervalParam3, IntervalParam4) that can be set using AddSpecialField method to specify more defined the payment intervals. Please see the First Data PayPoint specifications for further details on these fields.

Nuvei / GlobalOnePay (gwNuvei)

Supported Methods:

Authentication with Nuvei is performed by providing the TerminalId and HashSecret.

This component can be used to manage tokens that can be used by the ICharge component.

Nuvei tokens have a unique name chosen by the merchant in addition to the token itself. The name for the token must be specified by the SubscriptionName property when creating a token. When updating, searching for, or deleting a token, its name should be passed in the SubscriptionId parameter of the method.

The token itself will be returned in the ResponseSubscriptionId property of the response. When using the token in a request from ICharge, this is the value that should be placed in the CardToken configuration setting. This value must also be placed in the CardToken configuration setting when deleting the token.

When creating or updating a token, the NuveiPermittedTerminals configuration setting can be used to specify the terminals that are authorized to use the token.

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.

OmniFund / GoToBilling (gwOmniFund)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "None"
  • "Weekly"
  • "BiWeekly"
  • "Monthly"
  • "BiMonthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Any integer value represents the number of occurrences left for this particular subscription. If not provided, and PaymentScheduleFrequency is not "None", the transaction will repeat indefinitely.

The OmniFundTransactionType configuration setting is used to specify whether to perform Customer, Account, or Recurring transactions.

Create a Customer

A customer must be created before an account or recurring transaction can be created. To create a customer set OmniFundTransactionType to "0" (Customer) and call CreateSubscription. The customer Id is returned in Response.

When modifying a customer by calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus, the customer Id value must be passed as the SubscriptionId parameter.

The following fields may be added when calling CreateSubscription by first calling the AddSpecialField method:

Special Field Values
"display_as" Possible values are:
  • "contact"
  • "company"
"active" Possible values are:
  • 0 (Disabled)
  • 1 (Enabled)
"hidden" Possible values are:
  • 0 (Hidden)
  • 1 (Visible)

Please refer to the OmniFund specifications for further information regarding these fields.

Create an Account

An account must be created before a recurring transaction can be created. A customer must already be created before creating an account. After a customer is created, an Account can then be created. Before creating an account Customer must be set to the customer Id. To create an account set OmniFundTransactionType to "1" (Account) and call CreateSubscription. The account Id value will be returned in the Response property.

When modifying an account by calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus, the account Id value must be passed as the SubscriptionId parameter.

The following fields may be added when calling CreateSubscription by first calling the AddSpecialField method:

Special Field Values
"enabled" Possible values:
  • 0 (Disabled)
  • 1 (Enabled)

Please refer to the OmniFund specifications for further information regarding these fields.

Create a Recurring Transaction

A customer and account most both already be created before a recurring transaction can be created. After both a customer and an account are created, a Recurring Transaction can then be created. Before creating a recurring transaction Customer) must be set to the customer Id, and TransactionId must be set to the account Id. To create a recurring transaction set OmniFundTransactionType to "2" (Recurring Transaction) and call CreateSubscription. The transaction Id value will be returned in the Response property.

When modifying a recurring transaction by calling UpdateSubscription, or CancelSubscription, the transaction Id value must be passed as the SubscriptionId parameter.

The following fields may be added when calling CreateSubscription by first calling the AddSpecialField method:

Special Field Values
"is_corporate" Possible values are:
  • 0 (False)
  • 1 (True)
"po_number" The PO number; required if is_corporate is true
"sales_tax" The sales tax
"sales_tax_type" Required if sales_tax is specified
"customer_int" Possible values are:
  • 0 (Merchant initiated)
  • 1 (Customer initiated)
"process" Possible values are:
  • 0 (False)
  • 1 (True)

Please refer to the OmniFund specifications for further information regarding these fields.

ITransact (gwITransact)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency This field is used to specify the Recurring Recipe created within the merchant interface.
PaymentScheduleInitialAmount This field is used to specify an initial amount and can also be used as the recurring amount if PaymentScheduleRecurAmount is not specified.
PaymentScheduleRecurAmount This field is specified when the recurring amount is different than the PaymentScheduleInitialAmount used to initiate the transaction.
PaymentScheduleTotalPayments The largest allowed value is "99999".

LinkPoint (gwLinkPoint)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A PaymentScheduleFrequencyUnit of "m" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of recurring payments to charge the customer. Valid values are between 0 and 99.

The MerchantLogin value is the "Store Number" provided by Linkpoint. This gateway requires a client certificate, which can be set using the SSL Certificate properties.

Litle (gwLitle)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

Amounts are 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.

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount, PaymentScheduleTrialPayments

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Annually" (Once per year)
  • "SemiAnnually" (Twice per year)
  • "Quarterly" (Every three months)
  • "Monthly" (Every month)
  • "Weekly" (Every week)
PaymentScheduleInitialAmount Used to specify an initial amount (setup fee).
PaymentScheduleRecurAmount Used to specify a default amount when creating a Plan or used to override the default plan amount when creating a Subscription.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments Number of recurring payments to charge the customer. Valid values are between 0 and 99.
PaymentScheduleTrialPayments Number of trial payments to charge the customer. Valid values are between 0 and 99.

This gateway also requires that the MerchantCode configuration be set with the Merchant Id supplied by Litle.

The LitleTransactionType configuration setting is used to specify whether to perform a Plan or Subscription transaction.

Create a Plan

To create a plan set LitleTransactionType to "0" and call CreateSubscription. TransactionId may be set before creating the Plan to specify the PlanCode. The PlanCode is an identifier for the plan, for instance "1_Year_Monthly".

Create a Subscription

To create a subscription set LitleTransactionType to "1" and call CreateSubscription. The special field "authType" may be added before creating the subscription using the AddSpecialField method. Possible values for the "authType" special field are:

"sale"Default
"authorization"Auth only

When updating a subscription, the payment plan can updated by setting TransactionId to the desired Plan (PlanCode).

Merchant Anywhere (gwMerchantAnywhere)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Monthly"
  • "Quarterly"
  • "Annually"
  • "Weekly"
  • "BiWeekly"
  • "FourWeeks"
  • "H" (Every 8 weeks)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "0" to indicate an infinite number (no end).

Set MerchantPassword to the "RegKey" value provided by Merchant Anywhere.

Merchant Partners (gwMerchantPartners)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleInitialAmount The initial payment amount.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The number of days after an initial payment when the recurring payments will start.
PaymentScheduleTotalPayments The total number of payments. Set this to "-1" to indicate an infinite number (no end). Set this to "0" to indicate no recurring billing.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "None"
  • "Weekly"
  • "Monthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
  • "BiWeekly"
  • "Daily"
  • "BiMonthly"
  • "7" (Bi-Annual)
  • "9" (One Time)

The MerchantPartnersLast4Digits configuration setting must be set when calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus.

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.

Moneris Canada (gwMoneris)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "W" or "Weeks"
  • "M" or "Months"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values between 0 and 999. For example: A PaymentScheduleFrequencyUnit of "M" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleInitialAmount Used to specify an initial amount (setup fee).
PaymentScheduleRecurAmount This is the amount that will be billed on the PaymentScheduleStartDate and every interval thereafter.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Valid values are between 1 and 99.

To charge funds immediately call AddSpecialField and set the "start_now" field to "True". For instance: RecurringBilling1.AddSpecialField("start_now","True"); When this field is set to "True" PaymentSchedule can be set to bill an amount different than PaymentSchedule. The default value of "start_now" is "False".

Moneris USA (gwMonerisUSA)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "W" or "Weeks"
  • "M" or "Months"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values between 0 and 999. For example: A PaymentScheduleFrequencyUnit of "M" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleInitialAmount Used to specify an initial amount (setup fee).
PaymentScheduleRecurAmount This is the amount that will be billed on the PaymentScheduleStartDate and every interval thereafter.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Valid values are between 1 and 99.

To charge funds immediately call AddSpecialField and set the "start_now" field to "True". For instance: RecurringBilling1.AddSpecialField("start_now","True"); When this field is set to "True" PaymentSchedule can be set to bill an amount different than PaymentSchedule. The default value of "start_now" is "False".

My Virtual Merchant (gwMyVirtualMerchant)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Daily"
  • "Weekly"
  • "BiWeekly"
  • "SemiMonthly"
  • "Monthly"
  • "BiMonthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
  • "SEMESTER"
  • "SUSPENDED"
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set MerchantLogin to the "ssl_merchant_id" provided by My Virtual Merchant. Set MerchantPassword to the "ssl_merchant_pin". If provided with a "ssl_user_id", set the "MyVirtualMerchantUserId" configuration setting via the Config method.

Network Merchants (gwNetworkMerchants)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

Amounts 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.

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

The supported PaymentSchedule properties are: PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set SubscriptionName to the Plan or Product SKU that was added via the Merchant Control Panel.

NexCommerce (gwNexCommerce)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency This property is used to specify the Recurring Recipe created within the merchant interface.
PaymentScheduleInitialAmount This property is used to specify an initial amount and can also be used as the recurring amount if PaymentScheduleRecurAmount is not specified.
PaymentScheduleRecurAmount This property is specified when the recurring amount is different than the PaymentScheduleInitialAmount used to initiate the transaction.
PaymentScheduleTotalPayments The total number of payments. The maximum value is "99999".

Orbital (gwOrbital)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

Amounts are 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.

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleEndDate

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleFrequency This property takes a value based on a subset of a standard CRON expression comprising 3 fields separated by white space. Please refer to the gateway specifications for further details.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments This value defines the maximum number of billings that will be allowed for a recurring billing cycle. Valid values are between 1 and 999999.

End Conditions

The recurring transactions will continue until one of three end conditions is met.

Only one of the three end conditions may be specified when calling CreateSubscription. When calling UpdateSubscription end conditions may also be updated and changed. To update the end condition of a recurring transaction, any previously set end conditions that will no longer be used must be cleared.

Profile Management

To manage a profile without recurring billing features use the AddSpecialField to set the "MBType" special field to "" (empty string). For instance: RecurringBilling1.AddSpecialField("MBType",""); This will notify Orbital that the transaction is not a managed billing transaction.

PayFlow Pro (gwPayFlowPro)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly"
  • "BiWeekly" (Every two weeks)
  • "SemiMonthly" (Twice every month)
  • "FourWeeks" (Every four weeks)
  • "Monthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
PaymentScheduleTotalPayments Number of payments to be made over the life of the agreement. A value of 0 means that payments should continue until the profile is deactivated.
PaymentScheduleInitialAmount Defines an amount of an optional transaction (such as an initial fee). This is only applicable when AddSpecialField is used to set the "OPTIONALTRX" special field to "S".
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

The default "Partner" special field is set to "PayPal". If necessary this value may be set to a different value such as "Verisign" like so: RecurringBilling1.SpecialFields[1].Value="Verisign";

If the User Id and Vendor Id (Merchant Login Id) are different, set MerchantLogin to the Vendor Id and add the User Id like so: RecurringBilling1.AddSpecialField("USER","User Id Value").

Forte (gwForte)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleInitialAmount Specifies the initial transaction amount. If a PaymentScheduleRecurAmount is specified, this amount will not count towards the specified PaymentScheduleTotalPayments.
PaymentScheduleRecurAmount Specifies the amount of the recurring transactions if different from the initial transaction fee (PaymentScheduleInitialAmount).
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of recurring payments.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (Every seven days)
  • "BiWeekly" (Every fourteen days)
  • "Monthly" (Same day every month)
  • "BiMonthly" (Every two months)
  • "Quarterly" (Every three months)
  • "SemiAnnually" (Twice a year)
  • "Annually" (Once a year)

TransactionAmount must be specified. If an initial fee is not desired, PaymentSchedule can be adjusted to account for the initial charge or the transaction can be voided (using the ICharge component) later. The recurring schedule will remain in place until explicitly canceled.

Payment WorkSuite [3DSI] (gwPaymentWorkSuite)

Supported Methods:

Payment Methods Supported: Manually Entered Cards

MerchantLogin and MerchantPassword are required properties.

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

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

This gateway is used to communicate with the Payment WorkSuite CardVault service to store customer and credit card information.

The PaymentWorkSuiteTransactionType configuration setting specifies whether to perform Stored Credit Card or Customer transactions.

Create a Stored Credit Card

A stored credit card transaction is used to store credit card information on the Payment WorkSuite CardVault server. Once a credit card is successfully stored, the server will return a token that corresponds to the credit card. This token value replaces the credit card information and thus can be used to perform transactions. Using tokens is more secure and reduces PCI scope than using live credit card data for every transaction.

Before creating a stored credit card entry CustomerId must be set to the customer code that the card will be associated with. To create a stored credit card entry set PaymentWorkSuiteTransactionType to "0" (Stored Credit Card) and call CreateSubscription.

When modifying a stored credit card entry by calling UpdateSubscription or CancelSubscription, the customer code must be set via CustomerId and the Token value must be passed as the SubscriptionId parameter.

Create a Customer

A customer transaction is used to store customer information on the Payment WorkSuite CardVault server. Customer information includes billing and shipping information, contact information, as well as credit cards associated with the customer.

Before creating a customer entry CustomerId must be set to a unique customer code. To create a customer entry set PaymentWorkSuiteTransactionType to "1" (Customer) and call CreateSubscription.

When modifying a customer entry by calling UpdateSubscription or CancelSubscription, the customer code must be passed as the SubscriptionId parameter.

Payscape (gwPayscape)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

Amounts 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.

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

The supported PaymentSchedule properties are: PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set SubscriptionName to the Plan or Product SKU that was added via the Merchant Control Panel.

PayTrace (gwPayTrace)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Annually"
  • "SemiAnnually"
  • "Quarterly"
  • "BiMonthly"
  • "Monthly"
  • "BiWeekly"
  • "SemiMonthly" (1st and 15th)
  • "Weekly"
  • "Daily"
  • "A" (Trimesterly)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of times the recurring transaction should be processed. Set this to "999" to indicate an infinite number (no end).

Set SubscriptionName to the Plan or Product SKU that was added via the Merchant Control Panel.

The PayTraceTransactionType configuration setting specifies whether to perform Customer or Recurring transactions.

Create a Customer

A customer must be created before a subscription can be created. To create a customer set PayTraceTransactionType to "0" (Customer) and call CreateSubscription. The customer Id is returned in TransactionId)

When modifying a customer by calling UpdateSubscription or CancelSubscription, the custom Id value must be passed as the SubscriptionId parameter.

Create a Recurring Payment

A customer must be created before creating a subscription. Before creating a subscription TransactionId must be set to the customer Id. To create a recurring transaction set PayTraceTransactionType to "1" (Recurring Payment) and call CreateSubscription.

PayWiser Gateway (gwPayWiser)

Supported Methods:

The PayWiserRequestType configuration setting is used to specify the request type (Create, Tokenize, etc.). The first step towards successfully storing and initiating recurring payments is to create a Recurring Plan and get the unique Recurring Plan Id. Set the PayWiserRequestType configuration setting to 0 (Default) to create a Recurring Plan and get the Recurring Plan Id via the Response property.

The next step after obtaining the Recurring Plan Id is to tokenize the Credit Card and get a Card Token. Set the PayWiserRequestType configuration setting to 1 to generate a Card Token and get the Token via PayWiserCardToken.

The next step is to Start a Recurring Payment by setting the PayWiserRequestType configuration setting to 2 and providing the Recurring Plan Id obtained from Step 1 and Card Token obtained from Step 2 via the PayWiserRecurringPlanId and PayWiserCardToken configuration settings respectively. For required properties and configuration settings please see below.

MerchantLogin and TransactionId are required properties. MerchantPassword is not applicable.

This gateway requires the use of a unique TransactionId.

When PayWiserRequestType configuration setting is set to 0 (Default), StatementText, StatementDescription and IsRecurring special fields must be set via the AddSpecialField method. For example: recurring.AddSpecialField("StatementText", "StatementText"); recurring.AddSpecialField("StatementDescription", "StatementDescription"); // IsRecurring = True means undefined number of payments and no end date - payments are being made according to the defined schedule until recurring is terminated. // IsRecurring = False means fixed number of payments and a known end date. recurring.AddSpecialField("IsRecurring", "false");

If the PayWiserRetryPattern configuration setting is set, MaxRetryCount must also be set to a value different than 0 via the AddSpecialField method.

Also, the PayWiserPaymentHour configuration setting must be set when PayWiserRequestType configuration setting is set to 0.

TerminationReason must be set via the AddSpecialField method when PayWiserRequestType is set to 4 (TerminateRecurringPayment).

Other optional fields like InstallmentTotalValue and DownPaymentValue 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.

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Daily" (Every Day)
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "FourWeeks" (28 days)
  • "SemiMonthly" (15 days)
  • "Monthly" (1 month)
  • "BiMonthly" (2 months)
  • "Quarterly" (3 months)
  • "SemiAnnually" (6 months)
  • "Annually" (12 months)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment. To be represented as cents without a decimal point.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments This property specifies the total number of payments that must be made to end the recurring billing.

This Gateway does not provide a way to retrieve profile information.

PhoeniXGate Gateway (gwPhoeniXGate)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

"MerchantCode" configuration setting must also be set. This may also be called Merchant ID, Merchant Number, or RPNum.

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

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

Other fields can also be set by calling AddSpecialField.

When creating a Payment Schedule by setting the "PhoeniXGateRequestType" configuration setting to 3, the "PhoeniXGateContractID", "PhoeniXGateNextBillingDate", and "PhoeniXGatePaymentType" must be set as well.

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "FourWeeks" (28 days)
  • "Monthly" (1 month)
  • "Quarterly" (3 months)
  • "SemiAnnually" (6 months)
  • "Annually" (12 months)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment. To be represented as cents with a decimal point.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PhoeniXGateNextBillingDate The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Note: If the StartDate is the 31st, and FrequencyUnit is set to "Monthly", the billing date is the last day of each month (even when the month does not have 31 days).

Each Customer Profile contains one or more "sub profiles" which are tied to the customer via a unique Customer Key generated by PhoeniXGate Gateway. Each sub profile has its own key which is returned by PhoeniXGate at the time the customer record is created.

The first step towards successfully storing and initiating recurring payments is to create the customer profile and get the unique Customer Key. The "PhoeniXGateRequestType" configuration setting is used to specify the profile request type to perform an operation on: Customer Profile, Credit Card Profile, Bank Account Profile, PaymentSchedule etc... First set the "PhoeniXGateRequestType" configuration setting to 0 (Default) to create a Customer Profile and get the Customer Key via Response.

A separate request must be sent for each sub profile by setting the "PhoeniXGateRequestType" configuration setting. Note that for each subsequent request the "PhoeniXGateCustomerKey" configuration setting must be set to the Customer Key obtained from the first step. The other profile Ids will be returned via the "PhoeniXGateCardInfoKey", "PhoeniXGateCheckInfoKey", and "PhoeniXGateContractKey", configuration settings.

A token can also be requested for this Gateway by setting the "PhoeniXGateRequestType" configuration setting to 5. After a successful request "PhoeniXGateToken" configuration setting will contain the generated token.

This Gateway does not provide a way to retrieve profile information.

When modifying a customer by calling UpdateSubscription, or CancelSubscription the Customer Key value must be passed as the SubscriptionId parameter.

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

UpdateSubscription Method Notes:

IMPORTANT NOTE: It is very important to understand that when updating a Customer Profile, Credit Card Profile, Bank Account Profile or Payment Schedule by calling UpdateSubscription method, any values that are left "NULL" will overwrite existing data with a "NULL" value. If the desired request is to simply update the next billing date, set the "PhoeniXGateRequestType" configuration setting to 4 and call UpdateSubscription method by passing the amount of days you want to add to the next billing day via the "PhoeniXGateNumberOfDays" configuration setting.

Planet Payment (gwPlanetPayment)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleEndDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date. This is only applicable when PaymentScheduleTotalPayments is not set. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "W" or "Weeks"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing.
PaymentScheduleInitialAmount Specifies the initial amount which will override the amount specified in PaymentScheduleRecurAmount for the first billing cycle only.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments This property specifies the total number of payments that must be made to end the recurring billing.

This gateway requires that the TerminalId configuration setting be set. Set MerchantLogin to the company KEY. Set MerchantPassword to the PIN.

PlugNPay (gwPlugNPay)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleEndDate

PaymentSchedule Formats:

Field Values
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "0" if no rebilling is desired.

This gateway requires that SubscriptionName be set to the Customer's Username (which will be used to identify the customer and perform subsequent transactions). The CustomerPassword configuration setting may optionally be set to a customer password.

PRIGate (gwPRIGate)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Monthly"
  • "Quarterly"
  • "Annually"
  • "Weekly"
  • "BiWeekly"
  • "FourWeeks"
  • "H" (Every 8 weeks)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "0" to indicate an infinite number (no end).

Set MerchantPassword to the "RegKey" provided by PRIGate.

QuickBooks Merchant Services (gwQBMS)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleStartDate, PaymentScheduleEndDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency Describes how often to process the scheduled payment. This can be a simple integer that defines the number of days between payments (i.e. "15" for every 15 days starting on PaymentScheduleStartDate), or it can be a more complex expression. Please see the QBMS specifications for details on the expression language and format.
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The current day is not valid. The earliest day that can be set is tomorrow. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Customer is required for all transactions.

Set MerchantLogin to the Application Name. Set MerchantPassword to the Connection Ticket.

Create a Wallet

A wallet must be created before a scheduled billing event. To create a wallet set QBMSTransactionType to "0" (Wallet) and call CreateSubscription. The wallet Id is returned in Response

When modifying a customer by calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus, the wallet Id must be passed as the SubscriptionId parameter.

Create a Scheduled Billing Event

A wallet must be created before creating a scheduled billing event. Before create a scheduled billing event set TransactionId to the wallet Id. To create a scheduled billing event set QBMSTransactionType to "1" (scheduled billing event) and call CreateSubscription.

The scheduled billing Id is returned in Response . When modifying a scheduled billing event by calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus, the scheduled billing Id must be passed as the SubscriptionId parameter.

When creating or updating a scheduled billing event using a Check, the "PaymentType" special field value must be set to "Check" by calling AddSpecialField. For instance: RecurringBilling1.AddSpecialField("PaymentType","Check");

The "ScheduledBillingStatus" special field can also be set by calling AddSpecialField. Possible values are:

  • "WaitingForAuthorization"
  • "Active"
  • "Suspended"
  • "Canceled"

Repay Gateway (gwRepay)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

"MerchantCode" configuration setting must also be set. This may also be called Merchant ID, Merchant Number, or RPNum.

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

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

Other fields can also be set by calling AddSpecialField.

When creating a Payment Schedule by setting the "RepayRequestType" configuration setting to 3, the "RepayContractID", "RepayNextBillingDate", and "RepayPaymentType" must be set as well.

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (7 days)
  • "BiWeekly" (14 days)
  • "FourWeeks" (28 days)
  • "Monthly" (1 month)
  • "Quarterly" (3 months)
  • "SemiAnnually" (6 months)
  • "Annually" (12 months)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment. To be represented as cents with a decimal point.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleEndDate The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
RepayNextBillingDate The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Note: If the StartDate is the 31st, and FrequencyUnit is set to "Monthly", the billing date is the last day of each month (even when the month does not have 31 days).

Each Customer Profile contains one or more "sub profiles" which are tied to the customer via a unique Customer Key generated by Repay Gateway. Each sub profile has its own key which is returned by Repay at the time the customer record is created.

The first step towards successfully storing and initiating recurring payments is to create the customer profile and get the unique Customer Key. The "RepayRequestType" configuration setting is used to specify the profile request type to perform an operation on: Customer Profile, Credit Card Profile, Bank Account Profile, PaymentSchedule etc... First set the "RepayRequestType" configuration setting to 0 (Default) to create a Customer Profile and get the Customer Key via Response.

A separate request must be sent for each sub profile by setting the "RepayRequestType" configuration setting. Note that for each subsequent request the "RepayCustomerKey" configuration setting must be set to the Customer Key obtained from the first step. The other profile Ids will be returned via the "RepayCardInfoKey", "RepayCheckInfoKey", and "RepayContractKey", configuration settings.

A token can also be requested for this Gateway by setting the "RepayRequestType" configuration setting to 5. After a successful request "RepayToken" configuration setting will contain the generated token.

This Gateway does not provide a way to retrieve profile information.

When modifying a customer by calling UpdateSubscription, or CancelSubscription the Customer Key value must be passed as the SubscriptionId parameter.

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

UpdateSubscription Method Notes:

IMPORTANT NOTE: It is very important to understand that when updating a Customer Profile, Credit Card Profile, Bank Account Profile or Payment Schedule by calling UpdateSubscription method, any values that are left "NULL" will overwrite existing data with a "NULL" value. If the desired request is to simply update the next billing date, set the "RepayRequestType" configuration setting to 4 and call UpdateSubscription method by passing the amount of days you want to add to the next billing day via the "RepayNumberOfDays" configuration setting.

Skipjack (gwSkipjack)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Valid values are between 1 and 99.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Weekly" (Starting Date + 7 Days)
  • "BiWeekly" (Starting Date + 14 Days)
  • "SemiMonthly" (Twice Monthly - Starting Date + 15 Days)
  • "Monthly" (Every month)
  • "FourWeeks" (Every fourth week)
  • "BiMonthly" (Every other month)
  • "Quarterly" (Every third month)
  • "SemiAnnually" (Twice a year)
  • "Annually" (Once a year)

Note: If PaymentScheduleFrequency is set to "Monthly", the PaymentScheduleStartDate may not fall after the 28th.

Square (gwSquare)

Supported Methods:

Payment Methods Supported: Pre-Tokenized Cards

MerchantLogin is a required property.

This gateway is used to manage Square customer profiles only. For more information about how Square's customer profiles work, please refer to Square's Customers API documentation.

When the SquareRequestType configuration setting is set to 0 (default), the CreateSubscription and CancelSubscription methods are used to create and delete Square customer profiles.

When the SquareRequestType configuration setting is set to 1, the CreateSubscription and CancelSubscription methods are used to add and remove cards on an existing Square customer profile.

The GetSubscriptionStatus method is always used to retrieve all customer details and cards in a Square customer profile. Once retrieved, the SquareCustomerCardCount and SquareCustomerCardIndex configuration settings can be used to choose which saved card's details the class should be populated with.

UpdateSubscription method is always used to update the customer's information in an existing Square customer profile. (Square does not allow updating existing cards saved to a profile, cards can only be added and removed.) ALWAYS use GetSubscriptionStatus to retrieve the latest customer profile information before updating any customer details, any fields sent with empty values will be removed from the profile!

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

Customer Details:

Square Field NamesRecurringBilling Equivalent
Square access tokenMerchantLogin property.
address objectShipping* properties and special fields address.address_line_3, address.sublocality, address.sublocality_2, address.sublocality_3, address.administrative_district_level_2, and address.administrative_district_level_3.
company_nameCompanyName configuration setting.
customer_idCustomerId property.
email_addressCustomerEmail property.
family_nameCustomerLastName property.
given_nameCustomerFirstName property.
nicknameSpecial field nickname
noteSubscriptionDesc property.
phone_numberCustomerPhone property.
reference_idInvoiceNumber property.

Card Details:

Square Field NamesRecurringBilling Equivalent
billing_address objectCustomer* properties (except those listed in the Customer Details table, above) 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.
card_nonceCardToken configuration setting.
cardholder_nameCustomerFullName property.
customer_card_idSquareCustomerCardId configuration setting.

(After retrieving a Square customer profile, the CardExpMonth and CardExpYear properties, and the CardLast4Digits and CardType configuration settings, will be populated as well.)

The following table shows which Square gateway response fields, when present, the class's API members reflect (note that most items in the tables above also apply, but are omitted for brevity):

ICharge API MembersSquare Field Names
ResponseCode property.HTTP status code
ResponseErrorCode property.errors[0].category
ResponseErrorText property.errors[0].field
ResponseProcessorCode property.errors[0].code
ResponseText property.errors[0].detail

Notes:

  • Important: Note that many of the Customer* properties are used to represent card billing address details, while the Shipping* properties are used to represent the customer's physical address.
  • Special fields can be added using the AddSpecialField method.
  • When using the GetSubscriptionStatus, UpdateSubscription, and CancelSubscription methods, the subscriptionId method parameter is ignored.

Transaction Central (gwTransactionCentral)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Monthly"
  • "Quarterly"
  • "Annually"
  • "Weekly"
  • "BiWeekly"
  • "FourWeeks"
  • "H" (Every 8 weeks)
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of payments. Set this to "0" to indicate an infinite number (no end).

Set MerchantPassword to the "RegKey" provided by Transaction Central.

TransNational Bankcard (gwTransNationalBankcard)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

Amounts 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.

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

The supported PaymentSchedule properties are: PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set SubscriptionName to the Plan or Product SKU that was added via the Merchant Control Panel.

USAePay (gwUSAePay)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "Daily"
  • "Weekly"
  • "BiWeekly"
  • "Monthly"
  • "BiMonthly"
  • "Quarterly"
  • "Annually"
  • "BiAnnually"
PaymentScheduleInitialAmount The initial or setup charge.
PaymentScheduleRecurAmount Sets the amount to charge on each cycle. If this property is left blank the PaymentScheduleInitialAmount will be used instead. This is NOT the "initial" charge or "setup" charge, this is only the "recurring" charge.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. . If set to "next", the date of the next billing cycle will be used. For example if today is 1/10/2004 and PaymentScheduleFrequency is set to "Monthly" then PaymentScheduleStartDate will be set to 2/10/2004.
PaymentScheduleTotalPayments The total number of payments. Set this "*" to indicate an infinite number (no end).

Verifi (gwVerifi)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin and MerchantPassword are required properties.

Amounts 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.

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

The supported PaymentSchedule properties are: PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.

Set SubscriptionName to the Plan or Product SKU that was added via the Merchant Control Panel.

WorldPay US Link (gwWorldPayLink)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks

MerchantLogin and MerchantPassword are required properties.

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

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 supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate, PaymentScheduleInitialAmount

PaymentSchedule Formats:

Field Values
PaymentScheduleInitialAmount The initial payment amount.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The number of days after an initial payment when the recurring payments will start.
PaymentScheduleTotalPayments The total number of payments. Set this to "-1" to indicate an infinite number (no end). Set this to "0" to indicate no recurring billing.
PaymentScheduleFrequency The billing frequency. Possible values are:
  • "None"
  • "Weekly"
  • "Monthly"
  • "Quarterly"
  • "SemiAnnually"
  • "Annually"
  • "BiWeekly"
  • "Daily"
  • "BiMonthly"
  • "7" (Bi-Annual)
  • "9" (One Time)

The MerchantPartnersLast4Digits configuration setting must be set when calling UpdateSubscription, CancelSubscription, or GetSubscriptionStatus.

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.

YourPay (gwYourPay)

Supported Methods:

Payment Methods Supported: Manually Entered Cards, Swiped Cards

MerchantLogin is a required property. MerchantPassword is not applicable.

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

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

The supported PaymentSchedule properties are: PaymentScheduleRecurAmount, PaymentScheduleFrequencyUnit, PaymentScheduleFrequency, PaymentScheduleTotalPayments, PaymentScheduleStartDate

PaymentSchedule Formats:

Field Values
PaymentScheduleFrequencyUnit The unit of time. Possible values are:
  • "D" or "Days"
  • "M" or "Months"
  • "Y" or "Years"
PaymentScheduleFrequency The length of time between charges. This is used in combination with PaymentScheduleFrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A PaymentScheduleFrequencyUnit of "m" and a PaymentScheduleFrequency of "3" will cause a payment to occur every 3 months.
PaymentScheduleRecurAmount The amount to be charged with each recurring payment.
PaymentScheduleStartDate The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus.
PaymentScheduleTotalPayments The total number of recurring payments to charge the customer. Valid values are between 0 and 99.

Set MerchantLogin to the "Store Number" provided by YourPay. This gateway requires a client certificate, which can be set using the SSL Certificate properties.

Testing Information

Many gateways have support for a test mode, whereby a live account may sent test transactions that will not be captured and settled by the gateway. This feature is available by setting the TestMode TestMode property to True. However, this feature is not supported by all gateways, and setting the TestMode to true for a Gateway that does not support the feature will cause the class to fails with an error. A list of Gateway which support the TestMode property are listed below:

  • gwAuthorizeNet (1)
  • gwUSAePay (7)
  • gwPlanetPayment (9)
  • gwMPCS (10)
  • gwRTWare (11)
  • gwECX (12)
  • gwInnovative (14)
  • gwTrustCommerce (19)
  • gwPSIGate (20)
  • gwPayFuse (21)
  • gwLinkPoint (24)
  • gwFirstData (33)
  • gwYourPay (34)
  • gwEway (38)
  • gwTransFirst (40)
  • gwChase (41)
  • gwWorldPay (43)
  • gwSterling (45)
  • gwPaymentExpress (48)
  • gwMyVirtualMerchant (49)
  • gwPayLeap (57)
  • gwHSBC (66)
  • gwBluePay (67)
  • gwPayTrace (70)
  • gwOmniFund (73)
  • gwAuthorizeNetXML (96)
  • gwBlueSnap (104)
  • gwPriorityPaymentSystems (109)
  • gwPayTraceJSON (117)

In addition, many gateways support a test mode by changing the URL that is posted to. For these gateways, change the GatewayURL to point to a test server instead of a live server to process test transactions. A list of gateways that support test URLs (and the included URLs) follows:

GatewayTest GatewayURL
gwAuthorizeNet (1) https://test.authorize.net/gateway/transact.dll
gwIntellipay (3) https://test.intellipay.net/LinkSmart/
gwPayFlowPro (6) https://pilot-payflowpro.paypal.com
gwPlanetPayment (9) https://uap.txngw.com
gwMerchantAnywhere (15) https://web.cert.transfirst.com/
gwSkipjack (16) https://developer.skipjackic.com/scripts/evolvcc.dll?AuthorizeAPI
gw3DSI (18) https://eclinxplus.3deltademo.com/secure/external/Transact.asp
gwPSIGate (20) https://dev.psigate.com:7989/Messenger/XMLMessenger
gwPayFuse (21) https://test5x.clearcommerce.com:11500
gwOrbital (23) https://orbitalvar1.paymentech.net/authorize
gwLinkPoint (24) staging.linkpt.net:1129 (no https:// for this gateway)
gwMoneris (25) - Canada https://esqa.moneris.com/HPPDP/index.php

Moneris XML API: https://esqa.moneris.com/gateway2/servlet/MpgReques

gwPRIGate (30) https://web.cert.transfirst.com/
gwFirstData (33) staging.linkpt.net:1129 (no https:// for this gateway)
gwYourPay (34) staging.linkpt.net:1129 (no https:// for this gateway)
gwACHPAyments (35) https://www.paymentsgateway.net/cgi-bin/posttest.pl
gwPaymentsGateway (36) https://www.paymentsgateway.net/cgi-bin/posttest.pl
gwCyberSource (37) https://ics2wstest.ic3.com/commerce/1.x/transactionProcessor/
gwEway (38) Special Case: The class sets the test URLs when TestMode is True.
gwChase (41) staging.linkpt.net:1129 (no https:// for this gateway)
gwTransactionCentral (44)https://web.cert.transfirst.com/
gwSterling (45) https://certify.securenet.com/API/Gateway.svc/wsHttp
gwMyVirtualMerchant (49) https://demo.myvirtualmerchant.com/VirtualMerchantDemo/process.do
gwMonerisUSA (52) https://esplusqa.moneris.com/usmpg/index.php

Moneris XML API: https://esplusqa.moneris.com/gateway_us/servlet/MpgRequest

gwSagePay (55) https://test.sagepay.com
gwMerchantESolutions (56)https://test.merchante-solutions.com/mes-api/tridentApi
gwPayLeap (57) https://uat.payleap.com/TransactServices.svc/ProcessCreditCard
gwWorldPayXML (59) https://secure-test.wp3.rbsworldpay.com/jsp/merchant/xml/paymentService.jsp
gwProPay (60) https://xmltest.propay.com/api/propayapi.aspx
gwQBMS (61) https://merchantaccount.ptc.quickbooks.com/j/AppGateway
gwHeartland (62) https://posgateway.cert.secureexchange.net/Hps.Exchange.PosGateway/PosGatewayService.asmx
gwLitle (63) / Vantiv https://cert.litle.com/vap/communicator/online

Vantiv: http://www.testlitle.com/sandbox/communicator/online

gwJetPay (65) https://test1.jetpay.com/jetpay
gwHSBC (66) https://www.uat.apixml.secureepayments.hsbc.com
gwBluePay (67) https://secure.bluepay.com/interfaces/bp20post
gwAdyen (68) https://pal-test.adyen.com/pal/servlet/soap/Payment
gwBarclay (69) https://secure2.mde.epdq.co.uk:11500
gwPayTrace (70) https://paytrace.com/api/default.pay
gwNetbanx (75) https://webservices.test.optimalpayments.com/creditcardWS/CreditCardServlet/v1
gwMIT (76) https://dev.mitec.com.mx
gwDataCash (77) https://testserver.datacash.com/Transaction
gwACHFederal (78) https://api.achfederal.com/webserviceSandbox/v2/gateway.asmx
gwFirstDataE4 (80) https://api.demo.globalgatewaye4.firstdata.com/transaction/v12
gwFirstAtlantic (81) https://ecm.firstatlanticcommerce.com/PGServiceXML
gwBluefin (82) https://cert.payconex.net/api/qsapi/3.8
gwPayDirect (84) https://paydirectapi.ca.link2gov.com/
gwFirstDataPayPoint (90) https://apiuat.thepayplace.com/epay/epaywebservice.asmx
gwPayvision (92) https://testprocessor.payvisionservices.com/Gatewayv2/BasicOperationsService.svc
gwConverge (93) https://demo.myvirtualmerchant.com/VirtualMerchantDemo/process.do
gwMonetra (95) https://testbox.monetra.com:8665
gwAuthorizeNetXML (96) https://apitest.authorize.net/xml/v1/request.api
gwGlobalPayroll (99) http://demo.gpgway.com/gateway/GPGCCProcess.aspx
gwPayWiser (100) https://gateway.paywiser.eu/PaymentGatewayTest/PayWiserPG/
gwNuvei (110) https://testpayments.globalone.me/merchant/xmlpayment
gwQBPayments (113) https://sandbox.api.intuit.com
gwShift4 (114) https://utgapi.shift4test.com/api/rest/v1/
gwSquarePayments (115) https://connect.squareupsandbox.com/v2
gwHeartlandPortico (116) https://posgateway.cert.secureexchange.net/Hps.Exchange.PosGateway/PosGatewayService.asmx
gwPayTraceJSON (117) https://api.paytrace.com

Any gateway that does not support the TestMode property or has an alternate GatewayURL will allow you to change your account to test mode via the online merchant interface, or via a separate test account.

Additional Test Environment Information

gwSagePay (55) SagePay Simulator: https://test.sagepay.com/simulator

To use the simulator environment, you will need to set the following: icharge.Customer.FirstName = "John"; //BillingFirstnames icharge.Customer.LastName = "Doe"; //BillingSurname icharge.Customer.Address = "123 Nowhere Ln"; //BillingAddress1 icharge.Customer.City = "MyCity"; //BillingCity icharge.Customer.State = "CA"; //BillingState (Optional) icharge.Customer.Zip = "90210"; //BillingPostCode icharge.Customer.Country = "US"; //BillingCountry icharge.Customer.Phone = "55555555"; //BillingPhone (Optional) //Special Fields required for Simulator icharge.SpecialFields[0].Value = "2.23"; // VPSProtocol //The below special fields are required, and in this example are set //such that the delivery information matches the customer information. icharge.AddSpecialField("DeliverySurname", "icharge.Customer.LastName."); icharge.AddSpecialField("DeliveryFirstnames", icharge.Customer.FirstName); icharge.AddSpecialField("DeliveryAddress1", icharge.Customer.Address); icharge.AddSpecialField("DeliveryCity", icharge.Customer.City); icharge.AddSpecialField("DeliveryPostCode", icharge.Customer.Zip); icharge.AddSpecialField("DeliveryCountry", icharge.Customer.Country); icharge.AddSpecialField("DeliveryState", icharge.Customer.State); //Optional icharge.AddSpecialField("DeliveryPhone", icharge.Customer.Phone); //Optional // Special Fields required for Simulator and Refunds //Response.ProcessorCode from transaction being refunded icharge2.AddSpecialField("RelatedSecurityKey", icharge.Response.ProcessorCode); //InvoiceNumber of transaction being refunded icharge2.AddSpecialField("RelatedVendorTXCode", icharge.InvoiceNumber);

Copyright (c) 2023 4D Payments Inc.
E-Payment Integrator 2022 C++ Edition - Version 22.0 [Build 8593]