can you reproduce the problem? if you put through a test transaction over $50 does it fail?
the only way we'll be able to troubleshoot the issue is to be able to reproduce it.
if you can reproduce it, add the following code to the checkout failure page to return the Full Request and Full response XML strings going to and coming from PayPal. This will contain the details of why the transaction is failing:
<?php
@session_start();
echo "<p>Direct Pay: <br />";
echo "Full Request: ".(isset($_SESSION["PP_DirectPayment_postedValues"])?htmlentities($_SESSION["PP_DirectPayment_postedValues"]):"n/a")."<br />";
echo "Full Response: ".(isset($_SESSION["PP_DirectPayment"])?htmlentities($_SESSION["PP_DirectPayment"]):"n/a")."<br /></p>";
echo "<p>Express Authorize <br />";
echo "Full Request: ".(isset($_SESSION["ECO_Auth_Request"])?htmlentities($_SESSION["ECO_Auth_Request"]):"n/a")."<br />";
echo "Full Response: ".(isset($_SESSION["ECO_Auth_Result"])?htmlentities($_SESSION["ECO_Auth_Result"]):"n/a")."<br />";
echo "<p>Express Process: <br />";
echo "Full Request: ".(isset($_SESSION["ECO_Process_Request"])?htmlentities($_SESSION["ECO_Process_Request"]):"n/a")."<br />";
echo "Full Response: ".(isset($_SESSION["ECO_Process_Result"])?htmlentities($_SESSION["ECO_Process_Result"]):"n/a")."<br /></p>";
?>
NOTE: The full request and full response will contain sensitive information lime credit card number and cvv, as well as paypal api that should be removed before posting here.