If you're a sole proprietor who fills in the same bank documents every month — this is for you.
Finpipe is a Telegram bot that handles the paperwork around salary payments. When the bank sends a notification, the bot finds it in Gmail, extracts the amount, fills in three signed documents, and sends them to your chat. You can run the whole thing from your phone.
One command covers the full payment cycle:
- Finds the bank's email in Gmail
- Extracts the amount from the PDF attachment
- Generates Bank Confirmation, Conversion Order, and Salary Invoice — all signed
- Sends the documents to Telegram
- Offers to reply to the bank with the documents attached
No laptop needed.
| Document | Description |
|---|---|
| Salary Invoice | Payment invoice with profile data and signature |
| Bank Confirmation | Signed confirmation for the bank |
| Conversion Order | Signed currency conversion request |
- OAuth authorization
- Searches incoming bank emails
- Sends replies with attachments via Gmail API
- Notifies you in chat if the token expires and reconnection is needed
- Manage company profile and bank details
- Upload and store your signature (encrypted at rest)
- Generate documents from chat
- Monitoring chat for critical alerts
- Python 3.14, Poetry
- PostgreSQL + SQLAlchemy + Alembic
- Telegram Bot API (polling)
- Gmail API (OAuth 2.0)
- Docker Compose
poetry install
cp .env.dist .env
# fill in .env
./scripts/setup_database.sh
poetry run python src/integrations/telegram/bot.pyFor Gmail OAuth (local development):
./scripts/start_local_oauth_stack.sh# Main stack
docker compose up -d
# Local (with exposed ports)
docker compose -f docker-compose.yml -f docker-compose.local.yml up -d
# Monitoring stack
docker compose -f monitoring.compose.yml up -d| Topic | File |
|---|---|
| Development & debugging | docs/development.md |
| Gmail OAuth | docs/oauth.md |
| Storage | docs/storage.md |
| Monitoring | docs/monitoring.md |