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:

  1. Set pre-conditions

  2. Initiate transaction

  3. Eventually, complete transaction

  4. 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

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