badal.sahani

Writing

Notes from the fees engine.

Things I learned building and running a revenue system on Frappe/ERPNext. Written for the engineer who inherits one.

  1. Aug 2026 · 6 min

    The webhook is the only writer

    How we eliminated double-booked payments by making one code path authoritative — and demoting everything else to display.

  2. Aug 2026 · 5 min

    A settlement file is just an unposted Journal Entry

    Teaching ERPNext to read gateway settlement files and post its own accounting — split payouts, gateway charges, and all.

  3. Aug 2026 · 7 min

    A fees engine is a state machine, not a form

    What it takes to model real school fees on ERPNext: plans, instalments, deferrals, discounts that post to the GL, and links you can hand to a guest.