--- title: "API: updateSessionEnrollment" slug: "api-updatesessionenrollment" updated: 2026-11-02T20:39:19Z published: 2026-11-02T20:39:19Z canonical: "support.smarteru.com/api-updatesessionenrollment" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.smarteru.com/llms.txt > Use this file to discover all available pages before exploring further. # API: updateSessionEnrollment - SmarterU requires all API calls to POST to HTTPS. Any POST to HTTP will result in the SU:01 error (i.e., No POST data detected.). - If you are viewing the help in a language other than English, please change your language to English before copying and pasting any code. All API attributes and functions are in English. - Tags are required unless specified. ## Description The updateSessionEnrollment method updates the attendance, completion, and grade of existing enrollments in an instructor-led session. Up to 100 enrollments can be updated per call. > [!NOTE] > - Only enrollments in active sessions that have not been finalized can be updated. > - Multi-part sessions and sessions associated with a webinar provider cannot be updated through this method. > - Users cannot update their own attendance, completion, or grade. > - The same enrollment can be updated more than once. ## Who Has Access The following users have access to the updateSessionEnrollment method: - Users with the [Group Manager](/v1/docs/group-permission-group-manager-gm) or [Manage Group Users](/v1/docs/group-permission-manage-group-users-mgu) group permission. - [Administrators and owners](/v1/docs/user-profile-information#access-level). ## API Call XML Package ```xml       updateSessionEnrollment                                                                                    - OR -                                                                               ``` ## LearningModuleEnrollment Tag Group The LearningModuleEnrollment tag group is a container for the instructor-led session enrollments to update. ```xml                                        - OR -                                   ``` The LearningModuleEnrollment tag contains the following. ### Enrollment A container for the instructor-led session enrollment to update. The LearningModuleEnrollment tag can contain up to 100 Enrollment tags. Refer to [Enrollment Tag Group](/docs/api-updatesessionenrollment#enrollment-tag-group). The LearningModuleEnrollment tag contains the following. ## Enrollment Tag Group The Enrollment tag group is a container for the instructor-led session enrollment to update. ```xml                     - OR -               ``` Each enrollment is contained in an Enrollment tag and may contain the following. ### AccountUserLearningModuleRelID The course enrollment's system-generated identifier. This tag must be used with the CourseSessionID tag. This is the AccountUserLearningModuleRelID returned by the [enrollLearningModules](/v1/docs/api-enrolllearningmodules) method. ### CourseSessionID The session's system-generated identifier. This tag must be used with the AccountUserLearningModuleRelID tag. This is the CourseSessionID returned by the [listSessions](https://support.smarteru.com/v1/docs/api-listsessions) method. ### User (optional) The user enrolled in the session. The User tag contains one of the following. | Tag | Description | | --- | --- | | **Email** | The [user's email address](https://support.smarteru.com/v1/docs/user-login-information#primary-email-required-if-employee-id-not-specified). This tag is mutually exclusive with the EmployeeID tag. This is the Email returned by the [getUser](https://support.smarteru.com/v1/docs/api-getuser) and [listUsers](https://support.smarteru.com/v1/docs/api-listusers) methods. | | **EmployeeID** | The [user's employee ID](https://support.smarteru.com/v1/docs/user-login-information#employee-id-required-if-primary-email-not-specified). This tag is mutually exclusive with the Email tag. This is the EmployeeID returned by the [getUser](https://support.smarteru.com/v1/docs/api-getuser) and [listUsers](https://support.smarteru.com/v1/docs/api-listusers) methods. | ### Attendance (optional) > [!NOTE] > You must provide at least one of the following tags: this tag (i.e., Attendance), [Completion](/v1/docs/api-updatesessionenrollment#completion-optional1), or [Grade](/v1/docs/api-updatesessionenrollment#grade-optional). Indicates whether the user attended the session. Acceptable values are: - *1* - The user attended the session. - *0* - The user did not attend the session. This tag also accepts *true* or *false*. ### Completion (optional) > [!NOTE] > You must provide at least one of the following tags: this tag (i.e., Completion), [Attendance](/v1/docs/api-updatesessionenrollment#attendance-optional), or [Grade](/v1/docs/api-updatesessionenrollment#grade-optional1). Indicates whether the user completed the session. Acceptable values are: - *1* - The user completed the session. A user cannot be marked as completed unless they are previously marked as attended, or marked as attended in the call package. - *0* - The user did not complete the session. This tag also accepts *true* or *false*. ### Grade (optional) > [!NOTE] > You must provide at least one of the following tags: this tag (i.e., Grade), [Attendance](/v1/docs/api-updatesessionenrollment#attendance-optional), or [Completion](/v1/docs/api-updatesessionenrollment#completion-optional1). The user's grade. The enrollment's attendance and completion must be true in order to provide a grade. If the [session is graded](/v1/docs/instructor-led-session-main#grade-type) and the Completion tag is set to *1* or *true*, a grade is required. Acceptable values will depend on the session's grade type: - LetterGrade - Up to 5 characters. - PassFail - *Pass* or *Fail*. - Percentage - A number between 0-100. - None - A grade cannot be provided. ## API Response XML Package The [API response XML package](https://support.smarteru.com/v1/docs/api-response-xml-package) will always include a Result, Info, and [Errors](/docs/api-updatesessionenrollment#error-codes) tag. ```plaintext                                                                                                       ``` The Enrollments tag is a container for the instructor-led session enrollments successfully updated by the updateSessionEnrollment method. The Enrollments tag is only returned if at least one enrollment was updated. Each enrollment is contained in an Enrollment tag. The Enrollment tag's block attribute is the enrollment's position in the API call XML package (e.g., *block="2"* is the second Enrollment tag in the call). The Enrollment tag may contain the following. ### AULMRID The course enrollment's system-generated identifier. ### AULMCSRID The session enrollment's system-generated identifier. ### User The user's identifier. This returns the [same value that was provided in the Enrollment tag group](/docs/api-updatesessionenrollment#user-optional). This tag is only returned if the User tag was provided in the API call XML package. ### Example API Response XML Package Below is an example of an API response XML package. In this example, the first and third enrollments were updated, and the second enrollment returned an error. ```plaintext   Failed                            1699003            503413                                        1699006            503416                                 USE:24         Enrollment 2 - Completion requires Attendance. A user cannot be marked complete without being marked as attended.         ``` ## Error Codes Because this method can update multiple enrollments, the Result tag returns *Failed* if any enrollment update fails. Each Error tag’s block attribute identifies the enrollment sequence number from the call package. For example, indicates that the second enrollment from your call package failed. > [!NOTE] > - #alpha#: The sequence number of the enrollment in the call package. > - #instructor_result.validation.message.XmlText#: Error messages outside of the ones listed below. | Error Code | Message | | --- | --- | | USE:01 | The required permissions are not met to call the updateSessionEnrollment method. | | USE:02 | Enrollment #alpha# - At least one of Attendance, Completion, or Grade must be provided. | | USE:03 | Enrollment #alpha# - Grade was provided without Attendance or Completion. Provide Attendance and/or Completion alongside Grade. | | USE:04 | Enrollment #alpha# - No existing active / not finalized ILT enrollment was found for the identification provided. | | USE:05 | Enrollment #alpha# - You do not have permissions to update enrollments for this session. | | USE:06 | Enrollment #alpha# - The session is finalized and can no longer be updated. | | USE:07 | Enrollment #alpha# - The session is not active and cannot be updated. Only active sessions can be updated. | | USE:08 | Enrollment #alpha# - Multi-part sessions are not supported by this method. | | USE:09 | Enrollment #alpha# - Sessions associated with a webinar provider cannot be updated through this method. | | USE:10 | Enrollment #alpha# - A user cannot update their own attendance or completion. | | USE:11 | Enrollment #alpha# - The user identifier provided does not match the user enrolled in this session. | | USE:12 | Enrollment #alpha# - Completion requires Attendance. A user cannot be marked complete without being marked as attended. | | USE:13 | Enrollment #alpha# - Grade is not valid for session with grade type 'Letter Grade'. Letter Grade must be 5 characters or less. | | USE:14 | Enrollment #alpha# - Grade is not valid for session with grade type 'Pass/Fail'. Valid values are 'Pass' and 'Fail'. | | USE:15 | Enrollment #alpha# - Grade is not valid for session with grade type 'Percentage'. Value must be numeric between 0 and 100. | | USE:16 | Enrollment #alpha# - A grade cannot be provided for a session with grade type 'None'. | | USE:17 | Enrollment #alpha# - A grade is required when marking completion for a session with grade type '#gradeType#'. | | USE:18 | Enrollment #alpha# - Session enrollment update failed: #instructor_result.validation.message.XmlText# | ## Related - [API: enrollLearningModules](/api-enrolllearningmodules.md) - [API: enrollSessionHistory](/api-enrollsessionhistory.md) - [API: listSessions](/api-listsessions.md)