ILS Integration

About ILS Integration

Currently only Koha is implemented, but interactions with other ILSes could be added in the future.



Vendors can be synchronized between Coral and Koha.


Koha 18.05 or later is needed to use OAuth authentication. Earlier versions of Koha used cookie-based authentication to access the REST API, which is not suitable in our case.


In Coral, install Unirest and league/oauth2-client in resources/api_client (composer might be the easiest way to do it)

In Koha, install Net::OAuth2::AuthorizationServer and enable RESTOAuth2ClientCredentials system preference.


In Koha, create a user for the REST API, edit this user, click on more -> manage API Keys -> Generate new client id/secret pair.

In Coral, edit the [ils] section in organizations/admin/configuration.ini, and add/edit the following values:

oauthid="<paste Client ID generated in Koha>"
oauthsecret="<paste Secret generated in Koha>"
  • ilsConnector is the name of the ILS you want to connect to.
  • ilsVendorRole is the Coral organization role you want to map with Koha vendors.
  • ilsApiUrl is Koha’s API address.
  • ilsAdminUrl is Koha’s intranet address.
  • oauthid is the client ID generated in Koha.
  • oauthsecret is the secret generated in Koha.

Once enabled, you can search for an existing vendor in Koha when creating an organization in Coral:

_images/integrationVendorCheck.pngVendor does not exist in koha

If the vendor does not already exist in Koha, it will be added if the vendor role has been selected.

If the vendor already exists in Koha, we can automatically retrieve its informations:

_images/integrationVendorExists.pngVendor exists in koha _images/integrationVendorRetrieve.pngVendor is retrieved from koha

In both cases, the vendor can no longer be modified in Coral, as the ILS is authoritative.

Once the Coral organization and the Koha vendor are linked, a link to open the vendor in Koha is displayed: _images/integrationVendorDisplay.pngVendor in Coral