Credit card: Host Vs Terminal based Reversals

Below post tells how Host based and Terminal based reversals happen in Credit/Debit cards processing.

Types of Reversals

  1. Connection timeout
  2. Read Timeout
  3. Host based reversals (Timeout reversals)
  4. Terminal based reversals

Reversal #1: Connection Timeout

Connection timeout usually occurs within 5 seconds. Connection timeout indicates that connection with the back end server is impossible, and the server, to which the data needs to be transferred, cannot be reached.

Issues with connection can be caused by DNS problems, server failure, Firewall rules blocking specific port, or some other reasons. In such cases the, a backup (or secondary) URL can be used (if available).

If no connection can be established through either URL of a given service, further processing of transactions is impossible. It is important to note that no information is communicated to the host server when connection timeout occurs.

In this scenario customer will not be charged, since transaction message is not communicated to server.

Reversal #2: Read Timeout

Read timeout usually occurs within 40 to 60 seconds. Read timeout occurs when the socket is open, connection to the host server is established, the request is sent, but the response from the server is not received on time, and cannot be read.

Since the authorization request has already been sent, the transaction may have been processed (and approved), but, possibly, some error has occurred on the way back from the host server. As there is no clear response, there is a risk of charging the customer for the second time (if transaction is reattempted).

There are two approaches that are used by integrators to deal with situations like the one described above. These approaches are, generally, referred to as ‘authorization and capture (Terminal based Reversal)’ (explicit or implicit capture) and ‘timeout reversal (Host based Reversal)’.


Reversal #3: Terminal Based Reversals

The basic premise of authorization-and-capture (aka Terminal based reversal) approach is that any authorization processed has to be subsequently captured (confirmed) by an additional request.

Reversal #4: Host Based Reversals

In case of Host based reversals– If timeout occurs, the submitting system does not send out the confirmation (since it never got the response), and, consequently, the host system reverses the authorization (because it has not been confirmed).

The capture operation can be executed in one of two ways: explicitly or implicitly.

In case of explicit capture a separate ‘capture’ request is sent to the host server to confirm a previously successful authorization.

In case of implicit capture, the reference number of the previously successful authorization that needs to be captured, is included as part of the subsequent authorization, or as part of the final settlement call.

In other words, in case of explicit capture the authorization request is submitted as one message and capture is sent as another separate message, while in case of implicit capture, authorization request is submitted as one message, while capture message (reference number of the successful authorization) is included in the authorization request of the next transaction.

The final (end-of-the-day) message includes reference number of the last transaction which needs to be captured (confirmed).

Implicit capture is not recommended when time-initiated host capture is used.

How timeout reversals dealt by Terminals

Another approach is to explicitly reverse transaction with a host if a timeout has occurred. When a read timeout occurs, one or more attempts to reverse (or ‘void’) the authorization that timed out is made.

When a transaction is submitted, and timeout occurs, it is assumed that the problem is temporary. In some cases up to three reversal attempts are made, each 40 seconds apart.

It is assumed that within the next 160 seconds (40 seconds – initial waiting, plus 3 reversals) the problem of connection with the server will be resolved. If authorization is successful, subsequent reversals will void it (so that the customer will not be accidentally charged).

Hope you got best knowledge on how host based ad Terminal based reversals will work. You can write us if you need more information.


Author: Srini

Experienced software developer. Skills in Development, Coding, Testing and Debugging. Good Data analytic skills (Data Warehousing and BI). Also skills in Mainframe.