Starting the 5th of June 2013 PayPal will return API error code 10486 instead of 10417 in the DoExpressCheckoutPayment API response in the majority of cases.
Both 10417 mean ‘transaction cannot complete’, but with API error code 10486 you can re-redirect the user back to PayPal to select a differing funding source (rather than having to call SetExpressCheckout and re-initiate the entire transaction flow).
There is a HowTo guide available with more information, but basically all you need to do is re-use the existing redirect URL you would’ve used earlier.
E.g. https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-ABCDE12345
The buyer will be re-redirected to PayPal and be able to select a new funding source.
The buyer will subsequently be redirected to the same RETURNURL you specified in your first SetExpressCheckout request.
10486 redirect flow
Note: You can find a full list of all PayPal API error codes, along with their short and long messages here.