PRODUCT REQUIREMENTS DOCUMENT (PRD)

Product: EastPay v2 - AI-Driven Currency Exchange
Version: 2.0
Last Updated: January 2026

1. Product Overview

1.1 Problem Statement

Currency exchange in Southeast Asia, UAE, and Russia is fragmented:

1.2 Solution

EastPay v2 provides a unified platform where:

1.3 Target Users

User Type Description Primary Goals
Client Individual needing currency exchange Fast, reliable exchange with clear rates
Operator Staff processing deals Efficiently approve/reject orders
City Manager Regional supervisor Manage local rates and cash flow
Admin System administrator Full control, analytics, user management

2. User Roles & Permissions

2.1 Client (Telegram User)

Capabilities:

Restrictions:

2.2 Operator

Capabilities:

Restrictions:

2.3 City Manager

Capabilities:

Restrictions:

2.4 Admin

Capabilities:

3. Order Lifecycle

3.1 Order Statuses

┌─────────┐    ┌────────────┐    ┌────────────┐    ┌──────────┐    ┌──────┐
│   NEW   │───>│ CALCULATED │───>│ PROCESSING │───>│ PAYMENT  │───>│ DONE │
└─────────┘    └────────────┘    └────────────┘    └──────────┘    └──────┘
     │              │                  │                │
     │              │                  │                │
     ▼              ▼                  ▼                ▼
┌─────────┐    ┌──────────┐      ┌──────────┐     ┌──────────┐
│ EXPIRED │    │ REJECTED │      │ CANCELLED│     │  FAILED  │
└─────────┘    └──────────┘      └──────────┘     └──────────┘

3.2 Status Definitions

Status Description Triggered By Next Actions
new Order just created Client submission Calculate rate
calculated Rate calculated, awaiting confirmation System Client confirms or expires
processing Operator is handling Client confirmation Payment or cancellation
payment Awaiting payment proof Operator action Client uploads receipt
done Successfully completed Operator confirmation Archive
expired No action within timeout System (24h) Auto-close
rejected Failed KYC or limits Operator/System Notify client
cancelled Client cancelled Client action Refund if applicable
failed Technical/payment failure System Investigation

3.3 Status Transitions Rules

From To Allowed By Conditions
new calculated System Rate lookup successful
new expired System 24h timeout
calculated processing Client Clicks "Confirm"
calculated expired System 1h timeout
processing payment Operator Details sent to client
processing cancelled Client/Operator Request cancellation
payment done Operator Payment verified
payment failed Operator Payment issue

4. KYC Requirements

4.1 KYC Levels

Level Requirements Daily Limit Monthly Limit
Level 0 (Guest) Phone number $100 $500
Level 1 (Basic) + Full name, Photo $1,000 $5,000
Level 2 (Verified) + ID document scan $10,000 $50,000
Level 3 (Premium) + Video verification $50,000 Unlimited

4.2 Required Documents

Level 1:

Level 2:

Level 3:

4.3 KYC Verification Flow

  1. Client initiates exchange
  2. System checks current KYC level
  3. If order amount > level limit:
    • Prompt for additional documents
    • Hold order until verified
  4. Operator/System verifies documents
  5. KYC level upgraded
  6. Order continues

5. Notification System

5.1 Client Notifications (via Telegram)

Event Message Type Timing
Order created Confirmation Immediate
Rate calculated Rate details Immediate
Order approved Payment instructions Immediate
Payment received Confirmation Immediate
Order completed Thank you + receipt Immediate
Order expired Reminder At expiry
Promotion Marketing Scheduled

5.2 Operator Notifications

Event Channel Priority
New order Admin Panel + Sound High
High-value order Admin Panel + Telegram Critical
KYC pending Admin Panel Medium
Order stuck > 1h Telegram alert High

6. Business Rules

6.1 Rate Calculation Rules

  1. Base rate comes from market_rates table (external feed)
  2. Cost price = Base rate + partner commission (from instruments)
  3. Selling rate = Cost price + our margin (from rates matrix)
  4. Client sees only selling rate
  5. Profit = (Selling rate - Cost price) * amount

6.2 Order Amount Rules

6.3 Operating Hours

7. Communication Scripts

7.1 Tone of Voice

7.2 Message Templates

Order Created:

Your exchange request has been received.

Amount: {give_amount} {give_currency}
You receive: {receive_amount} {receive_currency}
Rate: {rate}

An operator will contact you shortly.
Order ID: {order_id}

Rate Quote:

Current rate for {city}:
{give_currency} -> {receive_currency}

Rate: {rate}
Valid for: 15 minutes

Reply "CONFIRM" to proceed.

Order Completed:

Your exchange is complete!

Exchanged: {give_amount} {give_currency}
Received: {receive_amount} {receive_currency}

Thank you for using EastPay!

8. Analytics Requirements

8.1 Dashboards Needed

Admin Dashboard:

City Manager Dashboard:

Operator Dashboard:

9. Integration Points

System Direction Data
Typebot -> Supabase New orders, client data
Supabase -> Admin Panel Orders, rates, users
n8n <-> Supabase Calculations, notifications
n8n -> Telegram Client notifications
External Rate API -> Supabase Market rates

10. Non-Functional Requirements

10.1 Performance

10.2 Availability

10.3 Security