Why did I get API error code 10423?

Issue
PayPal returned API error code 10423 - This transaction cannot be completed with PaymentAction of Authorization.

Causes
The following errors can produce error code 10423:

  • You set PaymentAction to "Sale" with SetExpressCheckout at the first API call. If you receive this error at the DoExpressCheckout API call, you can set PaymentAction to "Authorization."
  • Your API call failed because you didn’t grant a third party permission to make API calls on your behalf.

Solutions
Do one of the following:
  • Because PayPal doesn't allow this switch from "Sale" to "Authorization" in a single checkout session, use the same PaymentAction for the DoExpressCheckout API call that you used in the initial SetExpressCheckout API call.
  • Grant the third party permission required to complete the API call. If you’ve already granted permissions to this third party, make sure that you used their correct username and selected the required permissions.

See also:
How do I grant third-party API access with PayPal Payments Pro or Express Checkout?
How to Create One-Time Payments Using Express Checkout