Overview

Enterprise-grade Payment Requisition System (PRS) for managing payment requisitions with multi-tier approvals, budgets, vendors, purchase orders, and cash advance settlements. Built with decoupled architecture using Laravel 12 backend API and Next.js 16 frontend, fully orchestrated via Docker. Features real-time SSE updates, 3-way matching, batch payments, RBAC, audit logging, and S3-compatible MinIO storage.

The Problem

Organizations struggle with fragmented payment requisition processes across spreadsheets, emails, and manual approvals — leading to delayed payments, budget overruns, fraud risks, and poor audit trails. Finance teams lack real-time visibility into pending requisitions, budget utilization, and vendor performance. There is no unified system that integrates requisition creation, multi-tier approvals, budget tracking, vendor management, and 3-way matching in a single platform with proper RBAC and compliance logging.

The Solution

Finance-Requester is an enterprise-grade Payment Requisition System built with Laravel 12 backend API and Next.js 16 frontend, fully orchestrated via Docker. It provides end-to-end requisition management with configurable multi-tier approval workflows (L1, L2, L3), real-time budget tracking per department, vendor registry with bank account management, purchase order creation with 3-way matching (PO/Invoice/Receipt), batch payment processing, and immutable audit logging. Real-time updates via Server-Sent Events keep all stakeholders synchronized.

Key Features

Multi-tier Approval Workflows

Configurable approval thresholds (L1 Manager, L2 Senior Manager, L3 Finance Director) with automatic routing based on requisition amount. Each approval tier has role-based permissions and can approve, reject, or request revisions.

Real-time Server-Sent Events

Custom SSE pool implementation provides live status updates across all connected clients. Requisition status changes, approval actions, and budget updates propagate instantly without polling.

Budget Tracking & Monitoring

Department-level budget allocation and real-time utilization tracking. Dashboard shows budget consumption, pending commitments, and overspending alerts. Monthly/quarterly budget reports with drill-down capability.

Vendor & Purchase Order Management

Complete vendor lifecycle management with bank account validation and conflict of interest declarations. PO creation with 3-way matching (Purchase Order ↔ Invoice ↔ Goods Receipt) before final payment approval.

Batch Payment Processing

Group approved requisitions into payment batches for bank transfer optimization. Export batch files in standard formats (NACHA, SEPA, CSV) for direct bank upload.

Audit Trail & Compliance

Immutable append-only audit logs with cryptographic integrity verification. Every action traced to user, timestamp, and IP address. Export audit reports for compliance reviews and external audits.

Architecture

Backend: Laravel 12 with Sanctum token-based authentication, custom SSE pool for real-time updates, Redis for caching and queue management, PostgreSQL 16 for relational data. Frontend: Next.js 16 App Router with React 19, Zustand for state management, TanStack React Query for server state, Tailwind CSS v4 with Radix UI primitives. Infrastructure: Docker Compose orchestration with NGINX reverse proxy, MinIO for S3-compatible object storage, MailHog for email testing. All services communicate via internal Docker network.

How to Use

Clone the repository and set up environment variables (.env files for root, backend, frontend). Run docker-compose up -d --build to start all services (Laravel API, Next.js frontend, PostgreSQL, Redis, MinIO, MailHog, NGINX). Initialize the backend with composer install, php artisan key:generate, and php artisan migrate --seed. Access the frontend at localhost:3001, API at localhost/api/v1, MinIO console at localhost:9001, and MailHog at localhost:8026 for email testing.

Impact & Results

Provides organizations with Fortune 500-level payment requisition capabilities at zero licensing cost through open-source architecture. Docker orchestration ensures consistent deployment across development, staging, and production environments. The SSE real-time update system eliminates the need for constant page refreshes, improving user experience. 3-way matching prevents duplicate payments and fraud. MinIO S3-compatible storage keeps document storage costs minimal while maintaining AWS S3 compatibility for future migration. Comprehensive audit trails ensure compliance with financial regulations.