Handling Authorize.Net ARB Subscription Failures

May 1st, 2008

One common complaint about the Authorize.Net Automated Recurring Billing (ARB) system is that there is no way to handle subscriptions that are declined when processing a future scheduled payment. As it turns out there is a way to handle this failures programmatically and automate your response to them.

Authorize.Net has a little known, and poorly documented feature called Silent Post URL. This is a URL that you specify where the results of all transactions are posted. This is in addition to the response given via their API.

The results of all transactions, including those processed using the Advanced Integration Method, are posted to this URL. This means you will be responsible for determining which are real-time transactions and which are using the ARB API. How you can do this is quite simple. When an ARB transaction’s results are posted two extra fields are included:

x_subscription_id – This is the ARB subscription ID of the transaction processed. You should probably already have this stored in a database somewhere.

x_subscription_paynum – This is the number of the occurrence of the subscription that failed. If this was the fifth recurring transaction for that subscription the value of this field would be ‘5′.

You can look for the presence of either of these two fields to indicate the transaction is an ARB transaction and act accordingly.

Here is some sample PHP code for handling a response posted to the Silent Post URL:


// Flag if this is an ARB transaction. Set to false by default.
$arb = false;

// Store the posted values in an associative array
$fields = array();

foreach ($_REQUEST as $name => $value)
{
// Create our associative array
$fields[$name] = $value;


// If we see a special field flag this as an ARB transaction
if ($name == 'x_subscription_id')
{
$arb = true;
}
}

// If it is an ARB transaction, do something with it
if ($arb == true && $fields['x_response_code'] != 1)
{
// Suspend the user's account
...

// Email the user and ask them to update their credit card information
...

// Email you so you are aware of the failure
...
}

To set the Silent Post URL simply login into your Authorize.Net control panel and click on your Settings links. It will be one of the options on that page. Simply add the URL you want them to post the responses to and submit it. It will take effect immediately.

So, if you have read our article Integrate the Authorize.Net Recurring Billing API with PHP and wanted to find a way to handle recurring billing failures in an automated fashion, then this solution should be music to your ears.

New Article: Merchant Accounts 101

March 19th, 2008

A new article has been published today that we are very excited about. Merchant Accounts 101 covers the ins and outs of merchant accounts.

Covered in this article are:

  • The Players

    Find out who’s who in the merchant account business. We start at the top with the big card associations and work our way down to the sales agent who establishes your account.

  • Types of Accounts, Credit Cards, and Transactions

    Before you can begin to understand what fees you will incur by accepting credit cards you have to understand the environment in which you are accepting them. Learn how your style of business, type of transaction, and type of credit card affect the fees you pay with every transaction.

  • Processing Fees

    The fees associated with accepting credit cards is the first thing most merchants think of when they think of a merchant account. And yet most merchants do not understand exactly what they mean or how to determine which plan is the best for them. We explain what the fees are that will be charged for each transaction and how to determine what rate structure is the best for your business.

  • Surcharges

    Ever wonder why some credit card transactions cost so much more then others? Ever wonder why all of the transactions your process are not at the rate your sales agent quoted you? This is because surcharges may apply to your transaction. We explain why surcharges may occur and how much they may affect your rates.

  • Monthly Fees, Annual Fees, and Other Fees

    It seems everything a merchant does incurs a fee from their merchant account. We outline and explain the most common ones and let you know which ones should not be there most of the time.

  • Establishing a Merchant Account

    Once you understand your rates and have chosen a merchant account provider you need to begin the processing of establishing your account. We detail the aspects of this and what you need to be aware of to ensure a quick and easy process.

  • Security and Risk

    The first thing a merchant thinks of when they think about risk is fraud. Merchant account providers think even deeper then that and that can have a profound effect on your processing experience. We’ll explain the various factors surrounding security and risk with merchant accounts so you don’t have to worry about your money being in limbo.

  • Getting Started

    Once your merchant account is established your responsibilities as a merchant are not over. You still need to verify your merchant account was established properly. We’ll outline what you need to do to make sure your new merchant account stays hassle free for the lifetime of the account.

So read our article Merchant Accounts 101 and let us know what you think about it in our Merchant Account Forums.

New Article: Integrate the Authorize.Net Recurring Billing API with PHP

February 26th, 2008

We are happy to announce a new article has been published today. Integrate the Authorize.Net Recurring Billing API with PHP is a follow up to our article Integrate the Authorize.net Payment Gateway with PHP. This new article expands upon our original article by explaining how the Authorize.Net recurring billing API works and walks developers through the process of:

  1. Writing a class in PHP that simplifies the Authorize.Net API so it is easier for us to work with
  2. Using that class to establish a recurring billing subscription
  3. Understanding what we need to do to successfully establish a subscription logically

As with our previous articles sample code is included.

So check out Integrate the Authorize.Net Recurring Billing API with PHP and let us know what you think in our Merchant Account Forums.

Flash and Ecommerce

February 19th, 2008

According to Adobe Flash is “…the most advanced authoring environment for creating rich, interactive content for digital, web, and mobile platforms. Create interactive websites, rich media advertisements, instructional media, engaging presentations, games, and more”. Although Flash can be used to create dynamic applications it commonly is used for adding a “WOW” factor to many websites.

While using Flash to deliver your content and manage orders may seem like a great way to make your users’ experience more pleasant it actually can work against you and prevent you from even getting customers in the first place! While Flash may be a method of delivering eye catching content to your website it is not suited to powering websites especially ecommerce websites.

The problems with using Flash for ecommerce include:

  1. Not everyone has a Flash player installed on their computer

    Adobe claims that Flash is installed on 98% of all computers. While that number is very impressive it still is not 100%. That remaining 2% of users who do not have Flash installed will not be able to access your site. Another way to phrase that is to say they will not be able to make purchases from your website. Would any smart business shut out 2% or more of their customer base needlessly when they can use an alternative that lets everybody in?

  2. Flash is not very accessible

    While it is true that Flash is more accessible then it used to be, the unfortunate truth of the matter is it still isn’t as accessible as properly written HTML. While this may not be an issue to most users there is a large, and growing, portion of Internet users who have some sort of disability that requires them to access websites differently then many users. Flash, intentionally or not, may prevent some users from being able to access your site. An alternative would be to build a non-Flash-based version of your site for users who cannot use Flash. The problem with this is two fold: not only do you have a second website to maintain which means extra development and maintenance costs but why would you want to have a fully accessible version of your website be an alternative instead of how you deliver your content in the first place?

  3. You lose the power of semantic markup

    In the world of search engine optimization HTML plays a very important role in helping the search engines understand what your pages are about. They can use tags, <h>eading tags, and more to infer what a page about. Basically, if a page’s title or heading contains keywords within them the odds are the page is probably about them in some fashion. If you do not have HTML to markup your content you leave no clues for the search engines to use to determine the importance of keywords in your content. Do you know any ecommerce site owners who would willingly give up the potential for thousands of not millions of free visitors and potential customers just to use flash when they can have an equally exciting shopping experience using HTML/CSS/JavaScript? </p> </li> <li>You don’t have any anchor text since you don’t have any internal links <p> Expanding on the point above, a huge factor in determine a page’s ranking are links. While this can get complex the part we are concerned about are internal links. Internal links are links on your website’s web pages that link other other pages within your own website. When done properly these links play a very important part in helping search engines determine what a page is about. Once again, because Flash-based website do not use HTML you lack these internal links. That just kills your site’s rankings in Google and Yahoo. </p> </li> </ol> <p>The short of it is this: if you plan on developing an ecommerce website do not use Flash to deliver your important content. This includes your product information and shopping cart. Stick to proven methods that are not only accessible to the vast majority of users but to the search engines as well. This means using a shopping cart that produces HTML. If you feel a need to use Flash for that “WOW” factor use it to enhance portions of your site that do not deliver important content. This can be internal ads that promote other products on your website or let your users see data you do not want or cannot be viewed by the search engines like the products a customer has placed in their shopping cart (search engines cannot view this because they aren’t looking over your customers’ shoulder while they shop!)<!--3170e5aa5d68c8407365e413ae17f23d--></p> </div> <p class="postmetadata"> Posted in <a href="http://www.merchant-account-services.org/blog/category/ecommerce/" title="View all posts in Ecommerce" rel="category tag">Ecommerce</a> | <a href="http://www.merchant-account-services.org/blog/flash-and-ecommerce/#respond" title="Comment on Flash and Ecommerce">No Comments »</a></p> </div> <div class="post-113 post hentry category-gateways category-programmers-toolbox" id="post-113"> <h2><a href="http://www.merchant-account-services.org/blog/authorizenet-releases-new-customer-information-manager-api/" rel="bookmark" title="Permanent Link to Authorize.Net Releases New Customer Information Manager API">Authorize.Net Releases New Customer Information Manager API</a></h2> <small>February 7th, 2008 <!-- by John Conde --></small> <div class="entry"> <p>Recently <a href="http://www.authorize.net" rel="nofollow">Authorize.Net</a> released their <acronym title="Application Programming Interface">API</acronym> for their new Customer Information Manager (<acronym title="Customer Information Manager">CIM</acronym>) feature of their payment gateway. This feature is a boon for merchants who wish to store credit card information or do recurring billing in different amounts or varied schedules.</p> <p>The main features of this new service are:</p> <ul> <li><b><acronym title="Payment Card Industry">PCI</acronym> Compliance</b> <p> Remove the specter of <acronym title="Payment Card Industry">PCI</acronym> compliance from your ecommerce website by letting Authorize.Net handle the storing of sensitive information for you. Because your customers’ information reside on the Authorize.Net servers you do not have to worry about encrypting and protecting sensitive data. Not only do not have to worry about <acronym title="Payment Card Industry">PCI</acronym> compliance but your website is no longer an inviting target for hackers who want to steal this information from you. </p> </li> <li><b>Process Irregularly Priced Recurring Billing Charges</b> <p> The Authorize.Net Automated Recurring Billing System is great for businesses that charge a fixed amount each billing period. But it does not work if you have a varying amount to charge during each billing period. <acronym title="Customer Information Manager">CIM</acronym> allows your website to handle the varying billing amounts and <acronym title="Customer Information Manager">CIM</acronym> will handle the storage of the billing information and processing of the recurring transaction. Now your recurring payments can be completely automated. </p> </li> <li><b>Process Irregularly Scheduled Recurring Billing Charges</b> <p> Do you need to charge your customers on a recurring basis but the schedule is not consistent? With <acronym title="Customer Information Manager">CIM</acronym> you can store the credit card and billing information with Authorize.Net and only need to handle the actual scheduling of the payments. This allows you to automate the entire process reducing your costs and time spent processing payments. </p> </li> <li><b>Create A “One Click” Checkout</b> <p> Creating a quick and easy checkout system is an important feature of any successful ecommerce website. Allowing your customers to store their data so they do not have to enter it again the next time they make a purchase can make shopping at your online store more appealing then your competitors’. With <acronym title="Customer Information Manager">CIM</acronym> you can provide this functionality for your customers and increase customer satisfaction and loyalty. </p> </li> </ul> <p>Naturally we created our own class to access their <acronym title="Customer Information Manager">CIM</acronym> <acronym title="Application Programming Interface">API</acronym>. This <acronym title="Application Programming Interface">API</acronym>, as well as the potential functionality of this service is complex, but here are a couple of examples to get you started in using this new service.</p> <p>Here’s how to create a new <acronym title="Customer Information Manager">CIM</acronym> account:</p> <p><code><br /> try<br /> {<br /> require_once("AuthnetCIM.class.php");<br /> <br /> $cim = new AuthnetCIM();<br /> $cim->setParameter('company', 'Fake Cpmpany');<br /> $cim->setParameter('cardNumber', '4111111111111111');<br /> $cim->setParameter('expirationDate', '2008-12');<br /> $cim->setParameter('firstName', 'Joseph');<br /> $cim->setParameter('lastName', 'Faker');<br /> $cim->setParameter('address', '100 Main Street');<br /> $cim->setParameter('city', 'Townville');<br /> $cim->setParameter('state', 'NY');<br /> $cim->setParameter('zip', '12345');<br /> $cim->setParameter('country', 'US');<br /> $cim->setParameter('phoneNumber', '111-111-1111');<br /> $cim->setParameter('faxNumber', '222-222-2222');<br /> $cim->setParameter('shipFirstName', 'Joseph');<br /> $cim->setParameter('shipLastName', 'Faker');<br /> $cim->setParameter('shipCompany', 'Fake Cpmpany.');<br /> $cim->setParameter('shipAddress', '100 Main Street');<br /> $cim->setParameter('shipCity', 'Townville');<br /> $cim->setParameter('shipState', 'NY');<br /> $cim->setParameter('shipZip', '12345');<br /> $cim->setParameter('shipCountry', 'US');<br /> $cim->setParameter('shipPhoneNumber', '333-333-3333');<br /> $cim->setParameter('shipFaxNumber', '444-444-4444');<br /> $cim->setParameter('description', 'Monthly Membership and stuff again' . time());<br /> $cim->setParameter('merchantCustomerId', 'user04');<br /> <br /> $cim->CreateCustomerProfile();<br /> $profile_id = $cim->getProfileID();<br /> }<br /> catch (AuthnetCIMException $e)<br /> {<br /> $debug = $e->getTrace();<br /> die(”Exception occurred: ” . $e->getMessage() . “. File: ” .<br /> $debug[0][’file’] . ” on line ” . $debug[0][’line’]);<br /> }<br /> </code></p> <p>Here’s how to add a new profile to that new account:</p> <p><code><br /> $cim->setParameter('customerProfileId', $profile_id);<br /> $cim->setParameter('firstName', 'Joseph');<br /> $cim->setParameter('lastName', 'Faker');<br /> $cim->setParameter('address', '100 Main Street');<br /> $cim->setParameter('city', 'Townville');<br /> $cim->setParameter('state', 'NY');<br /> $cim->setParameter('zip', '12345');<br /> $cim->setParameter('country', 'US');<br /> $cim->setParameter('phoneNumber', '111-111-1111');<br /> $cim->setParameter('faxNumber', '222-222-2222');<br /> $cim->setParameter('cardNumber', '4111111111111111');<br /> $cim->setParameter('expirationDate', '2009-12');<br /> <br /> $cim->createCustomerPaymentProfile();<br /> $payment_profile_id = $cim->getPaymentProfileId();<br /> </code></p> <p>Here’s how to add a shipping address to that account:</p> <p><code><br /> $cim->setParameter('customerProfileId', $profile_id);<br /> $cim->setParameter('firstName', 'Joseph');<br /> $cim->setParameter('lastName', 'Faker');<br /> $cim->setParameter('address', '101 Main Street');<br /> $cim->setParameter('city', 'Townville');<br /> $cim->setParameter('state', 'NY');<br /> $cim->setParameter('zip', '12345');<br /> $cim->setParameter('country', 'US');<br /> $cim->setParameter('phoneNumber', '111-111-1111');<br /> $cim->setParameter('faxNumber', '222-222-2222');<br /> <br /> $cim->createCustomerShippingAddress();<br /> $address_id = $cim->getCustomerAddressId();<br /> </code></p> <p>Here’s how to process a transaction with that new account:</p> <p><code><br /> $cim->setParameter('amount', '1.00');<br /> $cim->setParameter('shipAmount', '1.00');<br /> $cim->setParameter('shipName', 'UPS');<br /> $cim->setParameter('shipDescription', 'UPS Ground');<br /> $cim->setParameter('customerProfileId', $profile_id);<br /> $cim->setParameter('customerPaymentProfileId', $profile_id);<br /> $cim->setParameter('customerShippingAddressId', $address_id);<br /> $cim->setParameter('cardCode', '123');<br /> $cim->setLineItem('12', 'test item', 'it lets you test stuff', '1', '1.00');<br /> <br /> $cim->createCustomerProfileTransaction();<br /> echo 'approval code: ' . $cim->getAuthCode();<br /> </code></p> <p>Hopefully this is enough to get you started in accessing the Authorize.Net Customer Information Manager <acronym title="Application Programming Interface">API</acronym>. You can be sure an article will follow that will go into further detail about using this feature and <acronym title="Application Programming Interface">API</acronym>.</p> <p>They offer two distinct APIs for using this new service. One uses their new XML <acronym title="Application Programming Interface">API</acronym> and the other uses <acronym title="Simple Object Access Protocol">SOAP</acronym>. You can <a href="http://www.authorize.net/support/CIM_XML_guide.pdf" rel="nofollow">download the XML PDF</a><img src="/images/pdf.gif" alt="PDF" align="absmiddle" /> or <a href="http://www.authorize.net/support/CIM_SOAP_guide.pdf" rel="nofollow">SOAP PDF</a> of their integration guide from your control panel. You can find an <a href="http://developer.authorize.net/dscode/php_cim.zip" rel="nofollow">example of PHP code</a> using the <acronym title="Simple Object Access Protocol">SOAP</acronym> <acronym title="Application Programming Interface">API</acronym> in their developer section of their website. So far there is no code for the XML <acronym title="Application Programming Interface">API</acronym>.</p> <p>You can download a beta version of our <a href="/download/cim.zip">Authorize.Net Customer Information Manager Class</a> here. It is written in PHP 5 but can easily be converted to PHP 4 (but why would you want to?). This class has not been tested in a production environment yet so it may be buggy. If you find a bug please report it here so we can update it accordingly.</p> </div> <p class="postmetadata"> Posted in <a href="http://www.merchant-account-services.org/blog/category/processing-methods/gateways/" title="View all posts in Payment Gateways" rel="category tag">Payment Gateways</a>, <a href="http://www.merchant-account-services.org/blog/category/programmers-toolbox/" title="View all posts in Programmers Toolbox" rel="category tag">Programmers Toolbox</a> | <a href="http://www.merchant-account-services.org/blog/authorizenet-releases-new-customer-information-manager-api/#comments" title="Comment on Authorize.Net Releases New Customer Information Manager API">7 Comments »</a></p> </div> <div class="navigation"> <div class="alignleft"><a href="http://www.merchant-account-services.org/blog/blog/page/2/" >« Older Entries</a></div> <div class="alignright"></div> </div> </div> <div id="sidebar" role="complementary"> <ul> <li> <form method="get" id="searchform" action="http://www.merchant-account-services.org/blog/"> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Go" /> </form> </li> <!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it. <li><h2>Author</h2> <p>A little something about you, the author. Nothing lengthy, just an overview.</p> </li> --> </ul> <ul role="navigation"> <li><h2>Archives</h2> <ul> <li><a href='http://www.merchant-account-services.org/blog/2008/05/' title='May 2008'>May 2008</a></li> <li><a href='http://www.merchant-account-services.org/blog/2008/03/' title='March 2008'>March 2008</a></li> <li><a href='http://www.merchant-account-services.org/blog/2008/02/' title='February 2008'>February 2008</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/09/' title='September 2007'>September 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/08/' title='August 2007'>August 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/07/' title='July 2007'>July 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/06/' title='June 2007'>June 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/05/' title='May 2007'>May 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/04/' title='April 2007'>April 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/03/' title='March 2007'>March 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/02/' title='February 2007'>February 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2007/01/' title='January 2007'>January 2007</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/12/' title='December 2006'>December 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/11/' title='November 2006'>November 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/10/' title='October 2006'>October 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/09/' title='September 2006'>September 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/08/' title='August 2006'>August 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/07/' title='July 2006'>July 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/06/' title='June 2006'>June 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/05/' title='May 2006'>May 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/04/' title='April 2006'>April 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/03/' title='March 2006'>March 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/02/' title='February 2006'>February 2006</a></li> <li><a href='http://www.merchant-account-services.org/blog/2006/01/' title='January 2006'>January 2006</a></li> </ul> </li> <li class="categories"><h2>Categories</h2><ul> <li class="cat-item cat-item-19"><a href="http://www.merchant-account-services.org/blog/category/ecommerce/" title="View all posts filed under Ecommerce">Ecommerce</a> (9) <ul class='children'> <li class="cat-item cat-item-20"><a href="http://www.merchant-account-services.org/blog/category/ecommerce/shopping-carts/" title="View all posts filed under Shopping Carts">Shopping Carts</a> (1) </li> </ul> </li> <li class="cat-item cat-item-1"><a href="http://www.merchant-account-services.org/blog/category/industry-news/" title="View all posts filed under Industry News">Industry News</a> (17) <ul class='children'> <li class="cat-item cat-item-15"><a href="http://www.merchant-account-services.org/blog/category/industry-news/american-express/" title="View all posts filed under American Express">American Express</a> (1) </li> <li class="cat-item cat-item-14"><a href="http://www.merchant-account-services.org/blog/category/industry-news/discover-card/" title="View all posts filed under Discover Card">Discover Card</a> (1) </li> <li class="cat-item cat-item-16"><a href="http://www.merchant-account-services.org/blog/category/industry-news/visa-and-mastercard/" title="View all posts filed under Visa and MasterCard">Visa and MasterCard</a> (5) </li> </ul> </li> <li class="cat-item cat-item-2"><a href="http://www.merchant-account-services.org/blog/category/merchant-accounts/" title="View all posts filed under Merchant Accounts">Merchant Accounts</a> (42) <ul class='children'> <li class="cat-item cat-item-17"><a href="http://www.merchant-account-services.org/blog/category/merchant-accounts/rates-fees/" title="View all posts filed under Rates & Fees">Rates & Fees</a> (2) </li> <li class="cat-item cat-item-7"><a href="http://www.merchant-account-services.org/blog/category/merchant-accounts/third-party-processors/" title="View all posts filed under Third Party Processors">Third Party Processors</a> (11) </li> </ul> </li> <li class="cat-item cat-item-8"><a href="http://www.merchant-account-services.org/blog/category/processing-methods/" title="View all posts filed under Processing Methods">Processing Methods</a> (21) <ul class='children'> <li class="cat-item cat-item-9"><a href="http://www.merchant-account-services.org/blog/category/processing-methods/credit-card-terminals/" title="View all posts filed under Credit Card Terminals">Credit Card Terminals</a> (2) </li> <li class="cat-item cat-item-10"><a href="http://www.merchant-account-services.org/blog/category/processing-methods/gateways/" title="View all posts filed under Payment Gateways">Payment Gateways</a> (18) </li> </ul> </li> <li class="cat-item cat-item-18"><a href="http://www.merchant-account-services.org/blog/category/programmers-toolbox/" title="View all posts filed under Programmers Toolbox">Programmers Toolbox</a> (16) </li> <li class="cat-item cat-item-13"><a href="http://www.merchant-account-services.org/blog/category/site-news/" title="View all posts filed under Site News">Site News</a> (12) </li> </ul></li> </ul> <ul> <li id="linkcat-21" class="linkcat"><h2>Blogroll</h2> <ul class='xoxo blogroll'> <li><a href="http://www.alexking.org/">Alex</a></li> <li><a href="http://blogs.linux.ie/xeer/">Donncha</a></li> <li><a href="http://dougal.gunters.org/">Dougal</a></li> <li><a href="http://photomatt.net/">Matt</a></li> <li><a href="http://zengun.org/weblog/">Michel</a></li> <li><a href="http://zed1.com/journalized/">Mike</a></li> <li><a href="http://boren.nu/">Ryan</a></li> </ul> </li> <li><h2>Meta</h2> <ul> <li><a href="http://www.merchant-account-services.org/blog/wp-login.php">Log in</a></li> <li><a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional">Valid <abbr title="eXtensible HyperText Markup Language">XHTML</abbr></a></li> <li><a href="http://gmpg.org/xfn/"><abbr title="XHTML Friends Network">XFN</abbr></a></li> <li><a href="http://wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress</a></li> </ul> </li> </ul> </div> <hr /> <div id="footer" role="contentinfo"> <!-- If you'd like to support WordPress, having the "powered by" link somewhere on your blog is the best way; it's our only promotion or advertising. --> <p> Merchant Account Services Blog is proudly powered by <a href="http://wordpress.org/">WordPress</a> <br /><a href="http://www.merchant-account-services.org/blog/feed/">Entries (RSS)</a> and <a href="http://www.merchant-account-services.org/blog/comments/feed/">Comments (RSS)</a>. <!-- 19 queries. 0.784 seconds. --> </p> </div> </div> <!-- Gorgeous design by Michael Heilemann - http://binarybonsai.com/kubrick/ --> <script src="http://stats.wordpress.com/e-200927.js" type="text/javascript"></script> <script type="text/javascript"> st_go({blog:'8094692',v:'ext',post:'0'}); var load_cmc = function(){linktracker_init(8094692,0,2);}; if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc); else load_cmc(); </script> </body> </html>