Skip to Content

Schools

Link schools to your partner account, and see which ones are already connected, keyed throughout by your externalSchoolId.

List linked schools

GET /api/partner/schools

Returns every school currently linked to your partner account. Use this to show which schools are on EdPay in your own admin console, without maintaining a separate list.

Headers

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

Response 200

{ "success": true, "message": "Request successful", "data": [ { "schoolId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "externalSchoolId": "SCHOOL-001", "name": "Example Secondary School", "status": "Active", "isBankAccountSetup": false } ], "errors": [], "statusCode": 200 }
FieldDescription
schoolIdEdPay’s internal GUID for the school. You don’t need to store this.
externalSchoolIdThe id you gave this school.
nameSchool name on file with EdPay.
statusOnboarding status, e.g. Active.
isBankAccountSetupWhether a disbursement bank account has been set, see Set school bank account.

Try it

GET/api/partner/schools

Create or update school

PUT /api/partner/schools

Create or update a school keyed by externalSchoolId. Call this whenever school details change in your system, not only at first onboarding. The response tells you whether the school was newly created, and its current approval/bank-setup status.

Idempotent. EdPay matches on externalSchoolId, so calling this on every save in your system updates the same school instead of creating a duplicate.

Headers

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

Request body

FieldDescription
externalSchoolIdYour stable identifier for this school, the idempotency key.
nameSchool name.
rcNumberCorporate Affairs Commission registration number.
phoneNumberSchool contact phone number.
emailSchool contact email.
addressStreet address.
stateState.
lgaLocal Government Area.
{ "externalSchoolId": "SCHOOL-001", "name": "Example Secondary School", "rcNumber": "RC-123456", "phoneNumber": "08012345678", "email": "admin@exampleschool.ng", "address": "12 Example Street", "state": "Lagos", "lga": "Ikeja" }

Response 200

{ "success": true, "message": "Request successful", "data": { "schoolId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "externalSchoolId": "SCHOOL-001", "name": "Example Secondary School", "status": "Active", "isBankAccountSetup": false, "isNewlyCreated": true }, "errors": [], "statusCode": 200 }
FieldDescription
schoolIdEdPay’s internal GUID for the school. You don’t need to store this.
externalSchoolIdEchoes back the id you sent.
statusOnboarding status, e.g. Active.
isBankAccountSetupWhether a disbursement bank account has been set.
isNewlyCreatedtrue if this call created the school, false if it updated an existing one.

Try it

PUT/api/partner/schools