[BETA] Partially update the authenticated school settings

PATCH /school/settings updates only the settings you want to change. Send a JSON object with Content-Type: application/json; do not wrap it in data.
Use PATCH, not POST. The response contains the complete resulting settings in data and actual changes in meta.updatedFields.

Authentication and permissions

Send a school-scoped API key or an OAuth access token as Authorization: Bearer YOUR_CREDENTIAL.
These are school-facing endpoints. Partners must use the school-scoped key created for that school; a partner credential alone is not accepted.

The credential determines the school. Never send a school identifier in the path, query, headers or JSON body.

CredentialGETPATCH
School API keySchool read permission (ACL_SCHOOL read bit 1)School update permission (ACL_SCHOOL update bit 2)
OAuthedusign:api.read or edusign:api.writeedusign:api.write and an administrator or owner role that permits writes

A school key with ACL_SCHOOL = 3 can use both methods. ACL_SCHOOL = 1 can only read; ACL_SCHOOL = 2 can only update.
A read-only OAuth user cannot PATCH, even with the write scope.
The school's existing subscription and API-access requirements also apply.

Partial updates: omitted values stay unchanged

  • Every field is optional, but you must provide at least one writable field.
  • Omitted fields stay unchanged. Sending half the settings leaves the other half untouched.
  • Nested objects merge property by property. Sending customAttendanceSheet.header preserves customAttendanceSheet.footer.
  • false, 0 and valid empty strings are real values and are applied.
  • Unknown fields and empty nested objects are rejected with 400.
  • All requested changes succeed together or none are saved. Validation or permission failures do not partially update settings.
  • Unchanged values are skipped. A valid request that changes nothing returns 200 with an empty updatedFields array.
  • updatedFields uses top-level API names. Changing customAttendanceSheet.header reports customAttendanceSheet once.

Clearing values

ValueBehavior
Omit a propertyKeep its current value.
Empty stringClear a contact/address string or header/footer. name, language and timezone cannot be empty.
null for an attendanceReportShow... flag or attendanceReportEventLearnerIsPresentClear that nullable preference; it is returned as null.
null for automaticResendSurveysEmailsClear the entire survey reminder configuration.
null anywhere elseRejected, even if GET returned a historical null.

Text settings are trimmed; language codes must match exactly. Emails must be valid; emailForLists and emailSendInvoices accept comma-separated addresses.
language accepts fr, en, it or es. timezone must be a named IANA zone such as Europe/Paris or UTC.
Field descriptions below explain length limits, numeric bounds and units. In particular, delayToSendJustifyAbsence is a justification submission limit in days; survey reminder delay is in seconds.

Header and footer formatting

customAttendanceSheet.header and footer accept plain text or safe formatting HTML in JSON strings.
For example:

{"customAttendanceSheet":{"header":"<p><strong>Training centre</strong><br />Attendance record</p>"}}

Supported tags: p, br, div, span, strong, b, em, i, u, s, ul, ol, li, blockquote, h1-h6, table, thead, tbody, tfoot, tr, th and td.
All attributes are rejected, including style, class, id and event handlers. Unsupported tags such as script, img, a, iframe, style, svg and math are rejected with 400; no part of that PATCH is saved.
Allowed HTML is normalized before storage: tag names become lowercase, line breaks use <br />, text entities are escaped, and comments are removed. For example, R&D is stored as R&amp;D and still displays as R&D. The response contains the normalized string; resending equivalent HTML does not count as a change.
Each accepts at most 10000 characters including markup, both before and after normalization; an empty string clears it. The existing school customization option controls whether this content appears on PDFs. Existing stored content and omitted header/footer values are left unchanged.

Read-only settings and naming restrictions

The response includes four settings that PATCH cannot update:

  • professorSignatureReminder
  • automaticResendSignEmails
  • reminderDelay
  • sendExplanationEmailProfessor

Edit these reminder settings through the school UI. Including any of them in PATCH returns 400, even when the value is unchanged.
Do not send the whole GET response back as a PATCH body: remove read-only fields and the data envelope.

Schools with a branded app must also change their name through the school UI. An unchanged name is accepted; a changed name rejects the entire PATCH.
Other settings can still be updated for these schools.

Examples

Start with the one-field or partial-update examples. The full writable example shows every accepted field for reference; sending all fields is never required.
The partial-update response example starts from the GET example and demonstrates false, zero, null and a nested header change with the footer preserved.

Errors

StatusMeaning and next step
400Invalid or unknown field, empty body/nested object, caller-supplied school identifier, read-only field, unsupported header/footer HTML, or restricted name change. Correct the request before retrying.
401Missing, invalid or expired authentication, or an inactive school subscription. Check the credential and school eligibility.
403Authenticated but missing the required school permission, OAuth scope, write-capable role or school API access.
404The authenticated school no longer exists.
429Rate limit exceeded. Wait for the Retry-After header (seconds), then retry with backoff.
500Unexpected server error. Error details and submitted values are not exposed.
503Service temporarily unavailable. Retry later and respect Retry-After when present.

429 can originate before authentication or inside the API; both JSON shapes are documented below.
Error messages are deliberately generic and do not echo rejected input.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Partial school settings update: send only the fields to change. Omitted fields and nested siblings stay unchanged; false, 0, and valid empty strings are applied. Only explicitly nullable fields accept null. The body and each supplied nested object must be nonempty, and unknown or read-only fields are rejected. All changes are applied atomically.

string
length between 1 and 80

School name, trimmed, 1 to 80 characters; empty strings and null are rejected. Schools linked to branded app configuration must change their name through the school UI. An unchanged name is accepted.

string
enum

School language: fr = French, en = English, it = Italian, es = Spanish. Null is rejected.

Allowed:
string
length ≤ 40

School IANA timezone, for example Europe/Paris or America/Montreal; numeric offsets are not accepted. Trimmed; maximum 40 characters. Empty strings and null are rejected; omission leaves it unchanged.

string
length ≤ 55

Official training provider registration number. Trimmed; maximum 55 characters. An empty string clears it; null is rejected.

string
length ≤ 64

School street address. Trimmed; maximum 64 characters. An empty string clears it; null is rejected.

string
length ≤ 26

School city. Trimmed; maximum 26 characters. An empty string clears it; null is rejected.

string
length ≤ 10

School postal or ZIP code. Use postalCode, not postalcode. Trimmed; maximum 10 characters. An empty string clears it; null is rejected.

string
length ≤ 30

School country name. Trimmed; maximum 30 characters. An empty string clears it; null is rejected.

string
length ≤ 20

School contact telephone number. Trimmed; maximum 20 characters. An empty string clears it; null is rejected.

string
length ≤ 40

School administration contact email address. One valid email address, trimmed; maximum 40 characters. An empty string clears it; null is rejected.

string
length ≤ 20

School SIRET or business registration number. Trimmed; maximum 20 characters. An empty string clears it; null is rejected.

string
length ≤ 60

Public school contact email address. One valid email address, trimmed; maximum 60 characters. An empty string clears it; null is rejected.

string
length ≤ 64

Recipient addresses for attendance-list emails. Comma-separated valid email addresses; outer whitespace is trimmed. Maximum 64 characters in total. An empty string clears the list; null is rejected.

string
length ≤ 64

Recipient addresses for invoice delivery emails. Comma-separated valid email addresses; outer whitespace is trimmed. Maximum 64 characters in total. An empty string clears the list; null is rejected.

string
length ≤ 64

Reply-to address used for outgoing school emails. One valid email address, trimmed; maximum 64 characters. An empty string clears it; null is rejected.

boolean

Show the school logo on attendance PDFs; this does not upload or change the logo.

boolean

Show learner tags on attendance PDFs.

boolean

Show professor tags on attendance PDFs.

boolean

Show reasons for justified absences on attendance PDFs.

boolean

Show early departures on attendance PDFs.

boolean

Show late arrivals on attendance PDFs.

boolean

Show learner company information on attendance PDFs.

boolean

Show individual attendance comments on attendance PDFs.

boolean

Show learner and professor signature timestamps on attendance PDFs.

boolean

Show course duration on attendance sheets.

boolean

Allow professors to add existing learners to their courses.

boolean

Allow professors to create learner records.

boolean

Allow professors to create courses.

boolean

Allow professors to justify learner absences.

boolean

Allow learners to submit absence justifications.

boolean

Stored legacy preference for emails about forgotten professor signatures. Changing this flag does not configure the active professorSignatureReminder schedule.

boolean

Remove the date and time limit for learners signing through emailed signature links.

boolean

Automatically lock completed courses.

boolean

Keep courses with missing signatures out of automatic archiving.

boolean

Request an absence justification from absent learners after a course.

Show the summary section in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show attended courses in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show justified absences in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show unjustified absences in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show courses awaiting signatures in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show late arrivals in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Show early departures in attendance reports. Explicit null clears the stored preference; omission leaves it unchanged.

Allow attendance reports even when a learner has no absences, exclusions, or courses awaiting signatures. Explicit null clears the stored preference; omission leaves it unchanged.

integer
0 to 3

Training format: 0 = long courses; 1 = short courses; 2 = both, mainly short; 3 = both, mainly long. Null is rejected.

integer
0 to 2147483647

Maximum days after an absence starts during which a learner may submit justification; 0 removes this time limit. This is not a delay before sending an email. Integer from 0 to 2147483647; null is rejected.

integer
0 to 2147483647

Automatic attendance-report cadence code: 1 = daily; 7 = every Friday; 15 = the first and fifteenth of the month; 30 = the first of the month. 0 and other unrecognized codes schedule no automatic reports. Integer from 0 to 2147483647; null is rejected.

autoSendSignEmailCourseStart
object

Automatic signature invitations at course start. Provide at least one property. Provided properties are merged; omitted siblings remain unchanged. Unknown properties, an empty object, and null properties are rejected. The object cannot be null.

professorSignatureMethods
object

Learner signing methods available to professors. Provide at least one property. Provided properties are merged; omitted siblings remain unchanged. Unknown properties, an empty object, and null properties are rejected. The object cannot be null.

object | null

Automatic survey reminder settings. Provide at least one property. Provided properties are merged; omitted siblings remain unchanged. Unknown properties, an empty object, and null properties are rejected. Null for the whole object clears the configuration and disables reminders; omission leaves it unchanged.

customAttendanceSheet
object

Custom attendance-sheet header and footer. Provide at least one property. Provided properties are merged; omitted siblings remain unchanged. Unknown properties, an empty object, and null properties are rejected. The object cannot be null. Existing customization enablement is preserved and cannot be changed here.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json