No description in the specification.

2 operations
POST /checkin/{itemId}

Check in an item

Bearer token Checkin

Example request

cURL

curl -X POST "$PLAS_BASE_URL/checkin/03011042557129?version=0.6.6" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN" \
  -d '{
  "checkin": {
    "alreadyCheckedIn": {
      "performed": true
    },
    "location": {
      "branchId": "nordby-main",
      "sections": [
        {
          "id": "nordby-main-children",
          "name": "Children’s department",
          "type": "department"
        }
      ]
    },
    "returnDateTime": "2025-03-14T10:24:00+01:00"
  }
}'

JavaScript

const response = await fetch(`${process.env.PLAS_BASE_URL}/checkin/03011042557129?version=0.6.6`, {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
  body: JSON.stringify({
    "checkin": {
      "alreadyCheckedIn": {
        "performed": true
      },
      "location": {
        "branchId": "nordby-main",
        "sections": [
          {
            "id": "nordby-main-children",
            "name": "Children’s department",
            "type": "department"
          }
        ]
      },
      "returnDateTime": "2025-03-14T10:24:00+01:00"
    }
  }),
});
const data = await response.json();

Python

import os
import requests

response = requests.post(
    f"{os.environ['PLAS_BASE_URL']}/checkin/03011042557129",
    params={
        "version": "0.6.6",
    },
    headers={
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
    json={
        "checkin": {
            "alreadyCheckedIn": {
                "performed": True,
            },
            "location": {
                "branchId": "nordby-main",
                "sections": [
                    {
                        "id": "nordby-main-children",
                        "name": "Children’s department",
                        "type": "department",
                    },
                ],
            },
            "returnDateTime": "2025-03-14T10:24:00+01:00",
        },
    },
)
data = response.json()
The host and token are environment variables: PLAS_BASE_URL the provider’s base URL · PLAS_TOKEN an access token.

Parameters

itemIdrequired
path · string

The item identifier of the item to check in.

Example: 03011042557129
Shared across operations: version. See the shared contract on the version page.

Request body

application/json · required · CheckinRequestBody
  • checkinobjectrequired
    Show 3 fieldsHide 3 fields
    • alreadyCheckedInobject

      This contains information about if the checkin has already been performed.
      If performed is not set to true, all other fields in alreadyCheckedIn are ignored.

      This is often used when a self service machine is in offline mode.

      Show 1 fieldHide 1 field
      • performedbooleanrequired

        This tells if the checkin action has already be performed, and the LMS should not reject the checkin.
        This is often used when a self service machine is in offline mode.

        If parent field alreadyCheckedIn is not set, the default value is false.

    • Show 2 fieldsHide 2 fields
    • returnDateTimestring (date-time)required

      This is the return date and time the patron made the checkin.

Responses

200 Success CheckinResponseBody
Generated from the schema

Example

{
  "checkin": {
    "acquiredFrom": {
      "type": "local_circulation"
    },
    "dueDate": "2025-04-11",
    "itemId": "03011042557129",
    "loanId": "58210447",
    "patronId": "40218873",
    "publicationId": "310552",
    "publicationMetadata": {
      "additionalIdentifiers": [
        {
          "digits": "10",
          "type": "isbn",
          "value": "9788203363344"
        }
      ],
      "binding": {
        "type": "literal",
        "value": "Hardback"
      },
      "contributors": [
        {
          "agent": {
            "description": "Norwegian novelist, awarded the Nobel Prize in Literature in 1928.",
            "fullName": "Sigrid Undset",
            "id": "agent-4102",
            "images": [
              {
                "height": 1200,
                "mime": "png",
                "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
                "width": 800,
                "type": "agent"
              }
            ],
            "active": {
              "type": "literal",
              "value": "1882-1949"
            },
            "birthDate": {
              "type": "literal",
              "value": "1920"
            },
            "deathDate": {
              "type": "literal",
              "value": "1920"
            },
            "externals": {
              "identifiers": [
                {
                  "type": "norwegianAuthorityFile",
                  "value": "4102"
                }
              ]
            },
            "givenName": "Kari",
            "surname": "Nordmann",
            "type": "person"
          },
          "roles": [
            {
              "roleCode": "aut",
              "type": "marcRelator"
            }
          ]
        }
      ],
      "creators": [
        {
          "agent": {
            "description": "Norwegian novelist, awarded the Nobel Prize in Literature in 1928.",
            "fullName": "Sigrid Undset",
            "id": "agent-4102",
            "images": [
              {
                "height": 1200,
                "mime": "png",
                "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
                "width": 800,
                "type": "agent"
              }
            ],
            "active": {
              "type": "literal",
              "value": "1882-1949"
            },
            "birthDate": {
              "type": "literal",
              "value": "1920"
            },
            "deathDate": {
              "type": "literal",
              "value": "1920"
            },
            "externals": {
              "identifiers": [
                {
                  "type": "norwegianAuthorityFile",
                  "value": "4102"
                }
              ]
            },
            "givenName": "Kari",
            "surname": "Nordmann",
            "type": "person"
          },
          "roles": [
            {
              "roleCode": "aut",
              "type": "marcRelator"
            }
          ]
        }
      ],
      "edition": {
        "type": "literal",
        "value": "2nd edition"
      },
      "extent": [
        {
          "type": "literal",
          "value": "312 pages"
        }
      ],
      "identifier": "310552",
      "images": [
        {
          "height": 1200,
          "mime": "png",
          "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
          "width": 800,
          "type": "frontCover"
        }
      ],
      "language": [
        {
          "code": "SplxlOBeZQQYbYS6WxSbIA",
          "name": "Kari Nordmann"
        }
      ],
      "mediaTypes": [
        {
          "code": "book",
          "name": "Kari Nordmann"
        }
      ],
      "publicationDate": {
        "type": "literal",
        "value": "1920"
      },
      "publishers": [
        {
          "places": [
            {
              "place": "Oslo"
            }
          ],
          "publisher": {
            "id": "94549",
            "name": "Kari Nordmann"
          }
        }
      ],
      "titles": [
        {
          "language": {
            "code": "SplxlOBeZQQYbYS6WxSbIA",
            "name": "Kari Nordmann"
          },
          "main": "Kristin Lavransdatter",
          "part": {
            "name": "Kari Nordmann",
            "number": "1"
          },
          "remainder": "The Wreath",
          "type": "preferred"
        }
      ],
      "works": [
        {
          "identifier": "882107",
          "relation": "contains"
        }
      ]
    },
    "sortingCode": "A3",
    "transactionDateTime": "2025-03-14T10:24:00+01:00"
  },
  "completed": true,
  "message": {
    "text": "This item is reserved by another patron. Please return it to the counter.",
    "type": "reservation-waiting"
  },
  "requestId": "5b1f6c2e-9a7d-4e3b-8f21-6c0d9e4a7b13",
  "status": "completed"
}

Schema

CheckinResponseBody

400 The list of errors. Errors

Shared response, defined once for the whole API. See the shared contract on the version page.

Generated from the schema

Example

{
  "errors": [
    {
      "code": 200103,
      "info": "200103: invalid/unsupported query parameter value"
    }
  ]
}

Schema

Errors

  • errorsarray of Errorrequiredmin items 1

    The first error should always be the most relevant.

    Show 2 fieldsHide 2 fields
    • codeintegerrequired

      A number representing the type of error.

      List of error codes:

      • \<error code\>: \<error description\>
      • 500: System error
      • 600: Unsupported Open Library API version
      • 10001: Endpoint disabled
      • 71001: Consent has not been given for 'loan history'
      • 100001: Wrong patron username or password
      • 100023: Patron ID not found
      • 100101: Patron could not be deleted, because the patron has something unresolved issue with the library (this could be anything from a loan to a fee, and so on ...)
      • 100211: maxNumberOfEmailAddresses exceeded
      • 100215: maxNumberOfPhoneNumbers exceeded
      • 100221: Pickup location cannot contain sections
      • 100411: Updating patron consent failed
      • 100611: Updating patron notification settings failed
      • 101001: Reservation ID not found
      • 101047: Branch ID cannot be used as pick up branch
      • 101053: Section ID cannot be used as pick up branch
      • 102001: Loan ID not found
      • 102301: Loan not renewable, because it is an interlibrary loan
      • 102311: Loan not renewable, because it is reserved
      • 110001: Branch ID not found
      • 200001: Publication ID not found
      • 200077: ui language not supported
      • 200101: missing required query parameter
      • 200103: invalid/unsupported query parameter value
      • 300001: Initialize payment should not be used
      • 300005: Initialize payment should be used
      • 300009: Payment method not supported
      • 300013: Payment method does not support partial payment
      • 300301: Finalized payment can not de changed
      • 300311: FinalizePaymentRequest.fees contains fees with the same ID
      • 310001: Loan history ID not found
      • 310011: Loan history ID already exists
      • 330001: List ID not found
      • 330011: List ID already exists
      • 330101: List item ID not found
      • 330111: List item ID already exists

      One of: 500 · 600 · 100001 · 100023 · 100211 · 100215 · 100221 · 100411 · 100611 · 101001 · 101047 · 101053 · 102001 · 102301 · 102311 · 110001 · 200001 · 200077 · 200101 · 200103 · 300001 · 300005 · 300009 · 300013 · 300301 · 300311 · 310001 · 310011 · 330001 · 330011 · 330101 · 330111

    • infostringrequired

      Starts with the text matching the error code field (defined above), and a describing text could be added.

401 Bearer token invalid, missing, or expired.

Shared response, defined once for the whole API. See the shared contract on the version page.

No response body.

404 Resource not found.

Shared response, defined once for the whole API. See the shared contract on the version page.

No response body.

POST /checkout/{itemId}

Check out an item

Bearer token Checkout

Example request

cURL

curl -X POST "$PLAS_BASE_URL/checkout/03011042557129?version=0.6.6" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN" \
  -d '{
  "acknowledgement": {
    "code": "SplxlOBeZQQYbYS6WxSbIA"
  },
  "checkout": {
    "alreadyCheckedOut": {
      "dueDate": "2025-04-11",
      "performed": true
    },
    "location": {
      "branchId": "nordby-main",
      "sections": [
        {
          "id": "nordby-main-children",
          "name": "Children’s department",
          "type": "department"
        }
      ]
    },
    "patronId": "40218873",
    "transactionDateTime": "2025-03-14T10:24:00+01:00"
  }
}'

JavaScript

const response = await fetch(`${process.env.PLAS_BASE_URL}/checkout/03011042557129?version=0.6.6`, {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
  body: JSON.stringify({
    "acknowledgement": {
      "code": "SplxlOBeZQQYbYS6WxSbIA"
    },
    "checkout": {
      "alreadyCheckedOut": {
        "dueDate": "2025-04-11",
        "performed": true
      },
      "location": {
        "branchId": "nordby-main",
        "sections": [
          {
            "id": "nordby-main-children",
            "name": "Children’s department",
            "type": "department"
          }
        ]
      },
      "patronId": "40218873",
      "transactionDateTime": "2025-03-14T10:24:00+01:00"
    }
  }),
});
const data = await response.json();

Python

import os
import requests

response = requests.post(
    f"{os.environ['PLAS_BASE_URL']}/checkout/03011042557129",
    params={
        "version": "0.6.6",
    },
    headers={
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
    json={
        "acknowledgement": {
            "code": "SplxlOBeZQQYbYS6WxSbIA",
        },
        "checkout": {
            "alreadyCheckedOut": {
                "dueDate": "2025-04-11",
                "performed": True,
            },
            "location": {
                "branchId": "nordby-main",
                "sections": [
                    {
                        "id": "nordby-main-children",
                        "name": "Children’s department",
                        "type": "department",
                    },
                ],
            },
            "patronId": "40218873",
            "transactionDateTime": "2025-03-14T10:24:00+01:00",
        },
    },
)
data = response.json()
The host and token are environment variables: PLAS_BASE_URL the provider’s base URL · PLAS_TOKEN an access token.

Parameters

itemIdrequired
path · string

The item identifier of the item to check out.

Example: 03011042557129
Shared across operations: version. See the shared contract on the version page.

Request body

application/json · required · CheckoutRequestBody
  • acknowledgementobject

    This is used to acknowledge the checkout.

    Show 1 fieldHide 1 field
    • codestringrequired

      This should be the acknowledgement code from the response.

  • checkoutobjectrequired
    Show 4 fieldsHide 4 fields
    • alreadyCheckedOutobject

      This contains information about if the checkout has already been performed.
      If performed is not set to true, all other fields in alreadyCheckedOut are ignored.

      This is often used when a self service machine is in offline mode.

      Show 2 fieldsHide 2 fields
      • dueDatestring (date)required

        This is the due date given to the patron at checkout.

      • performedbooleanrequired

        This tells if the checkout action has already be performed, and the LMS should not reject the checkout.
        This is often used when a self service machine is in offline mode.

        If parent field alreadyCheckedOut is not set, the default value is false.

    • Show 2 fieldsHide 2 fields
    • patronIdstringrequired

      Patron ID from authentication

    • transactionDateTimestring (date-time)required

      This is the date and time the patron made the checkout.

Responses

200 Success CheckoutResponseBody
Generated from the schema

Example

{
  "acknowledgement": {
    "code": "SplxlOBeZQQYbYS6WxSbIA",
    "data": {
      "type": "lending_fee",
      "amount": 15000
    },
    "message": "I accept the library’s terms of use."
  },
  "checkout": {
    "acquiredFrom": {
      "type": "local_circulation"
    },
    "dueDate": "2025-04-11",
    "itemId": "03011042557129",
    "loanId": "58210447",
    "patronId": "40218873",
    "publicationId": "310552",
    "publicationMetadata": {
      "additionalIdentifiers": [
        {
          "digits": "10",
          "type": "isbn",
          "value": "9788203363344"
        }
      ],
      "binding": {
        "type": "literal",
        "value": "Hardback"
      },
      "contributors": [
        {
          "agent": {
            "description": "Norwegian novelist, awarded the Nobel Prize in Literature in 1928.",
            "fullName": "Sigrid Undset",
            "id": "agent-4102",
            "images": [
              {
                "height": 1200,
                "mime": "png",
                "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
                "width": 800,
                "type": "agent"
              }
            ],
            "active": {
              "type": "literal",
              "value": "1882-1949"
            },
            "birthDate": {
              "type": "literal",
              "value": "1920"
            },
            "deathDate": {
              "type": "literal",
              "value": "1920"
            },
            "externals": {
              "identifiers": [
                {
                  "type": "norwegianAuthorityFile",
                  "value": "4102"
                }
              ]
            },
            "givenName": "Kari",
            "surname": "Nordmann",
            "type": "person"
          },
          "roles": [
            {
              "roleCode": "aut",
              "type": "marcRelator"
            }
          ]
        }
      ],
      "creators": [
        {
          "agent": {
            "description": "Norwegian novelist, awarded the Nobel Prize in Literature in 1928.",
            "fullName": "Sigrid Undset",
            "id": "agent-4102",
            "images": [
              {
                "height": 1200,
                "mime": "png",
                "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
                "width": 800,
                "type": "agent"
              }
            ],
            "active": {
              "type": "literal",
              "value": "1882-1949"
            },
            "birthDate": {
              "type": "literal",
              "value": "1920"
            },
            "deathDate": {
              "type": "literal",
              "value": "1920"
            },
            "externals": {
              "identifiers": [
                {
                  "type": "norwegianAuthorityFile",
                  "value": "4102"
                }
              ]
            },
            "givenName": "Kari",
            "surname": "Nordmann",
            "type": "person"
          },
          "roles": [
            {
              "roleCode": "aut",
              "type": "marcRelator"
            }
          ]
        }
      ],
      "edition": {
        "type": "literal",
        "value": "2nd edition"
      },
      "extent": [
        {
          "type": "literal",
          "value": "312 pages"
        }
      ],
      "identifier": "310552",
      "images": [
        {
          "height": 1200,
          "mime": "png",
          "url": "https://images.nordby.bibliotek.example/covers/310552.jpg",
          "width": 800,
          "type": "frontCover"
        }
      ],
      "language": [
        {
          "code": "SplxlOBeZQQYbYS6WxSbIA",
          "name": "Kari Nordmann"
        }
      ],
      "mediaTypes": [
        {
          "code": "book",
          "name": "Kari Nordmann"
        }
      ],
      "publicationDate": {
        "type": "literal",
        "value": "1920"
      },
      "publishers": [
        {
          "places": [
            {
              "place": "Oslo"
            }
          ],
          "publisher": {
            "id": "94549",
            "name": "Kari Nordmann"
          }
        }
      ],
      "titles": [
        {
          "language": {
            "code": "SplxlOBeZQQYbYS6WxSbIA",
            "name": "Kari Nordmann"
          },
          "main": "Kristin Lavransdatter",
          "part": {
            "name": "Kari Nordmann",
            "number": "1"
          },
          "remainder": "The Wreath",
          "type": "preferred"
        }
      ],
      "works": [
        {
          "identifier": "882107",
          "relation": "contains"
        }
      ]
    },
    "renew": {
      "count": 2,
      "lastDate": "2025-03-14",
      "state": "renewable"
    },
    "transactionDateTime": "2025-03-14T10:24:00+01:00"
  },
  "message": {
    "text": "This item is reserved by another patron. Please return it to the counter.",
    "type": "reservation-waiting"
  },
  "requestId": "5b1f6c2e-9a7d-4e3b-8f21-6c0d9e4a7b13",
  "status": "completed"
}

Schema

CheckoutResponseBody

400 The list of errors. Errors

Shared response, defined once for the whole API. See the shared contract on the version page.

Generated from the schema

Example

{
  "errors": [
    {
      "code": 200103,
      "info": "200103: invalid/unsupported query parameter value"
    }
  ]
}

Schema

Errors

  • errorsarray of Errorrequiredmin items 1

    The first error should always be the most relevant.

    Show 2 fieldsHide 2 fields
    • codeintegerrequired

      A number representing the type of error.

      List of error codes:

      • \<error code\>: \<error description\>
      • 500: System error
      • 600: Unsupported Open Library API version
      • 10001: Endpoint disabled
      • 71001: Consent has not been given for 'loan history'
      • 100001: Wrong patron username or password
      • 100023: Patron ID not found
      • 100101: Patron could not be deleted, because the patron has something unresolved issue with the library (this could be anything from a loan to a fee, and so on ...)
      • 100211: maxNumberOfEmailAddresses exceeded
      • 100215: maxNumberOfPhoneNumbers exceeded
      • 100221: Pickup location cannot contain sections
      • 100411: Updating patron consent failed
      • 100611: Updating patron notification settings failed
      • 101001: Reservation ID not found
      • 101047: Branch ID cannot be used as pick up branch
      • 101053: Section ID cannot be used as pick up branch
      • 102001: Loan ID not found
      • 102301: Loan not renewable, because it is an interlibrary loan
      • 102311: Loan not renewable, because it is reserved
      • 110001: Branch ID not found
      • 200001: Publication ID not found
      • 200077: ui language not supported
      • 200101: missing required query parameter
      • 200103: invalid/unsupported query parameter value
      • 300001: Initialize payment should not be used
      • 300005: Initialize payment should be used
      • 300009: Payment method not supported
      • 300013: Payment method does not support partial payment
      • 300301: Finalized payment can not de changed
      • 300311: FinalizePaymentRequest.fees contains fees with the same ID
      • 310001: Loan history ID not found
      • 310011: Loan history ID already exists
      • 330001: List ID not found
      • 330011: List ID already exists
      • 330101: List item ID not found
      • 330111: List item ID already exists

      One of: 500 · 600 · 100001 · 100023 · 100211 · 100215 · 100221 · 100411 · 100611 · 101001 · 101047 · 101053 · 102001 · 102301 · 102311 · 110001 · 200001 · 200077 · 200101 · 200103 · 300001 · 300005 · 300009 · 300013 · 300301 · 300311 · 310001 · 310011 · 330001 · 330011 · 330101 · 330111

    • infostringrequired

      Starts with the text matching the error code field (defined above), and a describing text could be added.

401 Bearer token invalid, missing, or expired.

Shared response, defined once for the whole API. See the shared contract on the version page.

No response body.

404 Resource not found.

Shared response, defined once for the whole API. See the shared contract on the version page.

No response body.