Send your key in X-Api-Key or Authorization: Bearer ....
Keys are created in the Admin Panel and can be scoped to query, quote, and/or pay.
GET /api/v1/students/{studentId}/query
include: comma-separated fields (default: summary + charges as returned by service).chargeFilter: all, open, payable, paid, optionalsourceTypes: fee_plan, fee_assignment, penalty, adhoc (comma-separated)syncPenalties: true/false (default true)paymentLimit: limit payment history rows (default 20)
POST /api/v1/quote
Quote is short-lived (default 30 minutes, configurable by ttlMinutes).
You can select billing “periods” in flexible ways using selection.mode.
studentId (required)ttlMinutes (optional, default 30)amount (optional): expected total; server verifies sum matches within toleranceselection.chargeIds as an array of studentChargeId.
selection.installmentIds selects tuition installments by feePlanInstallmentId.
Optional: selection.includePenalties (default true).
selection.amount (server allocates in allocation order).
selection.startDate and selection.endDate (inclusive, format YYYY-MM-DD).
Optional: selection.includePenalties (default true).
POST /api/v1/pay
To be safe against retries, use reference as an idempotency key.
If the same key is sent again, the server returns the existing payment.
Send studentId and either:
(a) allocations (chargeId -> amount), or
(b) selection + amount.