TPAP Module - Third Party Application Providers

Overview

The TPAP (Third Party Application Provider) module contains consumer-facing UPI applications that provide payment interfaces to end users. These applications are sponsored by PSP banks and facilitate digital payments through user-friendly interfaces.

Applications

1. BazzarPe (Port: 6001)

  • Sponsor PSP: Paisa Vasool Bank

  • PSP URL: http://paisa-vasool-bank-service:3000/api/v1

  • Focus: Merchant payments & marketplace solutions

  • VPA Suffix: @pvb

2. ChillarPay (Port: 6002)

  • Sponsor PSP: Chinta Mat Karo Bank

  • PSP URL: http://chinta-mat-karo-service:3000/api/v1

  • Focus: P2P transfers & micro-payments

  • VPA Suffix: @cmk

Architecture

Technology Stack

  • Runtime: Bun

  • Framework: Express.js + TypeScript

  • Database: PostgreSQL with Prisma ORM

  • Integration: REST API calls to sponsor PSP

Service Dependencies

  • Dedicated PostgreSQL database

  • Sponsor PSP bank service

  • Docker containerization

API Endpoints

Both TPAP applications implement similar REST API structures:

User Management

Create User

Response:

Account Management

Add Bank Account

Response:

Transaction Management

Get All Transactions

Response:

Send Money (Push Transaction)

Response:

Data Models

User Model

Account Model

Transaction Model

Database Configuration

Each TPAP has its own PostgreSQL database:

BazzarPe Database

  • Host: bazzar-pe-db

  • Database: bazzar_pe_db

  • User: bazzar_pe_user

  • Password: bazzar_pe_password

ChillarPay Database

  • Host: chillar-pay-db

  • Database: chillar_pay_db

  • User: chillar_pay_user

  • Password: chillar_pay_password

Environment Variables

VPA (Virtual Payment Address) System

VPA Format

  • BazzarPe: {phone_number}@pvb

  • ChillarPay: {phone_number}@cmk

VPA Resolution

TPAPs resolve VPAs to bank account details through their sponsor PSP banks.

Payment Flow

UPI Transaction Process

  1. User Initiation: User enters recipient VPA and amount

  2. Account Verification: TPAP verifies user's linked bank account

  3. PSP Communication: TPAP sends transaction request to sponsor PSP

  4. NTH Routing: PSP routes transaction through NTH

  5. Destination Processing: Destination PSP processes the transaction

  6. Status Update: Transaction status propagated back to TPAP

  7. User Notification: TPAP notifies user of transaction completion

Transaction States

  • INITIATED: Transaction request received

  • PENDING: Being processed through payment network

  • COMPLETE: Successfully completed

  • FAILED: Transaction failed

Integration with PSP Banks

API Communication

TPAPs communicate with sponsor PSPs using REST APIs:

Account Verification

Transaction Processing

Development Setup

Individual TPAP Development

  1. Navigate to TPAP directory:

  1. Install dependencies:

  1. Set up environment:

  1. Run database migrations:

  1. Start development server:

Docker Development

Start specific TPAP service:

View logs:

Testing

Each TPAP includes test suites:

Security Features

Input Validation

  • Phone number format validation

  • Email format validation

  • Amount range validation

  • VPA format validation

Transaction Security

  • Duplicate transaction prevention

  • Rate limiting

  • Request sanitization

  • Secure headers

Authentication

  • User session management

  • API key validation

  • Request signing

Error Handling

Standardized error responses:

Common Error Codes

  • INVALID_VPA: Invalid Virtual Payment Address

  • INSUFFICIENT_BALANCE: Insufficient account balance

  • TRANSACTION_FAILED: Transaction processing failed

  • USER_NOT_FOUND: User account not found

  • ACCOUNT_NOT_LINKED: No linked bank account

Monitoring & Analytics

Transaction Metrics

  • Daily transaction volume

  • Success/failure rates

  • Average transaction amount

  • User engagement metrics

Performance Monitoring

  • API response times

  • Database query performance

  • Error rates

  • System resource usage

User Experience Features

Real-time Updates

  • Transaction status notifications

  • Balance updates

  • Payment confirmations

Transaction History

  • Chronological transaction list

  • Search and filter capabilities

  • Export functionality

Account Management

  • Multiple bank account linking

  • Account balance display

  • Profile management

Last updated