Amadis
OLA
Introduction
Open L2 API (OLA) is a programmable interface normalizing card processing (L2) services required by a payment application (L3).
Important: this interface has been designed from a Nexo Fast perspective. OLA is a global initiative aiming to cover a missing key element in the payment ecosystem: the EMV L2 API. However, OLA is generic enough to support any kind of payment dynamic beyond Nexo implementations.
Principles
Interacting with a L2 stack is based a simple principles:
Set pre-conditions
Initiate transaction
Eventually, complete transaction
Get post-conditions
Setting pre-conditions consists in pushing EMV parameters fecthed from a TMS to the L2 stacks. This step depends on the payment application implementation and the selection process that occurs during stage of the transaction.
Initiating and completing a transaction is about delegating the card processing to the L2 stack. It triggers a behavior that has been L2 certified and granted with a LoA. It is based on the configuration parameters previously pushed.
Getting post-conditions consists in gathering a series of information to be able to provide a final outcome for the transaction.
Hypothesis: a payment application (L3) controls the polling of the technologies, implements a specific region EMV application .selection mechanism (if needed), and owns the configuration (fetched from its TMS). Card processing (L2) is global, and only depends on an ICS that is aligned on merchant’s requirements. Consequently:
A payment application detects whether a contact or contactless application will be triggerred
A payment application implements the logic to select a final application based on OLA services
A payment application configures the EMV parameters based on the final selection
Architecture
OLA aims:
To break dependencies between different integration levels and L2 implementations
To fill the gap between different objectives of testability (usually dependent on the context of integration)
To normalize L2 API beyond certificatibility objectives
API
See Developer's Guide for more details on OLA API.
Interface | Description |
---|---|
ola_implem.h | This interface presents callback structures to integrate OLA with a minimum zero dependency from platform |
ola.h | This interface presents different administrative services |
ola_emv.h | This interface presents common services required to support contact and contactless card processing |
ola_publickey.h | This interface allows a payment application to intialize a L2 stack with a set of public keys required to execute an EMV transaction flow (contact and contactless) |
ola_contact.h | This interface is meant to support contact transaction flow |
ola_contactless.h | This interface is meant to support contactless transaction flow |
ola_tags_dictionary.h | This header lists all the tags that are specific to Nexo Fast and consequently subject to a translation for further indexation in the L2 stack |
ola_terminal.h | Deprecated from OLA 2.x versions |