Skip to content

Correct one of a worker's compliance documents

PUT
/v1/workers/{workerId}/compliances/{id}
curl --request PUT \
--url https://api2.recruso.co.uk/v1/workers/1/compliances/1 \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "workerId": 4821, "id": 7311, "complianceId": 3, "startDate": "2026-01-15", "endDate": "2031-01-14" }'

Corrects a document already held for a worker in your own agency — its type, or the dates it runs between.

This is a full replacement of that one document, not a partial merge: a field you omit is set to null.

Use it to fix a document that was recorded wrongly, not to record a renewal. A renewal is a new document with its own dates: overwriting the old one would erase the period it covered from the right-to-work register.

A document that belongs to a different worker, or to another agency, returns 404 rather than 403. modifiedBy and modifiedOn are set from your credentials and the current UK local time; they are not taken from the request.

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

workerId
required
integer format: int32

The workerId path parameter

id
required
integer format: int32

The id path parameter

Media typeapplication/json

The replacement values for a compliance document already held. Every field is written from the request, so a field you omit is set to null.

object
workerId

The worker the document belongs to. Taken from the route; a value in the request body is ignored.

integer format: int32
Example
4821
id

The document to update. Taken from the route; a value in the request body is ignored.

integer format: int32
Example
7311
complianceId

The kind of document, as an id from your agency’s Compliance lookup.

integer format: int16
Example
3
startDate

The date the document takes effect.

string format: date
nullable
Example
2026-01-15
endDate

The date the document expires. Must not be before the start date.

string format: date
nullable
Example
2031-01-14

OK

Media typeapplication/json
object
workerComplianceId

The record’s identifier.

integer format: int32
complianceId

The kind of document, as an id from your agency’s Compliance lookup.

integer format: int16
startDate

The date the document takes effect.

string format: date
nullable
endDate

The date the document expires.

string format: date
nullable
Example
{
"workerComplianceId": 7311,
"complianceId": 3,
"startDate": "2026-01-15",
"endDate": "2031-01-14"
}

Bad Request

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Not Found

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}