MySchoolBucks
Post fines to MySchoolBucks as student fees, let families pay there, and have schoolOS settle each fine as payments come in. Setup, matching your schools and student numbers, posting, payments, and what to do when a fine can't be posted.
MySchoolBucks is where many families already pay for lunches and fees. Connect it and a fine in schoolOS becomes a student fee there: the family pays on the MySchoolBucks website or app, or at school, and schoolOS records the payment and marks the fine paid on its own. It replaces exporting the payment template and importing it again.
schoolOS sends MySchoolBucks the student number (with the student ID MySchoolBucks keeps for that number, which bills the fee to the right student), the fee's name and amount, and the device's tag and serial. It never sends student records: MySchoolBucks matches the fee to a student it already has from your SIS. Nothing from MySchoolBucks changes a person in schoolOS.
You need Manage integrations to connect it and map schools, and Manage fines to post fines and poll for payments.
Setup at a glance#
The top of the page is a four-step checklist: Connect, Match your schools, Student numbers and Post fines. Each says what's done and what's left, with a button to the part that needs you. A district is ready when all four are checked.
Connect#
Access comes from MySchoolBucks' partner team (Heartland), not from your district's own MySchoolBucks account. Ask them at [email protected] to enable schoolOS as a fee provider for your district; it can take a few weeks, so start early. They send four values, all specific to your district:
- Developer account ID
- API key, usually in a separate email
- Client ID, your district in MySchoolBucks. Leave it blank and MySchoolBucks fills it in when you connect.
- Provider ID, schoolOS in your district. Usually
schoolOS.
On Admin › Account › Integrations, turn on MySchoolBucks, then under Connection enter them and select Connect. schoolOS signs in with them before saving anything; if MySchoolBucks refuses, nothing is saved and the page says why. The key is stored encrypted and never shown again; leave it blank later to keep the stored one.
A test district from the partner team connects the same way, with its own test values.
Match your schools#
A fee lands under a school in MySchoolBucks, so each of your schools needs to be one of MySchoolBucks' schools. Once you're connected, School mapping lists your schools, each with a menu of the schools MySchoolBucks has for your district.
schoolOS matches them for you where it can:
- Same school number. A school your SIS sync brought in carries its SIS number, which is usually MySchoolBucks' school number too.
- Same name. Otherwise, the same name, however it's written: "Lincoln ES" and "Lincoln Elementary School" match.
A match is marked Suggested. Check each one, change any that are wrong, then select Save mapping. Nothing is saved until you do. Refresh reads MySchoolBucks' list again, after a school is added there.
Places that aren't schools, like the district office, a depot or your default location, are under Other sites, closed to start. Map one only if fines are charged there. A site with fines waiting always shows with the schools.
A fine at a school with no MySchoolBucks school can't be posted, and the page says how many are waiting on that.
Student numbers#
MySchoolBucks finds a fee's student by their student number: the one your SIS gives them, which schoolOS keeps as the person's User ID number. Your SIS sync fills it in. People added another way might not have one, and their fines can't be posted.
Student numbers lists the people with fines MySchoolBucks can't find yet:
- Found in MySchoolBucks. People without a number whom MySchoolBucks has. They're matched by email first, then by name at their school, then by a name no one else in your district has. Each shows the number, the student's name and school in MySchoolBucks, and how they were found. Select Accept, or Accept all, to give them that number. A number someone else in schoolOS already has is never offered.
- Not found in MySchoolBucks. People without a number whom MySchoolBucks doesn't have under their email or name. Add their number on their profile, or check MySchoolBucks has them.
- A student number MySchoolBucks doesn't have. People whose number in schoolOS isn't one of MySchoolBucks' students. Their fines would be refused. Check the number against your SIS.
Only the student number is saved in schoolOS. MySchoolBucks' student list is read to match, then forgotten. Refresh reads it again.
You can also add numbers in bulk with the User ID number column of the people import, and Google and Microsoft directory sync fills in a blank one from the person's employee ID.
Post fines#
A fine goes up to MySchoolBucks when it is Assessed. Fines still To assess wait until someone assesses them on Admin › People › Fines. Three ways:
- All at once, from this page. The Post fines step of the checklist, and Posting and payments, say how many assessed fines aren't in MySchoolBucks yet. Select the button beside them (it says how many, like Post 12 fines, or Post them now) and confirm, and every one goes up, 500 at a time, with a count as it goes. Use it once right after you connect, to send the fines you already had, and whenever fines pile up with automatic posting off. A fine that can't post yet is skipped and says why on the Fines page; one that failed before is tried again.
- By hand, from the Fines page. On Admin › People › Fines, tick the assessed fines and select Post to MySchoolBucks, or use Post assessed fines under the MySchoolBucks button beside Actions to send every assessed fine in view that isn't posted yet. The … menu on a row posts just that one.
- Automatically. Turn on Post fines to MySchoolBucks automatically when assessed under Posting and payments (the same switch is on the Fines page's Fine settings tab). Then a fine posts the moment it's marked assessed, with no review.
A fine can't be posted when the person has no student number (User ID number on their profile; it comes from your SIS or roster import), when their school isn't mapped, or when the fine has nobody on it. The MySchoolBucks column on the Fines page says Can't post and why; fix the person or the mapping and post again. The warnings under Posting and payments link straight to those fines: Assign people opens the ones with nobody on them, and See them the ones that failed to sync.
Once a fine is posted, it follows the fine: waive or cancel it, or move it back to To assess, and the fee is deactivated in MySchoolBucks; move it back to Assessed and the fee comes back with what's still owed.
Which should I choose?#
| Option | Choose it when | | --- | --- | | Post by hand | Someone checks fines before families see them: a bookkeeper confirms the amount and the student, then posts in a batch. Most districts start here. | | Post automatically | The tech who logs the repair is trusted to set the fee, and you want families to see it the same day. Pair it with Mark assessed now on Add fine. |
Payments come back#
MySchoolBucks doesn't tell schoolOS when a family pays; schoolOS asks. Check for payments, under Posting and payments, sets how often: Every hour, Once a day (the default) or Once a week, counted from the last check. If a check fails, schoolOS tries again within the hour. Each check reads new payments, records each one against its fine, and marks the fine Paid when the balance reaches zero. Part payments show as Partially paid until then; a refund or reversal reopens the fine. A waiver in MySchoolBucks is forgiven here too, never counted as paid. One that covers everything still owed waives the fine, with Waived in MySchoolBucks as the reason. A smaller one is taken off what's owed (forgive $10 of a $50 fee and $40 is still owed). The fine keeps its $50 charge, the Fines list shows $40.00 of $50.00, and the fine's history says what was forgiven. Forgive fines in schoolOS rather than by turning a fee off in the MySchoolBucks console: a fee turned off there without a waiver doesn't come back to schoolOS. Each payment is listed on the fine with how it was paid (a card ending in 1234, cash at school). A payment is never recorded twice.
Posting and payments starts closed and shows how fines post and how often payments are checked, like Posted by you · Payments checked once a day; it starts open while some fines can't post or failed to sync, so you see why. Poll payments now under Posting and payments, or Check for payments now under the MySchoolBucks button on the Fines page, reads them right away. The Fines page says when payments were last checked and when the next check is due. Reconcile now checks that every posted fine's balance matches what MySchoolBucks was last sent and sends any that differ; it also runs nightly.
Payments for fees MySchoolBucks holds that schoolOS doesn't know (fees your SIS posted, say) are left alone.
Was this article helpful?
Related articles
- FinesEvery fine your district is owed, for repairs, lost or unreturned devices and accessories. Add fines, mark them assessed or paid, waive or cancel them, post them to MySchoolBucks, and mark them paid from a CSV.
- IntegrationsConnect schoolOS to your device management, roster, knowledge and helpdesk systems. What each integration does, how syncing works, and what disconnecting removes.
- Log a repairRecord a repair on a device, say whether the damage was accidental, deliberate or wear and tear (with an AI suggestion you can change), and see what a fee will do before you save.
- Import peopleAdd or update staff and students from a CSV, a nightly SFTP file, or your SIS over OneRoster. How matching, roles and locations work.
Updated October 15, 2026
