Overview
Veracross stays the source of truth for your student, contact and staff data. Orah reads from it on a schedule, so a change you make in Veracross shows up in Orah at the next sync and nobody keys it in twice.
What data can you sync?
Orah pulls most of its core data from Veracross, and writes attendance back.
Read from Veracross
Division
School Year
House
Location
Reason Code
Students
Staff
Contacts
Groups
Schedules
Written back to Veracross
Class attendance, written back when a roll is completed
Daily attendance
Attendance at events and athletics fixtures
📖 Read more - All records synced to/from Veracross
Before you start
Who needs to do this
Adding an integration partner in Veracross needs the OAuth_App_Admin security role, which is separate from SysAdmin and does not come bundled with it. Check yours before you start.
Worth reading first
If your IT team wants background on how the Veracross API works, the Veracross API Overview covers it.
Set up Orah in Veracross
Eight steps. Everything happens in Axiom apart from the last one.
Sign in to Axiom Identity and Access Management.(https://axiom.veracross.com/#/homepage/iam)
From the Identity & Access Management homepage, click Add Integration Partner to see your current partners, then Add New Partner at the bottom. You can also click Add Record in the Find OAuth Applications query.
Alternately, click the Add Record button in the Find OAuth Applications query
Fill in the partner record with the details below:
Description: Orah data sync
Contact Name: Orah integration team
Contact Email: veracross@orah.com
Save the partner record, then click Start Integration to generate an OAuth Application record.
On that record, click Add OAuth Application.
At this point, Orah receives an invitation email.
Note: The email received by Orah does not contain any credentials or sensitive information. The OAuth credentials are only visible to us via the Veracross Partner Portal, which we gain access to through that email.
Within the newly created OAuth Application, you must enable scopes to allow Orah to access data, as shown in the example screenshot below. The next section in this article explains which scopes you need to enable.
Scopes
Your OAuth application controls what Orah can see using scopes. For each scope you enable, Orah is granted permission to the corresponding API endpoint(s).
Depending on your approach, you may wish to enable the full list of scopes that Orah utilises, or only a limited list of scopes for the sync objects you intend to enable in Orah.
We recommend enabling the full list of scopes for convenience, and less likelihood of scope related issues. Orah only requests the scopes for the sync objects that are enabled. However, if you enable a sync in Orah, but don't have the associated Veracross scopes enabled, then errors will occur.
Below is the full list of Veracross scopes that Orah utilises across all sync objects. The next section provides a breakdown of the Orah sync objects and which scopes they require.
academics.class_attendance_statuses:list
academics.class_attendance_statuses:update
academics.classes.meeting_times:list
academics.config.grading_periods:list
academics.courses:list
academics.enrollments:list
academics.rooms:list
athletics.rosters:list
athletics.team.practice_schedules:list
boarding.dorms:list
boarding.dorms.students:list
class_permissions:list
classes:list
classes.attendance:list
classes.attendance:update
contact_info:list
event_groups_members:list
events.athletics:list
events.event_attendance:create
events.event_attendance:delete
events.event_attendance:list
events.event_attendance:read
events.event_attendance:update
events.group_events:list
extended_care.classes:list
extended_care.classes.meeting_times:list
extended_care.registrations:list
households:list
master_attendance:list
master_attendance:update
parents:list
person_photos:list
programs.classes.meeting_times:list
programs.enrollments:list
relationships:list
staff_faculty:list
students:list
Which scopes each sync object needs
A sync object only works if every scope in its row is enabled. Some scopes are only needed when a particular setting is switched on, and those rows name the setting.
Sync object | Scopes it needs | Notes |
Division |
| Divisions are read off the student record. |
School Year |
| Orah cannot line its terms and divisions up with yours, so reporting windows and roll periods have to be maintained by hand. |
House |
| Day schools need these too. Orah tells boarders from day students by whether a dorm is allocated. |
Location |
| |
Staff |
| Add |
Class attendance writeback |
| Attendance marked in Orah stays in Orah. Your office still has to enter it into Veracross by hand. |
Reason Code |
| Your Veracross attendance statuses, read as a value list. |
Student |
| Guardian data is read on every student sync, so the contact scopes are needed here as well. Add |
Contact |
| |
Groups |
|
|
Schedules |
|
|
Roll record |
| Add both |
Pass record |
| Same two conditional sets as Roll Record. |
Attendance History |
|
If a sync fails
A missing scope causes most of these. The last two have nothing to do with scopes, and they are here because they look the same from inside Orah.
What you see in Orah | What it means |
A requested scope isn't authorized for this application | One scope in the set Orah asked for is not enabled in Axiom. Because Veracross rejects the whole request, this can appear when you change an unrelated setting. Re-check the full list above, save, then re-authorise in Orah. |
Unauthorized: You do not have access to this route | A scope needed by a sync you have switched on is missing. Compare your enabled scopes against the full list, then re-authorise. |
Something went wrong while fetching data filters | Usually |
Error in getAccessToken for integration: veracross | Not a scope problem. Your credentials have expired or been revoked in Veracross. Re-authorise in App Directory > Veracross. |
Skipped sync for staff [ID] due to missing email | Not a scope problem. That staff member has no email address in Veracross. Add one and sync again. |
How it works
We authenticate your Veracross credentials when you connect, then store them. The first sync pulls in your students and tries to match each one against a record already sitting in Orah.
Managing your data
Syncing your data
Orah syncs once every 24 hours, usually overnight. Run a manual sync any time you need the data sooner and it starts immediately.
Existing students
If you already have students in Orah, we match them against Veracross records automatically. Some will not match. If are unable to match your students, you will find these students are listed on the debugger page where you can search and match these students.
Deactivating students
Veracross owns your core data. To remove a student from Orah, mark them inactive in Veracross, which deactivates their Orah record and archives everything attached to it.
Boarding and day students
Orah treats a student as a boarder if they have a dorm allocated in Veracross. No dorm means no boarder status. A day student who still has an old dorm allocation will show as a boarder until it is cleared.
Syncing only classes that take a roll (September 2026)
Every Veracross class carries a Track Class Attendance switch. By default Orah syncs class schedules regardless of that switch, which can create meetings, empty rolls, and reminder emails for classes nobody takes a roll for — a study hall, say, or a homeroom that's purely pastoral.
To stop this, go to your Veracross integration's Manage integration → Sync settings → Schedules tab and turn on Sync class schedules by Track Class Attendance. This opens a grid of divisions and group types — tick a cell to stop syncing schedules for classes in it where the switch is off in Veracross; classes with the switch on keep syncing exactly as before. This setting is off by default for every school, only affects Schedules (Groups and group membership are never touched, so a suppressed class still syncs as a group with its full roster), and needs no new Veracross scope or re-authorisation. Already-synced meetings are removed on the next sync unless a roll has already been started on them. Athletic practice schedules keep their own separate toggle on the same tab.



