Fill Local Hold Request Now

PUT /api/.../holds/{id}?action=fillnow

Fill a local hold request for a patron with a specific item barcode.

Permissions

    CR_HoldRequests_Modify: modify hold requests

Request Information

Name Type Required Description
id Integer Yes ID of local hold request

The process of filling a hold request now is "conversational" in nature. Multiple API requests may have to be made as the user may need to acknowledge, bypass, or otherwise answer questions. As such, along with the actual item barcode value, additional procedural state information will be passed back and forth.

The body of the REQUEST calls to the API will follow this general pattern:

application/json, text/json
{
    ItemBarcode: '010002345',
    ProcedureStep: 1,
    Answer: 1,
}

The body of the RETURNED calls will follow this general pattern:

application/json, text/json
{
    ProcedureStep: null,
    Answer: null,
    ItemBarcode: '010002345',
    PAPIProcedure: 0,
    PAPIProcedureStep: 2,
    PAPIAction: 2,
    PAPIActionProcedure: 0,
    PAPIPromptType: 4,
    PAPIStopType: 0,
    PAPIReturnCode: -4008,
    Success: false,
    Message: "Item record not found"
}

Workflow Steps

The initial API request should have a ProcedureStep value of 1 (Start). Check the returned values for the Success attribute as an indication if fulfilling the hold request was successful. If Success is true, the ItemRecordID will be a valid item record ID.

For cases where Success is false, check the other PAPI* attributes for what is required next in order to resubmit the API request. The PAPIProcedureStep may contain any of the following values if the Success attribute is false:

  • 30 - Validate item
  • 31 - Item needs to be transfered (OK/Continue)
The Message attribute contains the prompt to display to the user. When reissuing the call to the API, if required, set the ProcedureStep attribute to the same value as what was returned in PAPIProcedureStep, and the Answer value to 0 for no, and 1 for yes.

For ProcedureStep 30, the following error messages may be returned (they cannot be bypassed):

  • Quick-circ item cannot fill hold requests
  • No matching item record was found. Check the item barcode
  • The record status of this item is Provisional. Action cannot be taken on a Provisional item
  • The record status of this item is deleted. Action cannot be taken on a Deleted Item
  • The item has an invalid record status. Action cannot be taken on this item
  • The item cannot fill the hold request because the item's status is not In
  • The item is not holdable
  • This item is marked 'Do not mail to patron'. To fill this request, uncheck this option on one or more items or uncheck the Borrow by mail option for this request.

For ProcedureStep 31 (item needs to be transferred to another branch), the user can OK or continue.

HTTP Response Codes

Code Description
200 OK. Success
400 FAILURE.
409 CONFLICT. Patron record is secured.

Required Permissions

Permission IDs found here.

    HoldRequests_Modify (based on the pickup branch ID)