Pending and timeouts

When the orders function and payment plug-ins are used in WebSphere Commerce, WebSphere Commerce Payments ensures the following occurs:

The WebSphere Commerce Payments will allow a reversal operation to go through a plug-in with a pending transaction as long as the reverse operation and the transaction match.

For example, in this case the transactions match:

   Approve
       --->pending
    
   Reverse Approve
       --->OK    

In this case the transactions do not match because a deposit transaction has occurred between the approval and the reverse approval:

   Approve
       ---> OK
    
   Deposit 
       ---> pending
    
   Reverse Approve
       ---> error       

Transaction status can be viewed in one of the following ways:

A pending state indicates that a particular transaction has not yet finished for a payment or credit transaction. It could mean that a plug-in uses an offline protocol to handle transactions, thereby some external invention or action by a human must take place to move the payment or credit into another state. Offline processing typically requires human interaction to process transactions over the phone or through a swipe machine.

A payment or credit can also be in pending state for other reasons, such as when timeouts occur on the network or processing through the network is extremely slow.

A plug-in can be configured to always have transactions for a particular payment method to go into a pending state. For an example, refer to the keepPendingStatus element in the SimpleOfflinePlugin.xml file used by the SimpleOffline plug-in provided with WebSphere Commerce (<PaymentMethod name="AMEX" paymentConfiguration="default" keepPendingStatus="true").