Logo Lanfrica

ermiyasbeshaw/Recco-ET

Domain:

digital infrastructure

Record type:

software
Creator:
erm
Host:
Automated B2B payment verification & real-time reconciliation platform for Ethiopian merchants. Integrates Telebirr, CBE Birr, Chapa, and SantimPay with instant Telegram cashier alerts and daily ledger exports. # Recco ET B2B Payment Verification & Reconciliation SaaS for the Ethiopian market. Connects Telebirr, CBE Birr, Chapa, and SantimPay to merchants — verifies transactions in real time (anti fake-SMS/screenshot fraud), auto-reconciles daily sales at 18:00 Africa/Addis_Ababa, and alerts cashiers via Telegram. ## Architecture ``` / ├── apps/ │ ├── api/ # FastAPI backend (asyncpg, Redis, Celery, Alembic) │ ├── web/ # Next.js merchant dashboard │ └── telegram_bot/ # Cashier alert bot (/check TX_ID) ├── nginx/ # Reverse proxy + rate limits ├── docker-compose.yml └── README.md ``` ## Stack | Layer | Technology | |-------|------------| | API | FastAPI + SQLAlchemy 2 (async) + Alembic | | DB | PostgreSQL 16 | | Cache / Queue | Redis 7 + Celery | | Dashboard | Next.js (App Router) + TypeScript + Tailwind | | Alerts | python-telegram-bot | | Proxy | NGINX | ## Quick start ```bash # 1. Copy the sandbox env (mock gateway credentials, safe to run locally) cp .env.sandbox .env # 2. Start the stack docker compose up --build # Services # API docs (debug): localhost # Dashboard: localhost # Telegram bot: docker compose --profile telegram up # NGINX proxy: docker compose --profile proxy up ``` Host ports are configurable (`POSTGRES_HOST_PORT`, `REDIS_HOST_PORT`, `API_HOST_PORT`, `WEB_HOST_PORT`, `NGINX_HOST_PORT`) so the stack can coexist with other local projects. Set `TELEGRAM_BOT_TOKEN` before the bot is useful. ### Dashboard outside Docker ```bash cd apps/web npm install cp .env.example .env.local # then fill in the two values npm run dev ``` `.env.local` needs the API base URL and the merchant to display: | Variable | Notes | |----------|-------| | `RECCO_API_URL` | Backend base URL, e.g. `localhost` — match `API_HOST_PORT` | | `RECCO_MERCHANT_ID` | Any merchant `id`; stands in for the session until auth lands | Create a merchant to point i …

Languages