C library integration

Use the C Library to allow communication between a POS application, terminal, and the Adyen payments platform. Register the POS app and terminal, create transactions, and review library responses to check status of request.

C library transaction flow

The transaction flow is:

  1. Initialize the library (init_task) - Do this before starting the first transaction, but not for subsequent transactions.
  2. Register the POS (register_app)
  3. Register PIN Entry Devices (PEDs) (register_device)
  4. Start a transaction (create_tender) -  this step can be repeated as many times as required
  5. Exit the library (exit_task)

Architecture

The Adyen POS solution

The Adyen POS solution consists of:

  • A PIN Entry Device (PED) (running Adyen's payment software)
  • A library (integrated in the Cash Register environment)
  • The Adyen payments platform.

Your POS connects to the PED via a serial, ethernet or Wi-Fi connection.

To perform online transactions, you must connect both the POS system and the PED to the Internet. The PED can connect to the Adyen payments platform directly, or by using the POS system as a proxy, which requires a physical connection between the PED and POS. 

You must authorise your POS system to connect to the Adyen payments platform, at least during the deployment and boarding of new PEDs. The POS system uses our C library functions to register associated PEDs. This allows you to exchange PEDs quickly and easily, and does not require you to store credentials on the device. This also means you don't need to contact Adyen to swap terminals. for example, in case of a replacement.

Multiple PEDs may be connected to a single POS system. The cash register application provides the staff with an interface to switch dynamically between these connected PEDs when required.

Library feedback

The library represents results, states and other fixed values using enums. The adyen_enum.h file contains these enums. Helper functions are available to convert strings to enums and enums to strings.

Include POSLibC.h as this will handle your platform specifics, such as threading, data models, platform specifications and so on.

The POS App should use the enumerated values instead of the underlying values. For example, if a value of an enum should be stored to disk, store the string and not the integer value.