1. Documentation
  2. AppFlow
  3. Payment Applications
  4. Guides

Guides


Technical

Payment Card Reading

AppFlow supports the concept of a payment card reading stage that is separate from the transaction processing step. This stage is called before the transaction processing stage and would allow flow applications to act based on card data and potentially augment the transaction before the processing step. The main use case for this is to provide flow services with a card token that can be used to identify the customer for purposes such as loyalty. However, other information such as card scheme (VISA, MASTERCARD, etc), BIN range, expiry date, could also be useful for flow services.

This stage is optional for payment applications to support. It is not necessarily even possible to achieve on all types of payment terminals.

Card presentation methods

Whether or not this stage can be separate from the processing also comes down to which of the three methods of presentation is used.

For magstripe (swipe), this is normally trivial as once the tracks have been read, any interaction with the card is done. A card token can be generated and the scheme, etc is known. It may however require a double swipe in cases where the payment application is not allowed to store the track data between the stages due to PCI rules, etc.

For contact (chip / insert), it is technically possible to stop after EMV application selection and then resume the session at the transaction processing stage, provided that the payment device (APIs, hardware, kernels, etc) allow for a long timeout for the session.

For contactless, the session is generally over and the outcome from the kernel is delivered in one step. There are some exceptions where the session is stopped after PPSE (such as for Carte Bancaire in France), but for most cases, it is a one step process. It is therefore assumed that for this to work with contactless, it would have to be a double-tap process (one tap for this stage, another tap for processing stage).

Whether or not the separate reading can be supported for any given payment service / acquirer is up to the developers of that payment application to determine. The flow configuration in use will also determine whether the stage is defined at all or not.