I have a developer in Nigeria and I am based in the U.S. He has set up sandbox on my website for testing purposes. When he processes a transaction, he gets a successful transaction message. I get a
Error : Order total is missing.
Array
(
[TIMESTAMP] => 2014%2d10%2d27T16%3a18%3a05Z
[CORRELATIONID] => 868f7f8239a35
[ACK] => Failure
[VERSION] => 109%2e0
[BUILD] => 13517841
[L_ERRORCODE0] => 10400
[L_SHORTMESSAGE0] => Transaction%20refused%20because%20of%20an%20invalid%20argument%2e%20See%20additional%20error%20messages%20for%20details%2e
[L_LONGMESSAGE0] => Order%20total%20is%20missing%2e
[L_SEVERITYCODE0] => Error
)
We are making the same transaction with the same sandbox paypal account, but he doesnt get any errors and the payment gets processed. I have called paypal 5 times over the last 2 weeks and they have been extremely unhelpful, just asking me to keep checking my e-mail for their response which should be 24-72 hours. Again, its been 2 weeks.
Any help would be appreciated.
The error you're getting is very straight forward. The API request sent to PayPal must have an empty value for the AMT parameter, or the AMT parameter is getting left out of the request entirely.
You need to have your developer save logs (he should be already) so that you can see the raw API request and response getting generated. What you've shown here is basically the response, so you just need to be able to see the request, too.
Then you can confirm with your developer that the request is indeed wrong, and he can help you troubleshoot why that would be happening. That sort of thing often happens because of session data getting dropped for one reason or another. Tough to say without looking at the request and then going through how your request is built to track where exactly that value is getting lost.
It's definitely not anything happening on PayPal's end, though, and they aren't going to be able to help you much other than to maybe provide a copy of the request showing you that the order amount was indeed left out. It's up to you and your developer to fix that problem, though.