removedInput schema / properties / auth_token
Removed value: -{
- "type": "string"
-}
addedInput schema / properties / configuration / additionalProperties
Added value: +true
addedInput schema / properties / configuration / description
Added value: +"Same shape as the Extralingo school-page configurator: startDate (YYYY-MM-DD), students[] with courseId, weeks, optional accommodationGroupId, mealType, extras."
addedInput schema / properties / configuration / properties
Added value: +{
+ "accommodationGroupId": {
+ "description": "Accommodation group id from list_accommodations (optional).",
+ "type": "string"
+ },
+ "mealType": {
+ "description": "Meal plan key when accommodation is selected.",
+ "type": "string"
+ },
+ "startDate": {
+ "description": "Course start calendar date (YYYY-MM-DD). Typically a Monday from list_starting_dates.",
+ "examples": [
+ "2026-09-07"
+ ],
+ "type": "string"
+ },
+ "students": {
+ "description": "One object per traveller. courseId comes from list_courses.",
+ "items": {
+ "additionalProperties": true,
+ "properties": {
+ "courseId": {
+ "description": "Course product id from list_courses for this school.",
+ "type": "string"
+ },
+ "weeks": {
+ "description": "Course duration in weeks.",
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+}
addedInput schema / properties / contact / additionalProperties
Added value: +true
changedInput schema / properties / contact / description
Previous value: -"Optional first_name, last_name, phone. Email always comes from the verified account. A different contact.email is rejected."New value: +"Optional first_name, last_name, phone. Email always comes from the verified account; contact.email must match or be omitted."
addedInput schema / properties / currency / description
Added value: +"ISO 4217 currency for prices in this call. Usually EUR."
addedInput schema / properties / currency / examples
Added value: +[
+ "EUR"
+]
changedInput schema / properties / idempotencyKey / description
Previous value: -"Optional. Alias of idempotency_key."New value: +"Optional alias of idempotency_key."
changedInput schema / properties / idempotency_key / description
Previous value: -"Optional. Same key + same payload within 24 hours replays the original response. A different payload with the same key fails."New value: +"Optional. Same key + same payload within 24 hours replays the original response; conflicting payload returns validation_failed."
addedInput schema / properties / phone / description
Added value: +"Student phone number (required)."
changedInput schema / properties / phoneCountry / description
Previous value: -"ISO2, e.g. NL"New value: +"ISO 3166-1 alpha-2 country for the phone (e.g. NL)."
changedInput schema / properties / privacyAccepted / description
Previous value: -"Only needed for legacy auth_token sessions. OAuth grants already include privacy acceptance."New value: +"Must be true when not using OAuth."
addedInput schema / properties / school_id / description
Added value: +"Craft CMS school entry id from search_language_schools hits (field school_id). Not the CRM UUID."
addedInput schema / properties / school_id / examples
Added value: +[
+ 12345
+]
addedInput schema / properties / specialRequests / description
Added value: +"Free-text notes for the school."
addedInput schema / properties / studentDetails / description
Added value: +"Per-student details aligned with configuration.students (names, dates of birth, etc.)."
addedInput schema / properties / studentDetails / items
Added value: +{
+ "additionalProperties": true,
+ "type": "object"
+}
changedInput schema / properties / termsAccepted / description
Previous value: -"Only needed for legacy auth_token sessions. OAuth grants already include terms acceptance."New value: +"Must be true when not using OAuth (OAuth grants record acceptance)."
addedInput schema / properties / trip_id / description
Added value: +"Optional trip_id from save_trip linking this booking to a draft."
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "properties": {
+ "agent_must_tell_the_user": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "booking": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "studentMessage": {
+ "type": "string"
+ },
+ "success": {
+ "const": true
+ }
+ },
+ "required": [
+ "success"
+ ],
+ "type": "object"
+}