Introduction
OLA stands for Open L2 API. It is a programmable interface normalize card processing (L2) services required by a payment application (L3).
Important: this interface has been desgined 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 implementation
Principles
Interacting with a L2 stack is based a simple principles:
Set pre-conditions
Initiate transaction
Eventuall, complete transaction
Get post-conditions
There are different interfaces defined to support that sequence.
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
Modules
Interface | Description |
---|---|
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 |