Skip to main content

BPDS

Ministry of ICT and National Guidance

Sign In
Documentation & Evaluator Guide

Beneficiary Payment
Distribution System

A secure platform for distributing government support funds to verified beneficiaries across Uganda: from intake and entitlement through disbursement, reconciliation, and compliance.

System Overview

BPDS manages the end-to-end distribution of government payments to registered beneficiaries. District officers register and verify beneficiaries, administrators review and approve payment batches, and the platform releases funds over mobile-money and bank rails while keeping a reconcilable ledger of every entitlement and every payment made. It is built for transparency: each record carries its own payment history, verification status, and outstanding balance.

Payment Distribution Workflow

Funds move through five stages, each with its own controls and audit points.

STEP 1

Intake & Registration

Beneficiary records are captured or imported per district, with National ID (NIN), location hierarchy (district, sub-county, parish, village), entitlement details, and bank or mobile-money destination. Records enter a verification queue before any funds move.

STEP 2

Ledger & Entitlement

Each beneficiary carries an entitlement ledger: unit price, amount claimed, previous payments, total paid, and outstanding balance. Every value is derived and stored so the running balance is always reconcilable against what has been disbursed.

STEP 3

Disbursement Rails

Approved payments are routed to the beneficiary destination over two rails: mobile money via the WENDY / PostBank integration, and direct bank transfer using the stored account details. Payments are batched, approved, then released.

STEP 4

Reconciliation

A reconciliation service matches released payments back to the ledger, updates outstanding balances, and flags mismatches (partial pays, failed transfers, duplicates) for review before a batch is closed.

STEP 5

AML & Compliance

Before release, payment batches pass anti-money-laundering checks: destination and identity screening, duplicate-account detection, and value-threshold monitoring. Flagged items are held for manual clearance and recorded in the audit trail.

Technology Stack

Next.js 16 + React 19

App Router, server components, and server actions for the full-stack application layer.

Tailwind CSS

Utility-first styling with a consistent design system and full light / dark theming.

PostgreSQL + Drizzle ORM

Typed schema and queries over a relational store for beneficiaries, payments, and audit records.

Auth.js (NextAuth)

Credential authentication with hashed passwords and role-scoped sessions.

Reconciliation Service

Matches disbursements against the entitlement ledger and surfaces exceptions for review.

Payment Rails

Mobile money via WENDY / PostBank and direct bank transfer for beneficiary payout.

Security Controls

Role-Based Access Control

Every session is scoped to a role (system administrator, district CAO, data entry officer). Access to beneficiary data and payment actions is enforced per role and, where relevant, per district.

Encryption In Transit & At Rest

All traffic is served over HTTPS / TLS. Data is stored in a PostgreSQL database on encrypted storage, with credentials hashed using bcrypt rather than kept in plain text.

Tamper-Evident Audit Logging

Sensitive actions (verification changes, approvals, disbursements) are written to an append-only audit trail so that any change to a record or a payment can be traced back to an actor and a time.

DPPA Alignment

Handling of personal data follows Uganda's Data Protection and Privacy Act: purpose-limited collection, restricted access, and retention tied to the payment programme.

Test Credentials

Use any of the accounts below to sign in and explore the platform. Each role sees a different slice of the system.

Demo accounts
System Administrator
admin@moict.go.ugpassword:Admin@123
District CAO (Kampala)
cao.kampala@moict.go.ugpassword:Admin@123
Data Entry Officer
data.entry@moict.go.ugpassword:Admin@123