Feature #3898
closedSetup Environment (FastAPI + DB + Simulated Zelle Partner)
Added by Yogeesh sai 3 months ago. Updated 15 days ago.
Description
We need to set up the core environment to build and test the Zelle Payment feature for the Evergreen project.Before doing for the Evergreen project I am doing for redmine website as a sample and This is the setup I should include:
1.FastAPI service for payment orchestration (send, receive, reversal).
2.Database (PostgreSQL) schema to store transactions, reconciliations, and audit logs.
3.Simulated Zelle Partner API (sandbox mock) to test request/response workflows for send, receive, and reversal flows.
4.Observability hooks (basic logging + transaction IDs).
Files
| .env (0 Bytes) .env | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| chase-simulate.js (2.15 KB) chase-simulate.js | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| package.json (598 Bytes) package.json | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| plaidsimulate.js (2.59 KB) plaidsimulate.js | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| package-lock.json (67.5 KB) package-lock.json | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| server.js (824 Bytes) server.js | Yogeesh sai, 09/18/2025 10:28 AM | Delete | |
| server.js (4.43 KB) server.js | Yogeesh sai, 09/25/2025 09:53 AM | Delete | |
| package.json (97 Bytes) package.json | Yogeesh sai, 09/25/2025 09:53 AM | Delete |
Subtasks
Related issues
Updated by Sreenivas Pisupati 3 months ago
Make this as feature.This is not a bug. We need to develop the features for Zelle payment systems and in the process of testing this application, if we encounter any issues, they can be logged as bugs.
'Setup Environment' is a feature. Also, please clearly mention the various steps in this environment setup like payments-api,DB, simulated zeller partner etc. Esimate the realistic effort.
<Sreeni> - Yogesh : Please walk through this to the team. (the flow from the payment orchestration to bank client-sending the key to Webhook receiver to update payment record. Pplease prepare a small ppt and expalin to your team members.
Updated by Yogeesh sai 3 months ago
- Assignee set to Yogeesh sai
Installing Python and Installing VS Code / Cursor and Installing the required libraries
Updated by Yogeesh sai 3 months ago
- Tracker changed from Bug to Feature
- Subject changed from Setup Environment to Setup Environment (FastAPI + DB + Simulated Zelle Partner)
- Description updated (diff)
- Due date set to 09/18/2025
- Priority changed from Normal to High
- Start date changed from 09/12/2025 to 09/15/2025
- Estimated time changed from 8:00 h to 24:00 h
Project Structure
payment-system/
├── app/ # Core application code
│ ├── init.py
│ ├── main.py # FastAPI entrypoint
│ ├── routers/ # API routes grouped by domain
│ │ ├── payments.py # Payment endpoints (send, receive, reversal)
│ ├── db.py # DB connection (SQLAlchemy, asyncpg, etc.)
│ ├── models.py # SQLAlchemy models / Pydantic schemas
│
├── mock_zelle/ # Mock Zelle partner server
│ ├── init.py
│ └── mock_server.py # Endpoints: initiate, receive, reversal
│
├── docker-compose.yml # Containers for FastAPI, DB, Mock Zelle
└── requirements.txt # Python dependencies
1. Separation of Concerns:
app/ handles main service logic.
mock_zelle/ cleanly isolates the simulated Zelle partner.
2.Scalable API Design
routers/ lets you add more modules later (e.g., users.py, reconciliation.py).
main.py can include app.include_router(...) calls.
3.Database Layer
db.py centralizes DB connection setup.
models.py holds ORM models + Pydantic schemas (clean separation).
4.Deployment Ready
docker-compose.yml can run FastAPI + PostgreSQL + Mock Zelle API in containers.
requirements.txt makes environment reproducible.
5.Mock Partner for Testing
mock_server.py simulates Zelle’s APIs → avoids compliance issues while testing.
Estimated Time Breakdown (16–24 Hours Total)
1.FastAPI Service Setup (5–6 hours)
Create base FastAPI app.
Define endpoints for send_payment, receive_payment, and reversal.
Add request/response models with Pydantic.
Test locally with uvicorn.
2.Database Schema (4–6 hours)
Setup PostgreSQL connection.
Define schema: payments, reconciliations, audit_logs.
Create migrations (Alembic).
Test read/write transactions.
3.Simulated Zelle Partner API (5–6 hours)
Create mock server (FastAPI or Flask).
Expose endpoints /initiate, /receive, /reversal.
Handle request/response with realistic delays.
Add logging for partner calls.
4.Integration & Testing (2–4 hours)
Connect FastAPI → DB → Simulated Zelle partner.
End-to-end flow: Initiate → Confirm → Reversal.
Verify logs and reconciliation records.
Updated by Yogeesh sai 3 months ago
- % Done changed from 0 to 40
--------------------
| Customer Checkout |--------------------
|
v-----------------------------
| POS Generates: |
| - Amount |
| - Zelle Recipient (email) |
| - Unique Ref Code (e.g. TX1234) |-----------------------------
|
v-------------------------------------
| Display Payment Instructions to User |-------------------------------------
|
v------------------------------------
| Customer Sends Payment via Zelle |
| - To your email/phone |
| - Includes TX1234 in memo (optional) |------------------------------------
|
v-----------------------------
| Wait for Plaid to Poll Bank |
| (every 15–60 seconds) |-----------------------------
|
v-----------------------------------------
| Plaid Receives New Bank Transactions |
| - Looks for Incoming Credits |
| - Filters by: |
| • Amount |
| • Time Window |
| • Description contains "Zelle" and TX1234 |-----------------------------------------
|
------+
| |
v v---------------------- -----------------------
| ✅ Match Found | | ❌ No Match Yet |---------------------- -----------------------
| - Mark POS as Paid | | - Keep Polling (timeout)|
| - Print receipt | | - Notify cashier |---------------------- -----------------------
Updated by Yogeesh sai 3 months ago
- File .env .env added
- File chase-simulate.js chase-simulate.js added
- File package.json package.json added
- File package-lock.json package-lock.json added
- File plaidsimulate.js plaidsimulate.js added
- File server.js server.js added
Customer → Sends Zelle Payment (Chase/Zelle)
↓
Chase Account → Transaction Created
↓ (Webhook)
Plaid → Detects Transaction + Notifies Your Server
↓
Backend → Match Ref Code / Amount
↓
Order System → Mark as Paid
Updated by Yogeesh sai 2 months ago
- File server.js server.js added
- File package.json package.json added
- Due date changed from 09/18/2025 to 09/24/2025
- % Done changed from 40 to 100
The Estimated time was exceeded because of the errors it was delayed