If there are features that are part of CyberSource's API but are not documented, or are missing here, please file a bug. I'll be happy to add them, but due to the size of the upstream API, I have not had time to cover all the features and some are currently undocumented.

ENVIRONMENT

all environment variables are prefixed with PERL_BUSINESS_CYBERSOURCE_

This code is not meant to be DRY, but more of a top to bottom example. Also note that if you really want to do Authorization and Capture at one time use a Sale. Most common Reasons for Exceptions would be bad input into the request object (which validates things) or CyberSource just randomly throwing an ERROR, in which case you can usually just retry later. You don't have to print the response on error during development, you can easily just use the DEBUG Environment variable