A computer-implemented method for performing a firmware update at a payment reader, comprising: providing, from a payment reader to a server, a firmware manifest listing firmware versions for each of a plurality of firmware assets associated with components of the payment reader; receiving (804, 806), at the payment reader, a firmware update and a processing indicator from the server, wherein the firmware update includes firmware update data for one or more components of the payment reader and wherein said update data is included in the firmware update based on a comparison of an update firmware bundle and the firmware manifest; determining, at the payment reader, based on the processing indicator, whether it is permissible to process payment transactions at the payment reader while processing of the firmware update is ongoing, wherein determining whether it is permissible to process payment transactions while processing of the firmware update is ongoing comprises determining, by the payment reader and from the processing indicator: a) whether the update firmware bundle is a blocking firmware bundle or a non-blocking firmware bundle, wherein a blocking firmware bundle is a firmware bundle having firmware assets relating to security or payment processing functionality; or b) whether the firmware versions of the firmware manifest are a permissible combination; based on the determination, allowing or preventing, at the payment reader, processing of payment transactions while processing of the firmware update is ongoing. providing, from a payment reader to a server, a firmware manifest listing firmware versions for each of a plurality of firmware assets associated with components of the payment reader; receiving (804, 806), at the payment reader, a firmware update and a processing indicator from the server, wherein the firmware update includes firmware update data for one or more components of the payment reader and wherein said update data is included in the firmware update based on a comparison of an update firmware bundle and the firmware manifest; determining, at the payment reader, based on the processing indicator, whether it is permissible to process payment transactions at the payment reader while processing of the firmware update is ongoing, wherein determining whether it is permissible to process payment transactions while processing of the firmware update is ongoing comprises determining, by the payment reader and from the processing indicator: a) whether the update firmware bundle is a blocking firmware bundle or a non-blocking firmware bundle, wherein a blocking firmware bundle is a firmware bundle having firmware assets relating to security or payment processing functionality; or b) whether the firmware versions of the firmware manifest are a permissible combination; a) whether the update firmware bundle is a blocking firmware bundle or a non-blocking firmware bundle, wherein a blocking firmware bundle is a firmware bundle having firmware assets relating to security or payment processing functionality; or b) whether the firmware versions of the firmware manifest are a permissible combination; based on the determination, allowing or preventing, at the payment reader, processing of payment transactions while processing of the firmware update is ongoing.