Project

General

Profile

Edit Copy Actions

Feature #3898

closed

Setup Environment (FastAPI + DB + Simulated Zelle Partner)

Added by Yogeesh sai 3 months ago. Updated 15 days ago.

Status:
Closed
Priority:
High
Assignee:
Start date:
09/15/2025
Due date:
09/24/2025
% Done:

100%

Estimated time:
24:00 h
Spent time:

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

Add

Subtasks


Add

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

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

The Estimated time was exceeded because of the errors it was delayed

Actions #7

Updated by Yogeesh sai about 2 months ago

  • Status changed from New to Resolved
Actions #8

Updated by Yogeesh sai 15 days ago

  • Status changed from Resolved to Closed
Edit Copy Actions

Also available in: Atom PDF