Payment Flow
How reminders, confirmations, and admin verification work.
Payment Flow
SubsTrack automates reminders and tracks who has paid. Here’s the full flow.
Overview
- Billing period — Created automatically (or manually) for each month.
- Reminders — Sent by email (and optionally Telegram) to members who haven’t paid.
- Member confirms — Member clicks “I’ve paid” in the email or Telegram.
- Admin verifies — You confirm the payment in the dashboard or in Telegram.
- Done — Status is set to confirmed; no more reminders for that period.
Billing periods
- One billing period per group per month (or per cycle).
- Each period has a total price and a payment entry per member with:
- Amount they owe
- Status:
pending→member_confirmed→confirmed(oroverdue/waived)
Periods are created automatically by a cron job after the group’s billing day. You can also create or edit periods manually for variable billing.
Reminders
- When — After the grace period (e.g. 3 days) following the billing day. Exact time depends on the server’s cron schedule (e.g. daily at 10:00).
- Who — Only members with status pending or overdue.
- Channels — Email always (if the member has an email). Telegram if they’ve linked their account and have Telegram enabled.
The reminder includes:
- Group name and period (e.g. “March 2026”)
- Amount they owe
- Your payment link
- Button or link: “I’ve paid”
Confirming payment (member)
Two ways:
- Email — Click the “I’ve paid” link in the reminder. The link is unique and expires after a few days.
- Telegram — Tap the “I’ve paid” button under the reminder message.
After that, their status becomes member_confirmed. They may see a message like “Waiting for admin verification.”
Verifying payment (admin)
When a member confirms, you get a notification (email and/or Telegram) with something like: “Alice says they paid 3 € for YouTube Premium — March 2026.”
You can then:
- Dashboard — Open the group → Billing / History → find the period and member → Confirm or Reject.
- Telegram — Use the Confirm / Reject buttons in the bot message.
- Confirm — Status becomes confirmed. No more reminders for that payment.
- Reject — Status goes back to pending; they’ll get reminders again.
Only you (the admin) can confirm; members cannot confirm for each other.
Statuses
| Status | Meaning |
|---|---|
| pending | Not paid yet; will receive reminders. |
| member_confirmed | Member said they paid; waiting for your verification. |
| confirmed | You verified the payment. Done. |
| overdue | Still not paid after a long time (e.g. 14+ days); reminders continue. |
| waived | You waived this member’s payment for this period. |
Follow-up reminders
A separate job can send follow-up reminders (e.g. every 3 days) to members who are still pending, and nudge you when there are payments in member_confirmed waiting for your verification.
Summary
- Reminders are automatic; members get email (and optionally Telegram).
- Members confirm with one click; you verify in the app or Telegram.
- Until you confirm, they stay in “member_confirmed” and you may get nudges to verify.