Skip to content

Payments ​

v0.1.0 Edulab
Module namepayments
Version0.1.0
Needscore only
Entities7 (list)
Rolespayments: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 ​

RoleCan do
payments:adminManage settlement accounts, payment links, refunds and every payment
payments:financeReconcile payments, record offline payments, run split payouts and refunds, read settlements
payments:viewerRead payments, settlements and reports
payments:payerPay 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 ​

  1. Ask the platform operator to load the gateway credentials for this university.
  2. Choose the gateway in provider; keep testMode on until a test payment succeeds.
  3. Add settlement accounts (gateway sub-account codes) for the university and colleges; set defaultSettlementAccount.
  4. Set splitSettlement, orderLookupAfterMinutes and orderLookupMaxAttempts.
  5. Give finance staff payments:finance or payments:viewer.

Settings ​

SettingDefaultMeaning
Payment gatewayCCAvenueGateway used for online payments
Use the gateway's test environmentNoSends orders to the gateway sandbox
Split each payment to college settlement accountsYesRuns 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)30Delay before the first status lookup
Times to check an unfinished order5Lookups before the order is marked failed
Minutes before an unpaid order expires60Order expiry
Email the payer a payment confirmationNoPayments' own confirmation email (modules usually send their own)
Allow finance staff to record offline paymentsYesCounter payments
CurrencyINRCurrency

Events ​

EmitsWhenPayload
payments.payment.receivedA payment succeeded (online callback, order lookup, or offline entry), once per tracking idorder, payment, requested_by_module, purpose, reference, reference_items, student, amount (paise), mode, provider, paid_at
payments.payment.failedAn order failed, was aborted, timed out or expiredorder, requested_by_module, purpose, reference, student, status
payments.refund.completedA gateway refund is confirmedrefund, payment, requested_by_module, reference, amount
payments.settlement.receivedA gateway settlement (payout) is importedsettlement, settlement_account, amount, settlement_date
Listens toDoes
(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.

Edulab Bench developer documentation