Deleting a patron from the library, either by patron ID and password, by identifier and password, or through an identity provider. The provider decides whether the patron may be deleted, for example while they still have loans or fees outstanding.

3 operasjoner
POST /patron/delete

Delete patron.

Bearer-token DeletePatron

Eksempel på kall

cURL

curl -X POST "$PLAS_BASE_URL/patron/delete?version=0.6.7" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN" \
  -d '{
  "acknowledgement": {
    "code": "SplxlOBeZQQYbYS6WxSbIA"
  },
  "patron": {
    "identifiedBy": "patron_id",
    "password": "correct-horse-battery",
    "patronId": "40218873"
  }
}'

JavaScript

const response = await fetch(`${process.env.PLAS_BASE_URL}/patron/delete?version=0.6.7`, {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
  body: JSON.stringify({
    "acknowledgement": {
      "code": "SplxlOBeZQQYbYS6WxSbIA"
    },
    "patron": {
      "identifiedBy": "patron_id",
      "password": "correct-horse-battery",
      "patronId": "40218873"
    }
  }),
});
const data = await response.json();

Python

import os
import requests

response = requests.post(
    f"{os.environ['PLAS_BASE_URL']}/patron/delete",
    params={
        "version": "0.6.7",
    },
    headers={
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
    json={
        "acknowledgement": {
            "code": "SplxlOBeZQQYbYS6WxSbIA",
        },
        "patron": {
            "identifiedBy": "patron_id",
            "password": "correct-horse-battery",
            "patronId": "40218873",
        },
    },
)
data = response.json()
Verten og tokenet er miljøvariabler: PLAS_BASE_URL providerens adresse · PLAS_TOKEN et access token.

Parametere

Felles for operasjonene: version. Se den felles kontrakten på versjonssiden.

Request body

application/json · påkrevd · DeletePatronRequestBody
  • acknowledgementobject

    This is used to acknowledge the deletion of the patron.

    Vis 1 feltSkjul 1 felt
    • codestringpåkrevd
  • Which patron is being deleted, told by identifiedBy. This is for a patron who is not logged in through an identity provider, and a password is always required, since it is the only proof in the request that the caller is the patron.

    Vis 2 varianterSkjul 2 varianter

    Velges av feltet identifiedBy

    Variant: patron_id

    DeletePatronById

    • identifiedBystringpåkrevd

      Én av: patron_id

    • passwordstringpåkrevd

      The credential for the identifier.

      In authentication, registration and deletion this field carries whichever credential the provider uses, so at a provider that uses pin codes the value is a pin code even though the field is named password. For authentication, patron.login.credentials in GET /configuration says which it is.

      In POST /patron/{patronId}/credential/change the value is always a password. That request body carries a pin code in currentPin and newPin instead.

    • patronIdstringpåkrevd

      The patron ID.

    Variant: identifier

    DeletePatronByIdentifier

    • identifiedBystringpåkrevd

      Én av: identifier

    • Se PatronIdentifierTypeAndValue i skjemaindeksen

    • passwordstringpåkrevd

      The credential for the identifier.

      In authentication, registration and deletion this field carries whichever credential the provider uses, so at a provider that uses pin codes the value is a pin code even though the field is named password. For authentication, patron.login.credentials in GET /configuration says which it is.

      In POST /patron/{patronId}/credential/change the value is always a password. That request body carries a pin code in currentPin and newPin instead.

Svar

200 Success DeletePatronResponseBody
Generert fra skjemaet

Eksempel

{
  "message": "I accept the library’s terms of use.",
  "status": "waiting_for_acknowledgement"
}

Skjema

DeletePatronResponseBody

  • messagestring

    Message to the patron.

  • statusstringpåkrevd

    This tells the state of the deletion of the patron.

    The status can be:

    • waiting_for_acknowledgement, to begin the deleting process, call the deletion endpoint with the acknowledgement code.
    • pending, the deletion request is acknowledged, and we are waiting on the process to begin.
    • in_process, the deletion process is in progress.
    • done, the deletion process is done (meaning the patronId does not exist).
    • deletion_error, the deletion process failed.
    • unknown, the deletion process is in an unknown state.

    Én av: waiting_for_acknowledgement · pending · in_progress · done · deletion_error

400 The list of errors. Errors

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Generert fra skjemaet

Eksempel

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

Skjema

Errors

  • errorsarray of Errorpåkrevdmin. antall 1

    The first error should always be the most relevant.

    Vis 2 felterSkjul 2 felter
    • codeintegerpåkrevd

      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 identifier, password or pin code
      • 100011: New password or pin code rejected, because it does not meet the provider's requirements
      • 100013: The provider does not let the patron change the given credential
      • 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

      Én av: 500 · 600 · 10001 · 71001 · 100001 · 100011 · 100013 · 100023 · 100101 · 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

    • infostringpåkrevd

      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.

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Ikke noe innhold i svaret.

GET /patron/delete/identity-provider

This will fetch a SSO URL used for patron deletion, matching the chosen identity provider.

Bearer-token GetDeletePatronUrl

Eksempel på kall

cURL

curl -X GET "$PLAS_BASE_URL/patron/delete/identity-provider?identity_provider=norway_id_portal&code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&state=af0ifjsldkj&version=0.6.7" \
  -H 'Accept: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN"

JavaScript

const response = await fetch(`${process.env.PLAS_BASE_URL}/patron/delete/identity-provider?identity_provider=norway_id_portal&code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM&state=af0ifjsldkj&version=0.6.7`, {
  method: "GET",
  headers: {
    "Accept": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
});
const data = await response.json();

Python

import os
import requests

response = requests.get(
    f"{os.environ['PLAS_BASE_URL']}/patron/delete/identity-provider",
    params={
        "identity_provider": "norway_id_portal",
        "code_challenge": "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM",
        "state": "af0ifjsldkj",
        "version": "0.6.7",
    },
    headers={
        "Accept": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
)
data = response.json()
Verten og tokenet er miljøvariabler: PLAS_BASE_URL providerens adresse · PLAS_TOKEN et access token.

Parametere

identity_providerpåkrevd
query · string

The identity provider type, found in GET /configuration.

Eksempel: norway_id_portal
code_challengepåkrevd
query · string

A hashed value (of the code_verifier from a PKCE flow) used to secure the authorization code exchange.

Eksempel: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM
statepåkrevd
query · string

A random string to protect against CSRF and track the request state. The value should be returned to the Vendor on the callback url after deletion.

Eksempel: af0ifjsldkj
prompt
query · string

If prompt is set to login, the returned url should force a new login, even if the user is already logged in.

Eksempel: login
app_redirect_url
query · string (uri)

This value should be returned to the Vendor on the callback url after deletion.

Eksempel: https://app.nordby.bibliotek.example/callback
Felles for operasjonene: version. Se den felles kontrakten på versjonssiden.

Svar

200 Success PatronDeletionIdentityProviderResponseBody
Generert fra skjemaet

Eksempel

{
  "url": "https://nordby.bibliotek.example/url"
}

Skjema

PatronDeletionIdentityProviderResponseBody

  • urlstring (uri)påkrevd
400 The list of errors. Errors

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Generert fra skjemaet

Eksempel

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

Skjema

Errors

  • errorsarray of Errorpåkrevdmin. antall 1

    The first error should always be the most relevant.

    Vis 2 felterSkjul 2 felter
    • codeintegerpåkrevd

      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 identifier, password or pin code
      • 100011: New password or pin code rejected, because it does not meet the provider's requirements
      • 100013: The provider does not let the patron change the given credential
      • 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

      Én av: 500 · 600 · 10001 · 71001 · 100001 · 100011 · 100013 · 100023 · 100101 · 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

    • infostringpåkrevd

      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.

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Ikke noe innhold i svaret.

POST /patron/delete/identity-provider

Delete patron by code and code verifier from SSO deletion.

Bearer-token DeletePatronByCodeAndCodeVerifier

Eksempel på kall

cURL

curl -X POST "$PLAS_BASE_URL/patron/delete/identity-provider?version=0.6.7" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $PLAS_TOKEN" \
  -d '{
  "code": "SplxlOBeZQQYbYS6WxSbIA",
  "code_verifier": "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
  "identity_provider": "norway_id_portal"
}'

JavaScript

const response = await fetch(`${process.env.PLAS_BASE_URL}/patron/delete/identity-provider?version=0.6.7`, {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.PLAS_TOKEN}`,
  },
  body: JSON.stringify({
    "code": "SplxlOBeZQQYbYS6WxSbIA",
    "code_verifier": "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
    "identity_provider": "norway_id_portal"
  }),
});
const data = await response.json();

Python

import os
import requests

response = requests.post(
    f"{os.environ['PLAS_BASE_URL']}/patron/delete/identity-provider",
    params={
        "version": "0.6.7",
    },
    headers={
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": f"Bearer {os.environ['PLAS_TOKEN']}",
    },
    json={
        "code": "SplxlOBeZQQYbYS6WxSbIA",
        "code_verifier": "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
        "identity_provider": "norway_id_portal",
    },
)
data = response.json()
Verten og tokenet er miljøvariabler: PLAS_BASE_URL providerens adresse · PLAS_TOKEN et access token.

Parametere

Felles for operasjonene: version. Se den felles kontrakten på versjonssiden.

Request body

application/json · påkrevd · DeletePatronByCodeAndCodeVerifierRequestBody
  • codestringpåkrevd

    The code obtained from a SSO patron deletion.

  • code_verifierstringpåkrevd

    The code verifier used to create the code challenge used to obtain the code.

  • identity_providerstringpåkrevd

    The identity provider type, found in GET /configuration.

    Én av: norway_id_portal · norway_nl_oidc · norway_feide_oidc · denmark_mit_id · denmark_dbc_access_platform

Svar

200 Success DeletePatronResponseBody
Generert fra skjemaet

Eksempel

{
  "message": "I accept the library’s terms of use.",
  "status": "waiting_for_acknowledgement"
}

Skjema

DeletePatronResponseBody

  • messagestring

    Message to the patron.

  • statusstringpåkrevd

    This tells the state of the deletion of the patron.

    The status can be:

    • waiting_for_acknowledgement, to begin the deleting process, call the deletion endpoint with the acknowledgement code.
    • pending, the deletion request is acknowledged, and we are waiting on the process to begin.
    • in_process, the deletion process is in progress.
    • done, the deletion process is done (meaning the patronId does not exist).
    • deletion_error, the deletion process failed.
    • unknown, the deletion process is in an unknown state.

    Én av: waiting_for_acknowledgement · pending · in_progress · done · deletion_error

400 The list of errors. Errors

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Generert fra skjemaet

Eksempel

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

Skjema

Errors

  • errorsarray of Errorpåkrevdmin. antall 1

    The first error should always be the most relevant.

    Vis 2 felterSkjul 2 felter
    • codeintegerpåkrevd

      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 identifier, password or pin code
      • 100011: New password or pin code rejected, because it does not meet the provider's requirements
      • 100013: The provider does not let the patron change the given credential
      • 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

      Én av: 500 · 600 · 10001 · 71001 · 100001 · 100011 · 100013 · 100023 · 100101 · 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

    • infostringpåkrevd

      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.

Felles svar, definert én gang for hele API-et. Se den felles kontrakten på versjonssiden.

Ikke noe innhold i svaret.