From TMM Wiki
  Biller Instructions
NATS3 Biller List
Aconti Payment Service
Bill1st Gateway
Billing Line
Card Gate Plus
CCBill Direct Pay
CCBill Web900
ClearCard IDV
Commerce Gate
DHD Media
E-Pay Company
Edelweiss Card
EMerchantPay (Interconsult)
Global Access
HeidelPay Gateway
ICN Ltd.
Infinity Payment
Jettis Gateway
Jettis International
Merchant Partners Gateway
Merchant Partners Membership
Merchant Solutions
Netbilling Native
Netpay International
Optimized Payment System
Password by Phone
Payment Network
Paysite Cash
Plug'n Pay
Pure Vanilla
RocketGate Native
Secure Billing World
Sonic Bill
Universal Processing
Verotel Pro
YNOT Processing
Netbilling v3 Upgrade Instructions
Purchasing Tokens Through Netbilling
Streamate Biller versus Third-Party
Switching From Epoch to Epoch EU
Epoch Member Approval Plus
Multiple Biller Accounts

Please don't test your biller setup with Netbilling's test account—it won't work correctly.

Note: these instructions describe using Netbilling as a gateway. If you want to use Netbilling as a regular biller, please see the Netbilling Native article.

Set up on Netbilling's Website

Register an account on Netbilling's website.

Please note: Netbilling uses the term Access Keyword to describe two different settings. To distinguish the two different settings, I've placed my own terms in brackets after the Netbilling terms.

To process transactions, in the Netbilling administration panel under "Setup" -> "Access Security", check the box next to "Enable Native Direct Mode v.3 (SAS) Channel" and enter your server's IP address in the box labeled "Specify Trusted Static IP Addresses allowed to originate Direct Mode transactions". Transactions will not process through Netbilling if you don't do this.

Reporting keyword: If you're on NATS 3.0.30 or newer, you need to add a reporting keyword for each site in Netbilling. You can do this by going to "Site Tools" -> "Sitetags" -> "config" for each site -> under the section "Data Retrieval Interface", there is a box for "Access keywords" [Reporting Keyword]. You need to enter a keyword here to be added later in the NATS admin. You need to do this for each of your sites. Also, under "Account Setup" -> Account Management" -> "Access Security" -> "Data Retrieval Interface", you need to check the box next to "Enable Data Retrieval Interface v1.x " and add your server's IP address to the "Reporting Client IP Addresses" section. You need to do this to track rebills, refunds, chargebacks, etc.

Set up Netbilling in NATS

You must have PHP's mcrypt installed. Please see the PHP documentation.

There are several versions of the Netbilling protocol. Please follow the instructions that apply to your setup.

Netbilling Version 2

In the Billers Admin, select Netbilling from The Biller drop-down menu. Enter your 12 digit Netbilling account number. This number is displayed on the top of the first page when you log in to Netbilling. When adding it to the Billers Admin please suffix a colon to the number; for example: 123456789012:

Enter your Netbilling username and password.

In Sites Admin, under Biller Details, enter your Site Tag and Access Keyword [Reporting Keyword]. You can find both of these by logging into Netbilling, going to Sote Tools, Site Tags, “config” -- the site tag is displayed as 12(max) capitalized alphanumeric characters; the access keyword [Reporting Keyword] is under the Data Retrieval Interface link.

Netbilling Version 3

In Billers Admin, select Netbilling from the Biller drop-down menu. Enter your Account number. You optionally enter your dynamic IP code.

In Sites Admin, under Biller Details, enter your Netbilling Site Tag and Access Keyword [Reporting Keyword]. You may also enter an Access Keyword [Control Keyword] for cross-sells and instant upgrades (see below).

Netbilling Cross-Sells

Currently NATS only supports NetBilling Gateway cross sells between NATS clients. In Netbilling, under "Account Setup" -> Account Management" -> "Credit Cards" -> "Step 6", you need to check the box to "Enable PCI Repeat Billing". If you are going to be up-selling or cross-selling to your own Netbilling account, you do not need to enter any 12 digit Netbilling account numbers into the text box in Step 6. If you are going to be up-selling or cross-selling to different Netbilling accounts, you need to enter those destination Netbilling account numbers into the text box.

Outgoing Cross Sells

Account, Site Tag, Pass Code, Initial Days, Initial Dollars, Recurring Days, Recurring Dollars, Ref Code and Integrity Key are provided by the person you are sending cross sells to. The domain is the base domain of their NATS install. So if their NATS is at then is the domain you need to enter. Only set domain if the cross sell goes to another affiliate program. Domain should not be set if the cross sell is for another site in your program.

Once this is entered and you have activated the cross sell for a join open you need to modify the accompanying sites gateway_join template. What will need to be added to this template is the following;

{gateway_xsell}{if $have_xsells}{foreach from=$xsells item="xsell"}<input type="checkbox" name="signup[xsell][]" value="{$}" checked>{$xsell.description}{/foreach}{/if}

This will display a checkbox accompanied by the description entered on the CrossSells Admin. If you enter a disclaimer on the CrossSells Admin then you can also access that via {$xsell.disclaimer}.

You will also have to contact your partners and have them change the ip for you in their XSELL_NETBILLING_SECURE_IPS configuration variable. This can be found in either their config.php or their config_override.php

In addition, you will need to have the sending IPs added to NetBilling's allowed IP list.
If you do this, you DO NOT need to fill in "Dynamic IP Code" for the outgoing cross sell. If you setup a cross sell verification code with them instead, then place this code in the field "Dynamic IP Code".

Incoming Cross Sells

Account is your Netbilling Account ID that you want this cross sell to use. Site Tag is the site that this cross sell is for. This is the ID given to the site by Netbilling. Pass Code is generated by you and is used during the posting of the cross sell to ensure integrity. Initial Days, Initial Dollars, Recurring Days and Recurring Dollars are the initial and recurring period and amounts for this option. Integrity Key is your Netbilling Account's Integrity Key which ensures the integrity of data being sent to NetBilling when the charge is done. Domain is not required on incoming cross sell entries. Setup your discount upgrade price in Netbilling's system and added it to the Discount Upgrade Price field.

For affiliates to send you cross sells (or you to send cross sells to yourself), you'll need to add the IPs to XSELL_NETBILLING_SECURE_IPS configuration variable.

Upgrade Subscription

To set up an Upgrade subscription you need to use the following link in your limited members area for user upgrades:

  • http://<linkdomain>/signup/upgradeplus.php?site=<siteid>&username=<username>

Where <linkdomain> is the linkdomain for the site, <siteid> is the siteid for the site in NATS, and <username> is the username for the user that is trying to upgrade (To get the Username via PHP you would use <?=$_SERVER['REMOTE_USER']?>)

You will also need to add this line to your configuration file to turn on the trials with netbilling; $config['NETBILLING_UPGRADES'] = 1;

Extra Biller Options

Netbilling has the following Extra Biller Fields available:

  • processor

Using Netbilling as a HTTPS Gateway

Please see the the HTTPS Gateways article.

Auto Cascading to Netbilling

When you autocascade, your member does not get a chance to specify their username on the normal prejoin form. As a result, you must present this input on the gateway_join template.

{if !$available_data.username}
<TR><TD class="join_name">Username:</TD><TD class="join_value"><input class="join_input" type="text"
name="signup[username:1:6:16:::username_check]" value="{$vars.username}"><span class="join_error">{if $errors.username}<br>{$errors.username}</span>{/if}</TD></TR>
{if !$available_data.password}
<TR><TD class="join_name">Password:</tD><TD class="join_value"><input class="join_input" type="text"
name="signup[password:1:6:16:::password_check]" value="{$vars.password}"><span class="join_error">{if $errors.password}<br>{$errors.password}</span>{/if}</TD></TR>


In the Configuration Admin, under the Billers section, you will need up add the IP of the system sending the upsell to the XSELL_NETBILLING_SECURE_IPS. Even your own IP will need to be added if you are sending this upsell to yourself.

If the Upsell is going to another NetBilling account, then the sender will need to enter a space-separated list of accounts that are authorized to use this feature under Authorized accounts in Step 6 of the Credit Card setup page.

Additional information

Netbilling does not support recording IPv6 addresses, NATS has a config setting called "NETBILLING_USE_IPV4_PLACEHOLDER" which will only send IPv4 addresses to Netbilling during the signup process.

See Also