PayProof 💳

Full-Stack Manual Payment Verification System with Admin Dashboard & Google Sheets Integration

Client Project | 2026

Overview

PayProof is a full-stack payment verification platform built for a client that handles manual bank transfer confirmations. Customers fill out a multi-step payment form, receive a unique reference ID, and upload a screenshot of their bank transfer as proof of payment.

Admins then review each submission through a dedicated dashboard — they can inspect the uploaded screenshot, verify the reference ID, and either approve or reject the payment. Approved payments are automatically synced to a connected Google Spreadsheet for record-keeping.

Problem Statement

The client needed a structured way to manage manual bank transfer payments from customers, which previously involved:

  • No standardized reference system — payments were hard to match to customers
  • Screenshot proofs sent over informal channels (WhatsApp, email) with no central tracking
  • Manual copy-pasting into spreadsheets after every approval
  • No visibility into how much had been received or was pending per bank account

How It Works

Customer Flow

The customer fills in their name, email, and payment amount, then selects from available bank accounts filtered by their chosen currency. They are assigned a unique 8-digit reference ID which they must include in their bank transfer remarks. After making the payment, they upload a screenshot through the form and submit.

Admin Verification Flow

Admins log into the dashboard and see all incoming submissions with their status — pending, approved, or rejected. They can open a submission to view the customer details, the uploaded screenshot stored on Cloudinary, and decide to approve or reject it. On approval, the customer record is automatically pushed to the configured Google Spreadsheet.

Key Features

  • Multi-step payment form with a unique reference ID generated per customer
  • Screenshot upload with cloud storage via Cloudinary
  • Admin dashboard with approve / reject workflow
  • Automatic Google Sheets sync on payment approval
  • Per-bank received and pending amount tracking
  • Multi-admin system — create, edit, and delete admin accounts
  • Configurable bank accounts — add, edit, and remove banks from the admin panel
  • JWT-based admin authentication

Tech Stack

Next.jsNode.jsExpress.jsMongoDBGoogle Sheets APICloudinaryJWT AuthREST APIs

System Architecture

PayProof follows a modular client-server architecture:

  • Frontend: Next.js web application serving both the customer payment form and admin dashboard
  • Backend: Node.js + Express.js REST API handling submissions, authentication, and bank management
  • Database: MongoDB for storing submissions, bank accounts, and admin users
  • Storage: Cloudinary for secure screenshot uploads
  • Integration: Google Sheets API for automated record logging on approval

Impact

PayProof replaced an entirely manual, error-prone process with a structured end-to-end workflow. The client gained full visibility over incoming payments, eliminated spreadsheet copy-paste work, and reduced payment-matching errors through the reference ID system.

Live Demo