{
  "openapi": "3.0.1",
  "info": {
    "title": "Work Based Submissions API",
    "description": "APIs for interacting with TEC data platform.<br/><br/>To start, obtain an ESL machine token from MoE scoped to the EDUMIS ID of the TEO that you are submitting data for.<br/><br/> **NOTE:** All requests to this API are scoped to the EDUMIS ID set in the EID header, and the ESL access token set in the Authentication header. Both headers must be provided for EVERY request ie <p/>`Authentication: Bearer {token}` <p/> `EID: {EDUMIS ID}`",
    "version": "v1.0"
  },
  "servers": [
    {
      "url": "https://api.dev.dxs.pub.tec.govt.nz/work-submission-api",
      "description": "TEC dev environment"
    },
    {
      "url": "https://api.tst.dxs.pub.tec.govt.nz/work-submission-api",
      "description": "TEC tst environment"
    },
    {
      "url": "https://api.prd.dxs.pub.tec.govt.nz/work-submission-api",
      "description": "TEC production environment"
    },
    {
      "url": "https://api.pre.dxs.pub.tec.govt.nz/work-submission-api",
      "description": "TEC pre-production environment"
    }
  ],
  "paths": {
    "/v1.0/complex-enrolments": {
      "post": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Create Complex Enrolment",
        "operationId": "CreateComplexEnrolment",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateComplexEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateComplexEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateComplexEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The complex arrangement enrolment was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/complex-enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Update Complex Enrolment",
        "operationId": "UpdateComplexEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateComplexEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateComplexEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateComplexEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The complex arrangement enrolment was updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/complex-transferred-enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Transfer Complex Enrolment",
        "operationId": "TransferComplexEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The <see cref=\"T:common.WorkBased.Enrolment.Requests.TransferComplexEnrolmentRequest\">Complex Programme Course Version Enrolment</see> to transfer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferComplexEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferComplexEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransferComplexEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The complex arrangement enrolment was transferred successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Delete Enrolment",
        "operationId": "DeleteEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Enrolment to delete.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The enrolment was deleted successfully."
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Get Enrolment",
        "operationId": "GetEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "description": "The programme enrolment local identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The enrolment was fetched successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "404": {
            "description": "enrolment not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/simple-enrolments": {
      "post": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Create Simple Enrolment",
        "operationId": "CreateSimpleEnrolment",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSimpleEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSimpleEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSimpleEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The enrolment was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/simple-enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Update Simple Enrolment",
        "operationId": "UpdateSimpleEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSimpleEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSimpleEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSimpleEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The enrolment was updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/simple-transferred-enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Transfer Simple Enrolment",
        "description": "Where a trainee or modern apprentice needs to be enroled in the latest version of a Programme, this message can be used by ITOs to provide the ITR with a snapshot of the enrolment after the changes have been applied within the TMS. The programme course version of the enrolment that the trainee or modern apprentice is to be transferred to should represent the learning after the transfer date. Any learning prior to the transfer date, or not part of the new programme course version should be excluded from the transfer.\r\n        \r\n## Simple enrolments allowed at Transfer         \r\nIn progress Simple enrolments will be allowed when: \r\n- Programme course version is registered and must exist \r\n- Programme course version is Active as at the date of Transfer \r\n- Programme course version must be of the same programme course number the learner was originally enroled in          \r\n        \r\nThe outcome of the transfer will contain:\r\n- The programme course version the trainee has transferred to \r\n- Enrolment status is “Active”, “Hold”, or “Grace” \r\n- Unit standards achieved after Transfer Date \r\n- Non-achieved unit standards         \r\n\r\n## Unit standards allowed at Transfer              \r\nUnit standards will be allowed on the transferred enrolment when: \r\n- For an LCP or SCP, the unit standard exists in programme course version the learner is to be transferred to \r\n- The unit standard has been achieved after the Transfer Date \r\n- The unit standard is not been achieved         \r\n        \r\nAchieved unit standards as part of the previous version which not included in the transfer will still be recognized by the TEC.",
        "operationId": "TransferSimpleEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The <see cref=\"T:common.WorkBased.Enrolment.Requests.TransferSimpleEnrolmentRequest\">Simple Programme Course Version Enrolment</see> to transfer.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferSimpleEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferSimpleEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransferSimpleEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The enrolment was transferred successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/withdrawn-enrolments/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Enrolments"
        ],
        "summary": "Withdraw Enrolment",
        "operationId": "WithdrawEnrolment",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The <see cref=\"T:common.WorkBased.Enrolment.Requests.WithdrawEnrolmentRequest\">Enrolment</see> to withdraw.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawEnrolmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawEnrolmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawEnrolmentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The enrolment was withdrawn successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolmentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/error-codes": {
      "get": {
        "tags": [
          "Error Codes"
        ],
        "summary": "Gets all error codes and their associated messages, property names and model names.",
        "operationId": "GetErrorCodes",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The error codes were fetched successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorCodeModelResponseList"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fees/{enrolmentLocalId}": {
      "put": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Update a Learners Fees",
        "operationId": "UpdateFeesFree",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerFeeModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerFeeModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerFeeModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerFeeModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Get a Learners Fees",
        "operationId": "GetFeesFree",
        "parameters": [
          {
            "name": "enrolmentLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerFeeModel"
                }
              }
            }
          },
          "404": {
            "description": "Learner Fee not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fee-uploads": {
      "post": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Uploading a Learner Fees CSV",
        "operationId": "Upload",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "processSync": {
                    "type": "boolean"
                  }
                }
              },
              "encoding": {
                "processSync": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerFeeUploadResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "All the results of file uploads",
        "operationId": "GetResults",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SortOrder.Name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SortOrder.Ascending",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SortOrder.Direction",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerFeeUploadResponsePagedResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fee-uploads/{fileId}": {
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Get the result of a Learner Fees upload",
        "operationId": "GetLearnerFileUploadResult",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Learner Fee Upload Result File Id not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fee-uploads/{fileId}/errors": {
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Get the result of a Learner Fees upload in a CSV format",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fee-uploads/csv": {
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Downloads an empty template for use",
        "operationId": "GetCsvTemplateForFeesFree",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learner-fee-uploads/{fileId}/csv": {
      "get": {
        "tags": [
          "Learner Fees"
        ],
        "summary": "Downloads an empty template for use",
        "operationId": "DownloadFile",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learners": {
      "post": {
        "tags": [
          "Learners"
        ],
        "summary": "Create a Learner",
        "operationId": "CreateLearner",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LearnerModel"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/learners/{learnerLocalId}": {
      "put": {
        "tags": [
          "Learners"
        ],
        "summary": "Update a Learner",
        "operationId": "PutLearner",
        "parameters": [
          {
            "name": "learnerLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The <see cref=\"T:common.WorkBased.Learner.Requests.UpdateLearnerRequest\">Learner Details</see> to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLearnerRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLearnerRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLearnerRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateLearnerRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Learners"
        ],
        "summary": "Get Learner Data",
        "operationId": "Get",
        "parameters": [
          {
            "name": "learnerLocalId",
            "in": "path",
            "description": "The learner local identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LearnerModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Learner not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/off-job-deliveries": {
      "post": {
        "tags": [
          "OffJobDeliveries"
        ],
        "summary": "Create Off Job Delivery",
        "operationId": "CreateOffJobDelivery",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OffJobDeliveryModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OffJobDeliveryModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OffJobDeliveryModel"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OffJobDeliveryModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/off-job-deliveries/{offJobDeliveryLocalId}": {
      "get": {
        "tags": [
          "OffJobDeliveries"
        ],
        "summary": "Get Off Job Delivery",
        "operationId": "GetOffJobDelivery",
        "parameters": [
          {
            "name": "offJobDeliveryLocalId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OffJobDeliveryModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Off Job Delivery not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "OffJobDeliveries"
        ],
        "summary": "Update Off Job Delivery",
        "operationId": "UpdateOffJobDelivery",
        "parameters": [
          {
            "name": "offJobDeliveryLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOffJobDeliveryModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOffJobDeliveryModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOffJobDeliveryModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OffJobDeliveryModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "OffJobDeliveries"
        ],
        "summary": "Delete Off Job Delivery",
        "operationId": "DeleteOffJobDelivery",
        "parameters": [
          {
            "name": "offJobDeliveryLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The operation returned successfully."
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/programmes": {
      "post": {
        "tags": [
          "Programmes"
        ],
        "summary": "Create Programme",
        "operationId": "CreateProgramme",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Programme"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Programme"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Programme"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The programme was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgrammeResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/programmes/{programmeLocalId}/versions": {
      "post": {
        "tags": [
          "Programmes"
        ],
        "summary": "Create Programme Version",
        "operationId": "CreateProgrammeVersion",
        "parameters": [
          {
            "name": "programmeLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersion"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersion"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersion"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The programme version was created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgrammeResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/programmes/{programmeLocalId}/versions/{programmeVersionNumber}": {
      "put": {
        "tags": [
          "Programmes"
        ],
        "summary": "Update Programme Version",
        "operationId": "UpdateProgrammeVersion",
        "parameters": [
          {
            "name": "programmeLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "programmeVersionNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersionUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersionUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProgrammeVersionUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The programme version was updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgrammeResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Programmes"
        ],
        "summary": "Get Programme Version",
        "operationId": "GetProgrammeVersion",
        "parameters": [
          {
            "name": "programmeLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "programmeVersionNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The programme version was fetched successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgrammeResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Programme  version not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/programmes/{programmeLocalId}": {
      "get": {
        "tags": [
          "Programmes"
        ],
        "summary": "Get latest Programme Version",
        "operationId": "GetLatestProgrammeVersion",
        "parameters": [
          {
            "name": "programmeLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The latest programme version was fetched successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgrammeResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Programme version not found. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements": {
      "post": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Create Training Agreement",
        "operationId": "CreateTrainingAgreement",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTrainingAgreementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTrainingAgreementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTrainingAgreementRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingAgreementResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}": {
      "put": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Update Training Agreement",
        "operationId": "UpdateTrainingAgreement",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingAgreementResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Get Training Agreement Data",
        "operationId": "GetTrainingAgreement",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "description": "The training agreement local identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingAgreementResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Training Agreement. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}/grace": {
      "put": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Place Training Agreement in grace",
        "operationId": "UpdateStatusGrace",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingStatusGraceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingStatusGraceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingStatusGraceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateTrainingStatusGraceRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}/on-hold": {
      "put": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Place Training Agreement on hold",
        "operationId": "UpdateStatusHold",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusOnHoldRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusOnHoldRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusOnHoldRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateTrainingAgreementStatusOnHoldRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}/restart": {
      "put": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Restart Training Agreement",
        "operationId": "UpdateStatusRestart",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestartAgreementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RestartAgreementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RestartAgreementRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RestartAgreementRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}/withdraw": {
      "put": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Withdraw Training Agreement",
        "operationId": "UpdateStatusWithdrawal",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusWithdrawalRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusWithdrawalRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTrainingAgreementStatusWithdrawalRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateTrainingAgreementStatusWithdrawalRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-agreements/{trainingAgreementLocalId}/transfers": {
      "post": {
        "tags": [
          "Training Agreements"
        ],
        "summary": "Transfer Training Agreement",
        "operationId": "TransferTrainingAgreement",
        "parameters": [
          {
            "name": "trainingAgreementLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferTrainingAgreementRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferTrainingAgreementRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransferTrainingAgreementRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferTrainingAgreementRequest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-plans": {
      "post": {
        "tags": [
          "Training Plans"
        ],
        "summary": "Create Training Plan",
        "operationId": "CreateTrainingPlan",
        "parameters": [
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingPlanResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-plans/{trainingPlanLocalId}": {
      "put": {
        "tags": [
          "Training Plans"
        ],
        "summary": "Update Training Plan",
        "operationId": "TrainingPlanPut",
        "parameters": [
          {
            "name": "trainingPlanLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanUpdate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanUpdate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingPlanResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Training Plans"
        ],
        "summary": "Get Training Plan including Visits",
        "operationId": "TrainingPlanGet",
        "parameters": [
          {
            "name": "trainingPlanLocalId",
            "in": "path",
            "description": "The training plan local identifier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation returned successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingPlanDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Training Plan. Check Error code for more detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-plans/{trainingPlanLocalId}/visits": {
      "post": {
        "tags": [
          "Training Plans"
        ],
        "summary": "Record a Visit against a Training Plan",
        "operationId": "TrainingPlanVisitPost",
        "parameters": [
          {
            "name": "trainingPlanLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanVisit"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanVisit"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingPlanVisit"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The operation returned successfully and a new resource was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingPlanVisit"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Check errors and codes for more detail.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1.0/training-plans/{trainingPlanLocalId}/visits/{visitLocalId}": {
      "delete": {
        "tags": [
          "Training Plans"
        ],
        "summary": "Delete a Visit against a Training Plan",
        "operationId": "TrainingPlanVisitDelete",
        "parameters": [
          {
            "name": "trainingPlanLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "visitLocalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EID",
            "in": "header",
            "description": "Enter the EDUMIS (Organisation) ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "The operation returned successfully."
          },
          "429": {
            "description": "Rate Limiting may apply. Refer to Retry-After header",
            "headers": {
              "Retry-After": {
                "description": "Indicates how long the user agent should wait before making a follow-up request",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ComplexProgramme": {
        "type": "object",
        "properties": {
          "subProgrammeIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProgrammeId"
            },
            "description": "subProgrammeIds\r\n\r\n\r\n\r\n\r\nType: ProgrammeId array\r\n\r\n",
            "nullable": true
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ComplexProgrammeModel": {
        "type": "object",
        "properties": {
          "subProgrammeIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProgrammeId"
            },
            "description": "subProgrammeIds\r\n\r\n\r\n\r\n\r\nType: ProgrammeId array\r\n\r\n",
            "nullable": true
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ComponentId": {
        "required": [
          "componentNumber"
        ],
        "type": "object",
        "properties": {
          "componentNumber": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Component Number\r\n\r\n\r\nUnique identifier of the component that the learner has enrolled in.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This is the Unit Standard number or the Skill Standard number.\r\n\r\nThe Component and its version must exist for the programme and be active at the Participation Start Date.\r\n\r\nThe enrolment for the component and its version is unique across any active enrolments for this learner and TEO. For complex arrangements the component should only be reported on one enrolment.\r\n\r\nThe component and its version must not match a component on the learner’s RoA achieved before the Participation Start Date, unless the component also exists after the Participation Start Date, and it must be paid at NZQA.\r\n\r\nNo Component and its version may exist on any previous enrolments for this learner and TEO where the enrolment status is “Active”, “Pending”, “Hold”, “Grace”, or “completed”, unless the component and its version is withdrawn from the learner’s RoA.\r\n\r\nComponent and its version must not match an invalid component on the learner’s RoA.\r\n\r\nFor SCP and LCP there must be at least one component supplied.\r\n\r\n"
          },
          "componentVersionNumber": {
            "type": "integer",
            "description": "Component Version Number\r\n\r\n\r\nUnique identifier of the component that the learner has enrolled in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: This is the version number of the Unit Standard or the Skill Standard.\r\n\r\n",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ComponentModel": {
        "type": "object",
        "properties": {
          "componentId": {
            "$ref": "#/components/schemas/ComponentId"
          },
          "completedComponentVersionNumber": {
            "type": "integer",
            "description": "The version number of the component that the learner has achieved.\r\n",
            "format": "int32",
            "nullable": true
          },
          "achievedDate": {
            "type": "string",
            "description": "The date the learner achieved the component.\r\n",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CourseBasedProgramme": {
        "required": [
          "qualificationNumber",
          "qualificationVersionNumber"
        ],
        "type": "object",
        "properties": {
          "qualificationNumber": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Target Qualification Number\r\n\r\n\r\nA number that identifies a qualification registered on the National Qualification and Credentials Framework that this programme leads to.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\n"
          },
          "qualificationVersionNumber": {
            "type": "integer",
            "description": "Target Qualification Version Number\r\n\r\n\r\nA number that identifies a version of a qualification on the NQCF.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\nThis field is required when a Target Qualification Number has been supplied.\r\n\r\n",
            "format": "int32"
          },
          "strandNumbers": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Target Qualification Strand Numbers\r\n\r\n\r\nNumbers that identify strands of a qualification. Only supply this value if you want to identify specific strands of a qualification.\r\n\r\n\r\nType: Array of Integer\r\n\r\nGuidance: If provided, DXP will check the strand numbers and validate they exists on the NQF for this programme and version.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateComplexEnrolmentRequest": {
        "required": [
          "australianResidentialStatus",
          "enrolmentDate",
          "enrolmentLocalId",
          "fundingSourceTypeCode",
          "modeOfDeliveryCode",
          "participationStartDate",
          "programmeId",
          "residentialStatus",
          "studyTypeCode",
          "subEnrolments",
          "trainingAgreementLocalId"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "studyTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Study Type Code\r\n\r\n\r\nUnique identifier of the type of learning.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "programmeId": {
            "$ref": "#/components/schemas/ProgrammeId"
          },
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "trainingAgreementLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Training Agreement Status cannot be ‘Finished’. There must be a matching training agreement for this learner and TEO within DXP.\r\n\r\nThe same Training Agreement ID must be applied against all relevant sub-programme and over-arching programme enrolments.\r\n\r\n"
          },
          "residentialStatus": {
            "type": "boolean",
            "description": "Residential Status\r\n\r\n\r\nIdentifies if the Learner has New Zealand resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: New Zealand Resident visa holder (Excludes all New Zealand and Australian Citizens)\r\n\r\nN: Not a New Zealand Resident visa holder (Includes all New Zealand and Australian Citizens)\r\n\r\nFor complex arrangements, the residential status of the sub-enrolment(s) must be the same as the residential status of the parent programme enrolment.\r\n\r\n"
          },
          "australianResidentialStatus": {
            "type": "boolean",
            "description": "Australian Residential Status\r\n\r\n\r\nIdentifies if the Learner has Australian permanent resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: Australian Permanent Resident\r\n\r\nN: Not an Australian Permanent Resident\r\n\r\nFor complex arrangements, the Australian Residential Status of the sub-enrolment(s) must be the same as the Australian Residential Status of the parent programme enrolment.\r\n\r\n"
          },
          "fundingSourceTypeCode": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Funding Source Type Code\r\n\r\n\r\nThe code that identifies the source of the funding that supports the learner's enrolment in the programme.\r\n\r\n\r\nThis is the same list of funding source codes as used for reporting Provider-based learning, except only funding source code 37 is applicable for work-based.\r\n\r\n\r\nLength: 2\r\n\r\nType: Alpha-Numeric\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n37: Non-degree Delivery at Levels 3-7 on the NZQCF (DQ3-7)\r\n\r\nFor complex arrangements the funding source code of the sub-enrolments must match the funding source code of the parent enrolment.\r\n\r\n"
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32"
          },
          "subEnrolments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubEnrolment"
            },
            "description": "Sub Enrolments\r\n\r\n\r\n\r\n\r\nType: Sub enrolment array\r\n\r\n"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateSimpleEnrolmentRequest": {
        "required": [
          "australianResidentialStatus",
          "components",
          "enrolmentDate",
          "enrolmentLocalId",
          "fundingSourceTypeCode",
          "modeOfDeliveryCode",
          "participationStartDate",
          "programmeId",
          "residentialStatus",
          "studyTypeCode",
          "trainingAgreementLocalId"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "studyTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Study Type Code\r\n\r\n\r\nUnique identifier of the type of learning.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "programmeId": {
            "$ref": "#/components/schemas/ProgrammeId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          },
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "trainingAgreementLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Training Agreement Status cannot be ‘Finished’. There must be a matching training agreement for this learner and TEO within DXP.\r\n\r\nThe same Training Agreement ID must be applied against all relevant sub-programme and over-arching programme enrolments.\r\n\r\n"
          },
          "residentialStatus": {
            "type": "boolean",
            "description": "Residential Status\r\n\r\n\r\nIdentifies if the Learner has New Zealand resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: New Zealand Resident visa holder (Excludes all New Zealand and Australian Citizens)\r\n\r\nN: Not a New Zealand Resident visa holder (Includes all New Zealand and Australian Citizens)\r\n\r\nFor complex arrangements, the residential status of the sub-enrolment(s) must be the same as the residential status of the parent programme enrolment.\r\n\r\n"
          },
          "australianResidentialStatus": {
            "type": "boolean",
            "description": "Australian Residential Status\r\n\r\n\r\nIdentifies if the Learner has Australian permanent resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: Australian Permanent Resident\r\n\r\nN: Not an Australian Permanent Resident\r\n\r\nFor complex arrangements, the Australian Residential Status of the sub-enrolment(s) must be the same as the Australian Residential Status of the parent programme enrolment.\r\n\r\n"
          },
          "fundingSourceTypeCode": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Funding Source Type Code\r\n\r\n\r\nThe code that identifies the source of the funding that supports the learner's enrolment in the programme.\r\n\r\n\r\nThis is the same list of funding source codes as used for reporting Provider-based learning, except only funding source code 37 is applicable for work-based.\r\n\r\n\r\nLength: 2\r\n\r\nType: Alpha-Numeric\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n37: Non-degree Delivery at Levels 3-7 on the NZQCF (DQ3-7)\r\n\r\nFor complex arrangements the funding source code of the sub-enrolments must match the funding source code of the parent enrolment.\r\n\r\n"
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateTrainingAgreementRequest": {
        "required": [
          "learnerLocalId",
          "trainingAgreementLocalId"
        ],
        "type": "object",
        "properties": {
          "learnerLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Learner Local ID\r\n\r\n\r\nA code which uniquely identifies the learner within each TEO, as captured in a TEO’s TMS system.\r\n\r\nThe Learner Local ID must remain constant for the learner throughout their enrolment history at your organisation.\r\n\r\nNote: This field has been renamed from ‘Local ID’ to ‘Learner Local ID’\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be the unique value generated by each TEO via their TMS.\r\n\r\nBoth ‘Learner Identification Code’ and ‘Learner Local ID’ cannot both be NULL.\r\n\r\n"
          },
          "trainingAgreementLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique identifier issued by the TEO that identifies the training agreement between the TEO, employer, and learner for a specific training agreement signed date\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: A programme enrolment must also exist and be submitted with any new training agreement.\r\n\r\n"
          },
          "trainingAgreement": {
            "$ref": "#/components/schemas/TrainingAgreement"
          }
        },
        "additionalProperties": false
      },
      "DeleteEnrolmentRequest": {
        "required": [
          "deletionDate",
          "deletionReason"
        ],
        "type": "object",
        "properties": {
          "deletionReason": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Deletion Reason\r\n\r\n\r\nCode identifying the reason for the programme enrolment deletion.\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nID: Programme enrolment contained an incorrect participation start date\r\n\r\nIE: Programme enrolment was invalid\r\n\r\nIS: Programme enrolment has incorrect status in DXP\r\n\r\nOT: Other\r\n\r\nThis field is required when a ‘Deletion Date’ is provided.\r\n\r\n"
          },
          "deletionDate": {
            "type": "string",
            "description": "Deletion Date\r\n\r\n\r\nDate the programme enrolment was deleted.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "EnrolmentModel": {
        "required": [
          "components",
          "enrolmentLocalId",
          "participationStartDate",
          "programmeId",
          "studyTypeCode"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "studyTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Study Type Code\r\n\r\n\r\nUnique identifier of the type of learning.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "programmeId": {
            "$ref": "#/components/schemas/ProgrammeId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          },
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "fundingSourceTypeCode": {
            "type": "string",
            "description": "Funding Source Type Code\r\n\r\n\r\nThe code that identifies the source of the funding that supports the learner's enrolment in the programme.\r\n\r\n\r\nThis is the same list of funding source codes as used for reporting Provider-based learning, except only funding source code 37 is applicable for work-based.\r\n\r\n\r\nLength: 2\r\n\r\nType: Alpha-Numeric\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n37: Non-degree Delivery at Levels 3-7 on the NZQCF (DQ3-7)\r\n\r\nFor complex arrangements the funding source code of the sub-enrolments must match the funding source code of the parent enrolment.\r\n\r\n",
            "nullable": true
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "enrolmentStatus": {
            "type": "string",
            "description": "Enrolment Status\r\n\r\n\r\nA code which identifies the status of the Programme Enrolment.\r\n\r\nDXP will derive the Programme Enrolment Status based on the business rules outlined in the ‘programme enrolment statuses’ section above.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Valid status values are below:\r\n\r\nPending: A Programme Enrolment is set to Pending if created for an NZA.\r\n\r\nActive: Learner is actively participating and engaged in their work-based programme. Only programme enrolments with a status of Active or Grace will accrue EFTS.\r\n\r\nHold: An TEO may place a learner on hold if the learner is not actively training but intends to return to training within a short period of time. Placing a training agreement on hold means that all associated enrolments will no longer accrue EFTS.\r\n\r\nGrace: TEO helps the learner to complete the programme or obtain another job. Associated enrolments that are not “Completed” or “Withdrawn” will accrue EFTS.\r\n\r\nWithdrawn: A Learner has withdrawn from their programme enrolment.\r\n\r\nCompleted: Learner has completed their programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "qualificationAchievedDate": {
            "type": "string",
            "description": "Qualification Achieved Date\r\n\r\n\r\nThe date the qualification is achieved.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n",
            "format": "date",
            "nullable": true
          },
          "learnerLocalId": {
            "type": "string",
            "description": "Learner Local ID\r\n\r\n\r\nA code which uniquely identifies the learner within each TEO, as captured in a TEO’s TMS system.\r\n\r\nThe Learner Local ID must remain constant for the learner throughout their enrolment history at your organisation.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be the unique value generated by each TEO via their TMS.\r\n\r\nBoth ‘Learner Identification Code’ and ‘Learner Local ID’ cannot both be NULL.\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementLocalId": {
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Training Agreement Status cannot be ‘Finished’. There must be a matching training agreement for this learner and TEO within DXP.\r\n\r\nThe same Training Agreement ID must be applied against all relevant sub-programme and over-arching programme enrolments.\r\n\r\n",
            "nullable": true
          },
          "residentialStatus": {
            "type": "boolean",
            "description": "Residential Status\r\n\r\n\r\nIdentifies if the Learner has New Zealand resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: New Zealand Resident visa holder (Excludes all New Zealand and Australian Citizens)\r\n\r\nN: Not a New Zealand Resident visa holder (Includes all New Zealand and Australian Citizens)\r\n\r\nFor complex arrangements, the residential status of the sub-enrolment(s) must be the same as the residential status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "australianResidentialStatus": {
            "type": "boolean",
            "description": "Australian Residential Status\r\n\r\n\r\nIdentifies if the Learner has Australian permanent resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: Australian Permanent Resident\r\n\r\nN: Not an Australian Permanent Resident\r\n\r\nFor complex arrangements, the Australian Residential Status of the sub-enrolment(s) must be the same as the Australian Residential Status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "complexEnrolmentParentLocalId": {
            "type": "string",
            "description": "Complex Enrolment Parent Local ID \r\n\r\nThe Programme Enrolment Local ID of the parent programme.\r\n\r\nProgramme Enrolment Local ID is a unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: The programme associated with the parent programme enrolment local ID must be valid for a complex arrangement.\r\n\r\nWhere the programme enrolment is a simple enrolment then leave this field blank.\r\n",
            "nullable": true
          },
          "transferDate": {
            "type": "string",
            "description": "Transfer Date\r\n\r\n\r\nDate the transfer became effective\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nTransfer date must be after the participation start date, and where multiple transfers exist, the transfer date must be on or after the latest transfer date. Latest Transfer Date represents the date the enrolment was last transferred to a different programme version.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "withdrawalDate": {
            "type": "string",
            "description": "Withdrawal Date\r\n\r\n\r\nThe date the withdrawal is effective.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nA withdrawal cannot be applied to an enrolment where status is ‘Completed’, but can be ‘Active’, ‘Hold’, ‘Grace’, ’Pending’ or ‘Withdrawn’.\r\n\r\nIf learner is enrolled in a complex programme, only the parent enrolment can be withdrawn. DXP won’t allow sub-programme enrolments to be withdrawn.\r\n\r\nWithdrawal date must be after the Enrolment participation start date, must be before or equal to today, and must be on or before the current withdrawal date (if one already exists in DXP for this programme enrolment).\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "withdrawalReasonCode": {
            "type": "string",
            "description": "Withdrawal Reason Code\r\n\r\n\r\nA code that identifies the reason why a training agreement is being withdrawn.\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nValue: Description\r\n\r\nBC: Business closed\r\n\r\nBD: Business downturn\r\n\r\nCC: Change in career choice\r\n\r\nAP: Changing from Industry Trainee to Apprentice\r\n\r\nPT: Changing from Apprentice to Industry Trainee\r\n\r\nCP: Change of programme\r\n\r\nDC: Deceased\r\n\r\nDS: Dissatisfied with employer/industry\r\n\r\nEW: Exiting the workforce\r\n\r\nLS: Lack of employer support\r\n\r\nLA: Length of apprenticeship\r\n\r\nLI: Linked Enrolment\r\n\r\nNF: Non-payment of fee\r\n\r\nOT: Other\r\n\r\nOD: Over programme duration\r\n\r\nPC: Parental commitment\r\n\r\n",
            "nullable": true
          },
          "participationEndDate": {
            "type": "string",
            "description": "Participation End Date\r\n\r\n\r\nThe date the enrolment was completed.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "subEnrolments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubEnrolmentModel"
            },
            "description": "subEnrolments\r\n\r\n\r\n\r\n\r\nType: SubEnrolmentModel array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ErrorCodeModel": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "property": {
            "type": "string",
            "nullable": true
          },
          "modelName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ErrorCodeModelResponseList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorCodeModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ErrorModel": {
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ErrorModel"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "FeeAmountAndYear": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "LearnerDemographics": {
        "required": [
          "disabilityStatus",
          "ethnicity",
          "isEnglishSecondLanguage"
        ],
        "type": "object",
        "properties": {
          "countryOfCitizenship": {
            "maxLength": 4,
            "type": "string",
            "description": "Country of Citizenship\r\n\r\n\r\nThe country of citizenship of a learner. This field is required for determining non-domestic learner funding.\r\n\r\nNote:\r\n\r\n·        Citizenship status must be kept up to date\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the country of citizenship classification. Refer to the DXP Data Classifications Appendices.\r\n\r\n",
            "nullable": true
          },
          "disabilityStatus": {
            "type": "integer",
            "description": "Disability Status\r\n\r\n\r\nIndicates the disability status of a learner. This field aligns to the collection of the new disability data on the enrolment form.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n1: Yes\r\n\r\n2: No\r\n\r\n3: Prefer not to say\r\n\r\n",
            "format": "int32"
          },
          "disabilitySupportNeeds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Disability Support Needs\r\n\r\n\r\nSeven fields to support multiple responses indicating the disability support a learner requires. This field aligns to the collection of the new disability data on the enrolment form.\r\n\r\n\r\nType: Integer array\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n1: Access to assistive technology (e.g., for reading, writing, communication).\r\n\r\n2: Accessible format resources for course content.\r\n\r\n3: Mobility and transport (e.g., navigator support to help movement around campus, mobility carparks, personal emergency evacuation plan).\r\n\r\n4: New Zealand Sign Language Interpreter.\r\n\r\n5: Support with reading, writing, and communicating in learning sessions, exams, and assessments.\r\n\r\n6: Other learning or disability support.\r\n\r\n7: No, I do not need support at this time.\r\n\r\nIf the Disability Status is Yes, then at least one disability support need must be supplied.\r\n\r\n",
            "nullable": true
          },
          "ethnicity": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Ethnicity\r\n\r\n\r\nA code to indicate the ethnicity of a learner. Up to six ethnic codes can be entered in this field. The codes identify the ethnic group or groups to which a learner belongs.\r\n\r\n\r\nType: String array\r\n\r\nGuidance: Select a value or values from the Statistics NZ Ethnicity New Zealand Standard Classification 2005V2.1.0.\r\n\r\nAt least one value must be reported.\r\n\r\nThe Ethnicity classification is available at NZ Statistics - Ethnicity New Zealand Standard Classification 2005V2.1.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "iwiAffiliation": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Iwi Affiliation\r\n\r\n\r\nA code to indicate the iwi affiliation of a learner. If a learner has more than one affiliation, then up to six Iwi can be recorded.\r\n\r\n\r\nType: String array\r\n\r\nGuidance: Select a value or values from the Statistics NZ Iwi and iwi-related groups statistical classificationV2.1.0.\r\n\r\nAn entry must be reported in the first field where the ethnic group is “0211”.\r\n\r\nThe Iwi classification is available at NZ Statistics - Iwi and iwi-related groups statistical classificationV2.1.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "nullable": true
          },
          "isEnglishSecondLanguage": {
            "type": "boolean",
            "description": "Is English Second Language\r\n\r\n\r\nA True/False flag that indicates whether English is a second language for the learner.\r\n\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from below:\r\n\r\nTrue: English is a second language for the learner\r\n\r\nFalse: English is not a second language for the learner\r\n\r\n"
          },
          "disabilityServicesAccessedIndicator": {
            "type": "boolean",
            "description": "Disability Services Accessed Indicator\r\n\r\n\r\nA code to indicate whether a student has accessed disability services\r\n\r\n\r\nType: Boolean\r\n\r\nType of enrolment: D\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nTrue: Disability services accessed.\r\n\r\nFalse: Disability services not accessed.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LearnerEducationHistory": {
        "required": [
          "highestSecondarySchoolQualification",
          "lastSecondarySchoolAttended",
          "mainActivityAt1OctoberInYearPriorToFormalEnrolment"
        ],
        "type": "object",
        "properties": {
          "lastSecondarySchoolAttended": {
            "type": "integer",
            "description": "Last Secondary School Attended\r\n\r\n\r\nA code to identify the last secondary school attended by the learner.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the secondary school codes classification.\r\n\r\nThe Secondary School Codes are available at the Education Counts website - Secondary School Codes. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "overseasCountryCode": {
            "type": "string",
            "description": "Overseas Country Code\r\n\r\n\r\nA unique code defined by that identifies the country in which the learner last attended school.\r\n\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the NZ Statistics: Country – New Zealand Standards Classification 1999 – 4 numeric V15.0.\r\n\r\nMust be supplied if the learner’s last school was not in New Zealand. New Zealand cannot be selected. We collect at level 3.\r\n\r\nThe country classification is available at NZ Statistics: Country – New Zealand Standards Classification 1999 – 4 numeric V15.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "nullable": true
          },
          "lastYearAtSecondarySchool": {
            "type": "integer",
            "description": "Last Year at Secondary School\r\n\r\n\r\nThe year in which the learner finished their secondary school education.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the year in the format YYYY - e.g., 2023.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "highestSecondarySchoolQualification": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Highest Secondary School Qualification\r\n\r\n\r\nA code to show the highest secondary school qualification attained by the learner.\r\n\r\n\r\nLength: 2\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n00: No formal secondary school qualification\r\n\r\n11: 14 or more credits at any level\r\n\r\n12: NCEA Level 1 or School Certificate\r\n\r\n13: NCEA Level 2 or 6th Form Certificate\r\n\r\n14: University Entrance\r\n\r\n15: NCEA Level 3 or Bursary or Scholarship\r\n\r\n09: Overseas qualification (incl. International Baccalaureate & Cambridge Exams)\r\n\r\n98: Other\r\n\r\n99: Not known\r\n\r\n"
          },
          "mainActivityAt1OctoberInYearPriorToFormalEnrolment": {
            "minLength": 1,
            "type": "string",
            "description": "Main Activity at 1 October in Year Prior to Formal Enrolment\r\n\r\n\r\nThe main activity or occupation for the learner on 1 October of the year prior to enrolling a learner at your organisation. This field is not required to be changed upon re-enrolment if the duration between the end of the previous enrolment and the re-enrolment is 12 months or less. If a learner returns to the same TEO after not being enrolled for a period of more than 12 months, this field should be updated to reflect the learner’s most recent main activity on 1 October of the year before.\r\n\r\nIf the learner enrolled for the first time between 1 October and 31 December of the current year, then report the main activity on 1 October of the current year.\r\n\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n01: Secondary school student\r\n\r\n02: Non-employed or beneficiary (excluding retired)\r\n\r\n03: Wage or salary worker\r\n\r\n04: Self-employed\r\n\r\n05: University student\r\n\r\n06: Polytechnic student\r\n\r\n07: College of Education student\r\n\r\n08: House person or retired\r\n\r\n09: Overseas (irrespective of occupation)\r\n\r\n11: Private Training Establishment student\r\n\r\n12: Wānanga student\r\n\r\nNote: The classification of ’99 – other’ has been removed and may only be used historically.\r\n\r\n"
          },
          "firstYearOfTertiaryEducation": {
            "type": "integer",
            "description": "First Year of Tertiary Education\r\n\r\n\r\nThe year in which a learner first enrolled in any “quality assured” qualification:\r\n\r\n·         at a TEO in New Zealand or overseas, or\r\n\r\n·         in the Foundation Year at the University of the South Pacific, or\r\n\r\n·         at a registered Private Training Establishment.\r\n\r\nEnrolment in STAR, community, or other non-formal education does not count for first year purposes.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the year in the format YYYY - e.g., 2023.\r\n\r\nThis field is required if the learner is a New Zealand or Australian citizen or resident.\r\n\r\n",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LearnerFeeFileUploadStatus": {
        "enum": [
          "Pending",
          "Processed",
          "Error",
          "Expired"
        ],
        "type": "string"
      },
      "LearnerFeeModel": {
        "type": "object",
        "properties": {
          "enrolmentFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeAmountAndYear"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LearnerFeeUploadResponse": {
        "type": "object",
        "properties": {
          "fileId": {
            "type": "integer",
            "format": "int64"
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/LearnerFeeFileUploadStatus"
          },
          "uploadedDateTime": {
            "type": "string",
            "format": "date-time"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LearnerFeeUploadResponsePagedResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LearnerFeeUploadResponse"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LearnerIdentity": {
        "required": [
          "dateOfBirth",
          "gender",
          "nameIdCode",
          "nationalStudentNumber"
        ],
        "type": "object",
        "properties": {
          "nationalStudentNumber": {
            "type": "integer",
            "description": "National Student Number\r\n\r\n\r\nA number which uniquely identifies the learner. The NSN must remain constant for the learner throughout their enrolment at your or any other organisation. The NSN reported in the Learner file must match the NSN used for other collections (e.g., Course Enrolment).\r\n\r\nThe NSN is part of the NSI database system maintained by the Ministry of Education.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: This number must be the value generated by the National Student Index (NSI) for the learner.\r\n\r\n",
            "format": "int32"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date of Birth\r\n\r\n\r\nThe day, month, and year of birth of the learner.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "nameIdCode": {
            "maxLength": 5,
            "minLength": 1,
            "type": "string",
            "description": "Name ID Code\r\n\r\n\r\nThe first four characters of a learner’s surname plus initial of first legal name. If the learner does not have a first name, use the first five characters for the surname.\r\n\r\nThis is new data is required for validating the identity of a learner and their associated NSN.\r\n\r\n\r\nLength: 5\r\n\r\nType: String\r\n\r\nGuidance: The value is generated by your organisation from the learner’s name. The NAMEID is generated from the first four characters of the surname and the first initial of forename 1.\r\n\r\nCharacters must be capitalised. If the surname is less than 4 characters, then blanks must be inserted before forename initial. The initial must be in the fifth position. For example:\r\n\r\n›          LEE A for Andrew Lee\r\n\r\n›          VAN M for Michael van der Hum\r\n\r\n›          DE WP for Peter de Wittering\r\n\r\n›          KHSID for Khsithesh Devi\r\n\r\n›          O’COB for Brian O’Connor\r\n\r\nNote: The NAMEID must match the equivalent NAMEID from either the main name or an alternative name on the NSN reported.\r\n\r\n"
          },
          "gender": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Gender\r\n\r\n\r\nA code to identify the gender of a learner.\r\n\r\n\r\nLength: 1\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below\r\n\r\nM: Male / Tāne\r\n\r\nF: Female / Wahine\r\n\r\nD: Another gender / He ira kē anō\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "LearnerModel": {
        "required": [
          "demographics",
          "educationHistory",
          "identity",
          "learnerLocalId"
        ],
        "type": "object",
        "properties": {
          "learnerLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Learner Local ID\r\n\r\n\r\nA code which uniquely identifies the learner within each TEO, as captured in a TEO’s TMS system.\r\n\r\nThe Learner Local ID must remain constant for the learner throughout their enrolment history at your organisation.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be the unique value generated by each TEO via their TMS.\r\n\r\n"
          },
          "identity": {
            "$ref": "#/components/schemas/LearnerIdentity"
          },
          "irdNumber": {
            "maxLength": 11,
            "type": "string",
            "description": " IrdNumber\r\n\r\n\r\n A code to identify the IrdNumber of a learner.\r\n\r\n\r\n Length: 11\r\n\r\n Type: String\r\n\r\n Guidance: IRD numbers are either eight or nine digits with \r\n dashes e.g., 123-456-789. Please enter leading zero in the first box\r\n if your IRD number is only 8 digits. \r\n only provide an IRD number for a learner may meet the eligibility criteria\r\n for Fees Free at the time of enrolment.\r\n However, in situations where you know they are not eligible,\r\n you will not need to collect their IRD number.For example, where a learner: \r\n has received a Fees Free entitlement previously (e.g.first-year Fees Free)\r\nis not studying an eligible programme\r\ndoes not meet prior study criteria\r\n \r\n",
            "nullable": true
          },
          "demographics": {
            "$ref": "#/components/schemas/LearnerDemographics"
          },
          "educationHistory": {
            "$ref": "#/components/schemas/LearnerEducationHistory"
          }
        },
        "additionalProperties": false
      },
      "LimitedCreditProgramme": {
        "type": "object",
        "properties": {
          "targetProgrammeNumber": {
            "type": "integer",
            "description": "Target Programme Number\r\n\r\n\r\nUsed for LCPs and Complex arrangements. For Complex it will contain the Programme number of the Parent programme, and for LCP it will contain the Programme Local ID of the target programme.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Programme Local ID.\r\n\r\n",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "programmeComponents\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LimitedCreditProgrammeModel": {
        "type": "object",
        "properties": {
          "targetProgrammeNumber": {
            "type": "integer",
            "description": "Target Programme Number\r\n\r\n\r\nUsed for LCPs and Complex arrangements. For Complex it will contain the Programme number of the Parent programme, and for LCP it will contain the Programme Local ID of the target programme.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Programme Local ID.\r\n\r\n",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "programmeComponents\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MicroCredentialProgramme": {
        "type": "object",
        "properties": {
          "targetQualificationId": {
            "$ref": "#/components/schemas/QualificationId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MicroCredentialProgrammeModel": {
        "type": "object",
        "properties": {
          "targetQualificationId": {
            "$ref": "#/components/schemas/QualificationId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NationalQualificationProgramme": {
        "required": [
          "qualificationNumber",
          "qualificationVersionNumber"
        ],
        "type": "object",
        "properties": {
          "qualificationNumber": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Target Qualification Number\r\n\r\n\r\nA number that identifies a qualification registered on the National Qualification and Credentials Framework that this programme leads to.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\n"
          },
          "qualificationVersionNumber": {
            "type": "integer",
            "description": "Target Qualification Version Number\r\n\r\n\r\nA number that identifies a version of a qualification on the NQCF.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\nThis field is required when a Target Qualification Number has been supplied.\r\n\r\n",
            "format": "int32"
          },
          "strandNumbers": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Target Qualification Strand Numbers\r\n\r\n\r\nNumbers that identify strands of a qualification. Only supply this value if you want to identify specific strands of a qualification.\r\n\r\n\r\nType: Array of Integer\r\n\r\nGuidance: If provided, DXP will check the strand numbers and validate they exists on the NQF for this programme and version.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OffJobDeliveryModel": {
        "required": [
          "courseClassification",
          "courseCode",
          "courseEFTSFactor",
          "courseEndDate",
          "courseStartDate",
          "enrolmentLocalId",
          "fundingCategory",
          "intramuralExtramuralAttendance",
          "offJobDeliveryLocalId",
          "offJobProviderCode"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\nThis must be the same as that reported for the main programme enrolment.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status.\r\n\r\nNote: This does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "offJobProviderCode": {
            "type": "integer",
            "description": "Off-Job Provider Code\r\n\r\n\r\nUnique identifier of the TEO who delivered the off-job learning to the learner. Provider Code is assigned by the Ministry of Education to uniquely identify each TEO.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Provider Code needs to be a valid Provider Code.\r\n\r\nReport your Provider Code in situations where off-job delivery is sub-contracted to non-registered TEOs.\r\n\r\n",
            "format": "int32"
          },
          "courseCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Course Code\r\n\r\n\r\nThe internal code for a course in which learners are enrolled in for their off-job learning.\r\n\r\nThe code must be able to uniquely identify a specific course in which a learner is enrolled regardless of the period, location, and year in which it is taught.\r\n\r\nThe course code should be consistently reported for each course offered by the TEO.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: The internal code for the course. The code should contain no reference to dates or years in which the course is taught, e.g., “BlockCourse1”.\r\n\r\n"
          },
          "fundingCategory": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Funding Category\r\n\r\n\r\nThe code to uniquely identify funding categories.\r\n\r\nNote: TEOs must refer to the Delivery Classification Guide to assign the correct subject-matter funding category to the course.\r\n\r\n\r\nLength: 2\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the funding categories classification.  The funding categories classification are listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "courseClassification": {
            "maxLength": 10,
            "minLength": 1,
            "type": "string",
            "description": "Course Classification\r\n\r\n\r\nThe unique subject classification for the course.\r\n\r\nTEOs must refer to the Delivery Classification Guide to assign the correct subject-matter funding category to the course.\r\n\r\n\r\nLength: 10\r\n\r\nType: String\r\n\r\nGuidance: Select a value from course classifications.\r\n\r\nCourse Classification is available at the TEC - Delivery Classification Guide. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "intramuralExtramuralAttendance": {
            "type": "integer",
            "description": "Intramural/ Extramural Attendance\r\n\r\n\r\nThe field is used to record a code which specifies whether a learner is enrolled in a course that requires learners to attend scheduled teaching sessions.\r\n\r\n\r\nNote: Confirmation of what codes need to be used for Attendance type for off-job delivery will be confirmed in 2024.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below:\r\n\r\n1: Intramural and residing in New Zealand\r\n\r\n2: Extramural and residing in New Zealand\r\n\r\nThe reported course enrolment will be regarded as being 100% in a particular mode, and this can be different from the underlying programme components.\r\n\r\n",
            "format": "int32"
          },
          "courseStartDate": {
            "type": "string",
            "description": "Course Start Date\r\n\r\n\r\nThe start date of the learner's course(s) in the current or previous academic year.\r\n\r\nThis date is the officially notified beginning date of instruction and/or structured supervision associated with each learner's course(s) at a tertiary education organisation.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "courseEndDate": {
            "type": "string",
            "description": "Course End Date\r\n\r\n\r\nThe end date of the Learner's course.\r\n\r\nThis will normally be the officially notified end date of instruction and/or examination associated with a course.\r\n\r\nIf a course spans the end of the normal academic year, the last date will be for the following year.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Course End Data cannot be after the completion or withdrawal data of the training programme.\r\n\r\n",
            "format": "date"
          },
          "learnersCourseWithdrawalDate": {
            "type": "string",
            "description": "Learner’s Course Withdrawal Date\r\n\r\n\r\nThe date of withdrawal of a confirmed Learner enrolment from a course, programme or training scheme otherwise should be left blank.\r\n\r\nA “withdrawal” means the withdrawal of a confirmed Learner enrolment from a course, programme, or training scheme, by notice from the Learner to the TEO or because of non-attendance or non-participation by a Learner at the TEO for any reason, and whether the Learner has been refunded any fees.\r\n\r\nIf a learner withdraws from a training agreement and has any open off-job training courses, this field will be updated automatically.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "courseEFTSFactor": {
            "type": "number",
            "description": "CourseEFTSFactor\r\n\r\n\r\nThe amount of EFTS delivered for this course enrolment.\r\n\r\nPotential validation for course-based WB programmes – sum of all course EFTS value associated with Prog Enrol ID must not be greater than the EFTS value for the entire programme.\r\n\r\n\r\nType: Integer (1,4)\r\n\r\nGuidance: The value is expressed as a decimal rounded to four decimal places – e.g., 0.2008.\r\n\r\n",
            "format": "double"
          },
          "offJobDeliveryLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Off-Job Delivery Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the off-job delivery within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "Programme": {
        "required": [
          "creditValue",
          "durationMonths",
          "industryCodes",
          "maximumProgrammeFee",
          "modeOfDeliveryCode",
          "nzqcfLevel",
          "nzscedFieldOfStudy",
          "occupationCode",
          "programmeLocalId",
          "programmeLocalName",
          "programmeTypeCode",
          "startDate",
          "studyTypeCodes"
        ],
        "type": "object",
        "properties": {
          "programmeLocalName": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string",
            "description": "Programme Local Name\r\n\r\n\r\nThe name by which the TEO refers to the programme. This name should follow the TEC naming standards where possible but can be tailored to the ITOs needs.\r\n\r\n\r\nLength:  500\r\n\r\nType: String\r\n\r\nGuidance: The Programme Name must be unique within the TEO and use the following standard:\r\n\r\n·         Qualification / Programme Name\r\n\r\n"
          },
          "nzscedFieldOfStudy": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "NZSCED Field of Study\r\n\r\n\r\nField of study classification of programme versions.\r\n\r\n\r\nLength: 6\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the NZSCED classification.\r\n\r\nThis field is mandatory.\r\n\r\nThe NZSCED is available at Education Counts – New Zealand Standard Classification of Education (NZSCED). They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "creditValue": {
            "type": "integer",
            "description": "Credit Value\r\n\r\n\r\nThe number of credits to be assessed during the programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance:\r\n\r\nWhere there is a strand the credit value listed on the strand should be used. Where there is not, or the strand ‘0’ is used, then use the credits on the qualification.\r\n\r\n",
            "format": "int32"
          },
          "industryCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Industry Codes\r\n\r\n\r\nEach programme must identify the industry the programme is intended for.\r\n\r\nIndustry Code (ANSIC) is defined by Statistics New Zealand and identifies the industry the learner is primarily working in. TEC collects ANSIC at the level 4 of the hierarchy.\r\n\r\n\r\nType: String array\r\n\r\nGuidance: Select values from the Statistics NZ Australian and New Zealand Standard Industrial Classification 2006 V1.0.0 level 4 list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe Industrial classification is available at NZ Statistics: Australian and New Zealand Standard Industrial Classification 2006 V1.0.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "occupationCode": {
            "type": "integer",
            "description": "Occupation Code\r\n\r\n\r\nEach programme must identify the occupation the programme is intended for.\r\n\r\nOccupation Code is defined by the TEC and identifies the occupancy the learner is primarily working in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the TEC Occupation classification list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe occupation classifications are listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "durationMonths": {
            "type": "integer",
            "description": "Duration Months\r\n\r\n\r\nThe number of whole months the programme takes to complete.\r\n\r\nDuration is used to calculate a programmes’ credit per year,\r\n\r\n\r\nLength 3\r\n\r\nType: Integer\r\n\r\nGuidance: Minimum duration may vary by programme type. Current minimums based on the credit load are:\r\n\r\nLCP: 4 months\r\n\r\nNQ: 7 months\r\n\r\nNZA: 7 months\r\n\r\nSCP: 4 months\r\n\r\nMC: 1 month\r\n\r\n",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "description": "Start Date\r\n\r\n\r\nDate from which the programme is available for use.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis is a new field that is needed for funding purposes under UFS.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nValidation will fail if the programme is ‘Assessment and Verification’ and associated programme enrolment(s) are ‘Work-based ‘or ‘Work-based: Pathway’.\r\n\r\nIf Mode of Delivery for a programme version is ‘Assessment and Verification’, then all associated programme enrolments’ mode of delivery must also be ‘Assessment and Verification’.\r\n\r\nWhere a programme version mode of delivery is ‘Work based’, the mode of delivery for associated programme enrolments can only be ‘work-based’, or ‘Work-based: Pathway’.\r\n\r\nFor complex arrangements the sub-programmes must have the same Mode of Delivery as the over-arching programme.\r\n\r\n",
            "format": "int32"
          },
          "studyTypeCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Study Type Codes\r\n\r\n\r\nUnique identifiers of the type of learning.\r\n\r\n\r\nThis is a new field that replaces the previous ‘Funding Source Code’ field, as all work-based is funded under UFS.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select one or more values from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\nFor complex arrangements the sub-programmes must have the same Study Type as the over-arching programme.\r\n\r\n"
          },
          "maximumProgrammeFee": {
            "type": "number",
            "description": "Maximum Programme Fee\r\n\r\n\r\nDefines what the maximum fee amount (inclusive of GST) that a TEOs charges for this programme.\r\n\r\nNotes:\r\n\r\nIt is not relevant who pays the fees.\r\n\r\nThe amount should be the annualised fee for the programme; - i.e., the maximum fee that a learner would pay for the programme for a calendar year.\r\n\r\n·         If the programme is less than 12 months, then it is the maximum total fee for the programme.\r\n\r\n·          If the programme is longer, then it would be maximum amount to be paid for a 12-month period.\r\n\r\nAs this is not the actual fee charged to the learner, refunds are not applicable.\r\n\r\nUsed in conjunction with the Total Work-based Learner Fees to understand the fees charged across vocational education.\r\n\r\n\r\nType: Decimal (8,2)\r\n\r\nGuidance: Enter an amount to the nearest cent. The value is expressed as a decimal rounded to two decimal places – e.g., 0.15.\r\n\r\n",
            "format": "double"
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiry Date\r\n\r\n\r\nDate on which the programme ceases to be available for enrolments. Any enrolments attempted after this date will be rejected.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nOnce an expiry date has passed it cannot be updated.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "nationalQualificationProgramme": {
            "$ref": "#/components/schemas/NationalQualificationProgramme"
          },
          "limitedCreditProgramme": {
            "$ref": "#/components/schemas/LimitedCreditProgramme"
          },
          "supplementaryCreditProgramme": {
            "$ref": "#/components/schemas/SupplementaryCreditProgramme"
          },
          "complexArrangementProgramme": {
            "$ref": "#/components/schemas/ComplexProgramme"
          },
          "microCredentialProgramme": {
            "$ref": "#/components/schemas/MicroCredentialProgramme"
          },
          "courseBasedProgramme": {
            "$ref": "#/components/schemas/CourseBasedProgramme"
          },
          "programmeLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Local ID\r\n\r\n\r\nThe owning organisations reference for the Programme version.\r\n\r\nMust be unique within the TEO for a programme. The TEO cannot have two programmes with the same local programme identifier.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\n"
          },
          "programmeTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Programme Type Code\r\n\r\n\r\nA string that identifies the type of programme.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below:\r\n\r\nNQ: National Qualification Programme, a single training programme\r\n\r\nLCP: Limited Credit Programme, an introductory programme intended to introduce a learner to a specific national qualification and lead to enrolment in, and completion, of that qualification.\r\n\r\nSCP: Supplementary Credit Programme, a programme that adds to an existing qualification already held by the learner.\r\n\r\nMC: Micro-credential Programme, a programme focussing on skill development opportunities. Used when a programme is a Micro-credential, and this micro-credential consists of one or more various components.\r\n\r\nCOM: Complex arrangement, programme that contains sub-programmes and/or additional components.\r\n\r\n"
          },
          "nzqcfLevel": {
            "type": "integer",
            "description": "NZQCF Level\r\n\r\n\r\nA number between 1 and 10 that identifies the level on the NZQCF of the Programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Please enter a value between 1 and 10 inclusive, whole numbers only.\r\n\r\nWhere a qualification strand exists, then the level listed on the strand should be used. Where there is not, or the strand ‘0’ is used, then use the level on the qualification.\r\n\r\nAn NZA must have a NZQCF level of 4 or more.\r\n\r\n",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProgrammeId": {
        "required": [
          "programmeNumber",
          "programmeVersionNumber"
        ],
        "type": "object",
        "properties": {
          "programmeNumber": {
            "type": "integer",
            "description": "Programme Number\r\n\r\n\r\nA number issued by TEC that uniquely identifies a programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: A TEO cannot have multiple programmes with the same Program Number and Version.\r\n\r\n",
            "format": "int32"
          },
          "programmeVersionNumber": {
            "type": "integer",
            "description": "Programme Version Number\r\n\r\n\r\nA number issued by TEC that identifies a version of a programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: A TEO cannot have multiple programmes with the same Program Number and Version.\r\n\r\n",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProgrammeResponseModel": {
        "type": "object",
        "properties": {
          "programmeLocalName": {
            "type": "string",
            "description": "Programme Local Name\r\n\r\n\r\nThe name by which the TEO refers to the programme. This name should follow the TEC naming standards where possible but can be tailored to the ITOs needs.\r\n\r\n\r\nLength:  500\r\n\r\nType: String\r\n\r\nGuidance: The Programme Name must be unique within the TEO and use the following standard:\r\n\r\n·         Qualification / Programme Name\r\n\r\n",
            "nullable": true
          },
          "nzscedFieldOfStudy": {
            "type": "string",
            "description": "NZSCED Field of Study\r\n\r\n\r\nField of study classification of programme versions.\r\n\r\n\r\nLength: 6\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the NZSCED classification.\r\n\r\nThis field is mandatory.\r\n\r\nThe NZSCED is available at Education Counts – New Zealand Standard Classification of Education (NZSCED). They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "nullable": true
          },
          "creditValue": {
            "type": "integer",
            "description": "Credit Value\r\n\r\n\r\nThe number of credits to be assessed during the programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance:\r\n\r\nWhere there is a strand the credit value listed on the strand should be used. Where there is not, or the strand ‘0’ is used, then use the credits on the qualification.\r\n\r\n",
            "format": "int32"
          },
          "industryCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Industry Codes\r\n\r\n\r\nEach programme must identify the industry the programme is intended for.\r\n\r\nIndustry Code (ANSIC) is defined by Statistics New Zealand and identifies the industry the learner is primarily working in. TEC collects ANSIC at the level 4 of the hierarchy.\r\n\r\n\r\nType: String array\r\n\r\nGuidance: Select values from the Statistics NZ Australian and New Zealand Standard Industrial Classification 2006 V1.0.0 level 4 list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe Industrial classification is available at NZ Statistics: Australian and New Zealand Standard Industrial Classification 2006 V1.0.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "nullable": true
          },
          "occupationCode": {
            "type": "integer",
            "description": "Occupation Code\r\n\r\n\r\nEach programme must identify the occupation the programme is intended for.\r\n\r\nOccupation Code is defined by the TEC and identifies the occupancy the learner is primarily working in.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the TEC Occupation classification list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe occupation classifications are listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "durationMonths": {
            "type": "integer",
            "description": "Duration Months\r\n\r\n\r\nThe number of whole months the programme takes to complete.\r\n\r\nDuration is used to calculate a programmes’ credit per year,\r\n\r\n\r\nLength 3\r\n\r\nType: Integer\r\n\r\nGuidance: Minimum duration may vary by programme type. Current minimums based on the credit load are:\r\n\r\nLCP: 4 months\r\n\r\nNQ: 7 months\r\n\r\nNZA: 7 months\r\n\r\nSCP: 4 months\r\n\r\nMC: 1 month\r\n\r\n",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "description": "Start Date\r\n\r\n\r\nDate from which the programme is available for use.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis is a new field that is needed for funding purposes under UFS.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nValidation will fail if the programme is ‘Assessment and Verification’ and associated programme enrolment(s) are ‘Work-based ‘or ‘Work-based: Pathway’.\r\n\r\nIf Mode of Delivery for a programme version is ‘Assessment and Verification’, then all associated programme enrolments’ mode of delivery must also be ‘Assessment and Verification’.\r\n\r\nWhere a programme version mode of delivery is ‘Work based’, the mode of delivery for associated programme enrolments can only be ‘work-based’, or ‘Work-based: Pathway’.\r\n\r\nFor complex arrangements the sub-programmes must have the same Mode of Delivery as the over-arching programme.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "studyTypeCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Study Type Codes\r\n\r\n\r\nUnique identifiers of the type of learning.\r\n\r\n\r\nThis is a new field that replaces the previous ‘Funding Source Code’ field, as all work-based is funded under UFS.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select one or more values from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\nFor complex arrangements the sub-programmes must have the same Study Type as the over-arching programme.\r\n\r\n",
            "nullable": true
          },
          "maximumProgrammeFee": {
            "type": "number",
            "description": "Maximum Programme Fee\r\n\r\n\r\nDefines what the maximum fee amount (inclusive of GST) that a TEOs charges for this programme.\r\n\r\nNotes:\r\n\r\nIt is not relevant who pays the fees.\r\n\r\nThe amount should be the annualised fee for the programme; - i.e., the maximum fee that a learner would pay for the programme for a calendar year.\r\n\r\n·         If the programme is less than 12 months, then it is the maximum total fee for the programme.\r\n\r\n·          If the programme is longer, then it would be maximum amount to be paid for a 12-month period.\r\n\r\nAs this is not the actual fee charged to the learner, refunds are not applicable.\r\n\r\nUsed in conjunction with the Total Work-based Learner Fees to understand the fees charged across vocational education.\r\n\r\n\r\nType: Decimal (8,2)\r\n\r\nGuidance: Enter an amount to the nearest cent. The value is expressed as a decimal rounded to two decimal places – e.g., 0.15.\r\n\r\n",
            "format": "double",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiry Date\r\n\r\n\r\nDate on which the programme ceases to be available for enrolments. Any enrolments attempted after this date will be rejected.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nOnce an expiry date has passed it cannot be updated.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "nationalQualificationProgramme": {
            "$ref": "#/components/schemas/NationalQualificationProgramme"
          },
          "limitedCreditProgramme": {
            "$ref": "#/components/schemas/LimitedCreditProgrammeModel"
          },
          "supplementaryCreditProgramme": {
            "$ref": "#/components/schemas/SupplementaryCreditProgrammeModel"
          },
          "complexArrangementProgramme": {
            "$ref": "#/components/schemas/ComplexProgrammeModel"
          },
          "microCredentialProgramme": {
            "$ref": "#/components/schemas/MicroCredentialProgrammeModel"
          },
          "courseBasedProgramme": {
            "$ref": "#/components/schemas/CourseBasedProgramme"
          },
          "programmeLocalId": {
            "type": "string",
            "description": "Programme Local ID\r\n\r\n\r\nThe owning organisations reference for the Programme version.\r\n\r\nMust be unique within the TEO for a programme. The TEO cannot have two programmes with the same local programme identifier.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\n",
            "nullable": true
          },
          "programmeTypeCode": {
            "type": "string",
            "description": "Programme Type Code\r\n\r\n\r\nA string that identifies the type of programme.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below:\r\n\r\nNQ: National Qualification Programme, a single training programme\r\n\r\nCB: Course Based Programme, a course based programme\r\n\r\nLCP: Limited Credit Programme, an introductory programme intended to introduce a learner to a specific national qualification and lead to enrolment in, and completion, of that qualification.\r\n\r\nSCP: Supplementary Credit Programme, a programme that adds to an existing qualification already held by the learner.\r\n\r\nMC: Micro-credential Programme, a programme focussing on skill development opportunities. Used when a programme is a Micro-credential, and this micro-credential consists of one or more various components.\r\n\r\nCOM: Complex arrangement, programme that contains sub-programmes and/or additional components.\r\n\r\n",
            "nullable": true
          },
          "nzqcfLevel": {
            "type": "integer",
            "description": "NZQCF Level\r\n\r\n\r\nA number between 1 and 10 that identifies the level on the NZQCF of the Programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Please enter a value between 1 and 10 inclusive, whole numbers only.\r\n\r\nWhere a qualification strand exists, then the level listed on the strand should be used. Where there is not, or the strand ‘0’ is used, then use the level on the qualification.\r\n\r\nAn NZA must have a NZQCF level of 4 or more.\r\n\r\n",
            "format": "int32"
          },
          "programmeNumber": {
            "type": "integer",
            "format": "int32"
          },
          "programmeVersionNumber": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProgrammeVersion": {
        "required": [
          "creditValue",
          "durationMonths",
          "industryCodes",
          "maximumProgrammeFee",
          "modeOfDeliveryCode",
          "nzscedFieldOfStudy",
          "occupationCode",
          "programmeLocalName",
          "startDate",
          "studyTypeCodes"
        ],
        "type": "object",
        "properties": {
          "programmeLocalName": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string",
            "description": "Programme Local Name\r\n\r\n\r\nThe name by which the TEO refers to the programme. This name should follow the TEC naming standards where possible but can be tailored to the ITOs needs.\r\n\r\n\r\nLength:  500\r\n\r\nType: String\r\n\r\nGuidance: The Programme Name must be unique within the TEO and use the following standard:\r\n\r\n·         Qualification / Programme Name\r\n\r\n"
          },
          "nzscedFieldOfStudy": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "NZSCED Field of Study\r\n\r\n\r\nField of study classification of programme versions.\r\n\r\n\r\nLength: 6\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the NZSCED classification.\r\n\r\nThis field is mandatory.\r\n\r\nThe NZSCED is available at Education Counts – New Zealand Standard Classification of Education (NZSCED). They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "creditValue": {
            "type": "integer",
            "description": "Credit Value\r\n\r\n\r\nThe number of credits to be assessed during the programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance:\r\n\r\nWhere there is a strand the credit value listed on the strand should be used. Where there is not, or the strand ‘0’ is used, then use the credits on the qualification.\r\n\r\n",
            "format": "int32"
          },
          "industryCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Industry Codes\r\n\r\n\r\nEach programme must identify the industry the programme is intended for.\r\n\r\nIndustry Code (ANSIC) is defined by Statistics New Zealand and identifies the industry the learner is primarily working in. TEC collects ANSIC at the level 4 of the hierarchy.\r\n\r\n\r\nType: String array\r\n\r\nGuidance: Select values from the Statistics NZ Australian and New Zealand Standard Industrial Classification 2006 V1.0.0 level 4 list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe Industrial classification is available at NZ Statistics: Australian and New Zealand Standard Industrial Classification 2006 V1.0.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "occupationCode": {
            "type": "integer",
            "description": "Occupation Code\r\n\r\n\r\nEach programme must identify the occupation the programme is intended for.\r\n\r\nOccupation Code is defined by the TEC and identifies the occupancy the learner is primarily working in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the TEC Occupation classification list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Training Agreement.\r\n\r\nThe occupation classifications are listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "durationMonths": {
            "type": "integer",
            "description": "Duration Months\r\n\r\n\r\nThe number of whole months the programme takes to complete.\r\n\r\nDuration is used to calculate a programmes’ credit per year,\r\n\r\n\r\nLength 3\r\n\r\nType: Integer\r\n\r\nGuidance: Minimum duration may vary by programme type. Current minimums based on the credit load are:\r\n\r\nLCP: 4 months\r\n\r\nNQ: 7 months\r\n\r\nNZA: 7 months\r\n\r\nSCP: 4 months\r\n\r\nMC: 1 month\r\n\r\n",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "description": "Start Date\r\n\r\n\r\nDate from which the programme is available for use.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis is a new field that is needed for funding purposes under UFS.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nValidation will fail if the programme is ‘Assessment and Verification’ and associated programme enrolment(s) are ‘Work-based ‘or ‘Work-based: Pathway’.\r\n\r\nIf Mode of Delivery for a programme version is ‘Assessment and Verification’, then all associated programme enrolments’ mode of delivery must also be ‘Assessment and Verification’.\r\n\r\nWhere a programme version mode of delivery is ‘Work based’, the mode of delivery for associated programme enrolments can only be ‘work-based’, or ‘Work-based: Pathway’.\r\n\r\nFor complex arrangements the sub-programmes must have the same Mode of Delivery as the over-arching programme.\r\n\r\n",
            "format": "int32"
          },
          "studyTypeCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Study Type Codes\r\n\r\n\r\nUnique identifiers of the type of learning.\r\n\r\n\r\nThis is a new field that replaces the previous ‘Funding Source Code’ field, as all work-based is funded under UFS.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select one or more values from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\nFor complex arrangements the sub-programmes must have the same Study Type as the over-arching programme.\r\n\r\n"
          },
          "maximumProgrammeFee": {
            "type": "number",
            "description": "Maximum Programme Fee\r\n\r\n\r\nDefines what the maximum fee amount (inclusive of GST) that a TEOs charges for this programme.\r\n\r\nNotes:\r\n\r\nIt is not relevant who pays the fees.\r\n\r\nThe amount should be the annualised fee for the programme; - i.e., the maximum fee that a learner would pay for the programme for a calendar year.\r\n\r\n·         If the programme is less than 12 months, then it is the maximum total fee for the programme.\r\n\r\n·          If the programme is longer, then it would be maximum amount to be paid for a 12-month period.\r\n\r\nAs this is not the actual fee charged to the learner, refunds are not applicable.\r\n\r\nUsed in conjunction with the Total Work-based Learner Fees to understand the fees charged across vocational education.\r\n\r\n\r\nType: Decimal (8,2)\r\n\r\nGuidance: Enter an amount to the nearest cent. The value is expressed as a decimal rounded to two decimal places – e.g., 0.15.\r\n\r\n",
            "format": "double"
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiry Date\r\n\r\n\r\nDate on which the programme ceases to be available for enrolments. Any enrolments attempted after this date will be rejected.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nOnce an expiry date has passed it cannot be updated.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "nationalQualificationProgramme": {
            "$ref": "#/components/schemas/NationalQualificationProgramme"
          },
          "limitedCreditProgramme": {
            "$ref": "#/components/schemas/LimitedCreditProgramme"
          },
          "supplementaryCreditProgramme": {
            "$ref": "#/components/schemas/SupplementaryCreditProgramme"
          },
          "complexArrangementProgramme": {
            "$ref": "#/components/schemas/ComplexProgramme"
          },
          "microCredentialProgramme": {
            "$ref": "#/components/schemas/MicroCredentialProgramme"
          },
          "courseBasedProgramme": {
            "$ref": "#/components/schemas/CourseBasedProgramme"
          }
        },
        "additionalProperties": false
      },
      "ProgrammeVersionUpdate": {
        "required": [
          "maximumProgrammeFee"
        ],
        "type": "object",
        "properties": {
          "maximumProgrammeFee": {
            "type": "number",
            "description": "Maximum Programme Fee\r\n\r\n\r\nDefines what the maximum fee amount (inclusive of GST) that a TEOs charges for this programme.\r\n\r\nNotes:\r\n\r\nIt is not relevant who pays the fees.\r\n\r\nThe amount should be the annualised fee for the programme; - i.e., the maximum fee that a learner would pay for the programme for a calendar year.\r\n\r\n·         If the programme is less than 12 months, then it is the maximum total fee for the programme.\r\n\r\n·          If the programme is longer, then it would be maximum amount to be paid for a 12-month period.\r\n\r\nAs this is not the actual fee charged to the learner, refunds are not applicable.\r\n\r\nUsed in conjunction with the Total Work-based Learner Fees to understand the fees charged across vocational education.\r\n\r\n\r\nType: Decimal (8,2)\r\n\r\nGuidance: Enter an amount to the nearest cent. The value is expressed as a decimal rounded to two decimal places – e.g., 0.15.\r\n\r\n",
            "format": "double"
          },
          "expiryDate": {
            "type": "string",
            "description": "Expiry Date\r\n\r\n\r\nDate on which the programme ceases to be available for enrolments. Any enrolments attempted after this date will be rejected.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nOnce an expiry date has passed it cannot be updated.\r\n\r\n",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QualificationId": {
        "required": [
          "qualificationNumber",
          "qualificationVersionNumber"
        ],
        "type": "object",
        "properties": {
          "qualificationNumber": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Target Qualification Number\r\n\r\n\r\nA number that identifies a qualification registered on the National Qualification and Credentials Framework that this programme leads to.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\n"
          },
          "qualificationVersionNumber": {
            "type": "integer",
            "description": "Target Qualification Version Number\r\n\r\n\r\nA number that identifies a version of a qualification on the NQCF.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\nThis field is required when a Target Qualification Number has been supplied.\r\n\r\n",
            "format": "int32"
          },
          "strandNumbers": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Target Qualification Strand Numbers\r\n\r\n\r\nNumbers that identify strands of a qualification. Only supply this value if you want to identify specific strands of a qualification.\r\n\r\n\r\nType: Array of Integer\r\n\r\nGuidance: If provided, DXP will check the strand numbers and validate they exists on the NQF for this programme and version.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RestartAgreementRequest": {
        "required": [
          "restartDate"
        ],
        "type": "object",
        "properties": {
          "restartDate": {
            "type": "string",
            "description": "Restart Date\r\n\r\n\r\nThe date on which the Training Agreement is restarted.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nStatus Change Date must be before or equal to today. Status Change Date must be after the Training Agreement Signed Date.\r\n\r\nWhen restarting a Training Agreement from being on ‘Hold’. The ‘Restart’ date must be on or after the date on which the training agreement went on hold.\r\n\r\n",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "ScpQualificationId": {
        "type": "object",
        "properties": {
          "qualificationNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "Target Qualification Number\r\n\r\n\r\nA number that identifies a qualification registered on the National Qualification and Credentials Framework that this programme leads to.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\n",
            "nullable": true
          },
          "qualificationVersionNumber": {
            "type": "integer",
            "description": "Target Qualification Version Number\r\n\r\n\r\nA number that identifies a version of a qualification on the NQCF.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Enter the Qualification Number of the qualification that is specific to your organisation.\r\n\r\nThis field is required when a Target Qualification Number has been supplied.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "strandNumbers": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Target Qualification Strand Numbers\r\n\r\n\r\nNumbers that identify strands of a qualification. Only supply this value if you want to identify specific strands of a qualification.\r\n\r\n\r\nType: Array of Integer\r\n\r\nGuidance: If provided, DXP will check the strand numbers and validate they exists on the NQF for this programme and version.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubEnrolment": {
        "required": [
          "components",
          "enrolmentLocalId",
          "participationStartDate",
          "programmeId",
          "studyTypeCode"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "studyTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Study Type Code\r\n\r\n\r\nUnique identifier of the type of learning.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "programmeId": {
            "$ref": "#/components/schemas/ProgrammeId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "SubEnrolmentModel": {
        "required": [
          "components",
          "enrolmentLocalId",
          "participationStartDate",
          "programmeId",
          "studyTypeCode"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "studyTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Study Type Code\r\n\r\n\r\nUnique identifier of the type of learning.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nIT - Industry Training\r\n\r\nTA - Trades Academies\r\n\r\nNZA - New Zealand Apprenticeship\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "programmeId": {
            "$ref": "#/components/schemas/ProgrammeId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          },
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "fundingSourceTypeCode": {
            "type": "string",
            "description": "Funding Source Type Code\r\n\r\n\r\nThe code that identifies the source of the funding that supports the learner's enrolment in the programme.\r\n\r\n\r\nThis is the same list of funding source codes as used for reporting Provider-based learning, except only funding source code 37 is applicable for work-based.\r\n\r\n\r\nLength: 2\r\n\r\nType: Alpha-Numeric\r\n\r\nGuidance: Select a value from the list below.\r\n\r\n37: Non-degree Delivery at Levels 3-7 on the NZQCF (DQ3-7)\r\n\r\nFor complex arrangements the funding source code of the sub-enrolments must match the funding source code of the parent enrolment.\r\n\r\n",
            "nullable": true
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32",
            "nullable": true
          },
          "enrolmentStatus": {
            "type": "string",
            "description": "Enrolment Status\r\n\r\n\r\nA code which identifies the status of the Programme Enrolment.\r\n\r\nDXP will derive the Programme Enrolment Status based on the business rules outlined in the ‘programme enrolment statuses’ section above.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Valid status values are below:\r\n\r\nPending: A Programme Enrolment is set to Pending if created for an NZA.\r\n\r\nActive: Learner is actively participating and engaged in their work-based programme. Only programme enrolments with a status of Active or Grace will accrue EFTS.\r\n\r\nHold: An TEO may place a learner on hold if the learner is not actively training but intends to return to training within a short period of time. Placing a training agreement on hold means that all associated enrolments will no longer accrue EFTS.\r\n\r\nGrace: TEO helps the learner to complete the programme or obtain another job. Associated enrolments that are not “Completed” or “Withdrawn” will accrue EFTS.\r\n\r\nWithdrawn: A Learner has withdrawn from their programme enrolment.\r\n\r\nCompleted: Learner has completed their programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "qualificationAchievedDate": {
            "type": "string",
            "description": "Qualification Achieved Date\r\n\r\n\r\nThe date the qualification is achieved.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SupplementaryCreditProgramme": {
        "type": "object",
        "properties": {
          "targetQualificationId": {
            "$ref": "#/components/schemas/ScpQualificationId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SupplementaryCreditProgrammeModel": {
        "type": "object",
        "properties": {
          "targetQualificationId": {
            "$ref": "#/components/schemas/ScpQualificationId"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentModel"
            },
            "description": "components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrainingAgreement": {
        "required": [
          "employerIndustryCode",
          "employerName",
          "employmentRegionCode",
          "employmentTerritorialAuthorityCode",
          "employmentTypeCode",
          "learnerOccupationCode",
          "trainingAgreementSignedDate"
        ],
        "type": "object",
        "properties": {
          "employerNzbn": {
            "type": "string",
            "description": "Employer NZBN\r\n\r\n\r\nThe New Zealand Business Number issued by GS1 New Zealand to the organisation the learner is employed with. This field helps to identify an employer.\r\n\r\n\r\nType: String\r\n\r\nGuidance: Enter your NZBN if applicable.\r\n\r\n",
            "nullable": true
          },
          "employerName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Employer Name\r\n\r\n\r\nThe name of the employer. Must be the legal name of the organisation that is employing the learner. Where the employer has multiple sites, this must be the name the parent or head office is known by.\r\n\r\n\r\nLength: 255\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\nMust be the legal name of the organisation that is employing the learner. Where the employer has multiple sites, this must be the name the parent or head office is known by.\r\n\r\n"
          },
          "employerSubdivisionName": {
            "maxLength": 255,
            "type": "string",
            "description": "Employer Subdivision Name\r\n\r\n\r\nThe name of the subdivision a learner is working for where the employer has multiple sites.\r\n\r\n\r\nLength: 255\r\n\r\nType: String\r\n\r\nGuidance: Enter in the name of the subdivision if known or applicable.\r\n\r\n",
            "nullable": true
          },
          "employmentRegionCode": {
            "type": "integer",
            "description": "Employment Region Code\r\n\r\n\r\nA code defined by Statistics New Zealand that identifies the Region the Learner’s place of employment is located in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance:  Select a value from the Statistics New Zealand Regional Council (Generalised) 2023 classification.\r\n\r\nThe Region classification is available at NZ Statistics: Regional Council (Generalised) 2023. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "employmentTerritorialAuthorityCode": {
            "type": "integer",
            "description": "Employment Territorial Authority Code\r\n\r\n\r\nA code defined by Statistics New Zealand that identifies the Territorial Authority the Learner’s place of employment is located in.\r\n\r\n\r\nThis is a new field that will provide a lower level of detail on where learners are employed.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the Statistics New Zealand Territorial Authority (Generalised) 2023 classification.\r\n\r\nNote: There is only a single Territorial Authority Code for Auckland. There is no further breakdown of geography within the Auckland Territorial Authority area.\r\n\r\nThe Territorial Authority classification is available at NZ Statistics: Territorial Authority (Generalised) 2023. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "employmentTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Employment Type Code\r\n\r\n\r\nA code that identifies the nature of the learners’ employment relationship with their employer.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below:\r\n\r\nE: Employee\r\n\r\nSS: State Sector\r\n\r\nV: Volunteer\r\n\r\nSE: Self Employed.\r\n\r\n"
          },
          "employerIndustryCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Employer Industry Code\r\n\r\n\r\nEach programme must identify the industry or industries the programme is intended for.\r\n\r\nEmployer Industry Code (ANZSIC) is defined by Statistics New Zealand and identifies the industry the learner is primarily working in.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the Statistics NZ Australian and New Zealand Standard Industrial Classification 2006 V1.0.0 level 4 list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Programme.\r\n\r\nThe Industrial classification is available at NZ Statistics: Australian and New Zealand Standard Industrial Classification 2006 V1.0.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "learnerOccupationCode": {
            "type": "integer",
            "description": "Learner Occupation Code\r\n\r\n\r\nEach training agreement must identify the occupation of the learner.\r\n\r\nLearner Occupation Code is defined by the TEC and identifies the occupancy the learner is primarily working in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the TEC Occupation classification list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Programme.\r\n\r\nThe occupation classifications are listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "moeExemptionNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "MoE Exemption Number\r\n\r\n\r\nIf a learner is 15 years of age, they are normally required to be enrolled in secondary education. This element captures a reference number provided by the MOE that identifies an exemption they have granted to a learner to not be in secondary education.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: MOE Exemption Number must be supplied if learner is 15 years old at time of signing the training agreement.\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementSignedDate": {
            "type": "string",
            "description": "Training Agreement Signed Date\r\n\r\n\r\nDate the Training Agreement was signed by the learner, employer and TEO.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nUse the last date the Training Agreement was signed.\r\n\r\nTraining Agreement Signed Date must be on or before the processing date.\r\n\r\nThe learner must be over 16 years old at date the training agreement is signed unless the MOE Exemption Code is supplied.\r\n\r\nTraining Agreement Signed Date must be no older than 120 days from today.\r\n\r\nIf the Training Agreement is the product of an Employer transfer, then the Training Agreement Signed Date of the new Training Agreement must be after the Training Agreement Signed Date of the previous Training Agreement.\r\n\r\nAlso, the new Training Agreement Signed Date must be at least one day after any preceding GRACE status for the previous Training Agreement.\r\n\r\n",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "TrainingAgreementModel": {
        "required": [
          "employerIndustryCode",
          "employerName",
          "employmentRegionCode",
          "employmentTerritorialAuthorityCode",
          "employmentTypeCode",
          "learnerOccupationCode",
          "trainingAgreementSignedDate"
        ],
        "type": "object",
        "properties": {
          "employerNzbn": {
            "type": "string",
            "description": "Employer NZBN\r\n\r\n\r\nThe New Zealand Business Number issued by GS1 New Zealand to the organisation the learner is employed with. This field helps to identify an employer.\r\n\r\n\r\nType: String\r\n\r\nGuidance: Enter your NZBN if applicable.\r\n\r\n",
            "nullable": true
          },
          "employerName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Employer Name\r\n\r\n\r\nThe name of the employer. Must be the legal name of the organisation that is employing the learner. Where the employer has multiple sites, this must be the name the parent or head office is known by.\r\n\r\n\r\nLength: 255\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\nMust be the legal name of the organisation that is employing the learner. Where the employer has multiple sites, this must be the name the parent or head office is known by.\r\n\r\n"
          },
          "employerSubdivisionName": {
            "maxLength": 255,
            "type": "string",
            "description": "Employer Subdivision Name\r\n\r\n\r\nThe name of the subdivision a learner is working for where the employer has multiple sites.\r\n\r\n\r\nLength: 255\r\n\r\nType: String\r\n\r\nGuidance: Enter in the name of the subdivision if known or applicable.\r\n\r\n",
            "nullable": true
          },
          "employmentRegionCode": {
            "type": "integer",
            "description": "Employment Region Code\r\n\r\n\r\nA code defined by Statistics New Zealand that identifies the Region the Learner’s place of employment is located in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance:  Select a value from the Statistics New Zealand Regional Council (Generalised) 2023 classification.\r\n\r\nThe Region classification is available at NZ Statistics: Regional Council (Generalised) 2023. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "employmentTerritorialAuthorityCode": {
            "type": "integer",
            "description": "Employment Territorial Authority Code\r\n\r\n\r\nA code defined by Statistics New Zealand that identifies the Territorial Authority the Learner’s place of employment is located in.\r\n\r\n\r\nThis is a new field that will provide a lower level of detail on where learners are employed.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the Statistics New Zealand Territorial Authority (Generalised) 2023 classification.\r\n\r\nNote: There is only a single Territorial Authority Code for Auckland. There is no further breakdown of geography within the Auckland Territorial Authority area.\r\n\r\nThe Territorial Authority classification is available at NZ Statistics: Territorial Authority (Generalised) 2023. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "employmentTypeCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Employment Type Code\r\n\r\n\r\nA code that identifies the nature of the learners’ employment relationship with their employer.\r\n\r\n\r\nLength: 3\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the list below:\r\n\r\nE: Employee\r\n\r\nSS: State Sector\r\n\r\nV: Volunteer\r\n\r\nSE: Self Employed.\r\n\r\n"
          },
          "employerIndustryCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Employer Industry Code\r\n\r\n\r\nEach programme must identify the industry or industries the programme is intended for.\r\n\r\nEmployer Industry Code (ANZSIC) is defined by Statistics New Zealand and identifies the industry the learner is primarily working in.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the Statistics NZ Australian and New Zealand Standard Industrial Classification 2006 V1.0.0 level 4 list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Programme.\r\n\r\nThe Industrial classification is available at NZ Statistics: Australian and New Zealand Standard Industrial Classification 2006 V1.0.0. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "learnerOccupationCode": {
            "type": "integer",
            "description": "Learner Occupation Code\r\n\r\n\r\nEach training agreement must identify the occupation of the learner.\r\n\r\nLearner Occupation Code is defined by the TEC and identifies the occupancy the learner is primarily working in.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the TEC Occupation classification list for your organisation.\r\n\r\nNote: Please select the most appropriate value as only one value is required. The value selected can be different to that on the Programme.\r\n\r\nThe occupation classifications are listed in the DXP Data Classifications Appendices.\r\n\r\n",
            "format": "int32"
          },
          "moeExemptionNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "MoE Exemption Number\r\n\r\n\r\nIf a learner is 15 years of age, they are normally required to be enrolled in secondary education. This element captures a reference number provided by the MOE that identifies an exemption they have granted to a learner to not be in secondary education.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: MOE Exemption Number must be supplied if learner is 15 years old at time of signing the training agreement.\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementSignedDate": {
            "type": "string",
            "description": "Training Agreement Signed Date\r\n\r\n\r\nDate the Training Agreement was signed by the learner, employer and TEO.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nUse the last date the Training Agreement was signed.\r\n\r\nTraining Agreement Signed Date must be on or before the processing date.\r\n\r\nThe learner must be over 16 years old at date the training agreement is signed unless the MOE Exemption Code is supplied.\r\n\r\nTraining Agreement Signed Date must be no older than 120 days from today.\r\n\r\nIf the Training Agreement is the product of an Employer transfer, then the Training Agreement Signed Date of the new Training Agreement must be after the Training Agreement Signed Date of the previous Training Agreement.\r\n\r\nAlso, the new Training Agreement Signed Date must be at least one day after any preceding GRACE status for the previous Training Agreement.\r\n\r\n",
            "format": "date"
          },
          "originalTrainingAgreementSignedDate": {
            "type": "string",
            "description": "Original Training Agreement Signed Date\r\n\r\n\r\nDate the Training Agreement was originally signed by the learner, employer and TEO.\r\n\r\n\r\nType: Date\r\n",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrainingAgreementResponseModel": {
        "type": "object",
        "properties": {
          "learnerLocalId": {
            "type": "string",
            "description": "Learner Local ID\r\n\r\n\r\nA code which uniquely identifies the learner within each TEO, as captured in a TEO’s TMS system.\r\n\r\nThe Learner Local ID must remain constant for the learner throughout their enrolment history at your organisation.\r\n\r\nNote: This field has been renamed from ‘Local ID’ to ‘Learner Local ID’\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be the unique value generated by each TEO via their TMS.\r\n\r\nBoth ‘Learner Identification Code’ and ‘Learner Local ID’ cannot both be NULL.\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementLocalId": {
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique identifier issued by the TEO that identifies the training agreement between the TEO, employer, and learner for a specific training agreement signed date\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: A programme enrolment must also exist and be submitted with any new training agreement.\r\n\r\n",
            "nullable": true
          },
          "trainingAgreement": {
            "$ref": "#/components/schemas/TrainingAgreementModel"
          },
          "restartDate": {
            "type": "string",
            "description": "Restart Date\r\n\r\n\r\nThe date on which the Training Agreement is restarted.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nStatus Change Date must be before or equal to today. Status Change Date must be after the Training Agreement Signed Date.\r\n\r\nWhen restarting a Training Agreement from being on ‘Hold’. The ‘Restart’ date must be on or after the date on which the training agreement went on hold.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "pauseDate": {
            "type": "string",
            "description": "Pause Date\r\n\r\n\r\nThe date on which the Training Agreement is paused.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nStatus Change Date must be before or equal to today. Status Change Date must be after the Training Agreement Signed Date.\r\n\r\nStatus can be backdated a maximum of three months from the current date. Completions are excluded from this limitation and any backdated events stemming from the receipt of a completion from NZQA can be applied beyond the three-month limit.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "graceReasonCode": {
            "maxLength": 2,
            "type": "string",
            "description": "Grace Reason Code\r\n\r\n\r\nIdentifies why a Training Agreement has been place in GRACE\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be provided if status code is GRACE. Please select one of the reason codes below.\r\n\r\nReason Code: Description\r\n\r\nLE: Loss of employment\r\n\r\nDM: Dismissal\r\n\r\nRD: Redundancy\r\n\r\n",
            "nullable": true
          },
          "onHoldReasonCode": {
            "maxLength": 2,
            "type": "string",
            "description": "On Hold Reason Code\r\n\r\n\r\nIdentifies why a Training Agreement has moved into either a HOLD or GRACE\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be provided if status code is HOLD. Please select one of the reason codes below.\r\n\r\nReason Code: Description\r\n\r\nSW: Seasonal work\r\n\r\nPL: Parental leave\r\n\r\nOV: Overseas travel\r\n\r\nMD: Medical/ACC\r\n\r\nCI: Attending correctional institution\r\n\r\nOT: Other\r\n\r\nST: Stop training (still with employer)\r\n\r\nWE: Work Experience\r\n\r\n",
            "nullable": true
          },
          "withdrawalDate": {
            "type": "string",
            "description": "Withdrawal Date\r\n\r\n\r\nDate on which learner withdrew from their Training Agreement\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nAn TEO can withdraw a training agreement when the agreement between the learner, employer and TEO ceases before the related enrolments are complete.\r\n\r\nThe effect of withdrawing a training agreement is to withdraw all enrolments within the agreement that are not complete or withdrawn.\r\n\r\nTraining Agreement must have a status of “Pending”, “Active”, “Hold” or “Grace” to be withdrawn.\r\n\r\nWithdrawal date must be on or after the Training Agreement Signed Date.\r\n\r\nWithdrawal date must be before or equal to today.\r\n\r\nWithdrawal date must be on or after the latest participation start date.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End Date\r\n\r\n\r\nThe date on which the Training Agreement ends.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "withdrawalReasonCode": {
            "maxLength": 3,
            "type": "string",
            "description": "Withdrawal Reason Code\r\n\r\n\r\nIdentifies the reason why the learner withdrew from their Training Agreement\r\n\r\n\r\nLength: 3\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be supplied if a withdrawal date is supplied. Select a value from the list below:\r\n\r\nBC: Business closed\r\n\r\nBD: Business downturn\r\n\r\nCC: Change in career choice\r\n\r\nAP: Changing from Industry Trainee to Apprentice\r\n\r\nPT: Changing from Apprentice to Industry Trainee\r\n\r\nCP: Change of programme\r\n\r\nDC: Deceased\r\n\r\nDS: Dissatisfied with employer/industry\r\n\r\nEW: Exiting the workforce\r\n\r\nLS: Lack of employer support\r\n\r\nLA: Length of apprenticeship\r\n\r\nLI: Linked Enrolment\r\n\r\nNF: Non-payment of fee\r\n\r\nOT: Other\r\n\r\nOD: Over programme duration\r\n\r\nPC: Parental commitment\r\n\r\nST: Stop Training (still with employer)\r\n\r\nTI: Transfer TEO\r\n\r\nLE: Loss of Employment\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementStatus": {
            "maxLength": 20,
            "type": "string",
            "description": "Training Agreement Status\r\n\r\n\r\nA code which identifies the status of the Training Agreement.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Valid status values are below:\r\n\r\nPending: A Training Agreement is set to Pending if it has been created for an NZA.\r\n\r\nActive: Learner is actively participating and engaged in their work-based programme. Associated enrolments that are not “Completed” or “Withdrawn” will accrue EFTS.\r\n\r\nGrace: TEO helps the learner to complete the programme or obtain another job. Associated enrolments that are not “Completed” or “Withdrawn” will accrue EFTS.\r\n\r\nHold: An TEO may place a learner on hold if the learner is not actively training but intends to return to training within a short period of time. Placing a training agreement on hold means that all associated enrolments will no longer accrue EFTS.\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrainingPlanDetails": {
        "type": "object",
        "properties": {
          "trainingPlan": {
            "$ref": "#/components/schemas/TrainingPlanResponse"
          },
          "visits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrainingPlanVisit"
            },
            "description": "visits\r\n\r\n\r\n\r\n\r\nType: TrainingPlanVisit array\r\n\r\n",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrainingPlanRequest": {
        "required": [
          "trainingAgreementLocalId",
          "trainingPlanLocalId",
          "trainingPlanSignedDate"
        ],
        "type": "object",
        "properties": {
          "trainingPlanSignedDate": {
            "type": "string",
            "description": "Training Plan Signed Date\r\n\r\n\r\nThe date the training plan was signed between the apprentice, employer, and MAC.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Training Plan Signed Date must be on or after the associated Training Agreement Signed date.\r\n\r\nFor each Pending, Hold, Grace enrolment associated with the Training Agreement, where enrolment participation start date is before the Training Plan Signed Date, check that the programme is active as at the Training Plan Signed Date. This check is required, as these enrolments will have their participation start date uploaded to Training Plan Signed Date. This change also applies to Complex Arrangements for both over-arching and sub-enrolments.\r\n\r\n",
            "format": "date"
          },
          "trainingPlanLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Plan Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the Training Plan. A unique Training Plan has a unique combination of Organisation ID, Learner Local ID, and Training Plan Signed Date.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\n"
          },
          "trainingAgreementLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String Guidance: The referenced Training Agreement must:\r\n\r\n›          exist and match the training agreement for that apprentice at that TEO.\r\n\r\n›          have a status of ‘Pending’, ‘Hold’, or ‘Grace’.\r\n\r\nEnrolments associated with the Training Agreement must be NZAs.\r\n\r\nA single Training Agreement can relate to multiple Training Plans.\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "TrainingPlanResponse": {
        "required": [
          "trainingPlanSignedDate"
        ],
        "type": "object",
        "properties": {
          "trainingPlanSignedDate": {
            "type": "string",
            "description": "Training Plan Signed Date\r\n\r\n\r\nThe date the training plan was signed between the apprentice, employer, and MAC.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Training Plan Signed Date must be on or after the associated Training Agreement Signed date.\r\n\r\nFor each Pending, Hold, Grace enrolment associated with the Training Agreement, where enrolment participation start date is before the Training Plan Signed Date, check that the programme is active as at the Training Plan Signed Date. This check is required, as these enrolments will have their participation start date uploaded to Training Plan Signed Date. This change also applies to Complex Arrangements for both over-arching and sub-enrolments.\r\n\r\n",
            "format": "date"
          },
          "learnerLocalId": {
            "type": "string",
            "description": "Learner Local ID\r\n\r\n\r\nA code which uniquely identifies the learner within each TEO, as captured in a TEO’s TMS system.\r\n\r\nThe Learner Local ID must remain constant for the learner throughout their enrolment history at your organisation.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be the unique value generated by each TEO via their TMS.\r\n\r\nBoth ‘Learner Identification Code’ and ‘Learner Local ID’ cannot both be NULL.\r\n\r\n",
            "nullable": true
          },
          "trainingPlanLocalId": {
            "type": "string",
            "description": "Training Plan Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the Training Plan. A unique Training Plan has a unique combination of Organisation ID, Learner Local ID, and Training Plan Signed Date.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance:\r\n\r\n",
            "nullable": true
          },
          "trainingAgreementLocalId": {
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String Guidance: The referenced Training Agreement must:\r\n\r\n›          exist and match the training agreement for that apprentice at that TEO.\r\n\r\n›          have a status of ‘Pending’, ‘Hold’, or ‘Grace’.\r\n\r\nEnrolments associated with the Training Agreement must be NZAs.\r\n\r\nA single Training Agreement can relate to multiple Training Plans.\r\n\r\n",
            "nullable": true
          },
          "trainingPlanEndDate": {
            "type": "string",
            "description": "trainingPlan\r\n\r\n\r\n\r\n\r\nType: Training Plan End Date\r\n\r\n",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TrainingPlanUpdate": {
        "required": [
          "trainingPlanSignedDate"
        ],
        "type": "object",
        "properties": {
          "trainingPlanSignedDate": {
            "type": "string",
            "description": "Training Plan Signed Date\r\n\r\n\r\nThe date the training plan was signed between the apprentice, employer, and MAC.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Training Plan Signed Date must be on or after the associated Training Agreement Signed date.\r\n\r\nFor each Pending, Hold, Grace enrolment associated with the Training Agreement, where enrolment participation start date is before the Training Plan Signed Date, check that the programme is active as at the Training Plan Signed Date. This check is required, as these enrolments will have their participation start date uploaded to Training Plan Signed Date. This change also applies to Complex Arrangements for both over-arching and sub-enrolments.\r\n\r\n",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "TrainingPlanVisit": {
        "required": [
          "visitDate",
          "visitLocalId"
        ],
        "type": "object",
        "properties": {
          "visitLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Visit Local ID\r\n\r\n\r\nA code which uniquely identifies a visit against a training plan.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: This number must be a unique value.\r\n\r\n"
          },
          "visitDate": {
            "type": "string",
            "description": "Visit Date\r\n\r\n\r\nThe date the visit occurred.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Visit Date must be on or after then Training Plan Signed Date, must be a date no later than today, and must be on or before the Training Plan End Date. Multiple visits with the same learner cannot be reported on the same day.\r\n\r\nA training plan can have many associated visits.\r\n\r\n",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "TransferComplexEnrolmentRequest": {
        "required": [
          "programmeVersionNumber",
          "subEnrolments",
          "transferDate"
        ],
        "type": "object",
        "properties": {
          "programmeVersionNumber": {
            "type": "integer",
            "description": "Programme Version Number\r\n\r\n\r\nA number issued by TEC that identifies a version of a programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: A TEO cannot have multiple programmes with the same Program Number and Version.\r\n\r\n",
            "format": "int32"
          },
          "transferDate": {
            "type": "string",
            "description": "Transfer Date\r\n\r\n\r\nDate the transfer became effective\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nTransfer date must be after the participation start date, and where multiple transfers exist, the transfer date must be on or after the latest transfer date. Latest Transfer Date represents the date the enrolment was last transferred to a different programme version.\r\n\r\n",
            "format": "date"
          },
          "subEnrolments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferSubEnrolment"
            },
            "description": "Sub Enrolments\r\n\r\n\r\n\r\n\r\nType: Transfer Sub Enrolment array\r\n\r\n"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransferSimpleEnrolmentRequest": {
        "required": [
          "components",
          "programmeVersionNumber",
          "transferDate"
        ],
        "type": "object",
        "properties": {
          "programmeVersionNumber": {
            "type": "integer",
            "description": "Programme Version Number\r\n\r\n\r\nA number issued by TEC that identifies a version of a programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: A TEO cannot have multiple programmes with the same Program Number and Version.\r\n\r\n",
            "format": "int32"
          },
          "transferDate": {
            "type": "string",
            "description": "Transfer Date\r\n\r\n\r\nDate the transfer became effective\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nTransfer date must be after the participation start date, and where multiple transfers exist, the transfer date must be on or after the latest transfer date. Latest Transfer Date represents the date the enrolment was last transferred to a different programme version.\r\n\r\n",
            "format": "date"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "TransferSubEnrolment": {
        "required": [
          "components",
          "enrolmentLocalId",
          "programmeVersionNumber"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "programmeVersionNumber": {
            "type": "integer",
            "description": "Programme Version Number\r\n\r\n\r\nA number issued by TEC that identifies a version of a programme.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: A TEO cannot have multiple programmes with the same Program Number and Version.\r\n\r\n",
            "format": "int32"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "TransferTrainingAgreementRequest": {
        "required": [
          "newTrainingAgreement",
          "newTrainingAgreementLocalId"
        ],
        "type": "object",
        "properties": {
          "newTrainingAgreementLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Training Agreement Local ID\r\n\r\n\r\nA unique number issued by the TEO that Identifies the training agreement that the Training Plan relates.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Training Agreement Status cannot be ‘Finished’. There must be a matching training agreement for this learner and TEO within DXP.\r\n\r\nThe same Training Agreement ID must be applied against all relevant sub-programme and over-arching programme enrolments.\r\n\r\n"
          },
          "newTrainingAgreement": {
            "$ref": "#/components/schemas/TrainingAgreement"
          }
        },
        "additionalProperties": false
      },
      "UpdateComplexEnrolmentRequest": {
        "required": [
          "enrolmentDate",
          "modeOfDeliveryCode",
          "participationStartDate",
          "subEnrolments"
        ],
        "type": "object",
        "properties": {
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "residentialStatus": {
            "type": "boolean",
            "description": "Residential Status\r\n\r\n\r\nIdentifies if the Learner has New Zealand resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: New Zealand Resident visa holder (Excludes all New Zealand and Australian Citizens)\r\n\r\nN: Not a New Zealand Resident visa holder (Includes all New Zealand and Australian Citizens)\r\n\r\nFor complex arrangements, the residential status of the sub-enrolment(s) must be the same as the residential status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "australianResidentialStatus": {
            "type": "boolean",
            "description": "Australian Residential Status\r\n\r\n\r\nIdentifies if the Learner has Australian permanent resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: Australian Permanent Resident\r\n\r\nN: Not an Australian Permanent Resident\r\n\r\nFor complex arrangements, the Australian Residential Status of the sub-enrolment(s) must be the same as the Australian Residential Status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "subEnrolments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateSubEnrolmentModel"
            },
            "description": "Sub Enrolments\r\n\r\n\r\n\r\n\r\nType: UpdateSubEnrolmentRequest array\r\n\r\n"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateLearnerRequest": {
        "required": [
          "demographics",
          "educationHistory"
        ],
        "type": "object",
        "properties": {
          "irdNumber": {
            "maxLength": 11,
            "type": "string",
            "description": " IrdNumber\r\n\r\n\r\n A code to identify the IrdNumber of a learner.\r\n\r\n\r\n Length: 11\r\n\r\n Type: String\r\n\r\n Guidance: IRD numbers are either eight or nine digits with \r\n dashes e.g., 123-456-789. Please enter leading zero in the first box\r\n if your IRD number is only 8 digits. \r\n only provide an IRD number for a learner may meet the eligibility criteria\r\n for Fees Free at the time of enrolment.\r\n However, in situations where you know they are not eligible,\r\n you will not need to collect their IRD number.For example, where a learner: \r\n has received a Fees Free entitlement previously (e.g.first-year Fees Free)\r\nis not studying an eligible programme\r\ndoes not meet prior study criteria\r\n \r\n",
            "nullable": true
          },
          "demographics": {
            "$ref": "#/components/schemas/LearnerDemographics"
          },
          "educationHistory": {
            "$ref": "#/components/schemas/LearnerEducationHistory"
          }
        },
        "additionalProperties": false
      },
      "UpdateOffJobDeliveryModel": {
        "required": [
          "courseClassification",
          "courseCode",
          "courseEFTSFactor",
          "courseEndDate",
          "courseStartDate",
          "fundingCategory",
          "intramuralExtramuralAttendance",
          "offJobProviderCode"
        ],
        "type": "object",
        "properties": {
          "offJobProviderCode": {
            "type": "integer",
            "description": "Off-Job Provider Code\r\n\r\n\r\nUnique identifier of the TEO who delivered the off-job learning to the learner. Provider Code is assigned by the Ministry of Education to uniquely identify each TEO.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Provider Code needs to be a valid Provider Code.\r\n\r\nReport your Provider Code in situations where off-job delivery is sub-contracted to non-registered TEOs.\r\n\r\n",
            "format": "int32"
          },
          "courseCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Course Code\r\n\r\n\r\nThe internal code for a course in which learners are enrolled in for their off-job learning.\r\n\r\nThe code must be able to uniquely identify a specific course in which a learner is enrolled regardless of the period, location, and year in which it is taught.\r\n\r\nThe course code should be consistently reported for each course offered by the TEO.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: The internal code for the course. The code should contain no reference to dates or years in which the course is taught, e.g., “BlockCourse1”.\r\n\r\n"
          },
          "fundingCategory": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Funding Category\r\n\r\n\r\nThe code to uniquely identify funding categories.\r\n\r\nNote: TEOs must refer to the Delivery Classification Guide to assign the correct subject-matter funding category to the course.\r\n\r\n\r\nLength: 2\r\n\r\nType: String\r\n\r\nGuidance: Select a value from the funding categories classification.  The funding categories classification are listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "courseClassification": {
            "maxLength": 10,
            "minLength": 1,
            "type": "string",
            "description": "Course Classification\r\n\r\n\r\nThe unique subject classification for the course.\r\n\r\nTEOs must refer to the Delivery Classification Guide to assign the correct subject-matter funding category to the course.\r\n\r\n\r\nLength: 10\r\n\r\nType: String\r\n\r\nGuidance: Select a value from course classifications.\r\n\r\nCourse Classification is available at the TEC - Delivery Classification Guide. They are also listed in the DXP Data Classifications Appendices.\r\n\r\n"
          },
          "intramuralExtramuralAttendance": {
            "type": "integer",
            "description": "Intramural/ Extramural Attendance\r\n\r\n\r\nThe field is used to record a code which specifies whether a learner is enrolled in a course that requires learners to attend scheduled teaching sessions.\r\n\r\n\r\nNote: Confirmation of what codes need to be used for Attendance type for off-job delivery will be confirmed in 2024.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select a value from the list below:\r\n\r\n1: Intramural and residing in New Zealand\r\n\r\n2: Extramural and residing in New Zealand\r\n\r\nThe reported course enrolment will be regarded as being 100% in a particular mode, and this can be different from the underlying programme components.\r\n\r\n",
            "format": "int32"
          },
          "courseStartDate": {
            "type": "string",
            "description": "Course Start Date\r\n\r\n\r\nThe start date of the learner's course(s) in the current or previous academic year.\r\n\r\nThis date is the officially notified beginning date of instruction and/or structured supervision associated with each learner's course(s) at a tertiary education organisation.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date"
          },
          "courseEndDate": {
            "type": "string",
            "description": "Course End Date\r\n\r\n\r\nThe end date of the Learner's course.\r\n\r\nThis will normally be the officially notified end date of instruction and/or examination associated with a course.\r\n\r\nIf a course spans the end of the normal academic year, the last date will be for the following year.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nThe Couse End Data cannot be after the completion or withdrawal data of the training programme.\r\n\r\n",
            "format": "date"
          },
          "learnersCourseWithdrawalDate": {
            "type": "string",
            "description": "Learner’s Course Withdrawal Date\r\n\r\n\r\nThe date of withdrawal of a confirmed Learner enrolment from a course, programme or training scheme otherwise should be left blank.\r\n\r\nA “withdrawal” means the withdrawal of a confirmed Learner enrolment from a course, programme, or training scheme, by notice from the Learner to the TEO or because of non-attendance or non-participation by a Learner at the TEO for any reason, and whether the Learner has been refunded any fees.\r\n\r\nIf a learner withdraws from a training agreement and has any open off-job training courses, this field will be updated automatically.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\n",
            "format": "date",
            "nullable": true
          },
          "courseEFTSFactor": {
            "type": "number",
            "description": "Course EFTS Factor\r\n\r\n\r\nThe amount of EFTS delivered for this course enrolment.\r\n\r\nPotential validation for course-based WB programmes – sum of all course EFTS value associated with Prog Enrol ID must not be greater than the EFTS value for the entire programme.\r\n\r\n\r\nType: Integer (1,4)\r\n\r\nGuidance: The value is expressed as a decimal rounded to four decimal places – e.g., 0.2008.\r\n\r\n",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "UpdateSimpleEnrolmentRequest": {
        "required": [
          "components",
          "enrolmentDate",
          "modeOfDeliveryCode",
          "participationStartDate"
        ],
        "type": "object",
        "properties": {
          "enrolmentDate": {
            "type": "string",
            "description": "Enrolment Date\r\n\r\n\r\nThe date the learner became enrolled on the programme. This may be different from the date that learner started training or learning.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nEnrolment date must be on or after the training agreement signed date.\r\n\r\nFor sub-enrolments, the sub-programme enrolment date must be on or after the overarching programme enrolment date.\r\n\r\n",
            "format": "date"
          },
          "residentialStatus": {
            "type": "boolean",
            "description": "Residential Status\r\n\r\n\r\nIdentifies if the Learner has New Zealand resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: New Zealand Resident visa holder (Excludes all New Zealand and Australian Citizens)\r\n\r\nN: Not a New Zealand Resident visa holder (Includes all New Zealand and Australian Citizens)\r\n\r\nFor complex arrangements, the residential status of the sub-enrolment(s) must be the same as the residential status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "australianResidentialStatus": {
            "type": "boolean",
            "description": "Australian Residential Status\r\n\r\n\r\nIdentifies if the Learner has Australian permanent resident status for each enrolment.\r\n\r\nNote:\r\n\r\n·        TEOs should update residential status when a change occurs\r\n\r\n·        TEC will date stamp the receipt of an update for validation and reporting requirements\r\n\r\n·        There is no backdating of this field\r\n\r\n\r\nLength: 1\r\n\r\nType: Boolean\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nY: Australian Permanent Resident\r\n\r\nN: Not an Australian Permanent Resident\r\n\r\nFor complex arrangements, the Australian Residential Status of the sub-enrolment(s) must be the same as the Australian Residential Status of the parent programme enrolment.\r\n\r\n",
            "nullable": true
          },
          "modeOfDeliveryCode": {
            "type": "integer",
            "description": "Mode of Delivery Code\r\n\r\n\r\nThe channel through which learning is delivered.\r\n\r\n\r\nThis field is required for the purpose of funding determination and for identifying how work-based learning is delivered.\r\n\r\n\r\nType: Integer\r\n\r\nGuidance: Select from one of the values below.\r\n\r\n24: Work-based\r\n\r\n25: Work-based: Pathway to work\r\n\r\n26: Assessment and Verification\r\n\r\nThe programme enrolment’s mode of delivery must match the associated programme’s mode of delivery for ‘Assessment and Verification’.\r\n\r\nFor complex arrangements, the mode of delivery of sub-programme enrolments must match the mode of delivery of the over-arching programme enrolment.\r\n\r\n",
            "format": "int32"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "UpdateSubEnrolmentModel": {
        "required": [
          "components",
          "enrolmentLocalId",
          "participationStartDate"
        ],
        "type": "object",
        "properties": {
          "enrolmentLocalId": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Programme Enrolment Local ID\r\n\r\n\r\nA unique number issued by the TEO that identifies the programme enrolment within their system.\r\n\r\n\r\nLength: 20\r\n\r\nType: String\r\n\r\nGuidance: Must not be used to identify any other enrolment supplied by the TEO, regardless of enrolment status. Note: this does not include DELETED enrolments.\r\n\r\nUpdates to any programme enrolment column cannot be made if programme enrolment status is Withdrawn or Completed.\r\n\r\n"
          },
          "participationStartDate": {
            "type": "string",
            "description": "Participation Start Date\r\n\r\n\r\nThe date the learner started learning or training.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nParticipation Start date must be on or after the Enrolment date. For NZAs the participation start date must be the same as the Training Plan Start Date.\r\n\r\nFor sub-programmes, the sub-programme participation start date must be on or after the participation start date of the overarching programme enrolment participation start date.\r\n\r\nIf the TEO needs to change the participation start date, they will need to withdraw the enrolment and create a new enrolment.\r\n\r\n",
            "format": "date"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComponentId"
            },
            "description": "Components\r\n\r\n\r\n\r\n\r\nType: Component array\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "UpdateTrainingAgreementRequest": {
        "required": [
          "trainingAgreement"
        ],
        "type": "object",
        "properties": {
          "trainingAgreement": {
            "$ref": "#/components/schemas/TrainingAgreement"
          }
        },
        "additionalProperties": false
      },
      "UpdateTrainingAgreementStatusOnHoldRequest": {
        "required": [
          "onHoldReasonCode",
          "pauseDate"
        ],
        "type": "object",
        "properties": {
          "pauseDate": {
            "type": "string",
            "description": "Pause Date\r\n\r\n\r\nThe date on which the Training Agreement is paused.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nStatus Change Date must be before or equal to today. Status Change Date must be after the Training Agreement Signed Date.\r\n\r\nStatus can be backdated a maximum of three months from the current date. Completions are excluded from this limitation and any backdated events stemming from the receipt of a completion from NZQA can be applied beyond the three-month limit.\r\n\r\n",
            "format": "date"
          },
          "onHoldReasonCode": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "On Hold Reason Code\r\n\r\n\r\nIdentifies why a Training Agreement has moved into either a HOLD or GRACE\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be provided if status code is HOLD. Please select one of the reason codes below.\r\n\r\nReason Code: Description\r\n\r\nSW: Seasonal work\r\n\r\nPL: Parental leave\r\n\r\nOV: Overseas travel\r\n\r\nMD: Medical/ACC\r\n\r\nCI: Attending correctional institution\r\n\r\nOT: Other\r\n\r\nST: Stop training (still with employer)\r\n\r\nWE: Work Experience\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "UpdateTrainingAgreementStatusWithdrawalRequest": {
        "required": [
          "withdrawalDate",
          "withdrawalReasonCode"
        ],
        "type": "object",
        "properties": {
          "withdrawalDate": {
            "type": "string",
            "description": "Withdrawal Date\r\n\r\n\r\nDate on which learner withdrew from their Training Agreement\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nAn TEO can withdraw a training agreement when the agreement between the learner, employer and TEO ceases before the related enrolments are complete.\r\n\r\nThe effect of withdrawing a training agreement is to withdraw all enrolments within the agreement that are not complete or withdrawn.\r\n\r\nTraining Agreement must have a status of “Pending”, “Active”, “Hold” or “Grace” to be withdrawn.\r\n\r\nWithdrawal date must be on or after the Training Agreement Signed Date.\r\n\r\nWithdrawal date must be before or equal to today.\r\n\r\nWithdrawal date must be on or after the latest participation start date.\r\n\r\n",
            "format": "date"
          },
          "withdrawalReasonCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Withdrawal Reason Code\r\n\r\n\r\nIdentifies the reason why the learner withdrew from their Training Agreement\r\n\r\n\r\nLength: 3\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be supplied if a withdrawal date is supplied. Select a value from the list below:\r\n\r\nBC: Business closed\r\n\r\nBD: Business downturn\r\n\r\nCC: Change in career choice\r\n\r\nAP: Changing from Industry Trainee to Apprentice\r\n\r\nPT: Changing from Apprentice to Industry Trainee\r\n\r\nCP: Change of programme\r\n\r\nDC: Deceased\r\n\r\nDS: Dissatisfied with employer/industry\r\n\r\nEW: Exiting the workforce\r\n\r\nLS: Lack of employer support\r\n\r\nLA: Length of apprenticeship\r\n\r\nLI: Linked Enrolment\r\n\r\nNF: Non-payment of fee\r\n\r\nOT: Other\r\n\r\nOD: Over programme duration\r\n\r\nPC: Parental commitment\r\n\r\nST: Stop Training (still with employer)\r\n\r\nTI: Transfer TEO\r\n\r\nLE: Loss of Employment\r\n\r\nGE: Grace period automatically expired by system\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "UpdateTrainingStatusGraceRequest": {
        "required": [
          "graceReasonCode",
          "pauseDate"
        ],
        "type": "object",
        "properties": {
          "pauseDate": {
            "type": "string",
            "description": "Pause Date\r\n\r\n\r\nThe date on which the Training Agreement is paused.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nStatus Change Date must be before or equal to today. Status Change Date must be after the Training Agreement Signed Date.\r\n\r\nStatus can be backdated a maximum of three months from the current date. Completions are excluded from this limitation and any backdated events stemming from the receipt of a completion from NZQA can be applied beyond the three-month limit.\r\n\r\n",
            "format": "date"
          },
          "graceReasonCode": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Grace Reason Code\r\n\r\n\r\nIdentifies why a Training Agreement has been place in GRACE\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: A reason code must be provided if status code is GRACE. Please select one of the reason codes below.\r\n\r\nReason Code: Description\r\n\r\nLE: Loss of employment\r\n\r\nDM: Dismissal\r\n\r\nRD: Redundancy\r\n\r\n"
          }
        },
        "additionalProperties": false
      },
      "WithdrawEnrolmentRequest": {
        "required": [
          "withdrawalDate",
          "withdrawalReasonCode"
        ],
        "type": "object",
        "properties": {
          "withdrawalDate": {
            "type": "string",
            "description": "Withdrawal Date\r\n\r\n\r\nThe date the withdrawal is effective.\r\n\r\n\r\nType: Date\r\n\r\nGuidance: 2024-04-08\r\n\r\nYou must use ISO-8601 for your dates.\r\n\r\nA withdrawal cannot be applied to an enrolment where status is ‘Completed’, but can be ‘Active’, ‘Hold’, ‘Grace’, ’Pending’ or ‘Withdrawn’.\r\n\r\nIf learner is enrolled in a complex programme, only the parent enrolment can be withdrawn. DXP won’t allow sub-programme enrolments to be withdrawn.\r\n\r\nWithdrawal date must be after the Enrolment participation start date, must be before or equal to today, and must be on or before the current withdrawal date (if one already exists in DXP for this programme enrolment).\r\n\r\n",
            "format": "date"
          },
          "withdrawalReasonCode": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "Withdrawal Reason Code\r\n\r\n\r\nA code that identifies the reason why a training agreement is being withdrawn.\r\n\r\n\r\nLength: 2\r\n\r\nType: Character\r\n\r\nGuidance: Select a value from the list below.\r\n\r\nValue: Description\r\n\r\nBC: Business closed\r\n\r\nBD: Business downturn\r\n\r\nCC: Change in career choice\r\n\r\nAP: Changing from Industry Trainee to Apprentice\r\n\r\nPT: Changing from Apprentice to Industry Trainee\r\n\r\nCP: Change of programme\r\n\r\nDC: Deceased\r\n\r\nDS: Dissatisfied with employer/industry\r\n\r\nEW: Exiting the workforce\r\n\r\nLS: Lack of employer support\r\n\r\nLA: Length of apprenticeship\r\n\r\nLI: Linked Enrolment\r\n\r\nNF: Non-payment of fee\r\n\r\nOT: Other\r\n\r\nOD: Over programme duration\r\n\r\nPC: Parental commitment\r\n\r\n"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "B2B": {
        "type": "http",
        "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "B2B": [
        "APP_DXP"
      ]
    }
  ]
}
