RecurringBilling Control
Properties Methods Events Configuration Settings Errors
The RecurringBilling component is used to authorize and set up recurring transactions with any of the supported Internet Payment Gateways.
Syntax
RecurringBilling
Remarks
The RecurringBilling control allows you to use multiple Internet Payment Gateways through one interface and one control. This allows for easy migration from one gateway to another, as well as quick integration into applications or web services.
RecurringBilling Gateway Setup and Required Properties
The RecurringBilling control allows your website to securely perform and setup recurring transactions without the need to redirect to a separate website. All transactions are accomplished through a secure HTTPS Post to any supported gateway. The secure response is received and then stored in the control's response properties. Any website or any stand-alone application can process transactions without the need for a secure server or third-party intervention.
Gateway Setup
The first thing you must do is select one of the many gateways supported by the RecurringBilling control, and set up an account with that gateway. Once you have an account set up with a valid (or test) login Id and password, you can use the RecurringBilling control.
To begin, set the Gateway property to the gateway you wish to use. If this gateway supports an alternate URL to send test transactions to, set the GatewayURL at this time.
Next, set the MerchantLogin (and for some gateways the MerchantPassword). These are supplied by your gateway vendor when you set up an account.
Many gateways have different setup requirements. See RecurringBilling Gateway Setup and Required Properties for details about each gateway's requirements.
Now you are ready to process transactions. For each transaction, you must set either Card or Bank. Most gateways will also require additional properties, such as CustomerAddress, CustomerFirstName, CustomerLastName, InvoiceNumber, etc.
Subscription Management
Once all required properties are set, you may create a recurring payment using the specified card or bank data by calling the CreateSubscription method. If the Gateway supports it, you may also Cancel recurring payments with the CancelSubscription method. Recurring payments that need to be changed may be updated with the UpdateSubscription method.
The following gateways are supported by the RecurringBilling control:
Gateway | Home page |
No Gateway (0) | n/a |
Authorize.Net AIM (1) | http://www.authorize.net |
eProcessing Transparent Database Engine (2) | http://www.eProcessingNetwork.com |
iTransact RediCharge HTML (4) | http://www.itransact.com |
Verisign PayFlow Pro (6) | https://www.paypal.com/webapps/mpp/payflow-payment-gateway |
USA ePay CGI Transaction Gateway (7) | http://www.usaepay.com |
Plug 'n Pay (8) | http://www.plugnpay.com |
Planet Payment iPay (9) | http://planetpayment.com/ |
Merchant Anywhere (Transaction Central) (15) | http://www.merchantanywhere.com/ |
SkipJack (16) | http://www.skipjack.com |
Chase Paymentech Orbital Gateway V5.7 (23) | http://www.chasepaymentech.com |
LinkPoint (24) | http://www.linkpoint.com |
Moneris eSelect Plus Canada (25) | http://www.moneris.com |
NetworkMerchants Direct-Post API (28) | http://www.nmi.com/ |
TransFirst Transaction Central Classic (formerly PRIGate) (30) | www.transfirst.com |
Merchant Partners (Transaction Engine) (31) | http://www.merchantpartners.com/ |
First Data Global Gateway (Linkpoint) (33) | http://www.firstdata.com |
YourPay (Linkpoint) (34) | http://www.yourpay.com |
ACH Payments AGI (35) | http://www.ach-payments.com |
Payments Gateway AGI (36) | https://www.paymentsgateway.net/ |
Cyber Source SOAP API (37) | http://www.cybersource.com |
eWay XML API (Australia) (38) | http://www.eway.com.au/ |
Chase Merchant Services (Linkpoint) (41) | http://www.chase.com |
Thompson Merchant Services NexCommerce (iTransact mode) (42) | http://www.thompsonmerchant.com |
TransFirst Transaction Central (44) | http://www.transfirst.com. (This is different from TransFirst eLink, supported above. The TransactionCentral gateway is also used by MerchantAnywhere and PRIGate) |
Elavon/NOVA/My Virtual Merchant (49) | http://www.myvirtualmerchant.com |
Moneris eSelect Plus USA (52) | http://www.moneris.com |
Beanstream Process Transaction API (53) | http://beanstream.com |
Verifi Direct-Post API (54) | http://www.verifi.com |
Intuit QuickBooks Merchant Services (QBMS) (61) | http://payments.intuit.com/ |
Litle Online Gateway (63) | http://www.litle.com/ |
PayTrace Payment Gateway (70) | http://www.paytrace.com/ |
TransNational Bankcard (74) | http://www.tnbci.com/ |
Payscape (83) | http://www.payscape.com |
Authorize.NET CIM (85) | http://www.authorize.net |
WorldPay US Link Gateway (87) | http://www.worldpay.com/us |
3DSI Payment WorkSuite (88) | http://www.3dsi.com/ |
First Data PayPoint (90) | https://www.firstdata.com/en_us/customer-center/financial-institutions/paypoint.html |
Converge (93) | http://www.myvirtualmerchant.com |
PhoeniXGate Gateway (97) | http://www.phoenixmanagednetworks.com/ |
Repay Gateway (98) | http://www.repayonline.com/ |
PayWiser (98) | http://www.paywiser.si/ |
Property List
The following is the full list of the properties of the control with short descriptions. Click on the links for further details.
CardCVVData | Three digit security code on back of card (optional). |
CardCVVPresence | Indicates the presence of the card verification value. |
CardEntryDataSource | This property contains a 1-character code identifying the source of the customer data. |
CardExpMonth | Expiration month of the credit card specified in Number . |
CardExpYear | Expiration year of the credit card specified in Number . |
CardMagneticStripe | Track data read off of the card's magnetic stripe. |
CardNumber | Customer's credit card number for the transaction. |
CustomerAddress | Customer's street address. |
CustomerAddress2 | A specific detail on the customer's shipping address (such as building, suite, apartment, floor number etc. |
CustomerAggregate | This property allows you to get or set an XML aggregate built from all of the Customer properties. |
CustomerCity | Customer's city. |
CustomerCountry | Customer's country. |
CustomerEmail | Customer's email address. |
CustomerFax | Customer's fax number. |
CustomerFirstName | Customer's first name. |
CustomerFullName | Customer's full name. |
CustomerId | Merchant-generated customer Id. |
CustomerLastName | Customer's last name. |
CustomerPhone | Customer's phone number. |
CustomerState | Customer's state. |
CustomerZip | Customer's zip code (or postal code if outside of the USA). |
BankAccountClass | Indicates whether a personal or business account is used for this transaction. |
BankAccountHolderName | Account holder's name. |
BankAccountNumber | Bank account number for ACH transactions. |
BankAccountType | Indicates whether a checking or savings account is used for this transaction. |
BankName | Name of the account holder's bank. |
BankRoutingNumber | Routing number for ACH transactions. |
ECheckPaymentType | The type of check payment request (commonly referred to as SEC Code). |
Gateway | Gateway to process transactions with. |
GatewayURL | Default URL for a specific Gateway . |
InvoiceNumber | Merchant-generated invoice number. |
MerchantLogin | Merchant's Gateway login. |
MerchantPassword | Merchant's Gateway password. |
PaymentScheduleEndDate | The end date of the subscription. |
PaymentScheduleFrequency | The frequency of payments. |
PaymentScheduleFrequencyUnit | The unit of time to be used when calculating the frequency of payments. |
PaymentScheduleInitialAmount | The initial amount to be charged (such as a trial period or setup fee). |
PaymentScheduleRecurAmount | The amount to be charged on a recurring basis. |
PaymentScheduleStartDate | The date on which the recurring payments will start processing. |
PaymentScheduleTotalPayments | The total number of payments. |
PaymentScheduleTrialPayments | The total number of trial payments. |
ProxyAuthScheme | This property is used to tell the component which type of authorization to perform when connecting to the proxy. |
ProxyAutoDetect | This property tells the component whether or not to automatically detect and use proxy system settings, if available. |
ProxyPassword | This property contains a password if authentication is to be used for the proxy. |
ProxyPort | This property contains the TCP port for the proxy Server (default 80). |
ProxyServer | If a proxy Server is given, then the HTTP request is sent to the proxy instead of the server otherwise specified. |
ProxySSL | This property determines when to use SSL for the connection to the proxy. |
ProxyUser | This property contains a user name, if authentication is to be used for the proxy. |
ResponseApprovalCode | Contains an authorization code when a transaction has been approved. |
ResponseApproved | Indicates the status of the last transaction. |
ResponseAVSResult | Contains the Address Verification System result code. |
ResponseCode | Indicates the status of the authorization request. |
ResponseCVVResult | Contains the returned CVV2 result code if it was requested. |
ResponseData | The entire response returned from the gateway processor. |
ResponseErrorCode | Additional error code returned by some gateways. |
ResponseErrorText | Additional error description returned by some gateways. |
ResponseInvoiceNumber | Invoice number submitted in authorization request (if applicable). |
ResponseProcessorCode | Response code from the underlying processor. |
ResponseText | Text information that describes each response code. |
ResponseTransactionId | Contains the Visa Transaction Identifier or MasterCard Reference Number. |
ResponseSubscriptionId | Contains the Subscription or Profile Identifier for the recurring payment. |
ShippingAddress | Customer's shipping street address. |
ShippingAddress2 | A specific detail on the customer's shipping address (such as building, suite, apartment, floor number etc. |
ShippingCity | Customer's shipping city. |
ShippingCountry | Customer's shipping country. |
ShippingEmail | Customer's email address. |
ShippingFirstName | Customer's first name. |
ShippingLastName | Customer's last name. |
ShippingPhone | Customer's phone number. |
ShippingState | Customer's shipping state. |
ShippingZip | Customer's shipping zip code (or postal code if outside of the USA). |
SpecialFieldCount | The number of records in the SpecialField arrays. |
SpecialFieldName | Name of special configuration property to submit in this transaction. |
SpecialFieldValue | Value of special configuration property to submit in this transaction. |
SSLAcceptServerCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertStore | The name of the certificate store for the client certificate. |
SSLCertStorePassword | If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store. |
SSLCertStoreType | The type of certificate store for this certificate. |
SSLCertSubject | The subject of the certificate used for client authentication. |
SSLServerCertEncoded | The certificate (PEM/base64 encoded). |
SubscriptionDesc | Description of recurring subscription. |
SubscriptionDetailsCardExpMonth | The expiration month of the card currently being processed for the recurring payments. |
SubscriptionDetailsCardExpYear | The expiration year of the card currently being processed for the recurring payments. |
SubscriptionDetailsCardNumber | The card number currently being processed for the recurring payments. |
SubscriptionDetailsEndDate | The date in which the recurring payments will stop processing. |
SubscriptionDetailsFrequency | The frequency in which payments will occur. |
SubscriptionDetailsFrequencyUnit | The unit frequency in which the payments will be processed. |
SubscriptionDetailsLastPaymentDate | The date that the last/previous transaction was processed. |
SubscriptionDetailsNextPaymentDate | The date of the next upcoming transaction. |
SubscriptionDetailsRecurAmount | The amount being charged on a recurring basis. |
SubscriptionDetailsRemainingPayments | The total number of remaining payments until the recurring payments will stop processing. |
SubscriptionDetailsStartDate | The date in which the recurring payments started processing. |
SubscriptionDetailsStatus | The current status of the recurring subscription. |
SubscriptionDetailsSubscriptionId | Contains the Subscription or Profile Identifier for the recurring payment. |
SubscriptionDetailsSubscriptionName | Contains the name of the recurring subscription or profile. |
SubscriptionDetailsTotalPayments | The total number of payments. |
SubscriptionName | The name of the recurring subscription or profile. |
TestMode | Turns test mode on and off for transactions sent to the current Gateway . |
Timeout | A timeout for the component. |
TransactionId | Merchant-generated transaction Id used for all transactions. |
Method List
The following is the full list of the methods of the control with short descriptions. Click on the links for further details.
AddSpecialField | Adds a special field name and the corresponding value. |
CancelSubscription | Cancels or deletes a recurring payment subscription. |
Config | Sets or retrieves a configuration setting . |
CreateSubscription | Creates a new recurring subscription. |
GetResponseVar | Parses additional information out of the response. |
GetSubscriptionStatus | Retrieves the status of a recurring payment subscription. |
Interrupt | Interrupts the current action. |
ResetSpecialFields | Resets all special fields to the default settings. |
UpdateSubscription | Updates a recurring payment subscription. |
Event List
The following is the full list of the events fired by the control with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
SSLServerAuthentication | Fired after the server presents its certificate to the client. |
SSLStatus | Shows the progress of the secure connection. |
Configuration Settings
The following is a list of configuration settings for the control with short descriptions. Click on the links for further details.
AuthNetShipToCompany | The name of the company associated with the customer. |
AuthNetCIMRequestType | The request type to send for the Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileId | The Payment Profile ID assigned by Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileCount | The number of Payment Profiles assigned to a customer profile within the Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileIndex | Parses the Payment Profile contained at the specified index within a GetSusbcriptionStatus response. |
AuthNetCIMShippingAddressId | The Shipping Address ID assigned by Authorize.NET CIM gateway. |
AuthNetCIMShippingAddressCount | The number of Shipping Addresses assigned to a customer profile within the Authorize.NET CIM gateway. |
AuthNetCIMShippingAddressIndex | Parses the Shipping Address contained at the specified index within a GetSusbcriptionStatus response. |
BeanstreamUsername | The Username used for authentication with the Beanstream gateway. |
CardPresent | Specifies whether the card is present during the transaction. |
CardType | Type of credit card being used in this transaction. |
CheckRoutingNumber | Determines whether to perform a checksum test on the RoutingNumber. |
CheckNumber | Check Number. |
CompanyName | The Customer's Company Name. |
CustomerPassword | The Customer's Password. |
CustomerUsername | The Customer's Username. |
DateFormat | The format of the date properties. |
EwayCustomerId | The Customer Id used to authenticate with the Eway gateway. |
EwayInitialDate | The date of the initial payment for the Eway gateway. |
EwayTransactionType | The Transaction Type for the Eway gateway. |
FirstDataPayPointAgreedToTerms | Specifies whether the customer has approved the registration process and agreed to the terms for the FirstDataPayPoint gateway. |
FirstDataPayPointTransactionType | The Transaction Type for the FirstDataPayPoint gateway. |
GoToBillingTransactionType | The Transaction Type for the GoToBilling gateway. |
LicenseDOB | Customer's Date of Birth as indicated on his drivers license. |
LicenseNumber | Customer's driver's license number. |
LicenseState | State in which customer's driver's license was issued. |
LitleCardholderId | Describes the method used to identify the cardholder at the point of sale for the Litle gateway. |
LitleSubscriptionAggregate | Used to specify an XML aggregate for Subscription Create and Update transactions within the Litle gateway. |
LitleTransactionType | The Transaction Type for the Litle gateway. |
LitleTrialFrequency | Used to specify a trial frequency for the Litle gateway. |
MerchantPartnersLast4Digits | The last 4 digits of the account number for a transaction processed via the MerchantPartners or WorldPay Link gateways. |
MerchantPartnersReaderType | The reader type used to read and encrypt a swiped card for the MerchantPartners or WorldPay Link gateways. |
PaymentWorkSuiteTransactionType | The transaction type to send for the Payment WorkSuite gateway. |
PayTraceTransactionType | The Transaction Type for the PayTrace gateway. |
PayWiserRequestType | The request type for the PayWiser gateway. |
PayWiserPlanPattern | PayWiser plan pattern for creating a recurring plan. |
PayWiserRetryPattern | PayWiser retry pattern for retrying failed payments. |
PayWiserPaymentHour | Payment hour. |
PayWiserCardToken | PayWiser Gateway Card Token Value. |
PayWiserTokenReferenceId | PayWiser Gateway Token Reference Id. |
PayWiserRecurringPlanId | PayWiser Recurring Plan Id. |
PhoeniXGateRequestType | The request type for the PhoeniXGate gateway. |
PhoeniXGateCustomerStatus | Indicates the Customer Status. |
PhoeniXGatePaymentType | Indicates the Payment Type. |
PhoeniXGateTokenMode | Indicates the Token Type. |
PhoeniXGateToken | PhoeniXGate Gateway Token Value. |
PhoeniXGateCustomerKey | PhoeniXGate Gateway Customer Key. |
PhoeniXGateCardInfoKey | PhoeniXGate Gateway Credit Card Info Key. |
PhoeniXGateCheckInfoKey | PhoeniXGate Gateway Check Info Key. |
PhoeniXGateContractKey | PhoeniXGate Gateway Contract Key. |
PhoeniXGateContractID | PhoeniXGate Gateway Contract ID. |
PhoeniXGateNextBillingDate | PhoeniXGate Gateway Next Billing Date. |
PhoeniXGateNumberOfDays | Number of days to be added to the next billing date. |
RepayRequestType | The request type for the Repay gateway. |
RepayCustomerStatus | Indicates the Customer Status. |
RepayPaymentType | Indicates the Payment Type. |
RepayTokenMode | Indicates the Token Type. |
RepayToken | Repay Gateway Token Value. |
RepayCustomerKey | Repay Gateway Customer Key. |
RepayCardInfoKey | Repay Gateway Credit Card Info Key. |
RepayCheckInfoKey | Repay Gateway Check Info Key. |
RepayContractKey | Repay Gateway Contract Key. |
RepayContractID | Repay Gateway Contract ID. |
RepayNextBillingDate | Repay Gateway Next Billing Date. |
RepayNumberOfDays | Number of days to be added to the next billing date. |
PlanetPaymentFrequencyDate | The date of the month that a recurring payment should occur for the Planet Payment gateway. |
PlanetPaymentFrequencyDay | The day that a recurring payment should occur for the Planet Payment gateway. |
PlanetPaymentFrequencyMonth | The month that a recurring payment should occur for the Planet Payment gateway. |
QBMSTransactionType | The Transaction Type for the QBMS gateway. |
SkipJackStatusIndex | Gets subscription details at the specified status index. |
TaxId | Company's Tax Id or a Customer's Social Security Number. |
TerminalCapability | The capability of the terminal that is used to submit the transaction. |
TerminalType | The terminal type that is used to submit the transaction. |
CardIssueNumber | Special Issue Number used for Switch and Solo cards. |
CardStartMonth | Used for some international cards. |
CardStartYear | Used for some international cards. |
ConvenienceFee | The total convenience fee charged for a transaction. |
CyberSourceXMLEscape | Determines whether to XML escape the CyberSource gateway request field values. |
ECI | Electronic Commerce Indicator. |
MerchantCode | Required field for the Litle and MIT gateways, and optional field for the WorldPayXML gateway. |
MyVirtualMerchantUserId | The MyVirtualMerchant user Id as configured on VirtualMerchant. |
NetBillingVersion | The Version to be sent in the User-Agent heading of a NetBilling gateway request. |
OrbitalConnectionPassword | Orbital Connection Password field used by the Orbital gateway. |
OrbitalConnectionUsername | Orbital Connection Username field used by the Orbital gateway. |
OrbitalCustomerProfileFromOrderInd | Customer Profile Number generation Options for the Orbital gateway. |
OrbitalCustomerProfileOrderOverrideInd | Indicator to specify how the CustomerId is leveraged to populate other data sets for the Orbital gateway. |
PaymentWorkSuiteClientCode | The 3DSI assigned client code sent in a request to the PaymentWorksuite gateway. |
PaymentWorkSuiteLocationCode | The 3DSI assigned location code sent in a request to the PaymentWorksuite gateway. |
PaymentWorkSuiteMerchantCode | The 3DSI assigned merchant code sent in a request to the PaymentWorksuite gateway. |
PayTraceIntegratorId | Used to specify the Integrator Id value assigned by the PayTrace gateway. |
RawRequest | Returns the data that was sent to the gateway. |
RawResponse | Returns the data that was received from the gateway. |
ValidateCardNumber | Determines whether data set to the CardNumber or MagneticStripe property is validated. |
XPath | Provides a way to point to a specific element in the returned XML or JSON response. |
XText | The text of the current element. |
XElement | The name of the current element. |
XChildrenCount | The number of child elements of the current element. |
XChildrenName[x] | The name of the child element. |
XChildrenXText[x] | The inner text of the child element. |
AcceptEncoding | Used to tell the server which types of content encodings the client supports. |
AllowHTTPCompression | This property enables HTTP compression for receiving data. |
AllowIdenticalRedirectURL | Allow redirects to the same URL. |
Append | Whether to append data to LocalFile. |
Authorization | The Authorization string to be sent to the server. |
BytesTransferred | Contains the number of bytes transferred in the response data. |
EncodeURL | If set to true the URL will be encoded by the component. |
FollowRedirects | Determines what happens when the server issues a redirect. |
GetOn302Redirect | If set to true the component will perform a GET on the new location. |
HTTPVersion | The version of HTTP used by the component. |
IfModifiedSince | A date determining the maximum age of the desired document. |
KeepAlive | Determines whether the HTTP connection is closed after completion of the request. |
MaxRedirectAttempts | Limits the number of redirects that are followed in a request. |
OtherHeaders | Other headers as determined by the user (optional). |
ProxyAuthorization | The authorization string to be sent to the proxy server. |
ProxyAuthScheme | The authorization scheme to be used for the proxy. |
ProxyPassword | A password if authentication is to be used for the proxy. |
ProxyPort | Port for the proxy server (default 80). |
ProxyServer | Name or IP address of a proxy server (optional). |
ProxyUser | A user name if authentication is to be used for the proxy. |
TransferredDataLimit | The maximum number of incoming bytes to be stored by the component. |
TransferredHeaders | The full set of headers as received from the server. |
UseChunkedEncoding | Enables or Disables HTTP chunked encoding for transfers. |
ChunkSize | Specifies the chunk size in bytes when using chunked encoding. |
UserAgent | Information about the user agent (browser). |
KerberosSPN | The Service Principal Name for the Kerberos Domain Controller. |
ConnectionTimeout | Sets a separate timeout value for establishing a connection. |
FirewallAutoDetect | Tells the component whether or not to automatically detect and use firewall system settings, if available. |
FirewallHost | Name or IP address of firewall (optional). |
FirewallPassword | Password to be used if authentication is to be used when connecting through the firewall. |
FirewallPort | The TCP port for the FirewallHost;. |
FirewallType | Determines the type of firewall to connect through. |
FirewallUser | A user name if authentication is to be used connecting through a firewall. |
KeepAliveTime | The inactivity time in milliseconds before a TCP keep-alive packet is sent. |
KeepAliveInterval | The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received. |
Linger | When set to True, connections are terminated gracefully. |
LingerTime | Time in seconds to have the connection linger. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The TCP port in the local host where the component binds. |
MaxLineLength | The maximum amount of data to accumulate when no EOL is found. |
MaxTransferRate | The transfer rate limit in bytes per second. |
RecordLength | The length of received data records. |
TCPKeepAlive | Determines whether or not the keep alive socket option is enabled. |
UseIPv6 | Whether to use IPv6. |
TcpNoDelay | Whether or not to delay when sending packets. |
TLS12SignatureAlgorithms | Defines the allowed TLS 1.2 signature algorithms when UseManagedSecurityAPI is True. |
ReuseSSLSession | Determines if the SSL session is reused. |
SSLCipherStrength | The minimum cipher strength used for bulk encryption. |
SSLEnabledProtocols | Used to enable/disable the supported security protocols. |
SSLProvider | The name of the security provider to use. |
SSLSecurityFlags | Flags that control certificate verification. |
OpenSSLCADir | The path to a directory containing CA certificates. |
OpenSSLCAFile | Name of the file containing the list of CA's trusted by your application. |
OpenSSLCipherList | A string that controls the ciphers to be used by SSL. |
OpenSSLPrngSeedData | The data to seed the pseudo random number generator (PRNG). |
AbsoluteTimeout | Determines whether timeouts are inactivity timeouts or absolute timeouts. |
FirewallData | Used to send extra data to the firewall. |
InBufferSize | The size in bytes of the incoming queue of the socket. |
OutBufferSize | The size in bytes of the outgoing queue of the socket. |
CodePage | The system code page used for Unicode to Multibyte translations. |