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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_initial_amount | Specifies the initial transaction amount. If a payment_schedule_recur_amount is specified, this amount will not count towards the specified payment_schedule_total_payments. |
payment_schedule_recur_amount | Specifies the amount of the recurring transactions if different from the initial transaction fee (payment_schedule_initial_amount). |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | Number of recurring payments. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
transaction_amount is required to be specified. If an initial fee is not desired, payment_schedule 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount, payment_schedule_trial_payments
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. If payment_schedule_frequency_unit is "Days", valid values are between 7 and 365. If payment_schedule_frequency_unit is "Months", valid values are between 1 and 12. |
payment_schedule_initial_amount | The amount to be charged for each payment during a trial period. |
payment_schedule_recur_amount | The amount to be billed to the customer for each payment in the subscription. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Set this to "9999" to submit a subscription with no end date. |
payment_schedule_trial_payments | The number of trial payments. If specified, this number must be included in payment_schedule_total_payments. |
Note: If the payment_schedule_start_date is the 31st, and payment_schedule_frequency_unit 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:update_subscription
- The subscription start date (payment_schedule_start_date) may only be updated if no successful payments have been completed.
- The subscription interval information (payment_schedule_frequency_unit and payment_schedule_frequency) may not be updated.
- The number of trial occurrences (payment_schedule_trial_payments) 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 create_subscription method. Note when creating additional Payment Profiles and Shipping Addresses, the Profile ID you wish to add them to must be specified via subscription_name.
Profiles, Payment Profiles and Shipping Addresses can also be updated (update_subscription), deleted (cancel_subscription), and retrieved (get_subscription_status) 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 get_subscription_status 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 get_subscription_status 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
merchant_login and merchant_password 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".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
Other fields can also be set by calling add_special_field.
When creating a Payment Schedule by setting the "BASYSRequestType" configuration setting to 3, the "BASYSContractID", "BASYSNextBillingDate", and "BASYSPaymentType" must be set as well.
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
BASYSNextBillingDate | The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
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 update_subscription, or cancel_subscription 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.
update_subscription 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 update_subscription 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 update_subscription 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
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_start_date, payment_schedule_end_date
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | 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 get_subscription_status. |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. |
payment_schedule_recur_amount | The amount to be billed to the customer for each payment in the subscription. |
payment_schedule_start_date | 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 get_subscription_status. |
The following fields may be added when calling create_subscription by first calling the add_special_field method:
Special Field | Values |
rbEndMonth | Set this variable to "1" to charge a customer on the last day of the month (payment_schedule_frequency_unit must be "M"). |
rbCharge | Set to "0" to delay the first charge until the payment_schedule_start_date date. If this parameter is not passed, the customer"s account will be billed the payment_schedule_recur_amount on the date of the transaction request. |
rbSecondBilling | Use this field in combination with payment_schedule_start_date 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 update_subscription by first calling the add_special_field 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. |
merchant_login is used to specify the "merchant_id" and must be specified for all transaction types. When performing a create_subscription transaction, merchant_password is used to set the "password" and the "BamboraUsername" config must be set to the "username" value. When performing a update_subscription, cancel_subscription, or get_subscription_status; merchant_password is used to set the Recurring Billing API "passcode" value.
BlueSnap (gwBlueSnap)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, EChecks
merchant_login and merchant_password are required properties.
test_mode 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* properties. |
companyName | CompanyName configuration setting. |
personalIdentificationNumber | Special field personalIdentificationNumber. |
shippingContactInfo object fields | ShippingInfo* properties. |
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* 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.pfToken | Special field pfToken. |
paymentSources.ecpInfo.ecp object fields | e_check_bank_account_number, e_check_bank_routing_number, e_check_bank_account_class, and e_check_bank_account_type properties. |
paymentSources.[creditCardInfo|ecpInfo].billingContactInfo object fields | Customer* properties, 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* properties. |
Chase (gwChase)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A payment_schedule_frequency_unit of "M" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_recur_amount | The total dollar amount to be charged with each recurring transaction. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of recurring payments to charge the customer. Valid values are between 0 and 99. |
The merchant_login 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
Set merchant_login to the "ssl_merchant_id" provided by Converge. Set merchant_password 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
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_end_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date for the installment subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_initial_amount | The initial (setup) amount to be charged. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date for an installment or recurring subscription. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | 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. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
eProcessing (gwEprocessing)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_initial_amount | The initial amount to charge. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | 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
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_start_date, payment_schedule_end_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values are between 1 and 31 only. |
payment_schedule_initial_amount | The initial amount to charge. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
To specify the date on which payment_schedule_initial_amount will be charged set EwayInitialDate.
merchant_login is the eWay Username, merchant_password 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 create_subscription. The customer Id is returned in response.
When modifying a customer by calling update_subscription, cancel_subscription, or get_subscription_status, the customer Id value must be passed as the SubscriptionId parameter.
The get_subscription_status method will populate customer and company_name 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 transaction_id must be set to the customer Id. To create a recurring transaction set EwayTransactionType to "0" (Rebill Event) and call create_subscription.
When updating both Customers and Recurring Transactions, existing details must be specified. Details can be retrieved for each EwayTransactionType by calling get_subscription_status.
First Data (gwFirstData)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values are between 1 and 99. For example: A payment_schedule_frequency_unit of "M" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of recurring payments to charge the customer. Valid values are between 0 and 99. |
The merchant_login 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_start_date, payment_schedule_end_date
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_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. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
There are four IntervalParam SpecialField values (IntervalParam1, IntervalParam2, IntervalParam3, IntervalParam4) that can be set using add_special_field 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 subscription_name 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Any integer value represents the number of occurrences left for this particular subscription. If not provided, and payment_schedule_frequency 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 create_subscription. The customer Id is returned in response.
When modifying a customer by calling update_subscription, cancel_subscription, or get_subscription_status, the customer Id value must be passed as the SubscriptionId parameter.
The following fields may be added when calling create_subscription by first calling the add_special_field 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 OmniFundTransactionType to "1" (Account) and call create_subscription. The account Id value will be returned in the response property.
When modifying an account by calling update_subscription, cancel_subscription, or get_subscription_status, the account Id value must be passed as the SubscriptionId parameter.
The following fields may be added when calling create_subscription by first calling the add_special_field 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 transaction_id must be set to the account Id. To create a recurring transaction set OmniFundTransactionType to "2" (Recurring Transaction) and call create_subscription. The transaction Id value will be returned in the response property.
When modifying a recurring transaction by calling update_subscription, or cancel_subscription, the transaction Id value must be passed as the SubscriptionId parameter.
The following fields may be added when calling create_subscription by first calling the add_special_field 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
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | This field is used to specify the Recurring Recipe created within the merchant interface. |
payment_schedule_initial_amount | This field is used to specify an initial amount and can also be used as the recurring amount if payment_schedule_recur_amount is not specified. |
payment_schedule_recur_amount | This field is specified when the recurring amount is different than the payment_schedule_initial_amount used to initiate the transaction. |
payment_schedule_total_payments | The largest allowed value is "99999". |
LinkPoint (gwLinkPoint)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A payment_schedule_frequency_unit of "m" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of recurring payments to charge the customer. Valid values are between 0 and 99. |
The merchant_login 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
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount, payment_schedule_trial_payments
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_initial_amount | Used to specify an initial amount (setup fee). |
payment_schedule_recur_amount | Used to specify a default amount when creating a Plan or used to override the default plan amount when creating a Subscription. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | Number of recurring payments to charge the customer. Valid values are between 0 and 99. |
payment_schedule_trial_payments | 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 create_subscription. transaction_id 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 create_subscription. The special field "authType" may be added before creating the subscription using the add_special_field 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Set this to "0" to indicate an infinite number (no end). |
Set merchant_password to the "RegKey" value provided by Merchant Anywhere.
Merchant Partners (gwMerchantPartners)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_initial_amount | The initial payment amount. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The number of days after an initial payment when the recurring payments will start. |
payment_schedule_total_payments | 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. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
The MerchantPartnersLast4Digits configuration setting must be set when calling update_subscription, cancel_subscription, or get_subscription_status.
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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values between 0 and 999. For example: A payment_schedule_frequency_unit of "M" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_initial_amount | Used to specify an initial amount (setup fee). |
payment_schedule_recur_amount | This is the amount that will be billed on the payment_schedule_start_date and every interval thereafter. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Valid values are between 1 and 99. |
To charge funds immediately call add_special_field
and set the "start_now" field to "True". For instance:
RecurringBilling1.AddSpecialField("start_now","True");When this field is set to "True" payment_schedule can be set to bill an amount different than payment_schedule. The default value of "start_now" is "False".
Moneris USA (gwMonerisUSA)
Supported Methods:
Payment Methods Supported: Manually Entered Cards
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values between 0 and 999. For example: A payment_schedule_frequency_unit of "M" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_initial_amount | Used to specify an initial amount (setup fee). |
payment_schedule_recur_amount | This is the amount that will be billed on the payment_schedule_start_date and every interval thereafter. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Valid values are between 1 and 99. |
To charge funds immediately call add_special_field
and set the "start_now" field to "True". For instance:
RecurringBilling1.AddSpecialField("start_now","True");When this field is set to "True" payment_schedule can be set to bill an amount different than payment_schedule. The default value of "start_now" is "False".
My Virtual Merchant (gwMyVirtualMerchant)
Supported Methods:
Payment Methods Supported: Manually Entered Cards
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
Set merchant_login to the "ssl_merchant_id" provided by My Virtual Merchant. Set merchant_password 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
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
NexCommerce (gwNexCommerce)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | This property is used to specify the Recurring Recipe created within the merchant interface. |
payment_schedule_initial_amount | This property is used to specify an initial amount and can also be used as the recurring amount if payment_schedule_recur_amount is not specified. |
payment_schedule_recur_amount | This property is specified when the recurring amount is different than the payment_schedule_initial_amount used to initiate the transaction. |
payment_schedule_total_payments | The total number of payments. The maximum value is "99999". |
Orbital (gwOrbital)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, EChecks
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_end_date
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_frequency | 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. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | 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 payment_schedule_end_date is set, this specifies the end date.
- If payment_schedule_total_payments is set, this specifies the total number of transactions, after which recurring transactions will stop.
- If add_special_field 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 create_subscription. When calling update_subscription 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 payment_schedule_end_date, set a value of "~" (tilde).
- To clear payment_schedule_total_payments, set a value of "-1".
- To clear the "MBRecurringNoEndDateFlag" special field, use add_special_field to set a value of "N".
Profile Management
To manage a profile without recurring billing features
use the add_special_field
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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_total_payments | 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. |
payment_schedule_initial_amount | Defines an amount of an optional transaction (such as an initial fee). This is only applicable when add_special_field is used to set the "OPTIONALTRX" special field to "S". |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
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 merchant_login 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_initial_amount | Specifies the initial transaction amount. If a payment_schedule_recur_amount is specified, this amount will not count towards the specified payment_schedule_total_payments. |
payment_schedule_recur_amount | Specifies the amount of the recurring transactions if different from the initial transaction fee (payment_schedule_initial_amount). |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of recurring payments. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
transaction_amount must be specified. If an initial fee is not desired, payment_schedule 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 customer_id 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 create_subscription.
When modifying a stored credit card entry by calling update_subscription or cancel_subscription, the customer code must be set via customer_id 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 customer_id must be set to a unique customer code. To create a customer entry set PaymentWorkSuiteTransactionType to "1" (Customer) and call create_subscription.
When modifying a customer entry by calling update_subscription or cancel_subscription, the customer code must be passed as the SubscriptionId parameter.
Payscape (gwPayscape)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
Set subscription_name 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of times the recurring transaction should be processed. Set this to "999" to indicate an infinite number (no end). |
Set subscription_name 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 create_subscription. The customer Id is returned in transaction_id)
When modifying a customer by calling update_subscription or cancel_subscription, 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 transaction_id must be set to the customer Id. To create a recurring transaction set PayTraceTransactionType to "1" (Recurring Payment) and call create_subscription.
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.
merchant_login and transaction_id are required properties. merchant_password is not applicable.
This gateway requires the use of a unique transaction_id.
When PayWiserRequestType configuration setting is set to 0 (Default), StatementText, StatementDescription and IsRecurring special fields must be set via the add_special_field 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 add_special_field method.
Also, the PayWiserPaymentHour configuration setting must be set when PayWiserRequestType configuration setting is set to 0.
TerminationReason must be set via the add_special_field method when PayWiserRequestType is set to 4 (TerminateRecurringPayment).
Other optional fields like InstallmentTotalValue and DownPaymentValue can also be set by calling add_special_field.
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.
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. To be represented as cents without a decimal point. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | 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
merchant_login and merchant_password 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".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
Other fields can also be set by calling add_special_field.
When creating a Payment Schedule by setting the "PhoeniXGateRequestType" configuration setting to 3, the "PhoeniXGateContractID", "PhoeniXGateNextBillingDate", and "PhoeniXGatePaymentType" must be set as well.
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
PhoeniXGateNextBillingDate | The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
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 update_subscription, or cancel_subscription 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.
update_subscription 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 update_subscription 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 update_subscription 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_end_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date. This is only applicable when payment_schedule_total_payments is not set. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. |
payment_schedule_initial_amount | Specifies the initial amount which will override the amount specified in payment_schedule_recur_amount for the first billing cycle only. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | 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 merchant_login to the company KEY. Set merchant_password to the PIN.
PlugNPay (gwPlugNPay)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_end_date
payment_schedule Formats:
Field | Values |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Set this to "0" if no rebilling is desired. |
This gateway requires that subscription_name 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
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Set this to "0" to indicate an infinite number (no end). |
Set merchant_password to the "RegKey" provided by PRIGate.
QuickBooks Merchant Services (gwQBMS)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, EChecks
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_start_date, payment_schedule_end_date
payment_schedule Formats:
Field | Values |
payment_schedule_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 payment_schedule_start_date), or it can be a more complex expression. Please see the QBMS specifications for details on the expression language and format. |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | 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 get_subscription_status. |
customer is required for all transactions.
Set merchant_login to the Application Name. Set merchant_password 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 create_subscription. The wallet Id is returned in response
When modifying a customer by calling update_subscription, cancel_subscription, or get_subscription_status, 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 transaction_id to the wallet Id. To create a scheduled billing event set QBMSTransactionType to "1" (scheduled billing event) and call create_subscription.
The scheduled billing Id is returned in response . When modifying a scheduled billing event by calling update_subscription, cancel_subscription, or get_subscription_status, 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 add_special_field.
For instance:
RecurringBilling1.AddSpecialField("PaymentType","Check");
The "ScheduledBillingStatus" special field can also be set by calling add_special_field. Possible values are:
- "WaitingForAuthorization"
- "Active"
- "Suspended"
- "Canceled"
Repay Gateway (gwRepay)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, EChecks
merchant_login and merchant_password 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".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
Other fields can also be set by calling add_special_field.
When creating a Payment Schedule by setting the "RepayRequestType" configuration setting to 3, the "RepayContractID", "RepayNextBillingDate", and "RepayPaymentType" must be set as well.
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. To be represented as cents with a decimal point. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_end_date | The end date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
RepayNextBillingDate | The next billing date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
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 update_subscription, or cancel_subscription 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.
update_subscription 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 update_subscription 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 update_subscription 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
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Valid values are between 1 and 99. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
Square (gwSquare)
Supported Methods:
Payment Methods Supported: Pre-Tokenized Cards
merchant_login 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 create_subscription and cancel_subscription methods are used to create and delete Square customer profiles.
When the SquareRequestType configuration setting is set to 1, the create_subscription and cancel_subscription methods are used to add and remove cards on an existing Square customer profile.
The get_subscription_status 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.
update_subscription 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 get_subscription_status 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 Names | RecurringBilling Equivalent |
Square access token | merchant_login property. |
address object | Shipping* 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_name | CompanyName configuration setting. |
customer_id | CustomerId property. |
email_address | CustomerEmail property. |
family_name | CustomerLastName property. |
given_name | CustomerFirstName property. |
nickname | Special field nickname |
note | subscription_desc property. |
phone_number | CustomerPhone property. |
reference_id | invoice_number property. |
Card Details:
Square Field Names | RecurringBilling Equivalent |
billing_address object | Customer* 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_nonce | CardToken configuration setting. |
cardholder_name | CustomerFullName property. |
customer_card_id | SquareCustomerCardId configuration setting. |
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 Members | Square 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 add_special_field method.
- When using the get_subscription_status, update_subscription, and cancel_subscription methods, the subscriptionId method parameter is ignored.
Transaction Central (gwTransactionCentral)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, EChecks
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of payments. Set this to "0" to indicate an infinite number (no end). |
Set merchant_password to the "RegKey" provided by Transaction Central.
TransNational Bankcard (gwTransNationalBankcard)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
USAePay (gwUSAePay)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_frequency | The billing frequency. Possible values are:
|
payment_schedule_initial_amount | The initial or setup charge. |
payment_schedule_recur_amount | Sets the amount to charge on each cycle. If this property is left blank the payment_schedule_initial_amount will be used instead. This is NOT the "initial" charge or "setup" charge, this is only the "recurring" charge. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. . If set to "next", the date of the next billing cycle will be used. For example if today is 1/10/2004 and payment_schedule_frequency is set to "Monthly" then payment_schedule_start_date will be set to 2/10/2004. |
payment_schedule_total_payments | 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
merchant_login and merchant_password 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.
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
WorldPay US Link (gwWorldPayLink)
Supported Methods:
Payment Methods Supported: Manually Entered Cards, Swiped Cards, EChecks
merchant_login and merchant_password are required properties.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode 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 payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date, payment_schedule_initial_amount
payment_schedule Formats:
Field | Values |
payment_schedule_initial_amount | The initial payment amount. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The number of days after an initial payment when the recurring payments will start. |
payment_schedule_total_payments | 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. |
payment_schedule_frequency | The billing frequency. Possible values are:
|
The MerchantPartnersLast4Digits configuration setting must be set when calling update_subscription, cancel_subscription, or get_subscription_status.
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
merchant_login is a required property. merchant_password is not applicable.
Amounts should be represented as dollars and cents with a decimal point. For example, "1.00".
test_mode is not supported and when set to "True" an exception will be thrown by the component.
The supported payment_schedule properties are: payment_schedule_recur_amount, payment_schedule_frequency_unit, payment_schedule_frequency, payment_schedule_total_payments, payment_schedule_start_date
payment_schedule Formats:
Field | Values |
payment_schedule_frequency_unit | The unit of time. Possible values are:
|
payment_schedule_frequency | The length of time between charges. This is used in combination with payment_schedule_frequency_unit to specify the frequency of the billing. Valid values are between 1 and 99.For example: A payment_schedule_frequency_unit of "m" and a payment_schedule_frequency of "3" will cause a payment to occur every 3 months. |
payment_schedule_recur_amount | The amount to be charged with each recurring payment. |
payment_schedule_start_date | The start date. The default format is "MM/dd/yyyy" and is controlled by DateFormat, or get_subscription_status. |
payment_schedule_total_payments | The total number of recurring payments to charge the customer. Valid values are between 0 and 99. |
Set merchant_login to the "Store Number" provided by YourPay. This gateway requires a client certificate, which can be set using the SSL Certificate properties.