OT: Displaying errors on credit-card processing

Hi,

This question isn’t Rails-specific, but since Basecamp (& the family
of premium 37signals apps) have the best implementation of credit-card
processing I’ve seen, I’m hoping maybe DHH could lend an answer. Of
course, anyone is welcome to chime in!

Some background

Our nonprofit is building a Rails-driven store and donation center and
our developer is perplexed by the array of return parameters sent by
our e-commerce vendor, TrustCommerce, upon processing a transaction.

A sample of the possible return values is: approved, the transaction
was successfully authorize; accepted, the transaction has been
successfully accepted into the syste; decline, the transaction was
declined; baddata, invalid parameters passed; and error, system error
when processing transaction.

For decline types, the transaction can be declined for a number of
reason, from bad card number to insufficient funds, to bad AVS or CVV
matching, and a few other reasons. Similarly, there are several
bad-data and error types possible.

The question

Is there a generally accepted “best practice” regarding what level of
information should be divulged to the would-be customer if their card
is declined? Surely, they should be let known if they simply
mis-entered their card number, but what if they have insufficient
fund? What about AVS?

I was tempted to enter a bunch of bad info in the Basecamp signup
form–kidding, DHH!–but instead, I thought I’d check the best
resource I know: all of you! So, do you all have anything to say
about the matter? Any tips, links, or warnings appreciated.

Best,

Jacob


Jacob P.
Director of Outreach and Technology

Free the Slaves
1012 14th Street, NW, Suite 600
Washington, DC 20005

Phone: 202-638-1865
Fax: 202-638-0599