Authorization states and reason codes
The following diagram depicts the state transition of an Authorization object:
Note: The Pending state in the diagram below will not be present if you call the Authorize operation with a TransactionTimeout value equal to zero. You will only receive an Open or Declined status in the initial response.
The following table describes each Authorization object state in detail, the allowed operations on a state, and the reasons why an authorization can end up in a state.
|State||Description||Allowed operations||Reason codes|
In asynchronous mode, all Authorization objects are initially in the Pending state after you submit the Authorize request.
In synchronous mode, an Authorization object cannot be in the Pending state.
|Open||The Authorization object immediately moves to the Open state when the authorization is successful.||--|
|Declined||The authorization has been declined by Amazon.||
InvalidPaymentMethod-There were problems with the payment method. Use the element SoftDecline to differentiate between a soft decline and a hard decline. If it is a soft decline, you can submit an additional authorization attempt. If it is a hard decline, you should contact your buyer and have them update their payment method.
AmazonRejected-Amazon has rejected the authorization. The order reference will be automatically Closed.
ProcessingFailure-Amazon could not process the transaction because of an internal processing error. You should retry the authorization only if the order reference is in the Open state.
TransactionTimedOut-In asynchronous mode, indicates that the Authorize operation call was not processed within the default timeout period of 24 hours or within the time period specified by you in the TransactionTimeout request parameter. In synchronous mode, indicates that Amazon could not process your request within 8 seconds. If you are observing a high number of declines because of this reason code, try adjusting the timeout value in asynchronous mode, or consider using asynchronous mode if you are using synchronous mode. An alternate approach for handling this error in synchronous mode is to retry the transaction in asynchronous mode. For details, see Step 7: Prepare to handle declined authorizations.
|Closed||The authorization can be closed by calling the CloseAuthorization operation or by calling the CancelOrderReference operation, or it can be closed by Amazon. You cannot request captures against an authorization that is in the Closed state. In the event of a partial capture, the remaining amount is credited back to the order reference.||
ExpiredUnused-The authorization has been in the Open state for 30 days (two days for Sandbox), and you did not submit any captures against it.
MaxCapturesProcessed-You have already captured the full amount of the authorization. Amazon allows only one capture per authorization.
AmazonClosed-Amazon has closed the authorization object because of problems with your account.
OrderReferenceCanceled-The order reference was canceled causing all open authorizations to be canceled. You can call the GetOrderReferenceDetails operation and check the ReasonCode response element for the cancellation reason.
SellerClosed-You have explicitly closed the authorization using the CloseAuthorization operation. You can specify the reason for the closure in the ClosureReason request parameter.