| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2199 |
| Technical Name |
rteam_tg_invoice |
| License | LGPL-3 |
| Website | https://rteam.agency |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 2199 |
| Technical Name |
rteam_tg_invoice |
| License | LGPL-3 |
| Website | https://rteam.agency |
One-tap Vendor Bill approvals in Telegram
Stop chasing your CFO with "please validate BILL/2026/0123". Above-threshold Vendor Bills fire an inline Telegram message with Approve / Reject / View-in-Odoo buttons. One tap and the bill posts in Odoo. Chatter records who approved and when.
No VPN. No Odoo login on a phone. Sign-off before money leaves the company.
What the approver sees
A short message arrives in Telegram with the bill summary (vendor, amount, line count, reference) and three buttons. Approve flips the move to posted in Odoo. Reject keeps it in draft and posts a chatter note. View in Odoo deep-links to the bill form.
After a tap the buttons collapse into a status line ("Approved by Anna at 14:32") so the same message cannot be tapped twice and the chat history reads as an audit trail your finance auditor can actually use.
Setup in three clicks
Install rteam_tg_auth first
This module sits on top of the Telegram 2FA + Approvals core. Configure the bot once there (60 seconds via @BotFather).
Bind your approver to Telegram
The approver opens My Preferences -> Telegram 2FA, clicks Bind Telegram, taps the deep link, presses Send. Bot replies "Bound to <login>".
Set Threshold + Default approver
Settings -> Telegram -> Vendor Bill Approvals. Pick a threshold amount and the approver. Done. Next post of an above-threshold bill routes through Telegram automatically.
SCOPE Vendor Bills only, by design
Only Vendor Bills (account.move with
move_type='in_invoice') are gated. Customer Invoices,
Vendor Refunds and Customer Refunds post normally. Most companies
only want approval on inbound spend, so we don't make you toggle
scope to get a sane default.
Self-approve is blocked: when requester == approver the bill posts without a Telegram detour, and the chatter explains why (no silent skips, no surprised users).
SAFE Hard to misuse
- Re-posting a bill that already has an open Telegram request raises a clear error rather than spawning a duplicate message.
- Each inline button carries an HMAC-signed callback. An attacker who learns a request id alone cannot forge a tap without the per-instance webhook secret.
- The bot token never leaves your database. Telegram talks directly to your Odoo URL, no Rteam-hosted relay.
- Approver reopens the bill in Odoo? The header shows a "View Telegram approval" button so they can see exactly which TG message is in flight.
- Stale requests auto-expire on a 30-minute cron with a chatter note on the source bill â re-post the bill to get a fresh request out.
Part of a planned family
This module is one of several source-model glues on top of rteam_tg_auth. The same approval ledger powers the Purchase Orders glue (already live), and Time Off + Expenses are next on the roadmap.
Building your own integration is one method on the source model:
on_rteam_tg_approval_resolved(request, new_state).
See github.com/RteamAgency/rteam-tg-invoice
for the working pattern.
Other Rteam apps
We ship a small family of focused free Odoo apps. If this one helped, you may also like:
Telegram 2FA + Approvals (core) · PO Approvals via Telegram · Odoo Health Check · Prozorro Connector · FSM + Repair
Maintained by Rteam · Issues + roadmap on GitHub · Support: alex@rteam.top
Please log in to comment on this module