MarcAmos.com

<love></love>

Receiving Unique Payments with PayPal

with 4 comments

My small design and development gig, Boston Web Studio, has been creating websites for small-business owners since January, 2005. In the three years that have passed, I’ve never once been asked if I can take a credit card for payment on an invoice I’ve sent to a client. It has always been a check or cash transaction and I’ve given little thought to receiving any other form of payment. Last month, however, three separate clients asked me whether or not I could take a credit card. I had to answer “No,” but I told each of them that I would make it possible, and soon. In my opinion, making it easier for a client to pay you money owed is never a bad thing.

I began doing some research last week and started with PayPal. Since I have a business-level account with them I thought I would see what options they offered. Another option I knew I could pursue was to visit my local bank, get a merchant account, and sign up for gateway services through a company like Authorize.net, but that feels old school to me. PayPal advertises their ability to handle all of that and since the person paying the money doesn’t need to have a PayPal account, I figure it is a no-brainer. On top of that, I believe the cost of having PayPal handle the process is lower than having to pay gateway and merchant account fees.

I figured PayPal would be perfect, and after poking around their website a little bit, they were almost perfect. I learned that my particular needs weren’t met without doing some tweaks to the code they offered with their Buy Now button wizard (https://www.paypal.com/us/cgi-bin/webscr?cmd=_singleitem-intro-outside).

Side note: Since starting this article and chatting with friends about this PayPal credit card adventure, I’ve been told there is probably an API somewhere and that it would handle all of this for me. I haven’t confirmed that, nor do I deny it, but I want to continue with this method I’ve chosen, that of modifying the simple HTML provided by PayPal’s Buy Now button wizard, so please bear with me. I feel it’s easier to grasp for people who aren’t skilled enough to use APIs, or those who don’t have the time to figure out another one. Working with the HTML, as I will soon demonstrate, is quite easy and if your needs aren’t elaborate, then it’s a great solution, but I digress…

My invoicing process is rather common; I use QuickBooks to track all of the business’s money and when it’s time to bill a client I send them an invoice as a PDF attachment in an email. 99% of the time I receive a check in the mail, the other 1% of the time I meet my client over a coffee and receive cash. Setting up this process requires very little; a copy of QuickBooks, an email address, a P.O. box, and a couple dollars to buy a coffee now and then.

Receiving credit card payments requires a few more resources. In my particular situation, I need a process where a client can:

  • Enter the amount they owe
  • Enter the invoice number
  • Enter their credit card number in a secure environment
  • Have their credit card checked/authorized
  • Have money withdrawn from their credit card account and deposited in my business’s account

The PayPal Buy Now button wizard, by default, doesn’t allow for the needs I mention in the first two bullet points. I discovered that the button wizard asks you define a particular amount of money and an item number to associate with each button you make. This is too limiting for me; I want my clients to be able to visit a page on my website where they can enter the amount of money they wanted to pay and the number of the invoice they were paying. Instead, the button wizard was asking me to pre-define those values as if they weren’t going to change. Frankly, this is because the Buy Now buttons are meant to be associated with a product whose price and item number will rarely change, but I have different needs—the payment amount and item number (or invoice number, in my case) were going to be unique for every transaction.

Rather lazily, I sent an email to PayPal’s support team asking if they had a different wizard on their site, one that allowed for a few text input fields where visitors could enter unique information such as price and invoice number when each transaction would be unique. The response I received was, in more words than this, “Sorry, we don’t.”

OK, not a big deal, I’ll manipulate the code that is provided by the Buy Now button wizard and see if I can make it work in a way I need it to. After some quick edits to the code I was able to make it work quite easily. I simply changed the type attribute’s value on a couple input elements, moved them around a bit, deleted some unnecessary elements, and added my own submit button to replace the PayPal branded one that comes with the button wizard’s code.

Bonus: Along with the button wizard’s form code came another small gem, a unique anchor element whose href value allows you to insert a clickable link, in an email for example, with predefined values for amount, item number (or invoice number, in my case), and more. I decided that I would make some small changes to this href value and use it in the emails I send to clients containing their invoice. My client would receive an email with an invoice attached, as they always have, but now there would also be a clickable link allowing them to pay that particular invoice with their credit card online. It only required me to make some small adjustments to the code for each email I sent out.

I spent a little bit of time creating a small web page to supplement this article with brief explanations, steps, code examples, and live demonstrations of both the form and the anchor link I’ve explained above. I hope that it helps you easily accept credit cards from your own clients and if any of you care to share your tips or ideas for improvement, I would appreciate that.

Written by Marc Amos

April 11th, 2008 at 7:44 am

4 Responses to 'Receiving Unique Payments with PayPal'

Subscribe to comments with RSS or TrackBack to 'Receiving Unique Payments with PayPal'.

  1. I was looking for something like this a few weeks ago, brilliant! Such a simple solution. Thank you!

    Ben

    11 Apr 08 at 8:45 am

  2. they definiely have an api with their full merchant account – but that’s different than a normal paypal account – it’s more like combining a merchant account from your bank with a solution like authorize.net – the upside is that you’ll keep more of your money since the transaction rates for a merchant account are much lower than a “normal” paypal transaction – the downside is you have to have enough credit card volume to justify the merchant account’s monthly fee – if you don’t, this is a great solution

    Grant

    11 Apr 08 at 11:41 am

  3. I just read another related article (not quite the same) but thought I’d cross link your article with theirs and vice versa.

    http://nettuts.com/html-css-techniques/creating-a-paypal-payment-form

    James Mitchell

    26 Apr 08 at 9:21 am

  4. @James, thank you sir!

    Marc Amos

    27 Apr 08 at 2:00 pm

Leave a Reply