8
votes

I have a billing routine that uses recurring billing profiles in Paypal's Website Payments Pro. This routine successfully creates profiles and gets the profile information after creation using the paypal profileid and the GetRecurringPaymentsProfileDetails method.

However, when I try to use UpdateRecurringPaymentsProfile method to update just the AMOUNT/AMT on the profile I get this error:

[ERRORCODE] => 10001
[SHORTMESSAGE] => Internal Error
[LONGMESSAGE] => Internal Error
[SEVERITYCODE] => Error

Here are the fields I'm passing:

[NOTE] => A note here
[PROFILEID] => redacted
[AMT] => 7
[VERSION] => 62.0
[USER] => redacted
[PWD] => redacted
[SIGNATURE] => redacted
[METHOD] => UpdateRecurringPaymentsProfile

Troubleshooting steps:

  • I have a single central calling routine that passes the requests to Paypal, that works for the create and get methods.
  • The same API information is used for all requests.
  • I've copied and did a find to confirm the PROFILE ID was right in the sandbox
  • I can use the same profile ID on the get methods without error
  • I confirmed that you can update just the amount on a recurring payments profile using the update method.

I'm stuck with an error that isn't very descriptive. The Paypal documentation does not include any troubleshooting tips for this kind of generic error.

  • I have seen online mention of a terminal in Paypal for troubleshooting this, but I'm not sure if they just mean the create profile screen in the sandbox, or if there is something else.

  • Do you have any tips for troubleshooting this error?

3

3 Answers

3
votes

As it turns out, the issue is that a call to UpdateRecurringPaymentsProfile will fail if you try to update the profile to the same amount to which it is currently set.

3
votes

I ran into this too - thanks for the help. It's worth adding that the AMT field only needs to be different if it's included, it's optional on the update call.

2
votes

This error can also be caused during hits against the sandbox server if you use the wrong test credit card number. Make sure you're using the one provided to you by the Paypal Sandbox Website.