education scenario pairs the last four digits of an applicant’s SSN, or their date of birth, with the degrees and enrollments you want back, and serves them when you order education verification for that applicant.
Use it when the built-in education scenarios don’t cover the case you need: a student who graduates on a date you choose, two enrollments at different schools, a half-time term, or a National Student Clearinghouse (NSC) outcome other than a confirmed hit. For the shared concepts, read Custom Sandbox Data first.
Create a scenario [Server-side]
This request creates a scenario for a current full-time student who graduates four months after the first verification:Send
"data_source": "education" explicitly. Truv can’t infer the data source from ssn_last4 alone and refuses the request with data_source_required. Only date_of_birth fits education alone, so a scenario that sets it can leave data_source out.Use it in an order
Create an education order for an applicant whose SSN ends in4321, for example 666-09-4321, through the API or the Dashboard. Open the share_url, pick a school, and the task completes with your record instead of Truv’s built-in scenarios. Read the result from the task webhooks and the education report on the order.
The student’s name and date of birth in the report always come from the applicant. The scenario supplies the Clearinghouse outcome, the schools, the degrees, and the enrollment history.
Matching fields
A scenario that sets both fields matches only an applicant with both. One that sets either field alone matches on it whatever the other value is. Your scenarios are checked before Truv’s built-in ones, so an applicant who matches nothing of yours still gets the built-in record for their SSN, then the built-in record for their date of birth, or, failing both, no data.
products can only be education, so leave it empty.
Behavior
Education verification is a single request to the Clearinghouse with no login step, so a scenario can only end the way that request ends.behavior_status accepts done, no_data, unavailable, config_error, login_error, and error; behavior_mfa is refused. behavior_duration_seconds holds the task the same way as on other data sources. See Behavior for the fields.
How enrollments are served
Degrees and past enrollments are served with the dates you author. A current enrollment is different: setis_active: true and give its term a duration_days, and Truv keeps it current for you.
- The anticipated graduation date is
duration_daysafter the first verification of that connection. Refreshes keep using that same first verification date. - Until then, every run serves
currentEnrollmentStatusascurrent_enrollment_status(CCby default) and slides the term’s end date to today, so the student always reads as enrolled right now. - Once the anticipated graduation passes, runs serve
ended_enrollment_status(CNby default) and the term ends on the anticipated date, so a data refresh sees the student graduate. - An active enrollment whose terms carry no
duration_daysnever ends. - On an active term with
duration_days, Truv replacesterm_end_dateandanticipated_graduation_datewith the derived dates. Every other term serves theterm_end_dateandanticipated_graduation_dateyou author, active or not. certified_on_dateis always served as authored. Without it, the term’sterm_begin_dateis used.
Payload reference
Thepayload object contains an optional result block and the degrees and enrollments arrays. Every field is optional: send only what your test needs, and leave the rest out.
result
result
The Clearinghouse transaction-level outcome. Omit it for a confirmed hit.
degrees[]
degrees[]
enrollments[]
enrollments[]
enrollments[].terms[]
enrollments[].terms[]
Examples
Each example is a request body forPOST /v1/sandbox/scenarios/ and creates a new scenario. Send it with the same curl command as the first scenario. Each one uses its own SSN digits, so they coexist.
Graduate with no current enrollment
A former student. The Clearinghouse confirms the degree and reports a past enrollment with fixed dates.Half-time student at a community college
A current enrollment below full time.enrollment_status: "H" is what a certification reads as half-time.
Match on date of birth
Setdate_of_birth instead of, or as well as, ssn_last4. This scenario answers any applicant born on this date. A scenario that matches the same applicant on ssn_last4 alone is equally specific, so the older of the two wins; set both fields on one scenario to make it win outright.
Unconfirmed match
The Clearinghouse found something but could not confirm it is this student. The task ends withno_data, as Truv’s own unconfirmed test records do.
No record found
A failure status needs no payload.no_data is how a student with no Clearinghouse record ends.
Limits
These are the default limits for education payloads. The account-wide limits are listed on Custom Sandbox Data.Next steps
Education Testing
Truv’s built-in education scenarios and how an order selects one
Create an order
The request that carries the applicant’s SSN and date of birth
Data refresh
See an active enrollment advance toward graduation
Sandbox API reference
Full request and response schemas for every sandbox endpoint