The Problem:
Every freelancer or agency has encountered the following scenario at some point:
- Client says: "I've paid"
- You ask for proof of payment
- Client sends a random screenshot
- You scroll through your chat logs trying to find a match for a project
- Your spreadsheet is outdated and useless
- Your team has no idea what's been paid and what has not been paid
It gets messy real quick.
And it's not just about money... it's about trust, verification, and visibility among your team members.
What I Built
I built ProofPay API. It is a lightweight backend for payment tracking and proof verification.
It allows you to:
- Track payments from your clients
- Upload and verify payment proofs
- Manage projects and track the status of payments
- Provide teams with a unified overview of what is paid and what is pending
Instead of using chats and spreadsheets to keep track of everything, everything is now in one system.
What It Does
- Authentication: User Registration & Login, JWT-based authentication
- Projects: Create client projects, Add payments to projects & Project status tracking
- Payments: Record payments per project, Add proof to payments (image, file, reference), Mark payments as (pending, verified, rejected)
- Team / Agencies: Multiple users under a single workspace, Visibility to all team members
- Dashboard: Overview of (total payments, pending proofs, verified transactions)
Example Flow:
So, here is an example of how it would work:
- Create a project
- Add a payment
- Client uploads proof
- You verify or reject it
- Dashboard updates automatically
No more guessing. No more “check WhatsApp”.
API Example
Here’s what a typical request looks like:
Create Payment:
POST /payments
Headers:
Authorization: Bearer <token>
Body:
{
"projectId": "123",
"amount": 50000,
"method": "bank_transfer",
"proofUrl": "https://..."
}
Tech Stack
- Backend: Node.js (Express / TypeScript)
- Database: Postgresql
- Auth: JWT
- Docs: Postman (auto-generated)
Docs
You can explore the full API here:
https://documenter.getpostman.com/view/43051527/2sBXijHWgD
Why I Built It This Way
I didn’t want to overcomplicate things.
- No heavy “fintech” system
- No unnecessary abstractions
Just:
- clear endpoints
- simple flows
- real-world usefulness
What This Doesn’t Do
- It’s not a payment processor (like Stripe)
- It doesn’t move money
- It focuses purely on tracking + verification
Is This Actually Useful?
Honestly:
- For solo freelancers: helps you stay organized
- For agencies: offers team-wide visibility
- For clients: adds accountability
It’s not trying to replace payment processors.
It does just one thing exceptionally well:
“Has this client actually paid?”
What Next
- Notifications for payment verification
- Improvements for reporting and exports
- Frontend dashboard (maybe 👀)
Feedback I Want
- Would you actually use this in your workflow?
- What’s missing for real-world usage?
- Does the API structure make sense?
Top comments (1)
api doc: here