Appearance
Payment Order
payments.payment_order · numbered ORD-{YYYY}-{########}
Fields
Every record also has id, created_at and updated_at.
| Field | Label | Type | Rules |
|---|---|---|---|
purpose | purpose | text | required; max 40 characters |
requested_by_module | requested by module | text | required; max 40 characters |
reference | reference | text | required; max 80 characters |
reference_items | reference items | text | max 400 characters |
student | student | link → core.student | |
payer | payer | link → core.user | |
payer_name | payer name | text | personal data; max 140 characters |
payer_email | payer email | personal data | |
payer_phone | payer phone | phone | personal data |
college | college | link → core.college | |
amount | amount | money | required; min 1 |
extra_amount | extra amount | money | default 0; min 0 |
currency | currency | select | one of: INR; default "INR" |
mode | mode | select | one of: Online, Cash, Cheque, Demand draft, NEFT, RTGS, UPI; default "Online" |
provider | provider | select | one of: CCAvenue, Razorpay, PayU, Offline; default "CCAvenue" |
order_type | order type | select | one of: Order, Invoice, Order (subscription), Partial pay, Snippet; default "Order" |
settlement_account | settlement account | link → payments.settlement_account | |
status | status | select | one of: Created, Initiated, Success, Failure, Aborted, Timeout, Invalid, Awaiting settlement; default "Created" |
status_message | status message | text | max 400 characters |
gateway_order_id | gateway order id | text | max 80 characters |
tracking_id | tracking id | text | max 80 characters |
payment_link | payment link | link → payments.payment_link | |
lookup_attempts | lookup attempts | number | default 0; min 0 |
event_delivered | event delivered | check | default false |
return_url | return url | text | max 400 characters |
Unique together: requested_by_module + reference + gateway_order_id
Permissions
| Role | Can |
|---|---|
payments:admin | read, update |
payments:finance | read, update |
payments:viewer | read |
payments:payer | read — only own rows (via student) |
API
http
GET /api/payments/payment_order?<field>=<value>&limit=100&offset=0
POST /api/payments/payment_order
GET /api/payments/payment_order/:id
PATCH /api/payments/payment_order/:id
DELETE /api/payments/payment_order/:id