A cash management system, the cash management system comprising a management terminal (20,21), a plurality of Electronic Point of Sale (EPOS) terminals and one or more cash holding units; the one or more cash holding units each comprising a receiver operable to receive a signal comprising an identifier associated with a user, an access module operable, in response to the received signal, to allow access to the cash holding unit, a counter which increments each time access is allowed and the cash holding unit is closed, to provide a sequence number identifying a transaction at that cash holding unit, and a reporting module operable to send, each time the cash holding unit is closed, a report in the form of a data packet comprising an identifier relating to the user to the management terminal (20,21) wherein each of the one or more cash holding units is an intelligent cash holding unit comprising cash counting apparatus; wherein the report comprises data relating to the contents of the intelligent cash holding unit and the sequence number identifying the transaction at that intelligent cash holding unit; wherein each EPOS terminal is operable to calculate an amount owed based on inputs and operable to output the amount owed to the management terminal (20,21) together with an identifier identifying the user; wherein there are a greater number of EPOS terminals than intelligent cash holding units, whereby one or more intelligent cash holding units acts as a virtual cash holding unit for more than one EPOS terminal; and wherein the management terminal (20,21) reconciles transactions carried out by a user of an EPOS terminal with transactions carried out by that user at a shared intelligent cash holding unit and wherein the management terminal (20,21) is arranged to verify that all data packets sent from each intelligent cash holding unit have been received by checking that for each intelligent cash holding unit there are no gaps in the sequence numbers received from the respective intelligent cash holding unit, wherein if a missing data packet is identified, the management terminal (20,21) is operable to send a request for certain particular data, identified by sequence number to the relevant intelligent cash holding unit, and, in response, the relevant intelligent cash holding unit is operable to retrieve the missing data packet from its memory and forward the missing data packet to the remote management terminal (20,21). wherein each of the one or more cash holding units is an intelligent cash holding unit comprising cash counting apparatus; wherein the report comprises data relating to the contents of the intelligent cash holding unit and the sequence number identifying the transaction at that intelligent cash holding unit; wherein each EPOS terminal is operable to calculate an amount owed based on inputs and operable to output the amount owed to the management terminal (20,21) together with an identifier identifying the user; wherein there are a greater number of EPOS terminals than intelligent cash holding units, whereby one or more intelligent cash holding units acts as a virtual cash holding unit for more than one EPOS terminal; and wherein the management terminal (20,21) reconciles transactions carried out by a user of an EPOS terminal with transactions carried out by that user at a shared intelligent cash holding unit and wherein the management terminal (20,21) is arranged to verify that all data packets sent from each intelligent cash holding unit have been received by checking that for each intelligent cash holding unit there are no gaps in the sequence numbers received from the respective intelligent cash holding unit, wherein if a missing data packet is identified, the management terminal (20,21) is operable to send a request for certain particular data, identified by sequence number to the relevant intelligent cash holding unit, and, in response, the relevant intelligent cash holding unit is operable to retrieve the missing data packet from its memory and forward the missing data packet to the remote management terminal (20,21).