For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ibp

Gets a paginated list of Instant Book & Pay signups for the calling organisation(s), sorted by id. Archived signups are added when includeArchived is true; search filters on the signup name.

get
/api/v1/CcaSignUp/IBP
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Query parameters
IncludeArchivedbooleanOptional
SearchstringOptional
PageNumberinteger · int32 · min: 1 · max: 2147483647Optional
PageSizeinteger · int32 · min: 1 · max: 2000Optional
OrganisationIdsinteger · int32[]Optional
Responses
200

OK

application/json
isSuccessbooleanOptional
errorsstring[] · nullableOptional
messageTranslationParametersany · nullableOptional
pageNumberinteger · int32Optional
pageSizeinteger · int32Optional
firstPagestring · uri · nullableOptional
lastPagestring · uri · nullableOptional
totalPagesinteger · int32Optional
totalRecordsinteger · int32Optional
nextPagestring · uri · nullableOptional
previousPagestring · uri · nullableOptional
baseUristring · uri · nullableOptional
get/api/v1/CcaSignUp/IBP
GET /api/v1/CcaSignUp/IBP HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Accept: */*
{
  "isSuccess": true,
  "errors": [
    "text"
  ],
  "messageTranslationParameters": null,
  "data": [
    {
      "id": 1,
      "organisationId": 1,
      "containerTypeId": 1,
      "preferenceTypeId": 1,
      "name": "text",
      "description": "text",
      "activitiesStartDate": "2026-01-01",
      "activitiesEndDate": "2026-01-01",
      "activitiesDefaultStartTime": "16:00:00",
      "activitiesDefaultEndTime": "16:00:00",
      "responsibilityForConfirmation": "None",
      "signupOpens": "2026-01-01T00:00:00.000Z",
      "signupCloses": "2026-01-01T00:00:00.000Z",
      "useOrganisationBlockDates": true,
      "termsAndConditions": "text",
      "additionalInfoUrl": "text",
      "isArchived": true,
      "timeZone": "text",
      "createdAtUtc": "2026-01-01T00:00:00.000Z",
      "updatedAtUtc": "2026-01-01T00:00:00.000Z"
    }
  ],
  "pageNumber": 1,
  "pageSize": 1,
  "firstPage": "https://example.com",
  "lastPage": "https://example.com",
  "totalPages": 1,
  "totalRecords": 1,
  "nextPage": "https://example.com",
  "previousPage": "https://example.com",
  "baseUri": "https://example.com",
  "searchParameters": [
    {
      "key": "text",
      "value": "text"
    }
  ]
}

Creates an Instant Book & Pay signup. The container type is derived from the URL (the server always creates Instant Book & Pay rows) and the preference type is server-set; the signup always starts unarchived. The name must be unique among the organisation's active signups.

post
/api/v1/CcaSignUp/IBP
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Query parameters
organisationIdinteger · int32Optional

The organisation to create the signup in — required when the client has access to multiple organisations

Body
namestring · min: 1 · max: 255Required
descriptionstring · min: 1Required
activitiesStartDatestring · dateRequired
activitiesEndDatestring · dateRequired
activitiesDefaultStartTimestring · partial-time · nullableOptionalExample: 16:00:00
activitiesDefaultEndTimestring · partial-time · nullableOptionalExample: 16:00:00
responsibilityForConfirmationstring · enumOptionalPossible values:
signupOpensstring · date-timeRequired
signupClosesstring · date-timeRequired
termsAndConditionsstring · nullableOptional
additionalInfoUrlstring · nullableOptional
Responses
201

Created

application/json
idinteger · int32Optional
organisationIdinteger · int32Optional
containerTypeIdinteger · int32Optional
preferenceTypeIdinteger · int32Optional
namestring · nullableOptional
descriptionstring · nullableOptional
activitiesStartDatestring · dateOptional
activitiesEndDatestring · dateOptional
activitiesDefaultStartTimestring · partial-time · nullableOptionalExample: 16:00:00
activitiesDefaultEndTimestring · partial-time · nullableOptionalExample: 16:00:00
responsibilityForConfirmationstring · enumOptionalPossible values:
signupOpensstring · date-time · nullableOptional
signupClosesstring · date-time · nullableOptional
useOrganisationBlockDatesboolean · nullableOptional
termsAndConditionsstring · nullableOptional
additionalInfoUrlstring · nullableOptional
isArchivedbooleanOptional
timeZonestring · nullableOptional
createdAtUtcstring · date-time · nullableOptional
updatedAtUtcstring · date-time · nullableOptional
post/api/v1/CcaSignUp/IBP
POST /api/v1/CcaSignUp/IBP HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 359

{
  "name": "text",
  "description": "text",
  "activitiesStartDate": "2026-01-01",
  "activitiesEndDate": "2026-01-01",
  "activitiesDefaultStartTime": "16:00:00",
  "activitiesDefaultEndTime": "16:00:00",
  "responsibilityForConfirmation": "None",
  "signupOpens": "2026-01-01T00:00:00.000Z",
  "signupCloses": "2026-01-01T00:00:00.000Z",
  "termsAndConditions": "text",
  "additionalInfoUrl": "text"
}
{
  "id": 1,
  "organisationId": 1,
  "containerTypeId": 1,
  "preferenceTypeId": 1,
  "name": "text",
  "description": "text",
  "activitiesStartDate": "2026-01-01",
  "activitiesEndDate": "2026-01-01",
  "activitiesDefaultStartTime": "16:00:00",
  "activitiesDefaultEndTime": "16:00:00",
  "responsibilityForConfirmation": "None",
  "signupOpens": "2026-01-01T00:00:00.000Z",
  "signupCloses": "2026-01-01T00:00:00.000Z",
  "useOrganisationBlockDates": true,
  "termsAndConditions": "text",
  "additionalInfoUrl": "text",
  "isArchived": true,
  "timeZone": "text",
  "createdAtUtc": "2026-01-01T00:00:00.000Z",
  "updatedAtUtc": "2026-01-01T00:00:00.000Z"
}

Gets a single Instant Book & Pay signup by id. Archived signups — and signups of any other container type (Preference, PTC) — return 404 CCASIGNUP_NOT_FOUND.

get
/api/v1/CcaSignUp/IBP/{id}
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The signup id (CcaSignUp.CcaSignUpId)

Query parameters
organisationIdinteger · int32Optional

The organisation to look the signup up in — required when the client has access to multiple organisations

Responses
200

OK

application/json
idinteger · int32Optional
organisationIdinteger · int32Optional
containerTypeIdinteger · int32Optional
preferenceTypeIdinteger · int32Optional
namestring · nullableOptional
descriptionstring · nullableOptional
activitiesStartDatestring · dateOptional
activitiesEndDatestring · dateOptional
activitiesDefaultStartTimestring · partial-time · nullableOptionalExample: 16:00:00
activitiesDefaultEndTimestring · partial-time · nullableOptionalExample: 16:00:00
responsibilityForConfirmationstring · enumOptionalPossible values:
signupOpensstring · date-time · nullableOptional
signupClosesstring · date-time · nullableOptional
useOrganisationBlockDatesboolean · nullableOptional
termsAndConditionsstring · nullableOptional
additionalInfoUrlstring · nullableOptional
isArchivedbooleanOptional
timeZonestring · nullableOptional
createdAtUtcstring · date-time · nullableOptional
updatedAtUtcstring · date-time · nullableOptional
get/api/v1/CcaSignUp/IBP/{id}
GET /api/v1/CcaSignUp/IBP/{id} HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Accept: */*
{
  "id": 1,
  "organisationId": 1,
  "containerTypeId": 1,
  "preferenceTypeId": 1,
  "name": "text",
  "description": "text",
  "activitiesStartDate": "2026-01-01",
  "activitiesEndDate": "2026-01-01",
  "activitiesDefaultStartTime": "16:00:00",
  "activitiesDefaultEndTime": "16:00:00",
  "responsibilityForConfirmation": "None",
  "signupOpens": "2026-01-01T00:00:00.000Z",
  "signupCloses": "2026-01-01T00:00:00.000Z",
  "useOrganisationBlockDates": true,
  "termsAndConditions": "text",
  "additionalInfoUrl": "text",
  "isArchived": true,
  "timeZone": "text",
  "createdAtUtc": "2026-01-01T00:00:00.000Z",
  "updatedAtUtc": "2026-01-01T00:00:00.000Z"
}

Partially updates an Instant Book & Pay signup — omitted fields preserve their existing values (§3.7e). The URL {id} is the canonical identifier; the body carries no id. The signup's archive state cannot be changed here: it follows its groups — archiving the last live group archives the signup, unarchiving any group re-activates it. Any write against an archived signup returns 409 RESOURCE_ARCHIVED.

put
/api/v1/CcaSignUp/IBP/{id}
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The signup id (CcaSignUp.CcaSignUpId)

Query parameters
organisationIdinteger · int32Optional

The organisation the signup belongs to — required when the client has access to multiple organisations

Body
namestring · max: 255 · nullableOptional
descriptionstring · nullableOptional
activitiesStartDatestring · date · nullableOptional
activitiesEndDatestring · date · nullableOptional
activitiesDefaultStartTimestring · partial-time · nullableOptionalExample: 16:00:00
activitiesDefaultEndTimestring · partial-time · nullableOptionalExample: 16:00:00
responsibilityForConfirmationstring · enumOptionalPossible values:
signupOpensstring · date-time · nullableOptional
signupClosesstring · date-time · nullableOptional
termsAndConditionsstring · nullableOptional
additionalInfoUrlstring · nullableOptional
Responses
200

OK

application/json
idinteger · int32Optional
organisationIdinteger · int32Optional
containerTypeIdinteger · int32Optional
preferenceTypeIdinteger · int32Optional
namestring · nullableOptional
descriptionstring · nullableOptional
activitiesStartDatestring · dateOptional
activitiesEndDatestring · dateOptional
activitiesDefaultStartTimestring · partial-time · nullableOptionalExample: 16:00:00
activitiesDefaultEndTimestring · partial-time · nullableOptionalExample: 16:00:00
responsibilityForConfirmationstring · enumOptionalPossible values:
signupOpensstring · date-time · nullableOptional
signupClosesstring · date-time · nullableOptional
useOrganisationBlockDatesboolean · nullableOptional
termsAndConditionsstring · nullableOptional
additionalInfoUrlstring · nullableOptional
isArchivedbooleanOptional
timeZonestring · nullableOptional
createdAtUtcstring · date-time · nullableOptional
updatedAtUtcstring · date-time · nullableOptional
put/api/v1/CcaSignUp/IBP/{id}
PUT /api/v1/CcaSignUp/IBP/{id} HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 359

{
  "name": "text",
  "description": "text",
  "activitiesStartDate": "2026-01-01",
  "activitiesEndDate": "2026-01-01",
  "activitiesDefaultStartTime": "16:00:00",
  "activitiesDefaultEndTime": "16:00:00",
  "responsibilityForConfirmation": "None",
  "signupOpens": "2026-01-01T00:00:00.000Z",
  "signupCloses": "2026-01-01T00:00:00.000Z",
  "termsAndConditions": "text",
  "additionalInfoUrl": "text"
}
{
  "id": 1,
  "organisationId": 1,
  "containerTypeId": 1,
  "preferenceTypeId": 1,
  "name": "text",
  "description": "text",
  "activitiesStartDate": "2026-01-01",
  "activitiesEndDate": "2026-01-01",
  "activitiesDefaultStartTime": "16:00:00",
  "activitiesDefaultEndTime": "16:00:00",
  "responsibilityForConfirmation": "None",
  "signupOpens": "2026-01-01T00:00:00.000Z",
  "signupCloses": "2026-01-01T00:00:00.000Z",
  "useOrganisationBlockDates": true,
  "termsAndConditions": "text",
  "additionalInfoUrl": "text",
  "isArchived": true,
  "timeZone": "text",
  "createdAtUtc": "2026-01-01T00:00:00.000Z",
  "updatedAtUtc": "2026-01-01T00:00:00.000Z"
}

Gets a paginated list of an Instant Book & Pay signup's child groups, sorted by id. Archived groups are added when includeArchived is true. The sub-resource list has no search parameter (locked 2026-06-23). The parent may be archived — its groups stay listable so callers can find the ids to unarchive.

get
/api/v1/CcaSignUp/IBP/{id}/groups
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

Query parameters
IncludeArchivedbooleanOptional
PageNumberinteger · int32 · min: 1 · max: 2147483647Optional
PageSizeinteger · int32 · min: 1 · max: 2000Optional
OrganisationIdsinteger · int32[]Optional
Responses
200

OK

application/json
isSuccessbooleanOptional
errorsstring[] · nullableOptional
messageTranslationParametersany · nullableOptional
pageNumberinteger · int32Optional
pageSizeinteger · int32Optional
firstPagestring · uri · nullableOptional
lastPagestring · uri · nullableOptional
totalPagesinteger · int32Optional
totalRecordsinteger · int32Optional
nextPagestring · uri · nullableOptional
previousPagestring · uri · nullableOptional
baseUristring · uri · nullableOptional
get/api/v1/CcaSignUp/IBP/{id}/groups
GET /api/v1/CcaSignUp/IBP/{id}/groups HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Accept: */*
{
  "isSuccess": true,
  "errors": [
    "text"
  ],
  "messageTranslationParameters": null,
  "data": [
    {
      "id": 1,
      "organisationId": 1,
      "groupName": "text",
      "description": "text",
      "groupCode": "text",
      "billingCode": "text",
      "leadStaffId": 1,
      "staffIds": [
        1
      ],
      "activityId": 1,
      "showInSportsPortal": true,
      "locationId": 1,
      "informationOnly": true,
      "maximumPlaces": 1,
      "minimumPlaces": 1,
      "availableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "preRequisite": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "notAvailableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "genderAvailableTo": "Female",
      "taxCode": "text",
      "shortName": "text",
      "isArchived": true,
      "createdAtUtc": "2026-01-01T00:00:00.000Z",
      "updatedAtUtc": "2026-01-01T00:00:00.000Z"
    }
  ],
  "pageNumber": 1,
  "pageSize": 1,
  "firstPage": "https://example.com",
  "lastPage": "https://example.com",
  "totalPages": 1,
  "totalRecords": 1,
  "nextPage": "https://example.com",
  "previousPage": "https://example.com",
  "baseUri": "https://example.com",
  "searchParameters": [
    {
      "key": "text",
      "value": "text"
    }
  ]
}

Creates a child group under an Instant Book & Pay signup. The parent signup must exist as an IBP signup (404 CCASIGNUP_NOT_FOUND) and must not be archived (409 RESOURCE_ARCHIVED — unarchive one of its groups first, which re-activates the signup). The group always starts unarchived. Preference-only fields (day1/day2 triples, cost, joinRequestsOn) are not part of the IBP group shape and are silently ignored if sent.

post
/api/v1/CcaSignUp/IBP/{id}/groups
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

Query parameters
organisationIdinteger · int32Optional

The organisation the signup belongs to — required when the client has access to multiple organisations

Body
groupNamestring · min: 1 · max: 255Required
descriptionstring · min: 1Required
groupCodestring · max: 50 · nullableOptional
billingCodestring · max: 50 · nullableOptional
leadStaffIdinteger · int32 · min: 1 · max: 2147483647Required
staffIdsinteger · int32[] · nullableOptional
activityIdinteger · int32 · min: 1 · max: 2147483647Required
showInSportsPortalboolean · nullableOptional
locationIdinteger · int32 · max: 2147483647 · nullableOptional
informationOnlyboolean · nullableOptional
maximumPlacesinteger · int32 · max: 2147483647 · nullableOptional
minimumPlacesinteger · int32 · max: 2147483647 · nullableOptional
genderAvailableTostring · enumOptionalPossible values:
taxCodestring · max: 10 · nullableOptional
shortNamestring · max: 30 · nullableOptional
Responses
201

Created

application/json
idinteger · int32Optional
organisationIdinteger · int32Optional
groupNamestring · nullableOptional
descriptionstring · nullableOptional
groupCodestring · nullableOptional
billingCodestring · nullableOptional
leadStaffIdinteger · int32 · nullableOptional
staffIdsinteger · int32[] · nullableOptional
activityIdinteger · int32 · nullableOptional
showInSportsPortalbooleanOptional
locationIdinteger · int32 · nullableOptional
informationOnlybooleanOptional
maximumPlacesinteger · int32Optional
minimumPlacesinteger · int32Optional
genderAvailableTostring · enumOptionalPossible values:
taxCodestring · nullableOptional
shortNamestring · nullableOptional
isArchivedbooleanOptional
createdAtUtcstring · date-time · nullableOptional
updatedAtUtcstring · date-timeOptional
post/api/v1/CcaSignUp/IBP/{id}/groups
POST /api/v1/CcaSignUp/IBP/{id}/groups HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 416

{
  "groupName": "text",
  "description": "text",
  "groupCode": "text",
  "billingCode": "text",
  "leadStaffId": 1,
  "staffIds": [
    1
  ],
  "activityId": 1,
  "showInSportsPortal": true,
  "locationId": 1,
  "informationOnly": true,
  "maximumPlaces": 1,
  "minimumPlaces": 1,
  "availableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "preRequisite": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "notAvailableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "genderAvailableTo": "Female",
  "taxCode": "text",
  "shortName": "text"
}
{
  "id": 1,
  "organisationId": 1,
  "groupName": "text",
  "description": "text",
  "groupCode": "text",
  "billingCode": "text",
  "leadStaffId": 1,
  "staffIds": [
    1
  ],
  "activityId": 1,
  "showInSportsPortal": true,
  "locationId": 1,
  "informationOnly": true,
  "maximumPlaces": 1,
  "minimumPlaces": 1,
  "availableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "preRequisite": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "notAvailableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "genderAvailableTo": "Female",
  "taxCode": "text",
  "shortName": "text",
  "isArchived": true,
  "createdAtUtc": "2026-01-01T00:00:00.000Z",
  "updatedAtUtc": "2026-01-01T00:00:00.000Z"
}

Partially updates a child group under an Instant Book & Pay signup — omitted fields preserve their existing values (§3.7e); for the availableTo / preRequisite / notAvailableTo lists an omitted field preserves the stored set while an empty array clears it. Setting isArchived = true archives the group — rejected with 409 CCASIGNUP_ARCHIVE_BLOCKED_ACTIVE while the group has future events; archiving the LAST live group also archives the signup. Sending isArchived = false unarchives an archived group (EC-1 as amended 2026-07-31, never blocked) and re-activates an archived signup — subject to the signup's NAME_NOT_UNIQUE unarchive-into-collision guard; any other write against an archived group returns 409 RESOURCE_ARCHIVED.

put
/api/v1/CcaSignUp/IBP/{id}/groups/{groupId}
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

groupIdinteger · int32Required

The child group id (Team.Id)

Query parameters
organisationIdinteger · int32Optional

The organisation the signup belongs to — required when the client has access to multiple organisations

Body
groupNamestring · max: 255 · nullableOptional
descriptionstring · nullableOptional
groupCodestring · max: 50 · nullableOptional
billingCodestring · max: 50 · nullableOptional
leadStaffIdinteger · int32 · nullableOptional
staffIdsinteger · int32[] · nullableOptional
activityIdinteger · int32 · nullableOptional
showInSportsPortalboolean · nullableOptional
locationIdinteger · int32 · max: 2147483647 · nullableOptional
informationOnlyboolean · nullableOptional
maximumPlacesinteger · int32 · max: 2147483647 · nullableOptional
minimumPlacesinteger · int32 · max: 2147483647 · nullableOptional
genderAvailableTostring · enumOptionalPossible values:
taxCodestring · max: 10 · nullableOptional
shortNamestring · max: 30 · nullableOptional
isArchivedboolean · nullableOptional
Responses
200

OK

application/json
idinteger · int32Optional
organisationIdinteger · int32Optional
groupNamestring · nullableOptional
descriptionstring · nullableOptional
groupCodestring · nullableOptional
billingCodestring · nullableOptional
leadStaffIdinteger · int32 · nullableOptional
staffIdsinteger · int32[] · nullableOptional
activityIdinteger · int32 · nullableOptional
showInSportsPortalbooleanOptional
locationIdinteger · int32 · nullableOptional
informationOnlybooleanOptional
maximumPlacesinteger · int32Optional
minimumPlacesinteger · int32Optional
genderAvailableTostring · enumOptionalPossible values:
taxCodestring · nullableOptional
shortNamestring · nullableOptional
isArchivedbooleanOptional
createdAtUtcstring · date-time · nullableOptional
updatedAtUtcstring · date-timeOptional
put/api/v1/CcaSignUp/IBP/{id}/groups/{groupId}
PUT /api/v1/CcaSignUp/IBP/{id}/groups/{groupId} HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 434

{
  "groupName": "text",
  "description": "text",
  "groupCode": "text",
  "billingCode": "text",
  "leadStaffId": 1,
  "staffIds": [
    1
  ],
  "activityId": 1,
  "showInSportsPortal": true,
  "locationId": 1,
  "informationOnly": true,
  "maximumPlaces": 1,
  "minimumPlaces": 1,
  "availableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "preRequisite": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "notAvailableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "genderAvailableTo": "Female",
  "taxCode": "text",
  "shortName": "text",
  "isArchived": true
}
{
  "id": 1,
  "organisationId": 1,
  "groupName": "text",
  "description": "text",
  "groupCode": "text",
  "billingCode": "text",
  "leadStaffId": 1,
  "staffIds": [
    1
  ],
  "activityId": 1,
  "showInSportsPortal": true,
  "locationId": 1,
  "informationOnly": true,
  "maximumPlaces": 1,
  "minimumPlaces": 1,
  "availableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "preRequisite": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "notAvailableTo": [
    {
      "id": 1,
      "type": "Group"
    }
  ],
  "genderAvailableTo": "Female",
  "taxCode": "text",
  "shortName": "text",
  "isArchived": true,
  "createdAtUtc": "2026-01-01T00:00:00.000Z",
  "updatedAtUtc": "2026-01-01T00:00:00.000Z"
}

Creates child groups under an Instant Book & Pay signup in bulk. The parent signup gates the whole request (validated before any per-item work); items are then processed independently.

post
/api/v1/CcaSignUp/IBP/{id}/groups/BulkCreate
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

Body

Request body for POST /api/v1/CcaSignUp/IBP/{id}/groups/BulkCreate (SB-15665). The parent signup id in the URL gates the whole request (CCASIGNUP_NOT_FOUND, validated before any per-item work — closes SB-15244 / SB-15245).

organisationIdinteger · int32 · nullableOptional

Gets or sets the organisation the batch operates on. Optional when the calling client has access to a single organisation; required for multi-org clients.

Responses
200

OK

application/json

Standard envelope returned by every Public API bulk endpoint (BulkCreate / BulkUpdate / BulkArchive). Each item in the request is processed independently — one item failing does not roll back the others — and the envelope reports per-item outcome. See cross-cutting-design.md §4.

successfulIdsinteger · int32[] · nullableOptional

Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.

totalRequestedinteger · int32Optional

Gets or sets the total number of items in the request. Set by the caller (it is not derivable from the success/failure lists alone — items rejected before per-item processing may appear in neither).

totalSuccessfulinteger · int32Read-onlyOptional

Gets the number of items processed successfully (computed).

totalFailedinteger · int32Read-onlyOptional

Gets the number of items that failed (computed).

post/api/v1/CcaSignUp/IBP/{id}/groups/BulkCreate
POST /api/v1/CcaSignUp/IBP/{id}/groups/BulkCreate HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 474

{
  "organisationId": 1,
  "items": [
    {
      "groupName": "text",
      "description": "text",
      "groupCode": "text",
      "billingCode": "text",
      "leadStaffId": 1,
      "staffIds": [
        1
      ],
      "activityId": 1,
      "showInSportsPortal": true,
      "locationId": 1,
      "informationOnly": true,
      "maximumPlaces": 1,
      "minimumPlaces": 1,
      "availableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "preRequisite": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "notAvailableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "genderAvailableTo": "Female",
      "taxCode": "text",
      "shortName": "text",
      "clientReferenceId": "text"
    }
  ]
}
{
  "successfulIds": [
    1
  ],
  "failedItems": [
    {
      "index": 1,
      "clientReferenceId": "text",
      "name": "text",
      "code": "text",
      "error": "text"
    }
  ],
  "totalRequested": 1,
  "totalSuccessful": 1,
  "totalFailed": 1
}

Partially updates child groups under an Instant Book & Pay signup in bulk. The parent signup gates the whole request (validated before any per-item work); each item carries the target group id and items are processed independently. Archive semantics per item match the single-resource PUT: isArchived = true is gated on no future events and can archive the signup via the last-live-group cascade; isArchived = false unarchives (EC-1 as amended 2026-07-31) and re-activates an archived signup.

put
/api/v1/CcaSignUp/IBP/{id}/groups/BulkUpdate
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

Body

Request body for PUT /api/v1/CcaSignUp/IBP/{id}/groups/BulkUpdate (SB-15665). The parent signup id in the URL gates the whole request (CCASIGNUP_NOT_FOUND, validated before any per-item work); each item carries its target group Id (EC-7).

organisationIdinteger · int32 · nullableOptional

Gets or sets the organisation the batch operates on. Optional when the calling client has access to a single organisation; required for multi-org clients.

Responses
200

OK

application/json

Standard envelope returned by every Public API bulk endpoint (BulkCreate / BulkUpdate / BulkArchive). Each item in the request is processed independently — one item failing does not roll back the others — and the envelope reports per-item outcome. See cross-cutting-design.md §4.

successfulIdsinteger · int32[] · nullableOptional

Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.

totalRequestedinteger · int32Optional

Gets or sets the total number of items in the request. Set by the caller (it is not derivable from the success/failure lists alone — items rejected before per-item processing may appear in neither).

totalSuccessfulinteger · int32Read-onlyOptional

Gets the number of items processed successfully (computed).

totalFailedinteger · int32Read-onlyOptional

Gets the number of items that failed (computed).

put/api/v1/CcaSignUp/IBP/{id}/groups/BulkUpdate
PUT /api/v1/CcaSignUp/IBP/{id}/groups/BulkUpdate HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 499

{
  "organisationId": 1,
  "items": [
    {
      "groupName": "text",
      "description": "text",
      "groupCode": "text",
      "billingCode": "text",
      "leadStaffId": 1,
      "staffIds": [
        1
      ],
      "activityId": 1,
      "showInSportsPortal": true,
      "locationId": 1,
      "informationOnly": true,
      "maximumPlaces": 1,
      "minimumPlaces": 1,
      "availableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "preRequisite": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "notAvailableTo": [
        {
          "id": 1,
          "type": "Group"
        }
      ],
      "genderAvailableTo": "Female",
      "taxCode": "text",
      "shortName": "text",
      "isArchived": true,
      "id": 1,
      "clientReferenceId": "text"
    }
  ]
}
{
  "successfulIds": [
    1
  ],
  "failedItems": [
    {
      "index": 1,
      "clientReferenceId": "text",
      "name": "text",
      "code": "text",
      "error": "text"
    }
  ],
  "totalRequested": 1,
  "totalSuccessful": 1,
  "totalFailed": 1
}

Archives or unarchives child groups under an Instant Book & Pay signup in bulk (toggleable via the isArchived body flag). Archiving is rejected per item (CCASIGNUP_ARCHIVE_BLOCKED_ACTIVE) while a group has future events; archiving the LAST live group also archives the signup. Unarchiving is never blocked and re-activates an archived signup — subject to the signup's NAME_NOT_UNIQUE unarchive-into-collision guard. Alongside PUT / BulkUpdate items carrying isArchived = false, the write verbs allowed against already-archived groups (EC-1 as amended 2026-07-31).

post
/api/v1/CcaSignUp/IBP/{id}/groups/BulkArchive
Authorizations
AuthorizationstringRequired

Type "Bearer" followed by a space and a token.

Path parameters
idinteger · int32Required

The parent signup id (CcaSignUp.CcaSignUpId)

Body

Request body for POST /api/v1/CcaSignUp/IBP/{id}/groups/BulkArchive (SB-15665 §10 C3). Toggleable: isArchived true archives each group (Team.StatusId = Archive) — blocked per item with CCASIGNUP_ARCHIVE_BLOCKED_ACTIVE while the group has future events (§10 D2); false unarchives (StatusId = Active, never blocked). The container cascade runs per item: archiving the last live group archives the container (CcaSignUp.Status = 4); unarchiving any group re-activates it. The parent signup id in the URL gates the whole request (CCASIGNUP_NOT_FOUND, validated before any per-item work) — an ARCHIVED parent is allowed here, since unarchiving a group is the container's recovery path (§10 D5).

organisationIdinteger · int32 · nullableOptional

Gets or sets the organisation the batch operates on. Optional when the calling client has access to a single organisation; required for multi-org clients.

idsinteger · int32[] · min: 1Required

Gets or sets the ids (Team.Id) of the child groups to transition. Id validity is checked per item (EC-7) — 0 / negative ids fail that item only.

isArchivedbooleanOptional

Gets or sets a value indicating whether the groups are archived (true, default) or unarchived (false).

Responses
200

OK

application/json

Standard envelope returned by every Public API bulk endpoint (BulkCreate / BulkUpdate / BulkArchive). Each item in the request is processed independently — one item failing does not roll back the others — and the envelope reports per-item outcome. See cross-cutting-design.md §4.

successfulIdsinteger · int32[] · nullableOptional

Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.

totalRequestedinteger · int32Optional

Gets or sets the total number of items in the request. Set by the caller (it is not derivable from the success/failure lists alone — items rejected before per-item processing may appear in neither).

totalSuccessfulinteger · int32Read-onlyOptional

Gets the number of items processed successfully (computed).

totalFailedinteger · int32Read-onlyOptional

Gets the number of items that failed (computed).

post/api/v1/CcaSignUp/IBP/{id}/groups/BulkArchive
POST /api/v1/CcaSignUp/IBP/{id}/groups/BulkArchive HTTP/1.1
Host: publicapi-eu.schoolsbuddy.net
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 48

{
  "organisationId": 1,
  "ids": [
    1
  ],
  "isArchived": true
}
{
  "successfulIds": [
    1
  ],
  "failedItems": [
    {
      "index": 1,
      "clientReferenceId": "text",
      "name": "text",
      "code": "text",
      "error": "text"
    }
  ],
  "totalRequested": 1,
  "totalSuccessful": 1,
  "totalFailed": 1
}

Last updated