Partner Integration API
Server-to-server API for integration partners, school information systems, fintech apps, or anything else you run behind your own backend. These calls are made from your servers only, never from a mobile app or browser.
Use your own IDs. externalSchoolId and externalStudentId are your
identifiers, EdPay maps them internally. You don’t need to store or display
EdPay’s own GUIDs for schools or students anywhere in your admin UI.
Try it in your browser
Every “Try it” box in this section sends a real request to the staging API. Fill these in once, they’re saved in your browser and reused on every page.
Stored only in your browser (localStorage) and sent only to the URL shown on each request, never anywhere else. Fill this in once; every “Try it” box on this site reuses it.
Base URL
All paths below are relative to your EdPay API host:
https://edpay-dotnet-api-staging.edubanc.ng # stagingProduction returns a different host, your EdPay integration contact will share it.
Authentication
Every Partner API request carries two headers:
| Header | Description |
|---|---|
X-EdPay-Api-Key | Public API key issued by EdPay when your partner application is created. |
X-EdPay-Api-Secret | Private secret, store server-side only. Never expose it in a mobile app or browser. |
GET /api/partner/schools HTTP/1.1
Host: edpay-dotnet-api-staging.edubanc.ng
X-EdPay-Api-Key: {partnerApiKey}
X-EdPay-Api-Secret: {partnerApiSecret}Idempotent writes
PUT /schools, PUT .../bank-account, and PUT .../tuition-fees are all safe to
call on every save in your system, each is keyed so repeated calls update the same
record instead of creating duplicates.
Response shape
Every endpoint returns the same envelope:
{
"success": true,
"message": "Request successful",
"data": { },
"errors": [],
"statusCode": 200
}Errors use the same shape with success: false, a populated errors array, and an
HTTP status matching statusCode.
What you can do here
- Schools: link schools to your partner account, keep details in sync, and set up disbursement bank accounts.
- Banks: partner-auth bank catalog / resolve, plus school disbursement accounts (prefer anonymous Utils → List banks for most clients).
- Sync students, read/write tuition fees, check loan status, and optionally mint a parent SSO session so parents can complete financing without an EdPay login screen.
Shared helpers (anonymous bank list, resolve, file upload) live under Utils.
Loan status can be read with just your externalStudentId, parents may
complete financing in EdPay’s flow or your own embedded one, but your dashboard can
always show status via GET .../loans.