Skip to navigation

Set an application's status

View as Markdown

Moves an application to any status, with an optional reason saying why. The reason is kept on the application AND on its status history, so “why was this put on hold, and when” has an answer later.

The statuses are RECEIVED, READY, PROCESSING, ON_HOLD, FINALISED and FAILED. WITHDRAWN is NOT accepted here — use /withdraw, which also closes the assessment workflow. Setting the status alone would leave a workflow that still thinks it is live, so it keeps appearing in an assessor’s queue.

Setting the status an application already has succeeds and changes nothing, so a retry is safe and leaves one history entry rather than two.

404 if the application is unknown, 409 if it is withdrawn — that is not reversible, and reinstating means a new application.

Authentication

AuthorizationBearer

Paste a Keycloak access token (no "Bearer " prefix)

Path parameters

idstringRequiredformat: "uuid"

Request

This endpoint expects an object.
statusstringRequired

RECEIVED, READY, PROCESSING, ON_HOLD, FINALISED or FAILED. Case is forgiven.

reasonstringOptional

Why, in your own words. Kept on the application and on its status history. Optional, but an ON_HOLD with no reason is hard to act on later.

Response

The application, at its new status.
idstringOptionalformat: "uuid"
applicantIdstringOptionalformat: "uuid"
programCodestringOptional
yearintegerOptional
streamstringOptional
applicantTypestringOptional

Whether this is a domestic or an international application: DOMESTIC or INTERNATIONAL. Optional, and case is forgiven.

On the APPLICATION, not the person. The same applicant can be domestic for one application and international for another, so an application records what was true when it was lodged.

Distinct from stream, which is your own admission stream and says more than this. Send both: we cannot read your stream codes, and this is the field our officers and rules can act on.

intakeCodestringOptional

Your own code for the intake the applicant is starting, e.g. "5269" for Term 3 2026.

Optional, but worth sending: our officers work applications in intake order, and one with no intake cannot be prioritised against the rest.

Send the code rather than the name. These are YOUR term codes, loaded from the intake schedule you supply us, so a code you use is a code we hold; one we do not recognise is refused with a 400 naming it.

intakestringOptional
The intake's name, e.g. "Term 3 2026". Null when no intake is set.
statusstringOptional

Application status: RECEIVED, READY, PROCESSING, ON_HOLD, FINALISED, WITHDRAWN or FAILED.

statusDetailstringOptional

Failure detail when status is FAILED; null otherwise.

workflowStatusstringOptional

Assessment workflow status once processed (e.g. DECIDED, CREDIT_TEAM_REVIEW); null while RECEIVED.

qualificationslist of objectsOptional
sourceNamestringOptional
The system this record was fed from, in your own vocabulary. Free text, and required whenever you send a sourceRef.
sourceRefstringOptional

Your own unique id for this application, e.g. an application number. Unique per sourceName.

sourceslist of objectsOptional

Your own references for this record, one per system you keep it in. A person or an application known by a different id in SITS than elsewhere carries both.

Optional. sourceName and sourceRef still work exactly as before and count as the FIRST entry here, so nothing you have already built needs to change. Send both forms and they are combined, with duplicates collapsed.

Order matters: the first entry is the one echoed back as sourceRef, and the one shown in lists and in the change feed.

specialisationslist of objectsOptional
The specialisations this application is for, in the order they were chosen. Empty when there are none.
pendingActionslist of objectsOptional

What this application is waiting on, oldest first. Each entry is one thing we need before the assessment can go further. Empty when nothing is outstanding — which is the normal case, not a problem.

submittedAtdatetimeOptional
updatedAtdatetimeOptional

Errors

400
Bad Request Error
404
Not Found Error
409
Conflict Error