Skip to content

Events Reference

This page lists when each Scholaro webhook event is sent and every field in its payload.

To set up an endpoint, see the Webhooks Overview. To check that a request came from Scholaro, see Signature Verification.

When events are sent

Event in Scholaro Sent when
evaluation_report.created A credential evaluation ordered from Scholaro is completed. Its documents are delivered in the next scheduled run, twice a day.
bulk_upload.started A bulk upload is accepted through the GPA Report API or SFTP and starts processing.
bulk_upload.completed Every file in a bulk upload has finished processing.
gpa_report.created (data) and (pdf) A GPA report is created, in Scholaro or through the GPA Report API. Sent once per report.
gpa_report.updated (data) and (pdf) A different grading scale is applied to the report, or the applicant name or report name is edited in the GPA Reports list. Sent every time.
digital_evaluation.created (data) and (pdf) A digital evaluation is created. Sent once per evaluation.
digital_evaluation.updated (data) and (pdf) A GPA report is linked to or unlinked from the evaluation, one of its custom fields is edited, or the applicant name or evaluation name is edited in the Evaluations list. Sent every time.

Editing grades or courses on a GPA report does not send an updated event.

JSON GPA report and digital evaluation events are only sent for reports created within the last 14 days. Changes to older reports send nothing.

Payload structure

Every data event is sent as an HTTP POST with a JSON body in this shape:

{
  "object": "event",
  "type": "gpa_report.created",
  "data": {
    "...": "..."
  }
}
Field Type Description
object string Always event
type string The event name, for example gpa_report.updated
data object The GPA report, digital evaluation or bulk upload

The data object has the same fields for created and updated events. It always holds the report's current values.

Fields with no value are sent as null. Numbers keep their stored precision, so they can include trailing zeros (120.00). Parse them as decimal numbers and don't rely on the number of decimal places.

GPA report

Sent for gpa_report.created (data) and gpa_report.updated (data).

Field Type Description
id integer Unique report ID.
report_name string Report name.
full_name string The applicant's full name.
date string (date-time) Date and time the report was created, for example 2026-04-23T15:11:34.09. No time-zone offset is included.
dob string or null The applicant's date of birth as a short date. The format follows the language of the Scholaro user who triggered the event (M/d/yyyy in English).
cust_field1 string or null Custom field 1.
cust_field2 string or null Custom field 2.
cust_field3 string or null Custom field 3.
country string Country of study.
institution string or null Foreign institution name.
qualification string or null Program name (Bachelor's, Master's, etc.).
subject string or null Subject or area of study.
grading_scale string Name of the grading scale applied to the report.
gpa number or null Cumulative GPA, including any adjustment applied to the report.
total_credits number Total converted (US) credits, to 2 decimal places.
total_points number Total grade points: the sum of each course's grade points multiplied by its converted credits. Not rounded.
courses array or null The report's courses (see Course). null unless course details are enabled for your webhook.
{
  "object": "event",
  "type": "gpa_report.created",
  "data": {
    "id": 192904,
    "report_name": "Bachelor of Commerce",
    "full_name": "Priya Sharma",
    "date": "2026-04-23T15:11:34.09",
    "dob": "12/1/2002",
    "cust_field1": "1234567",
    "cust_field2": "001234567",
    "cust_field3": "2",
    "country": "India",
    "institution": "Osmania University",
    "qualification": "Bachelor of Commerce",
    "subject": "Finance",
    "grading_scale": "Most Common",
    "gpa": 3.77,
    "total_credits": 120.0,
    "total_points": 452.4,
    "courses": null
  }
}

Course

Each item in courses, in transcript order.

Field Type Description
id integer Unique course row ID.
name string or null Course title as entered from the transcript.
credits string or null Credits as shown on the transcript.
credits_converted number Converted (US) credits.
grade string or null Grade as shown on the transcript.
us_grade string or null Converted US grade.
grade_points number Grade points for the converted grade.
sort_order integer Position of the course on the report.
"courses": [
  {
    "id": 5530112,
    "name": "Financial Accounting",
    "credits": "4",
    "credits_converted": 4.00,
    "grade": "A+",
    "us_grade": "A",
    "grade_points": 4.000,
    "sort_order": 1
  }
]

Digital evaluation

Sent for digital_evaluation.created (data) and digital_evaluation.updated (data).

Field Type Description
id integer Unique evaluation ID.
evaluation_name string Evaluation name.
full_name string The applicant's full name.
date string (date-time) Date and time the evaluation was created. No time-zone offset is included.
cust_field1 string or null Custom field 1.
cust_field2 string or null Custom field 2.
cust_field3 string or null Custom field 3.
country string Country of study.
institution string or null Foreign institution name.
accreditation string or null The institution's accrediting or recognizing body, or N/A if none is recorded.
credential string Credential name, as the native name followed by the English name in brackets, or the English name alone.
program_length number Program length in years, to 1 decimal place.
equivalency string US equivalency statement.
gpa_report integer or null id of the GPA report linked to this evaluation, or null if there is none.
{
  "object": "event",
  "type": "digital_evaluation.created",
  "data": {
    "id": 113945,
    "evaluation_name": "Equivalency Report",
    "full_name": "Priya Sharma",
    "date": "2026-04-26T09:14:41.25",
    "cust_field1": "1234567",
    "cust_field2": "001234567",
    "cust_field3": "2",
    "country": "India",
    "institution": "Osmania University",
    "accreditation": "University Grants Commission (UGC)",
    "credential": "Bachelor of Commerce",
    "program_length": 3.0,
    "equivalency": "Three years of undergraduate coursework, comparable to a Bachelor's degree",
    "gpa_report": 192904
  }
}

Bulk upload

Sent for bulk uploads made through the GPA Report API or SFTP. These payloads have no object field, and fields with no value are left out rather than sent as null. Times are in UTC and may or may not end in Z, so parse them as UTC either way.

bulk_upload.started

Field Type Description
batch_id string (UUID) Batch ID, as returned when the upload was accepted.
status string Processing
total_items integer Number of files in the upload.
source string API or SFTP
created_on string (date-time) When the upload was accepted.
{
  "type": "bulk_upload.started",
  "data": {
    "batch_id": "5797602d-f05f-495b-8cb9-220c8e2c5df5",
    "status": "Processing",
    "total_items": 2,
    "source": "API",
    "created_on": "2026-04-23T15:11:34.0912345Z"
  }
}

bulk_upload.completed

Has the same fields as bulk_upload.started, with status set to Completed, plus:

Field Type Description
completed_items integer Files that produced a report.
failed_items integer Files that failed.
completed_on string (date-time) When processing finished.
items array One entry per file.
items[].file_name string Uploaded file name.
items[].status string Completed, Failed or Cancelled
items[].report_ids array of integers IDs of the GPA reports created from the file.
items[].error_message string Why the file failed. Left out when it succeeded.
{
  "type": "bulk_upload.completed",
  "data": {
    "batch_id": "5797602d-f05f-495b-8cb9-220c8e2c5df5",
    "status": "Completed",
    "total_items": 2,
    "completed_items": 1,
    "failed_items": 1,
    "source": "API",
    "created_on": "2026-04-23T15:11:34.09",
    "completed_on": "2026-04-23T15:14:02.5139876Z",
    "items": [
      { "file_name": "transcript-1.pdf", "status": "Completed", "report_ids": [192904] },
      { "file_name": "transcript-2.pdf", "status": "Failed", "report_ids": [], "error_message": "The document could not be read." }
    ]
  }
}

GPA reports created through the API

A gpa_report.created event for a report created through the GPA Report API has the same fields as above, with three differences: it has no object field, fields with no value are left out instead of sent as null, and each course can include a code with the course code printed on the transcript.