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.
Type "Bearer" followed by a space and a token.
OK
Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The organisation to create the signup in — required when the client has access to multiple organisations
16:00:0016:00:00Created
16:00:0016:00:00Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The signup id (CcaSignUp.CcaSignUpId)
The organisation to look the signup up in — required when the client has access to multiple organisations
OK
16:00:0016:00:00Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The signup id (CcaSignUp.CcaSignUpId)
The organisation the signup belongs to — required when the client has access to multiple organisations
16:00:0016:00:00OK
16:00:0016:00:00Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
OK
Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
The organisation the signup belongs to — required when the client has access to multiple organisations
Created
Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
The child group id (Team.Id)
The organisation the signup belongs to — required when the client has access to multiple organisations
OK
Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
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).
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.
OK
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.
Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.
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).
Gets the number of items processed successfully (computed).
Gets the number of items that failed (computed).
Bad Request
Not Found
Internal Server Error
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.
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
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).
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.
OK
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.
Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.
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).
Gets the number of items processed successfully (computed).
Gets the number of items that failed (computed).
Bad Request
Not Found
Internal Server Error
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).
Type "Bearer" followed by a space and a token.
The parent signup id (CcaSignUp.CcaSignUpId)
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).
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.
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.
Gets or sets a value indicating whether the groups are archived (true, default) or unarchived (false).
OK
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.
Gets or sets the ids of the items that were processed successfully. On BulkCreate these are the newly-created ids.
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).
Gets the number of items processed successfully (computed).
Gets the number of items that failed (computed).
Bad Request
Not Found
Internal Server Error
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