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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
InitialAmount | Specifies the initial transaction amount. If a RecurAmount is specified, this amount will not count towards the specified TotalPayments. |
RecurAmount | Specifies the amount of the recurring transactions if different from the initial transaction fee (InitialAmount). |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | Number of recurring payments. |
Frequency | The billing frequency. Possible values are:
|
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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate, InitialAmount, TrialPayments
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. If FrequencyUnit is "Days", valid values are between 7 and 365. If FrequencyUnit is "Months", valid values are between 1 and 12. |
InitialAmount | The amount to be charged for each payment during a trial period. |
RecurAmount | The amount to be billed to the customer for each payment in the subscription. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | The total number of payments. Set this to "9999" to submit a subscription with no end date. |
TrialPayments | The number of trial payments. If specified, this number must be included in TotalPayments. |
Note: If the StartDate is the 31st, and FrequencyUnit 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
- The subscription start date (StartDate) may only be updated if no successful payments have been completed.
- The subscription interval information (FrequencyUnit and Frequency) may not be updated.
- The number of trial occurrences (TrialPayments) may only be updated if the subscription has not yet begun or is still in the trial period.
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 |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
EndDate | 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.
Beanstream (gwBeanstream)
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 fields are: RecurAmount, FrequencyUnit, Frequency, StartDate, EndDate
PaymentSchedule Formats:
Field | Values |
EndDate | 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. |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. |
RecurAmount | The amount to be billed to the customer for each payment in the subscription. |
StartDate | 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 (FrequencyUnit must be "M"). |
rbCharge | Set to "0" to delay the first charge until the StartDate date. If this parameter is not passed, the customer"s account will be billed the RecurAmount on the date of the transaction request. |
rbSecondBilling | Use this field in combination with StartDate 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:
|
rbBillingEndMonth | Specifies whether the account is billed on the last day of the month. This applies to all occurrences. Possible values are:
|
rbNeverExpires | Specifies whether the account expires. Possible values are:
|
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 "BeanstreamUsername" 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 Name | RecurringBilling Equivalent |
address, address2, city, country, email, firstName, lastName, merchantShopperId, phone, state, and zip fields | Customer property. |
companyName | CompanyName configuration setting. |
personalIdentificationNumber | Special field personalIdentificationNumber. |
shippingContactInfo object fields | ShippingInfo property. |
shopperCurrency | CurrencyCode configuration setting. |
vendorInfo object fields | Special fields vendorId, commissionPercent, and commissionAmount. |
walletId | Special field walletId. |
When Adding, Retrieving, or Updating a Payment Source for a BlueSnap Vaulted Shopper:
BlueSnap Field Name | RecurringBilling Equivalent |
companyName (when adding/updating ECheck) | CompanyName configuration setting. |
paymentSources.creditCardInfo.creditCard object fields | Card property, 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.pfToken | Special field pfToken. |
paymentSources.ecpInfo.ecp object fields | AccountNumber, RoutingNumber, AccountClass, and AccountType properties. |
paymentSources.[creditCardInfo|ecpInfo].billingContactInfo object fields | Customer property, and special field personalIdentificationNumber. |
softDescriptor (when adding/updating a card) | Special field softDescriptor. |
transactionFraudInfo object fields | Special fields fraudSessionId, company, and enterpriseSiteId, and the PayerIP configuration setting. |
transactionFraudInfo.enterpriseUdfs content | BlueSnapEnterpriseUdfs configuration setting. |
transactionFraudInfo.shippingContactInfo object fields | ShippingInfo property. |
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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A FrequencyUnit of "M" and a Frequency of "3" will cause a payment to occur every 3 months. |
RecurAmount | The total dollar amount to be charged with each recurring transaction. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields.
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 fields are: RecurAmount, Frequency, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, EndDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
EndDate | The end date for the installment subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
InitialAmount | The initial (setup) amount to be charged. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date for an installment or recurring subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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. |
Frequency | The billing frequency. Possible values are:
|
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
InitialAmount | The initial amount to charge. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, FrequencyUnit, Frequency, StartDate, EndDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 31 only. |
InitialAmount | The initial amount to charge. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
To specify the date on which InitialAmount 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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A FrequencyUnit of "M" and a Frequency of "3" will cause a payment to occur every 3 months. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields.
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 fields are: RecurAmount, Frequency, StartDate, EndDate
PaymentSchedule Formats:
Field | Values |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
Frequency | 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. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | 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.
GlobalOnePay (gwGlobalOnePay)
Supported Methods:
Authentication with GlobalOnePay is performed by providing the TerminalId and HashSecret.
This component can be used to manage tokens that can be used by the ICharge component.
GlobalOnePay 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 field 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 Response.SubscriptionId field 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 GlobalOnePayPermittedTerminals configuration setting can be used to specify the terminals that are authorized to use the token.
Note: When GlobalOnePay is chosen as the gateway it defaults to the testing URL. The live URL is provided by GlobalOnePay after testing is complete.
GoToBilling (gwGoToBilling)
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | The total number of payments. Any integer value represents the number of occurrences left for this particular subscription. If not provided, and Frequency is not "None", the transaction will repeat indefinitely. |
The GoToBillingTransactionType 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 GoToBillingTransactionType 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:
|
"active" | Possible values are:
|
"hidden" | Possible values are:
|
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 GoToBillingTransactionType to "1" (Account) and call CreateSubscription. The account Id value will be returned in the Response field.
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:
|
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 GoToBillingTransactionType to "2" (Recurring Transaction) and call CreateSubscription. The transaction Id value will be returned in the Response field.
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:
|
"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:
|
"process" | Possible values are:
|
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 fields are: RecurAmount, Frequency, TotalPayments, InitialAmount
PaymentSchedule Formats:
Field | Values |
Frequency | This field is used to specify the Recurring Recipe created within the merchant interface. |
InitialAmount | This field is used to specify an initial amount and can also be used as the recurring amount if RecurAmount is not specified. |
RecurAmount | This field is specified when the recurring amount is different than the InitialAmount used to initiate the transaction. |
TotalPayments | 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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A FrequencyUnit of "m" and a Frequency of "3" will cause a payment to occur every 3 months. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields.
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount, TrialPayments
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
InitialAmount | Used to specify an initial amount (setup fee). |
RecurAmount | Used to specify a default amount when creating a Plan or used to override the default plan amount when creating a Subscription. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | Number of recurring payments to charge the customer. Valid values are between 0 and 99. |
TrialPayments | 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 |
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
InitialAmount | The initial payment amount. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The number of days after an initial payment when the recurring payments will start. |
TotalPayments | 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. |
Frequency | The billing frequency. Possible values are:
|
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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values between 0 and 999. For example: A FrequencyUnit of "M" and a Frequency of "3" will cause a payment to occur every 3 months. |
InitialAmount | Used to specify an initial amount (setup fee). |
RecurAmount | This is the amount that will be billed on the StartDate and every interval thereafter. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values between 0 and 999. For example: A FrequencyUnit of "M" and a Frequency of "3" will cause a payment to occur every 3 months. |
InitialAmount | Used to specify an initial amount (setup fee). |
RecurAmount | This is the amount that will be billed on the StartDate and every interval thereafter. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, Frequency, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | 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 fields are: StartDate
PaymentSchedule Formats:
Field | Values |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
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 fields are: RecurAmount, Frequency, TotalPayments, InitialAmount
PaymentSchedule Formats:
Field | Values |
Frequency | This field is used to specify the Recurring Recipe created within the merchant interface. |
InitialAmount | This field is used to specify an initial amount and can also be used as the recurring amount if RecurAmount is not specified. |
RecurAmount | This field is specified when the recurring amount is different than the InitialAmount used to initiate the transaction. |
TotalPayments | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, EndDate
PaymentSchedule Formats:
Field | Values |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
Frequency | This field 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. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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.
- If EndDate is set, this specifies the end date.
- If TotalPayments is set, this specifies the total number of transactions, after which recurring transactions will stop.
- If AddSpecialField is used to set "MBRecurringNoEndDateFlag" to "Y", this will result in no end date (infinite recurrences).
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.
- To clear EndDate, set a value of "~" (tilde).
- To clear TotalPayments, set a value of "-1".
- To clear the "MBRecurringNoEndDateFlag" special field, use AddSpecialField to set a value of "N".
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
TotalPayments | 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. |
InitialAmount | 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". |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | 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").
Payments Gateway (gwPaymentsGateway)
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
InitialAmount | Specifies the initial transaction amount. If a RecurAmount is specified, this amount will not count towards the specified TotalPayments. |
RecurAmount | Specifies the amount of the recurring transactions if different from the initial transaction fee (InitialAmount). |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | The total number of recurring payments. |
Frequency | The billing frequency. Possible values are:
|
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 fields are: StartDate
PaymentSchedule Formats:
Field | Values |
StartDate | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. To be represented as cents without a decimal point. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | This field 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 |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
EndDate | 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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate, EndDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
EndDate | The end date. This is only applicable when TotalPayments is not set. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. |
InitialAmount | Specifies the initial amount which will override the amount specified in RecurAmount for the first billing cycle only. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | This field 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 fields are: RecurAmount, TotalPayments, StartDate, EndDate
PaymentSchedule Formats:
Field | Values |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: RecurAmount, Frequency, StartDate, EndDate
PaymentSchedule Formats:
Field | Values |
Frequency | 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 StartDate), or it can be a more complex expression. Please see the QBMS specifications for details on the expression language and format. |
EndDate | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | 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 |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
EndDate | 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | The total number of payments. Valid values are between 1 and 99. |
Frequency | The billing frequency. Possible values are:
|
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 component 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 component:
Customer Details:
Square Field Names | RecurringBilling Equivalent |
Square access token | MerchantLogin property. |
address object | ShippingInfo property's fields 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_name | CompanyName configuration setting. |
customer_id | Customer.Id field. |
email_address | Customer.Email field. |
family_name | Customer.LastName field. |
given_name | Customer.FirstName field. |
nickname | Special field nickname |
note | SubscriptionDesc property. |
phone_number | Customer.Phone field. |
reference_id | InvoiceNumber property. |
Card Details:
Square Field Names | RecurringBilling Equivalent |
billing_address object | Customer property's fields (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_nonce | CardToken configuration setting. |
cardholder_name | Customer.FullName field. |
customer_card_id | SquareCustomerCardId configuration setting. |
The following table shows which Square gateway response fields, when present, the component's API members reflect (note that most items in the tables above also apply, but are omitted for brevity):
ICharge API Members | Square Field Names |
Response.Code field. | HTTP status code |
Response.ErrorCode field. | errors[0].category |
Response.ErrorText field. | errors[0].field |
Response.ProcessorCode field. | errors[0].code |
Response.Text field. | errors[0].detail |
Notes:
- Important: Note that many of the Customer property's fields are used to represent card billing address details, while the ShippingInfo property's fields 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 fields are: RecurAmount, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields are: StartDate
PaymentSchedule Formats:
Field | Values |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
Frequency | The billing frequency. Possible values are:
|
InitialAmount | The initial or setup charge. |
RecurAmount | Sets the amount to charge on each cycle. If this field is left blank the InitialAmount will be used instead. This is NOT the "initial" charge or "setup" charge, this is only the "recurring" charge. |
StartDate | 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 Frequency is set to "Monthly" then StartDate will be set to 2/10/2004. |
TotalPayments | 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 fields are: StartDate
PaymentSchedule Formats:
Field | Values |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
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 fields are: RecurAmount, Frequency, TotalPayments, StartDate, InitialAmount
PaymentSchedule Formats:
Field | Values |
InitialAmount | The initial payment amount. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The number of days after an initial payment when the recurring payments will start. |
TotalPayments | 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. |
Frequency | The billing frequency. Possible values are:
|
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 fields are: RecurAmount, FrequencyUnit, Frequency, TotalPayments, StartDate
PaymentSchedule Formats:
Field | Values |
FrequencyUnit | The unit of time. Possible values are:
|
Frequency | The length of time between charges. This is used in combination with FrequencyUnit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A FrequencyUnit of "m" and a Frequency of "3" will cause a payment to occur every 3 months. |
RecurAmount | The amount to be charged with each recurring payment. |
StartDate | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or GetSubscriptionStatus. |
TotalPayments | 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 fields.