Guardians need to view their child's invoices on iOS to know what to pay. Accountants need access to record payments. Backend already has Invoice Prisma model + web UI; mobile endpoints missing.
GET /api/mobile/invoices
Authorization: Bearer <jwt>
Query: ?student_id=<id>&status=open|paid|overdue&page=1&page_size=20
Response 200:
{
"data": [
{
"id": "<id>",
"student_id": "<id>",
"student_name": "<string>",
"status": "open" | "paid" | "partial" | "overdue",
"currency": "USD" | "SAR" | "SDG", // from school config
"amount_total": 1000.00,
"amount_paid": 0.00,
"balance": 1000.00,
"due_date": "<ISO8601>",
"issued_date": "<ISO8601>",
"lang": "ar" | "en"
}
],
"meta": { "page": 1, "page_size": 20, "total": 12 }
}
GET /api/mobile/invoices/:id
Response: full detail with line_items[]
Why
Guardians need to view their child's invoices on iOS to know what to pay. Accountants need access to record payments. Backend already has Invoice Prisma model + web UI; mobile endpoints missing.
Contract
Implementation
School.currencyper tenantiOS stories blocked
FEE-003invoice-listFEE-004invoice-detailPAY-005payment-history (uses invoices)Related