Check the signed-in user
- What
- Payment submission requires authentication.
- Why
- Collection actions must be associated with an authorized account.
- How
- The API checks the user, active retailer record and PIN before processing the request.
EMI management and customer payment collection platform built from retail financial workflow analysis.
Offline device retailers face payment disputes, cash reconciliation delays, and customer account leakage when tracking installment payments manually.
Full-Stack Software Engineer (Sole Developer)
Customer-to-retailer ownership checks authorize payment collection requests.
TelePoint is an EMI management portal engineered after analyzing real-world offline smartphone financing friction: payment leakage, cash reconciliation delays, and customer account disputes. It structures collection workflows into authenticated, role-separated stages.
Modeled retailer-to-customer debt cycles, designed the verification state machine, and implemented customer ownership validation in Next.js and PostgreSQL.

PostgreSQL stores customer accounts, installment schedules and payment records. Customers are related to retailers, and installments belong to customers. Those relationships support account access checks and reporting.
customer_idretailer_iddevice_modeltotal_financedinstallment_countdue_datestatuspayment_methodPOST /api/payments/submit checks required fields, authentication, retailer status and customer ownership. It checks the selected installments before creating a payment request. Invalid or conflicting requests receive an error response.
End-to-end system lifecycle
Payment authorization · Customer ownership & installment verification. Excerpt from the repository source.
const { data: custOwner } = await svc
.from('customers')
.select('id, retailer_id')
.eq('id', customer_id)
.single();
if (!custOwner || custOwner.retailer_id !== retailer.id)
return NextResponse.json(
{ error: 'Customer does not belong to your account' },
{ status: 403 }
);The real sign-in screen is shown here. Customer and collection screens require an authorized account.
TypeScript · Next.js · PostgreSQL · Authentication · Role-based access · API development · Payment workflow handling · Reporting