2D Voucher Scanning

Supports voucher scanning use cases for Beneficiary Registration, Service Delivery and Bed Net verification use cases

Table of Contents


Target Audience

Objectives (of this release)

Assumptions and Validations

Process flow




This document describes the need and scope of including the 2D code scanning feature within V2.0, explaining the module’s features, specifications, purpose, and functionality. It also provides the descriptive view of the application along with the specification of each element.

Target Audience

This document is intended for the engineering and platform (tech teams), product management, and implementation teams to agree on requirements for the Health Campaign Management (HCM) Platform.

Objectives (of this release)

  1. Improve accessibility:

- By enabling actors to execute the registration and delivery process efficiently through the use of scanners.

  1. Enhance User Experience:

- Code scanning capability provides better user experience by auto populating the data, thus reducing the time and effort.

  1. Prevent duplication of records and monitor resources:

- Linking beneficiaries to their respective codes and reusing it while registering a new beneficiary or distributing resources.

- Monitoring the quantity of stock distributed by scanning the code available on the stock.

Assumptions and Validations

Sr. No.




Device used

The device is a smartphone with sufficient camera quality and flashlight to scan the code.


Linking beneficiary to voucher

  1. Registration vouchers are provided to beneficiaries during household registration/ individual registration, and act as a temporary ID for the campaign.

  2. The user scans and links the beneficiary to the voucher.


Scan QR to search beneficiary

The actors will use scanners frequently to search the beneficiary and deliver intervention.


Tracking resource delivery

The resource has a code provided on the packaging. The distributor must scan those codes while distributing resource to the beneficiary.

Process flow

High level requirements

  1. The HCM flutter mobile application must support an in-app 1D and 2D code scanner launched within the application to scan codes. The following use cases have been identified for implementation in various contexts.

  2. QR code scanning: Use case to scan registration or delivery vouchers to be used to redeem benefits (bed nets) by households.

    1. Registration vouchers are provided to beneficiaries during household registration/ individual registration and act as a temporary ID for the campaign.

    2. FLW teams can scan these vouchers to retrieve beneficiary data to provide a benefit or use for longitudinal tracking in a multi-round campaign.

  3. Bar codes and 2D Data matrix: Use case for supply chain (Global fund traceNet project) to track the individual bed net that is distributed to the household.

    1. Bar code or data matrix on the nets are linked to the delivery record created against the household to track which net was distributed (coupled with GPS and timestamp, this data verifies that the exact net was delivered to which beneficiary, when and where).

  4. The application must support scanning from live camera input and from existing images from gallery.

  5. The bar code module must support features like flashlight control (in case of low light settings).

  6. In case the code is not scannable, an option to skip or manually enter the barcode must be supported.

  7. Haptic feedback must be provided, either in the form of vibration or sound, upon successful scan for user’s understanding (Good to have).

  8. Toast message upon successful scan must be displayed.

  9. App must audit and log all the scanned barcodes and sync this data along with the HCM transaction created (possible changes to the API in case of use case #b above).

  10. The scanned code must be associated with the HCM app transaction calling the bar code function. For example:

    1. For registration voucher, the code scanned must be linked to the individual/household head as their temporary ID.

    2. For resource delivery verification, the scanned code must be linked to the service delivery transaction.

  11. Upon scanning a code, on the search household screen, the application must use the code scanned to search and retrieve details of beneficiaries.

  12. The scanner must enable batch scanning.

    1. Ability to assign multiple codes to one transaction.

    2. Use case: If the distributor needs to deliver 3 bed nets to a household, the scanner must be able so scan 3 bar codes or data matrixes and link to the delivery transaction.

    3. Scanner must be able to identify duplicate scans- If the user scans multiple items and repeats one, then the scanner must show a message that the item is already scanned.

    4. Scanner must take the “quantity distributed” for resources from the delivery intervention screen and allow the user to scan only x number of resources.- Validation.

  13. Support landscape and portrait orientations.

  14. The application must provide feedback or error messages if barcode scanning fails due to low lighting or camera issues.



Data type

Data validation

Required (Y/N)


Beneficiary List


Last registered beneficiary to be displayed first


The list of beneficiaries registered within the application.

Scan QR code (Search beneficiary)


  1. Search for a beneficiary by scanning the code

  2. User can also enter the code if the scanner does not work


Upon scanning the code, it opens the beneficiary card.

Scan QR code (Link beneficiary to voucher)


  1. Linking a beneficiary to the voucher code

  2. Can be entered manually as well


On individual details screen, the user links the beneficiary to a voucher code for reusing the data in future.

Scan QR code (Track the delivery resource)


  1. Scan the code available on the resource packaging.

  2. Can scan multiple codes at a time.

  3. Can be entered manually as well.


While delivering resources to the beneficiary, the distributor must scan the code for tracking the resources. It must scan multiple resources at a time.

The scan count must not exceed the quantity provided.


Find the mock-ups below:

HCM Home Screen

After logging into the application, the user lands on this screen which displays the daily performance (number of households registered). The progress bar must reset daily at 00:00 hours and start from 0 registrations. The action buttons related to the beneficiary include:

  • Beneficiaries

  • View Reports

  • Sync Data

  • Call Supervisor

  • File Complaint

At the bottom, there is a card that shows how many records are unsynced for the user’s convenience to sync data. If all the records are synced, then the card must say: “All records are synced”.

The help button is on every screen of the application. By clicking on it, a user can get a walkthrough of the elements on that screen.

On the top right, the administrative area assigned to the user is displayed which is based on the level of hierarchy. The hamburger button on the top left corner covers some other actions mentioned further.

Search Beneficiary Screen

On this screen, a user can search for a registered beneficiary or register a new one. There are multiple options included to search for a beneficiary: search by name, proximity, and scan a code. The metrics card shows the data for beneficiaries registered and the number of resources delivered, depending on the type of campaign.

Scan Code (Search Beneficiary)

Clicking on the scan button on the search household screen opens a scanner that allows a user to scan the voucher code provided to the beneficiary during registration. The user can also enter the code manually by clicking on the “Enter Beneficiary Code” button, if the device is unable to scan.

Based on the campaign type, the beneficiary card is opened with a set of actions for the scanned beneficiary. The user can close the scanner if needed by clicking on the close button.

Scan Code (Linking Beneficiary)

While creating a beneficiary, the user can link the beneficiary to the voucher card provided during registration by clicking on the “Link Voucher to Individual” button. If the scanner is not able to scan the code, the user can also enter the details manually. Screens for the scanner are same as that for search beneficiary.

On successful scanning, the toast message appears over the individual details screen and the voucher code is displayed. In case the scanned code does not match with the one mentioned in the voucher, the user can click on the edit button and rescan or re-enter the code. The previously scanned value must be overwritten by the latest one (No multiple scanning to be done).

Age Field

The age field must be displayed in months and years on the following screens: beneficiary table on search household screen, beneficiary details screen, and household card, for children below 1 year. On the individual details screen, the age field must have separate fields to capture in years and months. There must be a validation to restrict the user from entering months less than 12. It must show an error message (similar to that for years).

Scan Code (Track Delivery Resource)

While delivering any resource to the beneficiary, the user must scan the code provided on the packaging of the resource. The scanner must be able to identify duplicate scans and must not scan the same voucher multiple times. The user can perform multiple scans at a time, but the number must not exceed the value provided by the user in the “Quantity Distributed” field.

The scanner screen has an expandable card that provides the list of resources scanned. The card displays the count of resources scanned along with the identification number for each scanned resource. If one is unable to scan, the user can enter the codes manually, but after every code, he/she must click on the enter beneficiary code again and repeat the process. The user can remove any resource by the help of the delete button provided against each resource. Once scanned, the user must click on the submit button which brings him back to the deliver intervention screen. The toast message for successful scan is displayed on the screen.

Last updated