Alma – RFID Integration

Note: This functionality is subject to changes.

Radio Frequency Identification (RFID) is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders. An RFID tag is an object that can be attached to or incorporated into a product for the purpose of identification using radio waves. RFID tags can be used in various implementations for attaching identification or other information to any object. Once in their receiving range, radio-enabled machines can identify the object or read other information that is attached to the object and use it a large range of purposes.

RFID tags are mainly used in libraries for the following purposes:

  • Replacing barcode scanners and other traditional methods of identifying items
  • Using security gates to detect an unauthorized check-out. RFID-enabled security gates can be placed at the library entrances. The gates can read the RFID tag of every item that comes into their radio range and detect whether or not the item has been tagged as ‘allowed for check-out’. If an item leaves the library without the RFID tag being updated, the gates will issue an alarm for the staff to act upon.

The purpose of this document is to describe how Alma works within a library that is RFID-enabled.


Alma communicates with RFID devices that are installed locally on a staff workstation. In order to allow communication between Alma and the locally running RFID software, a proxy should be installed on the workstation. The following diagram illustrates the communication:

Supported browsersFirefox, Chrome
Supported vendors
  • Lyngsoe Systems. Contact your Lyngsoe Systems representative or use https://lyngsoesystems.com/contact/ to have the integration set up.
  • 3M™ RFID Staff Workstation (Model 896)
  • MK Solutions (https://www.mksolutions.com)
  • Seret (Italy)
  • Nedap (France)
  • D-Tech International (https://d-techinternational.com/technologies/rfid/)
  • Bibliotheca (staffConnect / Liber8connet)
    Note: As of 2018, The Liber8Connect software has been end-of-lifed in favor of the 3M RFID staff workstation (Model 896) software integration with the ILS. The name of the 3M RFID StaffWorkstation (model 896) has changed to bibliotheca staffConnect Link
Supported actionsRead barcode from item on pad
Update security tag on loan and return
Update item information (for single-piece items and multi-piece items)
Communication protocolHTTP

Setup and configuration

The following steps are required in order to set Alma up to work within a library that is RFID-enabled:

  1. Install the RFID local server according to the vendor’s instructions.
  2. Configure a proxy to allow communication between Alma and the RFID software. Below are instructions for the nginx proxy. (Not needed for Seret)
  3. Define an integration profile in Alma

To configure nginx:

  1. Install Nginx from http://nginx.org/en/
  2. In nginx.conf, remove the section starting with “location / ” and instead add:
location / {
   proxy_set_header Host      $host;
   proxy_set_header X-Real-IP $remote_addr;

   # According to http://enable-cors.org/server_nginx.html
   if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
            add_header 'Access-Control-Allow-Private-Network' 'true' always;
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;

    if ($request_method = 'POST') {
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Allow-Credentials' 'true' always;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
            add_header 'Access-Control-Allow-Headers' 'SOAPAction,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always;
Note that proxy_pass defines the path of the RFID reader.
In the example above, the definition is with the 3M default port. For Bibliotheca use port 53535.

If you installed the RFID reader with a different port, it should be specified accordingly.

  1. In nginx.conf, define the port in which Nginx is listening. In the following example it is 5000:
server {
listen 5000;
server_name localhost;

To configure an RFID integration profile in Alma:

Follow the OLH instructions.
Regarding the RFID server URL:

  • For 3M™ RFID Staff Workstation (Model 896): http://localhost:5000/TagService
  • For Bibliotheca: http://localhost:5000/BibliothecaRFIDPadService.svc
  • Note that for Bibliotheca it is possible to configure CORS headers for the underlying server (IIS), making the installation of NGINX unnecessary. In that case, you can configure http://localhost:53535/BibliothecaRFIDPadService.svc in the Integration Profile.
  • For Nedap& Seret – Nginx isn’t needed so we link directly to the RFID driver: e.g. http://localhost:1801
  • For Nedap: http://localhost:5000/NedapRfidWebService.asmx (and Nginx on localhost should proxy to the main server)
  • For MK Solutions:  http://localhost:4039/mkStaffStation_Alma
  • Other integrations that support one central server which then proxies the requests to the readers: https://server-address:port/path (must be https)

Important: You can configure Nginx to listen on any port and then set the Server URL to http://localhost:{port}/TagService.
In the above example, Nginx was configured to listen on 5000.

Note: For Nedap it is possible to install BiblioCheckForLite, which then does not require clicking in Alma on “Read RFID” to initiate the loan/return.

Working with RFID-enabled Alma workstation

If an RFID integration profile is defined, then Alma displays a connection icon on the menu bar:

The connection is maintained per user and desk/department. When switching to a new desk, you will need to activate the connection again by clicking the connection icon.

When the connection is active, an RFID communication pop-up window is displayed.
This window must be left open in order to allow the RFID-enabled communication.

A “Read RFID” button will be displayed in the following places:

  • Patron Services Workbench
  • Return Workbench
  • Scan In interface (both tabs)
  • Repository Search
  • Persistent search bar
  • Physical item editor
  • Quick Cataloging
  • Receive

For example:


Pressing this button will fill the relevant text box with the barcode of the item that is placed on the RFID device.
In case of a loan, return, and scan-in operation, the item’s security bit will be updated accordingly.

The ability to “Write RFID” will be displayed in the following places:

  • Physical Item Editor
  • Quick Cataloging
  • Receive
Pressing this button will send to the item on the RFID device the information on the item. The information sent to the device varies per device.
In order to support multiple-piece items, Alma will write to each piece one at a time.

For more information, see Alma OLH.


This popup includes the communication log (in the bottom text box). This log appears after clicking on the RFID connector window in any place.
In case of a problem, please include that log (as well as the nginx log) in the SF case.
It is possible to monitor the communication between Alma and the RFID reader using the browser’s tools. This is useful for cases when an error is returned, or the barcode was not read.
Following are screen captures that illustrate monitoring in Chrome. Similar functionality exists in other browsers as well:
On the popup, press F12 or right-click and choose Inspect:

In the Network tab you’ll see a line for each API request sent to nginx:

Press on the red line (with status 500), and see the XML in the Response tab. This XML might be helpful in order to analyze the problem.

When there is no error message, it might be that the RFID driver isn’t installed on the PC. To verify it, open the Control Panel, double-click Administrative Tools, and then double-click Services. Look for the below services:



We can verify that each component on the way from the popup to the RFID reader is functioning:

(Here we’ll assume that Nginx was configured to use port 5000 and we’ll use Biblioteca as an example, listening on port 53535).

Verify that the RFID software was properly installed by opening a CMD window and typing:  telnet localhost 53535
You should see an empty black screen. If not, contact your RFID vendor Support.

Verify that nginx was properly installed and configured by opening a CMD window and typing:  telnet localhost 5000
If you don’t get a black screen, check the last lines in the 2 log files under C:\path\to\nginx\logs