EDI integration in Alma

Electronic Data Interchange (EDI) is a method of communication between an institution and its vendors. Alma supports the EDIFACT standard, which is managed by EDItEUR.
The following workflows are supported:

The EDI based communication between Alma and the vendor is done using a FTP location in which EDI files are placed and fetched for processing. This is illustrated in the following diagram:

EDI communication has successfully verified with the following vendors:

  • Appel du Livre
  • Baker & Taylor
  • Casalini Libri
  • Coutts (ingramcontent)
  • Harrassowitz
  • LM Information Delivery
  • Midwest Library Service
  • Prenax
  • ProQuest Ebook Central
  • Teldan
  • William S. Hein & Co., Inc
  • WT Cox Information Services
  • YBP

Note that EDI communication should work with any vendor that uses the EDI message types used by Alma, but it has not been tested.

Would you like to be listed above as a verified vendor? If so, please contact us at this email, and include in the email a list of Alma Institutions which are successfully processing your EDI files.

Required information for EDI based communication:

  • Vendor EDI code
  • vendor EDI type
  • S/FTP connection details
  • EDI code for your institution- in institution level or in library level

The above information should be agreed with the vendor prior to the integration setup.

The following table summarizes the EDI options in Alma:

EDI formatIn additional to the standard API format, the following formats are supported:
Harrassowitz (and harrassowitz like)– Removes line feeds so that all information is provided on a single line.
Baker & Taylor enriched – Includes enriched data that is customized for Baker & Taylor. The GIR segment includes library and location information in two separate fields, even though the PO line may not include this data
Supported workflowsCancellations
Purchase orders
Order Responses
Shelf Ready ParametersShould the items be marked as received?
Should the items be Kept in Department?
Which step to apply to items that you keep in the department?
Configurable fields to includeThe following fields might be included (configurable):
Vendor order number
Fund code
EAN (Envelope Address Node) code per vendor accountsupported
scheduleInvoices, order responses – every day (in several possible hours)
PO – when packaged
FTP setup
The input directory must be different than the output directory.
The vendor must define one input directory per institution.
Important Note: The file name of EDI files in the input directory is limited to 100 characters, including the full path from the FTP root directory, including the directory.


Alma marks handled files with *.handled suffix, hence right permissions should be defined on the input directory
FTP retry behaviorAn FTP process tries to connect to an external system for one minute before retrying. The process tries five times, in increments of one minute each, before failing. Any files remain where they are to be processed at the next time scheduled.
Reload EDI file manuallysupported
EDI report and summaryCan be viewed in Alma

To support EDI for a specific vendor, the vendor itself must be defined with the above options within Alma. For details, refer to the Alma OLH.

Structure of an Interchange

    An interchange consists of the following segments:

  • UNA – Service String Advice (optional)
  • UNB – Interchange Header (Mandatory)
  • UNH – Message Header (Mandatory)
  • Message specific segments
  • UNT Message Trailer (Mandatory)
  • UNZ Interchange Trailer (Mandatory)

UNA segment

    If present, this segment it specifies the special characters that are to be used to interpret the remainder of the message. EDItEUR recommends that the following five characters be used:

  • Apostrophe ’ = segment terminator
  • Plus sign + = segment tag and data element separator
  • Colon : = component data element separator
  • Question mark ? = release character. Immediately preceding any of the special characters ’+:? , the question mark returns the special character to its normal usage.
    For example, 10?+10=20 means 10+10=20. A question mark is represented by ??. A release character is not counted when calculating the maximum length of the data element in which it occurs.
  • Period . = decimal point. The period does not require a release character when it is a normal text punctuation mark. UNA segment based on EDItEUR standard practice: “:+.? ’ “

UNB segment

This segment should appear once in a file.
It is used to identify the sender and receiver of the transmission, specifies the character set used, and carries other “housekeeping” data for the transmission.
This segment is used to envelope the interchange and to identify both the party for which the interchange is intended and the party that sent the interchange. The principle of the UNB segment is the same as a physical envelope that covers one or more letters or documents and details the address to which delivery is to take place and the address from which the envelope has arrived.
Example of a UNB segment based on EDItEUR recommended practice:

  • VendorEdiCode – identifies the vendor EDI code
  • EdiType – vendor EDI type
  • BuyerEdiCode – the buyer EDI code, as defined in the vendor’s system
  • Type – the buyer’s EDI type
  • Date – the message date in yymmdd format
  • Time – the message time in hhmm format

UNH segment
Alma supports EDI that uses the following standards/versions:

  • Message version number – D
  • Message release number – 96A
  • Controlling agency – UN
  • Association assigned code – EAN008

Any other version/standard is not supported. If one of the above elements is missing in the message header, the EDI is not supported by Alma.

Message specific segments – See Purchase orders, Invoices, Claims, Cancellations, order responses for more details regarding each message.

UNT segment
The EDI trailer record counts all the segments in the EDI file and is mandatory in the EDI. Count includes the UNH and UNT segments.
+ 0062 Message reference number M and 14. The reference number given here must be the same as that specified in the UNH segment. Example:

UNT+2345+ME000001' 2345 - segments in message reference ME000001

UNZ segment
ends the transmission

UNZ+3+INV73529’- Three messages in this interchange.