Skip to main content

Lead provider API - 3.0.0

The lead provider API for DfE’s manage teacher CPD service.

Base URLs

GET /api/v3/delivery-partners

Note, this endpoint is new.
Retrieve delivery partners

Parameters

Parameter In Type Required Description Example
filter query object false

Refine delivery partners to return.

This consumes a DeliveryPartnersFilter schema.

filter[cohort]=2021
page query object false

Pagination options to navigate through the list of delivery partners.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5
sort query array false

Sort delivery partners being returned.

This consumes a DeliveryPartnersSort schema.

sort=-updated_at

Responses

Status Description
200

Successfully return a list of delivery partners

This response returns a DeliveryPartnersResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - Successfully return a list of delivery partners

This response returns a DeliveryPartnersResponse schema.

{
  "data": [
    {
      "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
      "type": "delivery-partner",
      "attributes": {
        "name": "Awesome Delivery Partner Ltd",
        "cohort": [
          "2021",
          "2022"
        ],
        "created_at": "2021-05-31T02:22:32.000Z",
        "updated_at": "2021-05-31T02:22:32.000Z"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/delivery-partners/{id}

Note, this endpoint is new.
Retrieve a specific delivery partner

Parameters

Parameter In Type Required Description Example
id path string true

The unique ID of the delivery partner

00acafd3-e6f6-41e7-a770-3207be94f755

Responses

Status Description
200

Successfully return a specific delivery partner

This response returns a DeliveryPartnerResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - Successfully return a specific delivery partner

This response returns a DeliveryPartnerResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "delivery-partner",
    "attributes": {
      "name": "Awesome Delivery Partner Ltd",
      "cohort": [
        "2021",
        "2022"
      ],
      "created_at": "2021-05-31T02:22:32.000Z",
      "updated_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

GET /api/v3/partnerships/ecf

Note, this endpoint is new.
Retrieve multiple ECF partnerships

Parameters

Parameter In Type Required Description Example
filter query object false

Refine partnerships to return.

This consumes a PartnershipsFilter schema.

filter[cohort]=2021,2022
page query object false

Pagination options to navigate through the list of partnerships.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5
sort query array false

Sort partnerships being returned.

This consumes a PartnershipsSort schema.

sort=-updated_at

Responses

Status Description
200

A list of ECF partnerships

This response returns a MultipleECFPartnershipsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of ECF partnerships

This response returns a MultipleECFPartnershipsResponse schema.

{
  "data": [
    {
      "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
      "type": "partnership",
      "attributes": {
        "cohort": 2021,
        "urn": "123456",
        "school_id": "dd4a11347-7308-4879-942a-c4a70ced400v",
        "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
        "delivery_partner_name": "Delivery Partner Example",
        "status": "challenged",
        "challenged_reason": "mistake",
        "challenged_at": "2021-05-31T02:22:32.000Z",
        "induction_tutor_name": "John Doe",
        "induction_tutor_email": "john.doe@example.com",
        "updated_at": "2021-05-31T02:22:32.000Z",
        "created_at": "2021-05-31T02:22:32.000Z"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

POST /api/v3/partnerships/ecf

Note, this endpoint is new.
Create an ECF partnership with a school and delivery partner

Request body

This consumes a ECFPartnershipRequest schema.

Request example

{
  "data": {
    "type": "ecf-partnership",
    "attributes": {
      "cohort": "2021",
      "school_id": "24b61d1c-ad95-4000-aee0-afbdd542294a",
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314"
    }
  }
}

Responses

Status Description
200

Create an ECF partnership

This response returns a ECFPartnershipResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

422

Unprocessable entity

This response returns a ECFPartnershipRequestErrorResponse schema.

Response examples

200 - Create an ECF partnership

This response returns a ECFPartnershipResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "partnership",
    "attributes": {
      "cohort": 2021,
      "urn": "123456",
      "school_id": "dd4a11347-7308-4879-942a-c4a70ced400v",
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314",
      "delivery_partner_name": "Delivery Partner Example",
      "status": "active",
      "challenged_reason": null,
      "challenged_at": null,
      "induction_tutor_name": "John Doe",
      "induction_tutor_email": "john.doe@example.com",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "created_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
422 - Unprocessable entity

This response returns a ECFPartnershipRequestErrorResponse schema.

{
  "error": [
    {
      "title": "Recruited by other provider",
      "detail": "This partnership cannot be created as it has already partnered with another provider"
    }
  ]
}

GET /api/v3/partnerships/ecf/{id}

Note, this endpoint is new.
Get a single ECF partnership

Parameters

Parameter In Type Required Description Example
id path string true

The unique ID of the partnership

00acafd3-e6f6-41e7-a770-3207be94f755

Responses

Status Description
200

A single partnership

This response returns a ECFPartnershipResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A single partnership

This response returns a ECFPartnershipResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "partnership",
    "attributes": {
      "cohort": 2021,
      "urn": "123456",
      "school_id": "dd4a11347-7308-4879-942a-c4a70ced400v",
      "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
      "delivery_partner_name": "Delivery Partner Example",
      "status": "challenged",
      "challenged_reason": "mistake",
      "challenged_at": "2021-05-31T02:22:32.000Z",
      "induction_tutor_name": "John Doe",
      "induction_tutor_email": "john.doe@example.com",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "created_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

PUT /api/v3/partnerships/ecf/{id}

Note, this endpoint is new.
Update a partnership’s delivery partner in an existing partnership in a cohort

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the partnership to update

28c461ee-ffc0-4e56-96bd-788579a0ed75

Request body

This consumes a ECFPartnershipUpdateRequest schema.

Request example

{
  "data": {
    "type": "ecf-partnership-update",
    "attributes": {
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314"
    }
  }
}

Responses

Status Description
200

Update an ECF partnership

This response returns a ECFPartnershipResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

422

Unprocessable entity

This response returns a ECFPartnershipRequestErrorResponse schema.

Response examples

200 - Update an ECF partnership

This response returns a ECFPartnershipResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "partnership",
    "attributes": {
      "cohort": 2021,
      "urn": "123456",
      "school_id": "dd4a11347-7308-4879-942a-c4a70ced400v",
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314",
      "delivery_partner_name": "Delivery Partner Example",
      "status": "active",
      "challenged_reason": null,
      "challenged_at": null,
      "induction_tutor_name": "John Doe",
      "induction_tutor_email": "john.doe@example.com",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "created_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
422 - Unprocessable entity

This response returns a ECFPartnershipRequestErrorResponse schema.

{
  "error": [
    {
      "title": "Recruited by other provider",
      "detail": "This partnership cannot be created as it has already partnered with another provider"
    }
  ]
}

GET /api/v3/schools/ecf

Note, this endpoint is new.
Retrieve multiple ECF schools scoped to cohort

Parameters

Parameter In Type Required Description Example
filter query object true

Refine schools to return.

This consumes a ECFSchoolsFilter schema.

filter[cohort]=2021&filter[urn]=106286&filter[updated_since]=2020-11-13T11:21:55Z
page query object false

Pagination options to navigate through the list of schools.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5
sort query array false

Sort schools being returned.

This consumes a ECFSchoolsSort schema.

sort=-updated_at

Responses

Status Description
200

A list of schools for the given cohort

This response returns a MultipleECFSchoolsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of schools for the given cohort

This response returns a MultipleECFSchoolsResponse schema.

{
  "data": [
    {
      "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
      "type": "school",
      "attributes": {
        "name": "School Example",
        "urn": "123456",
        "cohort": 2021,
        "in_partnership": "false",
        "induction_programme_choice": "not_yet_known",
        "created_at": "2021-05-31T02:22:32.000Z",
        "updated_at": "2021-05-31T02:22:32.000Z"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/schools/ecf/{id}

Note, this endpoint is new.
Get a single ECF school scoped to cohort

Parameters

Parameter In Type Required Description Example
id path string true

The unique ID of the school

28c461ee-ffc0-4e56-96bd-788579a0ed75
filter query object true

Refine schools to return.

This consumes a ECFSchoolsFilter schema.

filter[cohort]=2021

Responses

Status Description
200

A single school

This response returns a ECFSchoolResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A single school

This response returns a ECFSchoolResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "school",
    "attributes": {
      "name": "School Example",
      "urn": "123456",
      "cohort": 2021,
      "in_partnership": "false",
      "induction_programme_choice": "not_yet_known",
      "created_at": "2021-05-31T02:22:32.000Z",
      "updated_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

GET /api/v3/participant-declarations

Note, this endpoint includes updated specifications.
List all participant declarations

Parameters

Parameter In Type Required Description Example
filter query object false

Refine participant declarations to return.

This consumes a ParticipantDeclarationsFilter schema.

filter[participant_id]=ab3a7848-1208-7679-942a-b4a70eed400a&filter[updated_since]=2020-11-13T11:21:55Z
page query object false

Pagination options to navigate through the list of participant declarations.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5

Responses

Status Description
200

A list of participant declarations

This response returns a MultipleParticipantDeclarationsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of participant declarations

This response returns a MultipleParticipantDeclarationsResponse schema.

{
  "data": [
    {
      "id": "db3a7848-7308-4879-942a-c4a70ced400a",
      "type": "participant-declaration",
      "attributes": {
        "participant_id": "08d78829-f864-417f-8a30-cb7655714e28",
        "declaration_type": "started",
        "declaration_date": "2020-11-13T11:21:55Z",
        "course_identifier": "ecf-induction",
        "state": "eligible",
        "updated_at": "2020-11-13T11:21:55Z",
        "created_at": "2020-11-13T11:21:55Z",
        "delivery_partner_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
        "statement_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
        "clawback_statement_id": null,
        "ineligible_for_funding_reason": null,
        "mentor_id": "907f61ed-5770-4d38-b22c-1a4265939378",
        "uplift_paid": true,
        "evidence_held": "other",
        "has_passed": null,
        "lead_provider_name": "Example Institute"
      }
    },
    {
      "id": "db3a7848-7308-4879-942a-c4a70ced400a",
      "type": "participant-declaration",
      "attributes": {
        "participant_id": "bf3c6251-f2a0-4690-a859-0fbecc6ed151",
        "declaration_type": "started",
        "declaration_date": "2020-11-13T11:21:55Z",
        "course_identifier": "ecf-mentor",
        "state": "eligible",
        "updated_at": "2020-11-13T11:21:55Z",
        "created_at": "2020-11-13T11:21:55Z",
        "delivery_partner_id": null,
        "statement_id": "1cceffd7-0efd-432a-aedc-7be2d6cc72a2",
        "clawback_statement_id": null,
        "ineligible_for_funding_reason": null,
        "mentor_id": null,
        "uplift_paid": true,
        "evidence_held": "other",
        "has_passed": null,
        "lead_provider_name": "Example Institute"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

POST /api/v3/participant-declarations

Note, this endpoint includes updated specifications.
Declare a participant has reached a milestone. Idempotent endpoint - submitting exact copy of a request will return the same response body as submitting it the first time.

Request body

This consumes a ParticipantDeclarationRequest schema.

Responses

Status Description
200

Successful

This response returns a SingleParticipantDeclarationResponse schema.

422

Bad or Missing parameter

This response returns a ErrorResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

400

Bad Request

This response returns a BadRequestResponse schema.

Response examples

200 - Successful

This response returns a SingleParticipantDeclarationResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant-declaration",
    "attributes": {
      "participant_id": "08d78829-f864-417f-8a30-cb7655714e28",
      "declaration_type": "started",
      "declaration_date": "2020-11-13T11:21:55Z",
      "course_identifier": "ecf-induction",
      "state": "eligible",
      "updated_at": "2020-11-13T11:21:55Z",
      "created_at": "2020-11-13T11:21:55Z",
      "delivery_partner_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "statement_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "clawback_statement_id": null,
      "ineligible_for_funding_reason": null,
      "mentor_id": "907f61ed-5770-4d38-b22c-1a4265939378",
      "uplift_paid": true,
      "evidence_held": "other",
      "has_passed": null,
      "lead_provider_name": "Example Institute"
    }
  }
}
422 - Bad or Missing parameter

This response returns a ErrorResponse schema.

{
  "error": [
    {
      "title": "string",
      "detail": "string"
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
400 - Bad Request

This response returns a BadRequestResponse schema.

{
  "bad_request": "string"
}

GET /api/v3/participant-declarations/{id}

Note, this endpoint includes updated specifications.
Get single participant declaration

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the participant declaration ID

9ed4612b-f8bd-44d9-b296-38ab103fadd2

Responses

Status Description
200

A single participant declaration

This response returns a SingleParticipantDeclarationResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not found

This response returns a NotFoundResponse schema.

Response examples

200 - A single participant declaration

This response returns a SingleParticipantDeclarationResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant-declaration",
    "attributes": {
      "participant_id": "08d78829-f864-417f-8a30-cb7655714e28",
      "declaration_type": "started",
      "declaration_date": "2020-11-13T11:21:55Z",
      "course_identifier": "ecf-induction",
      "state": "eligible",
      "updated_at": "2020-11-13T11:21:55Z",
      "created_at": "2020-11-13T11:21:55Z",
      "delivery_partner_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "statement_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "clawback_statement_id": null,
      "ineligible_for_funding_reason": null,
      "mentor_id": "907f61ed-5770-4d38-b22c-1a4265939378",
      "uplift_paid": true,
      "evidence_held": "other",
      "has_passed": null,
      "lead_provider_name": "Example Institute"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

PUT /api/v3/participant-declarations/{id}/void

Note, this endpoint includes updated specifications.
Void a declaration - it will not be soft-deleted

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the declaration to void

28c461ee-ffc0-4e56-96bd-788579a0ed75

Responses

Status Description
200

Successful

This response returns a SingleParticipantDeclarationResponse schema.

Response examples

200 - Successful

This response returns a SingleParticipantDeclarationResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant-declaration",
    "attributes": {
      "participant_id": "08d78829-f864-417f-8a30-cb7655714e28",
      "declaration_type": "started",
      "declaration_date": "2020-11-13T11:21:55Z",
      "course_identifier": "ecf-induction",
      "state": "voided",
      "updated_at": "2020-11-13T11:21:55Z",
      "created_at": "2020-11-13T11:21:55Z",
      "delivery_partner_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "statement_id": "99ca2223-8c1f-4ac8-985d-a0672e97694e",
      "clawback_statement_id": null,
      "ineligible_for_funding_reason": null,
      "mentor_id": "907f61ed-5770-4d38-b22c-1a4265939378",
      "uplift_paid": true,
      "evidence_held": "other",
      "has_passed": null,
      "lead_provider_name": "Example Institute"
    }
  }
}

GET /api/v3/participants/ecf

Note, this endpoint includes updated specifications.
Retrieve multiple participants, replaces /api/v3/participants

Parameters

Parameter In Type Required Description Example
filter query object false

Refine ECF participants to return.

This consumes a ECFParticipantFilter schema.

filter[cohort]=2022&filter[updated_since]=2020-11-13T11:21:55Z&filter[training_status]=active&filter[from_participant_id]=439ac4fe-a003-417f-9694-07c45b3482f8
page query object false

Pagination options to navigate through the list of ECF participants.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5
sort query array false

Sort ECF participants being returned.

This consumes a ECFParticipantsSort schema.

sort=-updated_at

Responses

Status Description
200

A list of ECF participants

This response returns a MultipleECFParticipantsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of ECF participants

This response returns a MultipleECFParticipantsResponse schema.

{
  "data": [
    {
      "id": "ac3d1243-7308-4879-942a-c4a70ced400a",
      "type": "participant",
      "attributes": {
        "full_name": "Jane Smith",
        "teacher_reference_number": "1234567",
        "updated_at": "2021-05-31T02:22:32.000Z",
        "ecf_enrolments": [
          {
            "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
            "email": "jane.smith@some-school.example.com",
            "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
            "school_urn": "106286",
            "participant_type": "ect",
            "cohort": "2021",
            "training_status": "active",
            "participant_status": "active",
            "teacher_reference_number_validated": true,
            "eligible_for_funding": true,
            "pupil_premium_uplift": true,
            "sparsity_uplift": true,
            "schedule_identifier": "ecf-standard-january",
            "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
            "withdrawal": null,
            "deferral": null,
            "created_at": "2021-05-31T02:22:32.000Z",
            "induction_end_date": "2022-01-12",
            "mentor_funding_end_date": "2021-04-19",
            "cohort_changed_after_payments_frozen": true,
            "mentor_ineligible_for_funding_reason": "completed_declaration_received"
          }
        ],
        "participant_id_changes": [
          {
            "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
            "to_participant_id": "ac3d1243-7308-4879-942a-c4a70ced400a",
            "changed_at": "2021-05-31T02:22:32.000Z"
          }
        ]
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/participants/ecf/{id}

Note, this endpoint includes updated specifications.
Get a single ECF participant

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the ECF participant.

28c461ee-ffc0-4e56-96bd-788579a0ed75

Responses

Status Description
200

A single ECF participant

This response returns a ECFParticipantResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A single ECF participant

This response returns a ECFParticipantResponse schema.

{
  "data": {
    "id": "ac3d1243-7308-4879-942a-c4a70ced400a",
    "type": "participant",
    "attributes": {
      "full_name": "Jane Smith",
      "teacher_reference_number": "1234567",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "ecf_enrolments": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "email": "jane.smith@some-school.example.com",
          "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
          "school_urn": "106286",
          "participant_type": "ect",
          "cohort": "2021",
          "training_status": "active",
          "participant_status": "active",
          "teacher_reference_number_validated": true,
          "eligible_for_funding": true,
          "pupil_premium_uplift": true,
          "sparsity_uplift": true,
          "schedule_identifier": "ecf-standard-january",
          "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
          "withdrawal": null,
          "deferral": null,
          "created_at": "2021-05-31T02:22:32.000Z",
          "induction_end_date": "2022-01-12",
          "mentor_funding_end_date": "2021-04-19",
          "cohort_changed_after_payments_frozen": true,
          "mentor_ineligible_for_funding_reason": "completed_declaration_received"
        }
      ],
      "participant_id_changes": [
        {
          "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
          "to_participant_id": "ac3d1243-7308-4879-942a-c4a70ced400a",
          "changed_at": "2021-05-31T02:22:32.000Z"
        }
      ]
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

GET /api/v3/participants/ecf/transfers

Note, this endpoint is new.
Retrieve multiple ECF participant transfers

Parameters

Parameter In Type Required Description Example
filter query object false

Refine participant transfers to return.

This consumes a ListFilter schema.

filter[updated_since]=2020-11-13T11:21:55Z
page query object false

Pagination options to navigate through the list of participant transfers.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5

Responses

Status Description
200

A list of ECF participant transfers

This response returns a MultipleECFParticipantTransferResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of ECF participant transfers

This response returns a MultipleECFParticipantTransferResponse schema.

{
  "data": [
    {
      "id": "db3a7848-7308-4879-942a-c4a70ced400a",
      "type": "participant-transfer",
      "attributes": {
        "updated_at": "2021-05-31T02:22:32.000Z",
        "transfers": [
          {
            "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
            "transfer_type": "new_provider",
            "status": "complete",
            "leaving": {
              "school_urn": "123456",
              "provider": "Old Institute",
              "date": "2021-05-31"
            },
            "joining": {
              "school_urn": "654321",
              "provider": "New Institute",
              "date": "2021-06-01"
            },
            "created_at": "2021-05-31T02:22:32.000Z"
          }
        ]
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/participants/ecf/{id}/transfers

Note, this endpoint is new.
Get a single participant’s transfers

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the ECF participant.

28c461ee-ffc0-4e56-96bd-788579a0ed75

Responses

Status Description
200

A single participant’s transfers

This response returns a ECFParticipantTransferResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A single participant’s transfers

This response returns a ECFParticipantTransferResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant-transfer",
    "attributes": {
      "updated_at": "2021-05-31T02:22:32.000Z",
      "transfers": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "transfer_type": "new_provider",
          "status": "complete",
          "leaving": {
            "school_urn": "123456",
            "provider": "Old Institute",
            "date": "2021-05-31"
          },
          "joining": {
            "school_urn": "654321",
            "provider": "New Institute",
            "date": "2021-06-01"
          },
          "created_at": "2021-05-31T02:22:32.000Z"
        }
      ]
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

PUT /api/v3/participants/ecf/{id}/defer

Note, this endpoint includes updated specifications.
Notify that an ECF participant is taking a break from their course

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the participant to defer

28c461ee-ffc0-4e56-96bd-788579a0ed75

Request body

This consumes a ECFParticipantDeferRequest schema.

Request example

{
  "data": {
    "type": "participant-defer",
    "attributes": {
      "reason": "career-break",
      "course_identifier": "ecf-mentor"
    }
  }
}

Responses

Status Description
200

The ECF participant being deferred

This response returns a ECFParticipantResponse schema.

Response examples

200 - The ECF participant being deferred

This response returns a ECFParticipantResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant",
    "attributes": {
      "full_name": "Jane Smith",
      "teacher_reference_number": "1234567",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "ecf_enrolments": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "email": "jane.smith@some-school.example.com",
          "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
          "school_urn": "106286",
          "participant_type": "ect",
          "cohort": "2021",
          "training_status": "deferred",
          "participant_status": "active",
          "teacher_reference_number_validated": true,
          "eligible_for_funding": true,
          "pupil_premium_uplift": true,
          "sparsity_uplift": true,
          "schedule_identifier": "ecf-standard-january",
          "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
          "withdrawal": null,
          "deferral": {
            "reason": "other",
            "date": "2021-06-31T02:22:32.000Z"
          },
          "created_at": "2021-05-31T02:22:32.000Z",
          "induction_end_date": "2022-01-12",
          "mentor_funding_end_date": "2021-04-19",
          "cohort_changed_after_payments_frozen": true,
          "mentor_ineligible_for_funding_reason": null
        }
      ],
      "participant_id_changes": [
        {
          "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
          "to_participant_id": "db3a7848-7308-4879-942a-c4a70ced400a",
          "changed_at": "2023-09-23T02:22:32.000Z"
        }
      ]
    }
  }
}

PUT /api/v3/participants/ecf/{id}/resume

Note, this endpoint includes updated specifications.
Notify that an ECF participant is resuming their course

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the participant to resume

28c461ee-ffc0-4e56-96bd-788579a0ed75

Request body

This consumes a ECFParticipantResumeRequest schema.

Request example

{
  "data": {
    "type": "participant-resume",
    "attributes": {
      "course_identifier": "ecf-mentor"
    }
  }
}

Responses

Status Description
200

The ECF participant being resumed

This response returns a ECFParticipantResponse schema.

Response examples

200 - The ECF participant being resumed

This response returns a ECFParticipantResponse schema.

{
  "data": {
    "id": "ac3d1243-7308-4879-942a-c4a70ced400a",
    "type": "participant",
    "attributes": {
      "full_name": "Jane Smith",
      "teacher_reference_number": "1234567",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "ecf_enrolments": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "email": "jane.smith@some-school.example.com",
          "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
          "school_urn": "106286",
          "participant_type": "ect",
          "cohort": "2021",
          "training_status": "active",
          "participant_status": "active",
          "teacher_reference_number_validated": true,
          "eligible_for_funding": true,
          "pupil_premium_uplift": true,
          "sparsity_uplift": true,
          "schedule_identifier": "ecf-standard-january",
          "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
          "withdrawal": null,
          "deferral": null,
          "created_at": "2021-05-31T02:22:32.000Z",
          "induction_end_date": "2022-01-12",
          "mentor_funding_end_date": "2021-04-19",
          "cohort_changed_after_payments_frozen": true,
          "mentor_ineligible_for_funding_reason": "completed_declaration_received"
        }
      ],
      "participant_id_changes": [
        {
          "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
          "to_participant_id": "ac3d1243-7308-4879-942a-c4a70ced400a",
          "changed_at": "2021-05-31T02:22:32.000Z"
        }
      ]
    }
  }
}

PUT /api/v3/participants/ecf/{id}/withdraw

Note, this endpoint includes updated specifications.
Notify that an ECF participant has withdrawn from their course

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the participant to withdraw

28c461ee-ffc0-4e56-96bd-788579a0ed75

Request body

This consumes a ECFParticipantWithdrawRequest schema.

Request example

{
  "data": {
    "type": "participant-withdraw",
    "attributes": {
      "reason": "left-teaching-profession",
      "course_identifier": "ecf-mentor"
    }
  }
}

Responses

Status Description
200

The ECF participant being withdrawn

This response returns a ECFParticipantResponse schema.

Response examples

200 - The ECF participant being withdrawn

This response returns a ECFParticipantResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "participant",
    "attributes": {
      "full_name": "Jane Smith",
      "teacher_reference_number": "1234567",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "ecf_enrolments": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "email": "jane.smith@some-school.example.com",
          "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
          "school_urn": "106286",
          "participant_type": "ect",
          "cohort": "2021",
          "training_status": "withdrawn",
          "participant_status": "active",
          "teacher_reference_number_validated": true,
          "eligible_for_funding": true,
          "pupil_premium_uplift": true,
          "sparsity_uplift": true,
          "schedule_identifier": "ecf-standard-january",
          "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
          "deferral": null,
          "withdrawal": {
            "reason": "other",
            "date": "2021-06-31T02:22:32.000Z"
          },
          "created_at": "2021-05-31T02:22:32.000Z",
          "induction_end_date": "2022-01-12",
          "mentor_funding_end_date": "2021-04-19",
          "cohort_changed_after_payments_frozen": false,
          "mentor_ineligible_for_funding_reason": null
        }
      ],
      "participant_id_changes": [
        {
          "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
          "to_participant_id": "db3a7848-7308-4879-942a-c4a70ced400a",
          "changed_at": "2023-09-23T02:22:32.000Z"
        }
      ]
    }
  }
}

PUT /api/v3/participants/ecf/{id}/change-schedule

Note, this endpoint includes updated specifications.
Notify that an ECF Participant is changing training schedule

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the participant

28c461ee-ffc0-4e56-96bd-788579a0ed75

Request body

This consumes a ECFParticipantChangeScheduleRequest schema.

Request example

{
  "data": {
    "type": "participant-change-schedule",
    "attributes": {
      "schedule_identifier": "ecf-standard-january",
      "course_identifier": "ecf-mentor",
      "cohort": "2021"
    }
  }
}

Responses

Status Description
200

The ECF Participant changing schedule

This response returns a ECFParticipantResponse schema.

Response examples

200 - The ECF Participant changing schedule

This response returns a ECFParticipantResponse schema.

{
  "data": {
    "id": "ac3d1243-7308-4879-942a-c4a70ced400a",
    "type": "participant",
    "attributes": {
      "full_name": "Jane Smith",
      "teacher_reference_number": "1234567",
      "updated_at": "2021-05-31T02:22:32.000Z",
      "ecf_enrolments": [
        {
          "training_record_id": "000a97ff-d2a9-4779-a397-9bfd9063072e",
          "email": "jane.smith@some-school.example.com",
          "mentor_id": "bb36d74a-68a7-47b6-86b6-1fd0d141c590",
          "school_urn": "106286",
          "participant_type": "ect",
          "cohort": "2021",
          "training_status": "active",
          "participant_status": "active",
          "teacher_reference_number_validated": true,
          "eligible_for_funding": true,
          "pupil_premium_uplift": true,
          "sparsity_uplift": true,
          "schedule_identifier": "ecf-standard-january",
          "delivery_partner_id": "cd3a12347-7308-4879-942a-c4a70ced400a",
          "withdrawal": null,
          "deferral": null,
          "created_at": "2021-05-31T02:22:32.000Z",
          "induction_end_date": "2022-01-12",
          "mentor_funding_end_date": "2021-04-19",
          "cohort_changed_after_payments_frozen": true,
          "mentor_ineligible_for_funding_reason": "completed_declaration_received"
        }
      ],
      "participant_id_changes": [
        {
          "from_participant_id": "23dd8d66-e11f-4139-9001-86b4f9abcb02",
          "to_participant_id": "ac3d1243-7308-4879-942a-c4a70ced400a",
          "changed_at": "2021-05-31T02:22:32.000Z"
        }
      ]
    }
  }
}

GET /api/v3/unfunded-mentors/ecf

Note, this endpoint is new.
Retrieve multiple unfunded mentors

Parameters

Parameter In Type Required Description Example
filter query object false

Refine unfunded mentors to return.

This consumes a ListFilter schema.

filter[updated_since]=2020-11-13T11:21:55Z
page query object false

Pagination options to navigate through the list of unfunded mentors.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5
sort query array false

Sort unfunded mentors being returned.

This consumes a ECFUnfundedMentorsSort schema.

sort=-updated_at

Responses

Status Description
200

A list of unfunded mentors

This response returns a MultipleUnfundedMentorsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of unfunded mentors

This response returns a MultipleUnfundedMentorsResponse schema.

{
  "data": [
    {
      "id": "db3a7848-7308-4879-942a-c4a70ced400a",
      "type": "unfunded-mentor",
      "attributes": {
        "full_name": "Jane Smith",
        "email": "jane.smith@some-school.example.com",
        "teacher_reference_number": "1234567",
        "created_at": "2021-05-31T02:22:32.000Z",
        "updated_at": "2021-05-31T02:22:32.000Z"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/unfunded-mentors/ecf/{id}

Note, this endpoint is new.
Get a single unfunded mentor

Parameters

Parameter In Type Required Description Example
id path string true

The ID of the unfunded mentor.

28c461ee-ffc0-4e56-96bd-788579a0ed75

Responses

Status Description
200

A single unfunded mentor

This response returns a UnfundedMentorResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A single unfunded mentor

This response returns a UnfundedMentorResponse schema.

{
  "data": {
    "id": "db3a7848-7308-4879-942a-c4a70ced400a",
    "type": "unfunded-mentor",
    "attributes": {
      "full_name": "Jane Smith",
      "email": "jane.smith@some-school.example.com",
      "teacher_reference_number": "1234567",
      "created_at": "2021-05-31T02:22:32.000Z",
      "updated_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

GET /api/v3/statements

Note, this endpoint is new.
Retrieve financial statements

Parameters

Parameter In Type Required Description Example
filter query object false

Refine statements to return.

This consumes a StatementsFilter schema.

filter[cohort]=2021,2022&filter[type]=ecf&filter[updated_since]=2020-11-13T11:21:55Z
page query object false

Pagination options to navigate through the list of statements.

This consumes a Pagination schema.

page[page]=1&page[per_page]=5

Responses

Status Description
200

A list of statements as part of which the DfE will make output payments for ecf participants

This response returns a StatementsResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

Response examples

200 - A list of statements as part of which the DfE will make output payments for ecf participants

This response returns a StatementsResponse schema.

{
  "data": [
    {
      "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
      "type": "statement",
      "attributes": {
        "month": "May",
        "year": "2022",
        "type": "ecf",
        "cohort": "2021",
        "cut_off_date": "2022-04-30",
        "payment_date": "2022-05-25",
        "paid": true,
        "created_at": "2021-05-31T02:22:32.000Z",
        "updated_at": "2021-05-31T02:22:32.000Z"
      }
    }
  ]
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}

GET /api/v3/statements/{id}

Note, this endpoint is new.
Retrieve specific financial statement

Parameters

Parameter In Type Required Description Example
id path string true

The unique ID of the statement

fe82db5d-a7ff-42b4-9eb7-19a87bf0ce5f

Responses

Status Description
200

A specific financial statement

This response returns a StatementResponse schema.

401

Unauthorized

This response returns a UnauthorisedResponse schema.

404

Not Found

This response returns a NotFoundResponse schema.

Response examples

200 - A specific financial statement

This response returns a StatementResponse schema.

{
  "data": {
    "id": "cd3a12347-7308-4879-942a-c4a70ced400a",
    "type": "statement",
    "attributes": {
      "month": "May",
      "year": "2022",
      "type": "ecf",
      "cohort": "2021",
      "cut_off_date": "2022-04-30",
      "payment_date": "2022-05-25",
      "paid": true,
      "created_at": "2021-05-31T02:22:32.000Z",
      "updated_at": "2021-05-31T02:22:32.000Z"
    }
  }
}
401 - Unauthorized

This response returns a UnauthorisedResponse schema.

{
  "error": "HTTP Token: Access denied"
}
404 - Not Found

This response returns a NotFoundResponse schema.

{
  "title": "string",
  "detail": "string"
}

Schemas

BadOrMissingParametersResponse

Request was missing data or contained invalid data

Name Type Required Description
bad_or_missing_parameters array true

An error message for each bad or missing attribute describing the problems

BadRequestResponse

Bad Request

Name Type Required Description
bad_request string false

An error message for bad request

Example

{
  "errors": [
    {
      "title": "Bad request",
      "detail": "correct json data structure required. See API docs for reference"
    }
  ]
}

DeliveryPartner

A delivery partner

Name Type Required Description
id string true

The unique identifier of the delivery partner

type string true

The data type

attributes object true

The data attributes associated with a delivery partner

It conforms to DeliveryPartnerAttributes schema.

DeliveryPartnerAttributes

The data attributes associated with a delivery partner

Name Type Required Description
name string true

The name of the delivery partner you are working with

cohort array false

The cohorts for which you may report school partnerships with this delivery partner

created_at string true

The date the delivery partner was created

updated_at string true

The date the delivery partner was last updated

DeliveryPartnerCohortError

Not a delivery partner you have a relationship with for this cohort

Name Type Required Description
title string false

Title of error message

Possible values:

  • Not a delivery partner you have a relationship with for this cohort
detail string false

Additional info on which cohorts are available

DeliveryPartnerResponse

A delivery partner

Name Type Required Description
data object true

A delivery partner

It conforms to DeliveryPartner schema.

DeliveryPartnersFilter

Filter delivery partners to return more specific results

Name Type Required Description
cohort string false

Return delivery partners from the specified cohort or cohorts. This is a comma delimited string of years.

DeliveryPartnersResponse

A list of delivery partners

Name Type Required Description
data array true It conforms to DeliveryPartner schema.

DeliveryPartnersSort

Sort delivery partners being returned

Name Type Required Description
Item string false It conforms to DeliveryPartnersSort/items schema.

Possible values:

  • created_at
  • -created_at
  • updated_at
  • -updated_at

ECFDeferral

The details of an ECF Participant deferral

Name Type Required Description
reason string true

The reason a participant was deferred

Possible values:

  • bereavement
  • long-term-sickness
  • parental-leave
  • career-break
  • other
date string true

The date and time the participant was deferred

ECFEnrolment

The details of an ECF Participant enrolment

Name Type Required Description
training_record_id string true

The unique identifier of the participant training record. Should the DfE dedupe a participant, this value will not change.

email string true

The email address registered for this ECF participant

mentor_id string false

The unique identifier of this ECF participants mentor

school_urn string true

The Unique Reference Number (URN) of the school that submitted this ECF participant

participant_type string true

The type of ECF participant this record refers to

Possible values:

  • ect
  • mentor
cohort string true

Indicates which call-off contract funds this participant’s training. 2021 indicates a participant that has started, or will start, their training in the 2021/22 academic year.

training_status string true

The training status of the ECF participant

Possible values:

  • active
  • deferred
  • withdrawn
participant_status string true

Replaces the old status field. Indicates if a SIT has advised DfE of a transfer or a withdrawal of the participant from the school

Possible values:

  • active
  • joining
  • leaving
  • left
  • withdrawn
teacher_reference_number_validated boolean true

Indicates whether the Teacher Reference Number (TRN) has been validated

eligible_for_funding boolean true

Indicates whether this participant is eligible to receive DfE funded induction

pupil_premium_uplift boolean true

Indicates whether this participant qualifies for an uplift payment due to pupil premium

sparsity_uplift boolean true

Indicates whether this participant qualifies for an uplift payment due to sparsity

schedule_identifier string true

The schedule of the ECF participant. For the possible values please refer to the ECF schedules and milestone dates guidance.

Possible values:

  • ecf-standard-september
  • ecf-standard-january
  • ecf-standard-april
  • ecf-reduced-september
  • ecf-reduced-january
  • ecf-reduced-april
  • ecf-extended-september
  • ecf-extended-january
  • ecf-extended-april
  • ecf-replacement-september
  • ecf-replacement-january
  • ecf-replacement-april
delivery_partner_id string true

Unique ID of the delivery partner associated with the participant

withdrawal false

This conforms to any of the following schemas:

deferral false

This conforms to any of the following schemas:

created_at string true

The date and time the ECF participant was created

induction_end_date string false

The ECF participant induction completion date

mentor_funding_end_date string false

The ECF participant mentor training completion date

cohort_changed_after_payments_frozen boolean false

Identify participants that migrated to a new cohort as payments were frozen on their original cohort

mentor_ineligible_for_funding_reason string false

The reason why funding for a mentor’s training has ended

Possible values:

  • completed_declaration_received
  • completed_during_early_roll_out
  • started_not_completed

ParticipantIdChange

The details of an Participant ID change

Name Type Required Description
from_participant_id string true

The unique identifier of the changed from participant training record.

to_participant_id string true

The unique identifier of the changed to participant training record.

changed_at string true

The date and time the Participant ID change

ECFParticipant

Note, this endpoint includes updated specifications.
The details of a participant

Name Type Required Description
id string true

The unique identifier of the participant record

type string true

The data type

attributes object true

The data attributes associated with an ECF participant

It conforms to ECFParticipantAttributes schema.

ECFParticipantAttributes

The data attributes associated with an ECF participant

Name Type Required Description
full_name string true

The full name of this ECF participant

teacher_reference_number string false

The Teacher Reference Number (TRN) for this participant

updated_at string true

The date and time the ECF participant was last updated

ecf_enrolments array true

Information about the course(s) the participant is enroled in

It conforms to ECFEnrolment schema.
participant_id_changes array true

Information about the Participant ID changes

It conforms to ParticipantIdChange schema.

ECFParticipantChangeSchedule

An ECF participant change schedule action

Name Type Required Description
type string true

The data type

Possible values:

  • participant-change-schedule
attributes object true

An ECF participant change schedule action

It conforms to ECFParticipantChangeScheduleAttributes schema.

Example

{
  "type": "participant-change-schedule",
  "attributes": {
    "schedule_identifier": "ecf-standard-january",
    "course_identifier": "ecf-mentor"
  }
}

ECFParticipantChangeScheduleAttributes

An ECF participant change schedule action

Name Type Required Description
schedule_identifier string true

The new schedule of the participant

Possible values:

  • ecf-standard-september
  • ecf-standard-january
  • ecf-standard-april
  • ecf-reduced-september
  • ecf-reduced-january
  • ecf-reduced-april
  • ecf-extended-september
  • ecf-extended-january
  • ecf-extended-april
  • ecf-replacement-september
  • ecf-replacement-january
  • ecf-replacement-april
course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
cohort string false

Providers may not change the current value for ECF participants. Indicates which call-off contract funds this participant’s training. 2021 indicates a participant that has started, or will start, their training in the 2021/22 academic year.

Example

{
  "schedule_identifier": "ecf-standard-january",
  "course_identifier": "ecf-mentor",
  "cohort": "2021"
}

ECFParticipantChangeScheduleRequest

The change schedule request for a participant

Name Type Required Description
data object true

An ECF participant change schedule action

It conforms to ECFParticipantChangeSchedule schema.

Example

{
  "data": {
    "type": "participant-change-schedule",
    "attributes": {
      "schedule_identifier": "ecf-standard-january",
      "course_identifier": "ecf-mentor",
      "cohort": "2021"
    }
  }
}

ECFParticipantDeclarationAttributes

The data attributes associated with a participant declaration response

Name Type Required Description
participant_id string true

The unique id of the participant

declaration_type string true

The event declaration type

Possible values:

  • started
  • retained-1
  • retained-2
  • retained-3
  • retained-4
  • completed
  • extended-1
  • extended-2
  • extended-3
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
state string true

Indicates the state of this payment declaration

Possible values:

  • submitted
  • eligible
  • payable
  • paid
  • voided
  • ineligible
  • awaiting-clawback
  • clawed-back
updated_at string true

The date the declaration was last updated

created_at string false

The date the declaration was created

delivery_partner_id string false

Unique ID of the delivery partner associated with the participant at the time the declaration was created

statement_id string false

Unique ID of the statement the declaration will be paid as part of

clawback_statement_id string false

Unique id of the statement to which the declaration will be clawed back on, if any

ineligible_for_funding_reason string false

If the declaration is ineligible, the reason why

Possible values:

  • to
  • be
  • determined
mentor_id string false

Unique ID of the ECT’s mentor

uplift_paid boolean false

If participant is eligible for uplift, whether it has been paid as part of this declaration

evidence_held string false

The type of evidence that the lead provider holds on their platform to demonstrate that the participant has met the retention criteria for the current milestone period

Possible values:

  • training-event-attended
  • self-study-material-completed
  • other
has_passed boolean false

Whether the participant has failed or passed

lead_provider_name string true

The name of the provider that submitted the declaration

ECFParticipantDeclarationCompletedAttributesRequest

An ECF completed participant declaration

Name Type Required Description
participant_id string true

The unique ID of the participant

declaration_type string true

The event declaration type

Possible values:

  • completed
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
evidence_held string true

The type of evidence that the lead provider holds on their platform to demonstrate that the participant has met the retention criteria for the current milestone period

Possible values:

  • training-event-attended
  • self-study-material-completed
  • other

ECFParticipantDeclarationExtendedAttributesRequest

An ECF extended participant declaration

Name Type Required Description
participant_id string true

The unique ID of the participant

declaration_type string true

The event declaration type

Possible values:

  • extended-1
  • extended-2
  • extended-3
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
evidence_held string true

The type of evidence that the lead provider holds on their platform to demonstrate that the participant has met the retention criteria for the current milestone period

Possible values:

  • training-event-attended
  • self-study-material-completed
  • other

ECFParticipantDeclarationResponse

An ECF participant declaration response

Name Type Required Description
id string true

The unique identifier of the participant declaration record

type string true

The data type

Possible values:

  • participant-declaration
attributes object true

The data attributes associated with a participant declaration response

It conforms to ECFParticipantDeclarationAttributes schema.

ECFParticipantDeclarationRetainedAttributesRequest

An ECF participant retained declaration

Name Type Required Description
participant_id string true

The unique ID of the participant

declaration_type string true

The event declaration type

Possible values:

  • retained-1
  • retained-2
  • retained-3
  • retained-4
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
evidence_held string true

The type of evidence that the lead provider holds on their platform to demonstrate that the participant has met the retention criteria for the current milestone period

Possible values:

  • training-event-attended
  • self-study-material-completed
  • other

ECFParticipantDeclarationStartedAttributesRequest

An ECF started participant declaration

Name Type Required Description
participant_id string true

The unique ID of the participant

declaration_type string true

The event declaration type

Possible values:

  • started
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor

ECFParticipantDefer

The details of a participant deferral request

Name Type Required Description
type string true

The data type

Possible values:

  • participant-defer
attributes object true

An ECF participant deferral action

It conforms to ECFParticipantDeferAttributes schema.

ECFParticipantDeferAttributes

An ECF participant deferral action

Name Type Required Description
reason string true

The reason for the deferral

Possible values:

  • bereavement
  • long-term-sickness
  • parental-leave
  • career-break
  • other
course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor

Example

{
  "reason": "career-break",
  "course_identifier": "ecf-mentor"
}

ECFParticipantDeferRequest

The deferral request for a participant

Name Type Required Description
data object true

The details of a participant deferral request

It conforms to ECFParticipantDefer schema.

Example

{
  "data": {
    "type": "participant-defer",
    "attributes": {
      "reason": "career-break",
      "course_identifier": "ecf-mentor"
    }
  }
}

ECFParticipantsSort

Sort ECF participants being returned

Name Type Required Description
Item string false It conforms to ECFParticipantsSort/items schema.

Possible values:

  • created_at
  • -created_at
  • updated_at
  • -updated_at

ECFParticipantTransfer

Note, this is a new endpoint. The details of an ECF participant transfer

Name Type Required Description
id string true

The unique identifier of the participant record

type string true

The data type

attributes object true

The data attributes associated with an ECF participant transfer

It conforms to ECFParticipantTransferAttributes schema.

ECFParticipantTransferAttributes

The data attributes associated with an ECF participant transfer

Name Type Required Description
updated_at string true

The date and time the latest ECF participant was last updated

transfers array true

List of participant transfers

It conforms to ECFParticipantTransfers schema.

ECFParticipantTransfers

The details of an ECF Participant enrolment

Name Type Required Description
training_record_id string true

The unique identifier of the participant training record

transfer_type string true

The type of transfer between schools

Possible values:

  • new_school
  • new_provider
  • unknown
status string true

The status of the transfer, if both leaving and joining SIT have completed their journeys or only one has

Possible values:

  • incomplete
  • complete
leaving false

This conforms to any of the following schemas:

joining false

This conforms to any of the following schemas:

created_at string true

The date and time the ECF participant transfer was created

ECFParticipantTransferResponse

An ECF participant transfer list

Name Type Required Description
data object true

Note, this is a new endpoint. The details of an ECF participant transfer

It conforms to ECFParticipantTransfer schema.

ECFParticipantJoining

The details of an ECF Participant joining a school

Name Type Required Description
school_urn string true

The URN of the school the participant is joining

provider string true

The name of the provider the participant is joining

date string true

The date the participant will be joining the school

ECFParticipantLeaving

The details of an ECF Participant leaving a school

Name Type Required Description
school_urn string true

The URN of the school the participant is leaving

provider string true

The name of the provider the participant is leaving

date string false

The date the participant will be leaving the school

ECFParticipantResponse

An ECF Participant

Name Type Required Description
data object true

Note, this endpoint includes updated specifications.
The details of a participant

It conforms to ECFParticipant schema.

ECFParticipantResume

An ECF participant resume action

Name Type Required Description
type string true

The data type

Possible values:

  • participant-resume
attributes object true

An ECF participant resume action

It conforms to ECFParticipantResumeAttributes schema.

ECFParticipantResumeAttributes

An ECF participant resume action

Name Type Required Description
course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor

Example

{
  "course_identifier": "ecf-mentor"
}

ECFParticipantResumeRequest

The resume request for a participant

Name Type Required Description
data object true

An ECF participant resume action

It conforms to ECFParticipantResume schema.

Example

{
  "data": {
    "type": "participant-resume",
    "attributes": {
      "course_identifier": "ecf-mentor"
    }
  }
}

ECFParticipantWithdraw

An ECF participant withdrawal action

Name Type Required Description
type string false

The data type

Possible values:

  • participant-withdraw
attributes object false

An ECF participant withdrawal action

It conforms to ECFParticipantWithdrawAttributes schema.

ECFParticipantWithdrawAttributes

An ECF participant withdrawal action

Name Type Required Description
reason string true

The reason for the withdrawal

Possible values:

  • left-teaching-profession
  • moved-school
  • mentor-no-longer-being-mentor
  • school-left-fip
  • other
course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor

Example

{
  "reason": "left-teaching-profession",
  "course_identifier": "ecf-mentor"
}

ECFParticipantWithdrawRequest

The withdrawal request for a participant

Name Type Required Description
data object true

An ECF participant withdrawal action

It conforms to ECFParticipantWithdraw schema.

Example

{
  "data": {
    "type": "participant-withdraw",
    "attributes": {
      "reason": "left-teaching-profession",
      "course_identifier": "ecf-mentor"
    }
  }
}

ECFPartnership

An ECF partnership

Name Type Required Description
id string true

The unique identifier of the partnership

type string true

The data type

attributes object true

The data attributes associated with an ECF partnership

It conforms to ECFPartnershipAttributes schema.

ECFPartnershipAttibutesRequest

Name Type Required Description
cohort string true

The cohort for which you are reporting the partnership

delivery_partner_id string true

The unique ID of the delivery partner you will work with for this school partnership

school_id string true

The Unique ID of the school you are partnering with

ECFPartnershipAttributes

The data attributes associated with an ECF partnership

Name Type Required Description
cohort string true

The cohort for which you are reporting the partnership

urn string true

The Unique Reference Number (URN) of the school you are partnered with

school_id string true

The unique ID of the school you are partnered with

delivery_partner_id string true

The unique ID of the delivery partner you are working with for this partnership

delivery_partner_name string false

The name of the delivery partner you are working with for this partnership

status string true

The status of the partnership which includes active or challenged

Possible values:

  • active
  • challenged
challenged_reason string false

If the partnership has been challenged, the reason provided for the challenge by the SIT

Possible values:

  • another_provider
  • not_confirmed
  • do_not_recognise
  • no_ects
  • mistake
challenged_at string false

The date the partnership has been challenged

induction_tutor_name string false

The name of the induction tutor at the school you are in partnership with

induction_tutor_email string false

The email address of the induction tutor at the school you are in partnership with

updated_at string true

The date the partnership was last updated

created_at string true

The date the partnership was reported by you

ECFPartnershipDataRequest

An ECF partnership

Name Type Required Description
type string false

Possible values:

  • ecf-partnership
attributes object false It conforms to ECFPartnershipAttibutesRequest schema.

ECFPartnershipRequest

An ECF partnership

Name Type Required Description
data object true

An ECF partnership

It conforms to ECFPartnershipDataRequest schema.

Example

{
  "data": {
    "type": "ecf-partnership",
    "attributes": {
      "cohort": "2021",
      "school_id": "24b61d1c-ad95-4000-aee0-afbdd542294a",
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314"
    }
  }
}

ECFPartnershipRequestErrorResponse

A list of errors

Name Type Required Description
error array false

This conforms to any of the following schemas:

ECFPartnershipResponse

A list of ECF partnerships

Name Type Required Description
data object true

An ECF partnership

It conforms to ECFPartnership schema.

ECFPartnershipUpdateAttibutesRequest

Name Type Required Description
delivery_partner_id string true

The unique ID of the delivery partner you will work with for this school partnership

ECFPartnershipUpdateDataRequest

Update An ECF partnership

Name Type Required Description
type string false

Possible values:

  • ecf-partnership-update
attributes object false It conforms to ECFPartnershipUpdateAttibutesRequest schema.

ECFPartnershipUpdateRequest

Update an ECF partnership

Name Type Required Description
data object true

Update An ECF partnership

It conforms to ECFPartnershipUpdateDataRequest schema.

Example

{
  "data": {
    "type": "ecf-partnership-update",
    "attributes": {
      "delivery_partner_id": "db2fbf67-b7b7-454f-a1b7-0020411e2314"
    }
  }
}

ECFSchool

An ECF school

Name Type Required Description
id string true

The unique identifier of the school

type string true

The data type

attributes object true

The data attributes associated with an ECF school

It conforms to ECFSchoolAttributes schema.

ECFSchoolAttributes

The data attributes associated with an ECF school

Name Type Required Description
name string true

The name of the school

urn string true

The Unique Reference Number (URN) of the school

cohort string true

Indicates which call-off contract funds this participant’s training. 2021 indicates a participant that has started, or will start, their training in the 2021/22 academic year.

in_partnership boolean true

Whether or not the school already has an active partnership, if it is doing a funded induction programme

induction_programme_choice string true

The induction programme the school offers

Possible values:

  • core_induction_programme
  • full_induction_programme
  • design_our_own
  • school_funded_fip
  • no_early_career_teachers
  • not_yet_known
created_at string true

The date and time the school was created

updated_at string true

The last time a change was made to this school record by the DfE

ECFSchoolResponse

A single ECF school

Name Type Required Description
data object true

An ECF school

It conforms to ECFSchool schema.

ECFSchoolsFilter

Filter schools to return more specific results

Name Type Required Description
cohort string true

Return schools within the specified cohort.

urn string false

Return a school with the specified Unique Reference Number (URN).

updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

ECFSchoolsSort

Sort schools being returned

Name Type Required Description
Item string false It conforms to ECFSchoolsSort/items schema.

Possible values:

  • updated_at
  • -updated_at

MultipleECFSchoolsResponse

A list of schools for the given cohort

Name Type Required Description
data array true It conforms to ECFSchool schema.

ECFWithdrawal

The details of an ECF Participant withdrawal

Name Type Required Description
reason string true

The reason a participant was withdrawn

Possible values:

  • left-teaching-profession
  • moved-school
  • mentor-no-longer-being-mentor
  • school-left-fip
  • other
date string true

The date and time the participant was withdrawn

Error

An single error element

Name Type Required Description
title string false

A title of the error

detail string false

Additional details of the error

ErrorResponse

A list of errors

Name Type Required Description
error array false It conforms to Error schema.

ListFilter

Filter a list of records to return more specific results

Name Type Required Description
updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

ListFilterDeclarations

Filter a list of declarations records to return more specific results

Name Type Required Description
updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

participant_id string false

The unique id of the participant

MultipleECFParticipantsResponse

A list of ECF participants

Name Type Required Description
data array true It conforms to ECFParticipant schema.

MultipleECFParticipantTransferResponse

A list of participant transfers

Name Type Required Description
data array true It conforms to ECFParticipantTransfer schema.

MultipleECFPartnershipsResponse

A list of ECF partnerships

Name Type Required Description
data array true It conforms to ECFPartnership schema.

MultipleParticipantDeclarationsResponse

A list of participant declarations

Name Type Required Description
data array true It conforms to ParticipantDeclarationResponse schema.

MultipleUnfundedMentorsResponse

A list of unfunded mentors

Name Type Required Description
data array true It conforms to UnfundedMentor schema.

NotFoundResponse

The requested resource was not found

Name Type Required Description
title string false

The title of the error message

detail string false

Further information regarding the error

Example

{
  "errors": [
    {
      "title": "The requested resource was not found",
      "detail": "Nothing could be found for the provided details"
    }
  ]
}

OtherProviderRecruitedError

Recruited by other provider

Name Type Required Description
title string false

Title of error message

Possible values:

  • Recruited by other provider
detail string false

Additional info

Pagination

This schema used to paginate through a collection.

Name Type Required Description
page integer false

The page number to paginate to in the collection. If no value is specified it defaults to the first page.

per_page integer false

The number items to display on a page. Defaults to 100. Maximum is 3000, if the value is greater that the maximum allowed it will fallback to 3000.

ParticipantDeclaration

A participant declaration

Name Type Required Description
type string false

Possible values:

  • participant-declaration
attributes false

This conforms to any of the following schemas:

ParticipantDeclarationDataRequest

A participant declaration data request

Name Type Required Description
type string false

Possible values:

  • participant-declaration
attributes false

This conforms to any of the following schemas:

ParticipantDeclarationRequest

An participant declaration request

Name Type Required Description
data object true

A participant declaration data request

It conforms to ParticipantDeclarationDataRequest schema.

ParticipantDeclarationResponse

A participant declaration response

Name Type Required Description
id string true

The unique identifier of the participant declaration record

type string true

The data type

attributes object true

The data attributes associated with a participant declaration response

It conforms to ParticipantDeclarationAttributes schema.

ParticipantDeclarationAttributes

The data attributes associated with a participant declaration response

Name Type Required Description
participant_id string true

The unique id of the participant

declaration_type string true

The event declaration type

Possible values:

  • started
  • retained-1
  • retained-2
  • retained-3
  • retained-4
  • completed
  • extended-1
  • extended-2
  • extended-3
declaration_date string true

The event declaration date

course_identifier string true

The type of course the participant is enrolled in

Possible values:

  • ecf-induction
  • ecf-mentor
state string true

Indicates the state of this payment declaration

Possible values:

  • submitted
  • eligible
  • payable
  • paid
  • voided
  • ineligible
  • awaiting-clawback
  • clawed-back
updated_at string true

The date the declaration was last updated

delivery_partner_id string false

Unique ID of the delivery partner associated with the participant at the time the declaration was created

statement_id string false

Unique ID of the statement the declaration will be paid as part of

clawback_statement_id string false

Unique id of the statement to which the declaration will be clawed back on, if any

ineligible_for_funding_reason string false

If the declaration is ineligible, the reason why

Possible values:

  • duplicate_declaration
mentor_id string false

Unique ID of the ECT’s mentor

uplift_paid boolean false

If participant is eligible for uplift, whether it has been paid as part of this declaration

evidence_held string false

The type of evidence that the lead provider holds on their platform to demonstrate that the participant has met the retention criteria for the current milestone period

Possible values:

  • training-event-attended
  • self-study-material-completed
  • other
has_passed boolean false

Whether the participant has failed or passed

lead_provider_name string true

The name of the provider that submitted the declaration

ParticipantDeclarationsFilter

Filter participant declarations to return more specific results

Name Type Required Description
cohort string false

Return participant declarations associated to the specified cohort or cohorts. This is a comma delimited string of years.

participant_id string false

Return participant declarations associated to the specified participant ID. This is a comma delimited string where multiple participant IDs can be specified

updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

delivery_partner_id string false

Return participant declarations associated to the specified delivery partner or delivery partners. This is a comma delimited string of delivery partner IDs.

ECFParticipantFilter

Filter a list of records to return more specific results

Name Type Required Description
updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

cohort string false

Return only records for the given cohort

training_status string false

Return only records that have this training status

from_participant_id string false

Return only records that have this from Participant ID

PartnershipExistsError

Partnership already exists

Name Type Required Description
title string false

Title of error message

Possible values:

  • Partnership already exists
detail string false

Additional info about existing partnership

PartnershipsFilter

Filter partnerships to return more specific results

Name Type Required Description
cohort string false

Return partnerships within the specified cohorts. This is a comma delimited string of years.

updated_since string false

Return only partnerships that have been updated since this date and time (ISO 8601 date format)

delivery_partner_id string false

Return partnerships associated to the specified delivery partner or delivery partners. This is a comma delimited string of delivery partner IDs.

PartnershipsSort

Sort partnerships being returned

Name Type Required Description
Item string false It conforms to PartnershipsSort/items schema.

Possible values:

  • created_at
  • -created_at
  • updated_at
  • -updated_at

SchoolFundingError

School is not eligible for DfE-funded FIP

Name Type Required Description
title string false

Title of error message

Possible values:

  • School is not eligible for DfE-funded FIP
detail string false

Additional info why school is not for DfE-funded FIP if any

SingleParticipantDeclarationResponse

A confirmation that the participant declaration has been recorded successfully

Name Type Required Description
data object true

A participant declaration response

It conforms to ParticipantDeclarationResponse schema.

Statement

A financial statement

Name Type Required Description
id string true

The unique identifier of the financial statement

type string true

The data type

attributes object true

The data attributes associated with a financial statement

It conforms to StatementAttributes schema.

StatementAttributes

The data attributes associated with a financial statement

Name Type Required Description
month string false

The month which appears on the statement in the DfE portal

year string false

The calendar year which appears on the statement in the dfe portal

type string false

Type of statement

Possible values:

  • ecf
cohort string false

The cohort - 2021 or 2022 - which the statement funds

cut_off_date string false

The milestone cut off or review point for the statement

payment_date string false

The date we expect to pay you for any declarations attached to the statement, which are eligible for payment

paid boolean false

Indicates whether the DfE has paid providers for any declarations attached to the statement

created_at string false

The date the statement was created

updated_at string false

The date the statement was last updated

StatementResponse

A single financial statement

Name Type Required Description
data object true

A financial statement

It conforms to Statement schema.

StatementsFilter

Filter statements to return more specific results

Name Type Required Description
cohort string false

Return statements associated to the specified cohort or cohorts. This is a comma delimited string of years.

type string false

Return statements of a given type

Possible values:

  • ecf
updated_since string false

Return only records that have been updated since this date and time (ISO 8601 date format)

StatementsResponse

A list of financial statements

Name Type Required Description
data array true It conforms to Statement schema.

UnfundedMentor

Note, this is a new endpoint. The details of an unfunded mentor

Name Type Required Description
id string true

The unique identifier of the mentor record

type string true

The data type

attributes object true

The data attributes associated with an unfunded mentor

It conforms to UnfundedMentorAttributes schema.

UnfundedMentorAttributes

The data attributes associated with an unfunded mentor

Name Type Required Description
full_name string true

The full name of this mentor

email string true

The email address registered for this unfunded mentor

teacher_reference_number string false

The Teacher Reference Number (TRN) for this participant

created_at string true

The date and time the unfunded mentor was created

updated_at string true

The date and time the unfunded mentor was last updated

UnfundedMentorResponse

An unfunded mentor

Name Type Required Description
data object true

Note, this is a new endpoint. The details of an unfunded mentor

It conforms to UnfundedMentor schema.

ECFUnfundedMentorsSort

Sort unfunded mentors being returned.

Name Type Required Description
Item string false It conforms to ECFUnfundedMentorsSort/items schema.

Possible values:

  • updated_at
  • -updated_at

UnauthorisedResponse

Authorization information is missing or invalid

Name Type Required Description
error string false

UrnInvalidError

URN entered is not valid

Name Type Required Description
title string false

Title of error message

Possible values:

  • URN is not valid
detail string false

Additional info why URN is not valid