App Filtering - AEVI-AppFlow/pos-android-sdk GitHub Wiki

When FPS receives a request, it will match the request data against the service info details provided by each application defined in the active flow to ensure only eligible applications are called for that request.

If there is a single match after filtering, that application will be automatically selected. If there are more than one match, a dialog will be shown to allow the operator/merchant to select. If there are no matching applications, an error will be returned to the calling POS app.

Payments

Payment requests are filtered against application manifest data and the PaymentFlowServiceInfo data as follows

  • Enable state -> Is the flow service installed and enabled on the device
  • API version -> Is the flow service integrated with the same major API version as FPS
  • Flow stage -> Does the flow service have an entry point for the current flow stage defined or not
  • Flow type -> Does the flow service support the flow type
  • Currency -> Does the flow service support the request currency

If any of these checks fail, the flow service will be deemed ineligible for handling the request in the current flow stage.

In addition, for the TRANSACTION_PROCESSING stage, a check will be made to ensure only the relevant payment application is called for cases where a card token has been specified.

Generic requests

For generic Request cases, the following data is used for filtering

  • Enable state -> Is the flow service installed and enabled on the device
  • API version -> Is the flow service integrated with the same major API version as FPS
  • Flow stage -> Does the flow service have an entry point for the current flow stage defined or not
  • Request type -> Does the flow service support the flow type, or has it defined as a custom request type
  • Target app id -> If the request specified a flow service, and the above criteria is met for that flow service, it will be selected automatically