Appearance
Payments
v0.1.0 Edulab| Module name | payments |
| Version | 0.1.0 |
| Needs | core only |
| Entities | 7 (list) |
| Roles | payments:admin, payments:finance, payments:viewer, payments:payer |
One payment gateway connection for the whole university: payment orders, online and offline payments, split settlement to college accounts, settlements, refunds and payment links. Every module that takes money uses it.
Who uses it
| Role | Can do |
|---|---|
payments:admin | Manage settlement accounts, payment links, refunds and every payment |
payments:finance | Reconcile payments, record offline payments, run split payouts and refunds, read settlements |
payments:viewer | Read payments, settlements and reports |
payments:payer | Pay online and see own payment orders and payments |
What it does
- Payment orders requested by other modules (fees, hostel, exam, …) through the Payments API; the payer is sent to the gateway and back to the module's page.
- Payments recorded once per gateway tracking id, online or offline, with the gateway's charges and the college share.
- Automatic order lookup: unfinished orders are checked with the gateway until they succeed or fail, so no paid order is lost.
- Split settlement of each payment to the college or university settlement account.
- Settlements (payouts with UTR) imported from the gateway for reconciliation.
- Gateway refunds, full or partial.
- Payment links sent by email or SMS for ad-hoc collections.
- Supported gateways: CCAvenue, Razorpay, PayU (one per university).
Needs
- Core: 1.x
- Modules: none
- Platform secrets: the gateway merchant id and keys for this university, set by the platform operator (never stored in module data or settings).
Setup after install
- Ask the platform operator to load the gateway credentials for this university.
- Choose the gateway in
provider; keeptestModeon until a test payment succeeds. - Add settlement accounts (gateway sub-account codes) for the university and colleges; set
defaultSettlementAccount. - Set
splitSettlement,orderLookupAfterMinutesandorderLookupMaxAttempts. - Give finance staff
payments:financeorpayments:viewer.
Settings
| Setting | Default | Meaning |
|---|---|---|
| Payment gateway | CCAvenue | Gateway used for online payments |
| Use the gateway's test environment | No | Sends orders to the gateway sandbox |
| Split each payment to college settlement accounts | Yes | Runs split payouts after each payment |
| Settlement account code used when none is given | (empty) | Fallback settlement account |
| Check an unfinished order with the gateway after (minutes) | 30 | Delay before the first status lookup |
| Times to check an unfinished order | 5 | Lookups before the order is marked failed |
| Minutes before an unpaid order expires | 60 | Order expiry |
| Email the payer a payment confirmation | No | Payments' own confirmation email (modules usually send their own) |
| Allow finance staff to record offline payments | Yes | Counter payments |
| Currency | INR | Currency |
Events
| Emits | When | Payload |
|---|---|---|
payments.payment.received | A payment succeeded (online callback, order lookup, or offline entry), once per tracking id | order, payment, requested_by_module, purpose, reference, reference_items, student, amount (paise), mode, provider, paid_at |
payments.payment.failed | An order failed, was aborted, timed out or expired | order, requested_by_module, purpose, reference, student, status |
payments.refund.completed | A gateway refund is confirmed | refund, payment, requested_by_module, reference, amount |
payments.settlement.received | A gateway settlement (payout) is imported | settlement, settlement_account, amount, settlement_date |
| Listens to | Does |
|---|---|
| (none) | Other modules call the Payments API: createOrder, recordOfflinePayment, requestRefund |
Personal data
Fields marked pii: payer name, email, phone (payment order, payment), billing address (payment), customer name, email, phone (payment link). Card numbers are never stored; the gateway handles card data.
Support
Published by Edulab. Report problems through the Edulab support desk of your platform; include the site, the order number and the gateway tracking id.