Part of the POD currently looks like this: $messages is a reference-to-hash giving feedback on the operation. The keys of the hash are: "BadBarcode" No item with this barcode exists. The value is $barcode. "NotIssued" The book is not currently on loan. The value is $barcode. "withdrawn" This book has been withdrawn/cancelled. The value should be ignored. "Wrongbranch" This book has was returned to the wrong branch. The value is a hashref so that "$messages-"{Wrongbranch}->{Wrongbranch}> and "$messages-"{Wrongbranch}->{Rightbranch}> contain the branchcode of the incorrect and correct return library, respectively. "ResFound" The item was reserved. The value is a reference-to-hash whose keys are fields from the reserves table of the Koha database, and "biblioitemnumber". It also has the key "ResFound", whose value is either "Waiting", "Reserved", or 0. "WasReturned" Value 1 if return is successful. "NeedsTransfer" If AutomaticItemReturn is disabled, return branch is given as value of NeedsTransfer. "RecallFound" This item can fill a recall. The recall object is returned. If the recall pickup branch differs from the branch this item is being returned at, "RecallNeedsTransfer" is also returned which contains this branchcode. "TransferredRecall" This item has been transferred to this branch to fill a recall. The recall object is returned. When I run a barcode through AddReturn and dump $messages, I get something like this: $VAR1 = { 'WrongTransferItem' => x, 'NotIssued' => 'y', 'WrongTransfer' => 'Z', 'TransferTrigger' => 'Reserve' }; Looks like at least WrongTransferItem, WrongTransfer and TransferTrigger are undocumented?