Skip to Content
Partner APITuition Fees

Tuition Fees

Fee schedules parents see when they apply for financing, keyed by class, academic session, and term.

List tuition fees (school catalog)

GET /api/partner/schools/{externalSchoolId}/tuition-fees

The full fee schedule for the school, across all classes and terms. Optional academicSession filter.

For a loan-review UI, Tuition fees for one student is often simpler than filtering this list yourself.

Headers

HeaderValue
Acceptapplication/json
X-EdPay-Api-Key{partnerApiKey}
X-EdPay-Api-Secret{partnerApiSecret}

Query parameters

ParameterDescription
academicSessionOptional, e.g. "2025/2026".

Response 200

This collection doesn’t include a captured example response for this endpoint. Expect an array of fee rows shaped like the Upsert tuition fee request body, use Try it below to see the exact shape from staging.

Try it

GET/api/partner/schools/SCHOOL-001/tuition-fees

Tuition fees for one student

GET /api/partner/schools/{externalSchoolId}/students/{externalStudentId}/tuition-fees

Fees resolved from the student’s class and session. Use this after syncing the student, or during loan setup, to show what financing costs without separately tracking each student’s class/session yourself.

Headers

HeaderValue
Acceptapplication/json
X-EdPay-Api-Key{partnerApiKey}
X-EdPay-Api-Secret{partnerApiSecret}

Response 200

This collection doesn’t include a captured example response for this endpoint. Expect a fee row shaped like the Upsert tuition fee request body, use Try it below to see the exact shape from staging.

Try it

GET/api/partner/schools/SCHOOL-001/students/STU-2025-001/tuition-fees

Upsert tuition fee

PUT /api/partner/schools/{externalSchoolId}/tuition-fees

Creates or updates one fee row, keyed by class + academic session + term.

Requires EdPay to enable the CanManageFees scope for your partner application.

Headers

HeaderValue
Acceptapplication/json
X-EdPay-Api-Key{partnerApiKey}
X-EdPay-Api-Secret{partnerApiSecret}
Content-Typeapplication/json

Request body

FieldDescription
classNamee.g. "JSS 2A".
academicSessione.g. "2025/2026".
terme.g. "FirstTerm".
termlyAmountFee for one term.
sessionAmountFee for the full session.
termlyDiscountPercent0–15.
sessionDiscountPercent0–15.
maxCustomAmountInstitution/professional-body schools only, omit (null) for standard K-12 fixed fees.
{ "className": "JSS 2A", "academicSession": "2025/2026", "term": "FirstTerm", "termlyAmount": 150000, "sessionAmount": 420000, "termlyDiscountPercent": 5, "sessionDiscountPercent": 10, "maxCustomAmount": null }

Response 200

This collection doesn’t include a captured example response for this endpoint. Expect the saved fee row echoed back, use Try it below to see the exact shape from staging.

Try it

PUT/api/partner/schools/SCHOOL-001/tuition-fees