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). When school is included, the response also returns the school's approved accountNumber and accountName when available. When payments is included, each payment includes allocations line items (charges covered by that payment).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
reference is required and must be unique across all payments.
Reusing a reference returns HTTP 409.
Send studentId and either:
(a) allocations (chargeId -> amount), or
(b) selection + amount.