Skip to main content
Set the student record a sandbox education verification returns. An 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]

The SSN digits and dates of birth of Truv’s built-in education scenarios are reserved, and the API refuses either one with reserved_credential. Pick four digits and a date from outside those tables.
This request creates a scenario for a current full-time student who graduates four months after the first verification:
The response is the stored scenario with every field filled in; the matching fields of other data sources stay empty.
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 in 4321, 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: set is_active: true and give its term a duration_days, and Truv keeps it current for you.
  • The anticipated graduation date is duration_days after the first verification of that connection. Refreshes keep using that same first verification date.
  • Until then, every run serves currentEnrollmentStatus as current_enrollment_status (CC by 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 (CN by 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_days never ends.
  • On an active term with duration_days, Truv replaces term_end_date and anticipated_graduation_date with the derived dates. Every other term serves the term_end_date and anticipated_graduation_date you author, active or not.
  • certified_on_date is always served as authored. Without it, the term’s term_begin_date is used.

Payload reference

The payload 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.
The Clearinghouse transaction-level outcome. Omit it for a confirmed hit.

Examples

Each example is a request body for POST /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

Set date_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 with no_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