Schemas

September 17, 2026 ยท View on GitHub

Case API Service v1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

RESTful API for managing census case data. Provides endpoints for querying and retrieving case information by various identifiers (UUID, reference, UPRN, postcode, QID). Returns comprehensive case details including address information, case status, and associated events.

Base URLs:

License: Office for National Statistics

QID Endpoint

Services for retrieving and managing questionnaire ID (QID) and UAC link information

putQidLinkToCase

Code samples

# You can also use wget
curl -X PUT http://localhost:8161/qids/link \
  -H 'Content-Type: application/json'

PUT http://localhost:8161/qids/link HTTP/1.1
Host: localhost:8161
Content-Type: application/json

const inputBody = '{
  "transactionId": "a11e3456-e89b-12d3-a456-426614174000",
  "channel": "CONTACT_CENTRE",
  "qidLink": {
    "questionnaireId": "Q123456",
    "caseId": "a11e3456-e89b-12d3-a456-426614174000"
  }
}';
const headers = {
  'Content-Type':'application/json'
};

fetch('http://localhost:8161/qids/link',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json'
}

result = RestClient.put 'http://localhost:8161/qids/link',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json'
}

r = requests.put('http://localhost:8161/qids/link', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','http://localhost:8161/qids/link', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/qids/link");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "http://localhost:8161/qids/link", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /qids/link

Link QID to case

Links a questionnaire ID to a case. This endpoint is currently not implemented as the subscription for questionnaire links is not available.

Body parameter

{
  "transactionId": "a11e3456-e89b-12d3-a456-426614174000",
  "channel": "CONTACT_CENTRE",
  "qidLink": {
    "questionnaireId": "Q123456",
    "caseId": "a11e3456-e89b-12d3-a456-426614174000"
  }
}

Parameters

NameInTypeRequiredDescription
bodybodyNewQidLinktrueQID link information to be created

Responses

StatusMeaningDescriptionSchema
501Not ImplementedNot Implemented - Questionnaire link subscription not availableNone

getUacQidLinkByQid

Code samples

# You can also use wget
curl -X GET http://localhost:8161/qids/{qid} \
  -H 'Accept: application/json'

GET http://localhost:8161/qids/{qid} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/qids/{qid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/qids/{qid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/qids/{qid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/qids/{qid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/qids/{qid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/qids/{qid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /qids/{qid}

Retrieve QID link details

Retrieves the UAC-QID link information for a specified questionnaire ID, including associated case ID if available.

Parameters

NameInTypeRequiredDescription
qidpathstringtrueQuestionnaire Identifier (QID) to retrieve

Example responses

200 Response

{
  "questionnaireId": "Q123456",
  "caseId": "a11e3456-e89b-12d3-a456-426614174000"
}

Responses

StatusMeaningDescriptionSchema
200OKQID link details retrieved successfullyQidLink
404Not FoundQuestionnaire ID not foundNone
500Internal Server ErrorInternal server error occurredNone

Case Endpoint

Services for querying and retrieving census cases

getAllCaseDetailsByCaseId

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/case-details/{caseId} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/case-details/{caseId} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/case-details/{caseId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/case-details/{caseId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/case-details/{caseId}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/case-details/{caseId}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/case-details/{caseId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/case-details/{caseId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/case-details/{caseId}

Get full case details by Case ID

Retrieves complete detailed case attributes for a given case UUID.

Parameters

NameInTypeRequiredDescription
caseIdpathstring(uuid)trueUnique UUID of the case

Example responses

200 Response

{
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "caseRef": 100000000000001,
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "caseType": "HH",
  "addressType": "HH",
  "estabType": "HOUSEHOLD",
  "addressLevel": "U",
  "abpCode": "RD06",
  "organisationName": "Acme Corporation",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "region": "E12000009",
  "htcWillingness": "3",
  "htcDigital": "4",
  "fieldCoordinatorId": "FC12344",
  "fieldOfficerId": "FO12345",
  "treatmentCode": "HH_PSCE",
  "ceExpectedCapacity": 1505,
  "ceActualResponses": 1504,
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "events": [],
  "receiptReceived": true,
  "refusalReceived": "HARD_REFUSAL",
  "invalid": false,
  "lastUpdated": "2024-01-20T14:45:00Z",
  "printBatch": "15",
  "surveyLaunched": true
}

Responses

StatusMeaningDescriptionSchema
200OKDetailed case record retrieved successfullyCaseDetailsDTO
404Not FoundCase ID not foundNone

getCasesByPostcode

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/postcode/{postcode} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/postcode/{postcode} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/postcode/{postcode}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/postcode/{postcode}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/postcode/{postcode}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/postcode/{postcode}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/postcode/{postcode}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/postcode/{postcode}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/postcode/{postcode}

Find cases by Postcode

Retrieves all cases located within the specified postcode area.

Parameters

NameInTypeRequiredDescription
postcodepathstringtruePostal code identifier

Example responses

200 Response

[
  {
    "caseRef": "100000000000001",
    "id": "a11e3456-e89b-12d3-a456-426614174000",
    "estabType": "HOUSEHOLD",
    "uprn": "10008677190",
    "estabUprn": "10008677190",
    "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
    "surveyType": "CENSUS",
    "addressType": "HH",
    "caseType": "HH",
    "createdDateTime": "2024-01-15T10:30:00Z",
    "addressLine1": "Flat 51 Francombe House",
    "addressLine2": "Commercial Road",
    "addressLine3": "Suite 3",
    "townName": "Windleybury",
    "postcode": "XX1 0XX",
    "organisationName": "Acme Corporation",
    "addressLevel": "U",
    "abpCode": "RD06",
    "region": "E12000007",
    "latitude": "51.5074",
    "longitude": "-0.1278",
    "oa": "E00073438",
    "lsoa": "E01014540",
    "msoa": "E02003043",
    "lad": "E06000023",
    "lastUpdated": "2024-01-20T14:45:00Z",
    "caseEvents": [],
    "secureEstablishment": false,
    "invalid": false
  }
]

Responses

StatusMeaningDescriptionSchema
200OKMatching cases retrieved successfullyInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
anonymous[CaseContainerDTO]falsenone[Data Transfer Object representing a census case container]
ยป abpCodestringfalsenoneAddressBase classification code
ยป addressLevelstringfalsenoneAddress level classification (e.g., E, U (signifying Establishment and Unit))
ยป addressLine1stringfalsenoneFirst address line
ยป addressLine2stringfalsenoneSecond address line
ยป addressLine3stringfalsenoneThird address line
ยป addressTypestringfalsenoneResidential address frame type (e.g., HH, CE)
ยป caseEvents[CaseEventDTO]falsenoneList of events associated with the case
ยปยป createdDateTimestring(date-time)truenoneDate and time when the event was created
ยปยป descriptionstringfalsenoneHuman-readable description of the event
ยปยป eventTypeEventTypeDTOtruenoneEnumeration of all possible event types that can occur in the census RM system
ยปยป idstring(uuid)truenoneUnique event identifier (UUID)
ยป caseRefstringtruenoneUnique numeric reference for the case
ยป caseTypestringfalsenoneCase type classification (e.g., HH, HI, CE). It will match addressType unless it is an individual (HI) case.
ยป collectionExerciseIdstring(uuid)falsenoneCollection Exercise UUID identifier
ยป createdDateTimestring(date-time)falsenoneDate and time when the case was created
ยป estabTypestringfalsenoneEstablishment type (e.g., HALL OF RESIDENCE, HOUSEHOLD, SHELTERED ACCOMMODATION, RESIDENTIAL CARAVAN, RESIDENTIAL BOAT)
ยป estabUprnstringfalsenoneEstablishment UPRN for non-household establishments
ยป idstring(uuid)truenoneUnique case UUID identifier
ยป invalidbooleanfalsenoneFlag indicating if the case record is marked as invalid
ยป ladstringfalsenoneLocal Authority District code (e.g., N06000023, S06000023, E06000023, W06000023)
ยป lastUpdatedstring(date-time)falsenoneDate and time when the case was last updated
ยป latitudestringfalsenoneGeographic latitude coordinate
ยป longitudestringfalsenoneGeographic longitude coordinate
ยป lsoastringfalsenoneLower Layer Super Output Area grid reference (e.g., N01014540, S01014540, E01014540, W01014540)
ยป msoastringfalsenoneMiddle Layer Super Output Area grid reference (e.g., N02003043, S02003043, E02003043, W02003043)
ยป oastringfalsenoneOutput Area grid reference (e.g., N00073438, S00073438, E00073438, W00073438)
ยป organisationNamestringfalsenoneName of the organisation at the address
ยป postcodestringfalsenoneUK postal code
ยป regionstringfalsenoneAdministrative region code (e.g., N12000007, S12000007, E12000007, W12000007)
ยป secureEstablishmentbooleanfalsenoneIndicator whether address is a secure establishment
ยป surveyTypestringfalsenoneType of survey (e.g., CENSUS, CCS)
ยป townNamestringfalsenoneTown or city name
ยป uprnstringfalsenoneUnique Property Reference Number

Enumerated Values

PropertyValue
eventTypeNEW_CASE
eventTypeRECEIPT
eventTypeREFUSAL
eventTypeINVALID_CASE
eventTypeEQ_LAUNCH
eventTypeUAC_AUTHENTICATION
eventTypePRINT_FULFILMENT
eventTypeEXPORT_FILE
eventTypeDEACTIVATE_UAC
eventTypeUPDATE_SAMPLE
eventTypeUPDATE_SAMPLE_SENSITIVE
eventTypeSMS_FULFILMENT
eventTypeACTION_RULE_SMS_REQUEST
eventTypeEMAIL_FULFILMENT
eventTypeACTION_RULE_EMAIL_REQUEST
eventTypeACTION_RULE_SMS_CONFIRMATION
eventTypeACTION_RULE_EMAIL_CONFIRMATION
eventTypeERASE_DATA

findCaseByQid

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/qid/{qid} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/qid/{qid} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/qid/{qid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/qid/{qid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/qid/{qid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/qid/{qid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/qid/{qid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/qid/{qid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/qid/{qid}

Find case by Questionnaire ID (QID)

Retrieves minimal case details linked to a specific questionnaire ID.

Parameters

NameInTypeRequiredDescription
qidpathstringtrueQuestionnaire Identifier

Example responses

200 Response

{
  "caseRef": "100000000000001",
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "estabType": "HOUSEHOLD",
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "surveyType": "CENSUS",
  "addressType": "HH",
  "caseType": "HH",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "organisationName": "Acme Corporation",
  "addressLevel": "U",
  "abpCode": "RD06",
  "region": "E12000007",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "lastUpdated": "2024-01-20T14:45:00Z",
  "caseEvents": [],
  "secureEstablishment": false,
  "invalid": false
}

Responses

StatusMeaningDescriptionSchema
200OKCase retrieved successfullyCaseContainerDTO
404Not FoundQID not foundNone

findCaseByReference

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/ref/{reference} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/ref/{reference} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/ref/{reference}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/ref/{reference}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/ref/{reference}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/ref/{reference}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/ref/{reference}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/ref/{reference}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/ref/{reference}

Find case by Reference

Retrieves a single case container record using the numeric case reference.

Parameters

NameInTypeRequiredDescription
referencepathinteger(int64)trueUnique numeric case reference identifier
caseEventsquerybooleanfalseFlag indicating whether to include case events

Example responses

200 Response

{
  "caseRef": "100000000000001",
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "estabType": "HOUSEHOLD",
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "surveyType": "CENSUS",
  "addressType": "HH",
  "caseType": "HH",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "organisationName": "Acme Corporation",
  "addressLevel": "U",
  "abpCode": "RD06",
  "region": "E12000007",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "lastUpdated": "2024-01-20T14:45:00Z",
  "caseEvents": [],
  "secureEstablishment": false,
  "invalid": false
}

Responses

StatusMeaningDescriptionSchema
200OKCase record found successfullyCaseContainerDTO
404Not FoundCase reference not foundNone

findCasesByUPRN

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/uprn/{uprn} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/uprn/{uprn} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/uprn/{uprn}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/uprn/{uprn}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/uprn/{uprn}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/uprn/{uprn}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/uprn/{uprn}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/uprn/{uprn}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/uprn/{uprn}

Find cases by UPRN

Retrieves all cases associated with a Unique Property Reference Number.

Parameters

NameInTypeRequiredDescription
uprnpathstringtrueUnique Property Reference Number
caseEventsquerybooleanfalseFlag indicating whether to include case events
validAddressOnlyquerybooleanfalseFilter results to valid addresses only

Example responses

200 Response

[
  {
    "caseRef": "100000000000001",
    "id": "a11e3456-e89b-12d3-a456-426614174000",
    "estabType": "HOUSEHOLD",
    "uprn": "10008677190",
    "estabUprn": "10008677190",
    "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
    "surveyType": "CENSUS",
    "addressType": "HH",
    "caseType": "HH",
    "createdDateTime": "2024-01-15T10:30:00Z",
    "addressLine1": "Flat 51 Francombe House",
    "addressLine2": "Commercial Road",
    "addressLine3": "Suite 3",
    "townName": "Windleybury",
    "postcode": "XX1 0XX",
    "organisationName": "Acme Corporation",
    "addressLevel": "U",
    "abpCode": "RD06",
    "region": "E12000007",
    "latitude": "51.5074",
    "longitude": "-0.1278",
    "oa": "E00073438",
    "lsoa": "E01014540",
    "msoa": "E02003043",
    "lad": "E06000023",
    "lastUpdated": "2024-01-20T14:45:00Z",
    "caseEvents": [],
    "secureEstablishment": false,
    "invalid": false
  }
]

Responses

StatusMeaningDescriptionSchema
200OKMatching cases retrieved successfullyInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
anonymous[CaseContainerDTO]falsenone[Data Transfer Object representing a census case container]
ยป abpCodestringfalsenoneAddressBase classification code
ยป addressLevelstringfalsenoneAddress level classification (e.g., E, U (signifying Establishment and Unit))
ยป addressLine1stringfalsenoneFirst address line
ยป addressLine2stringfalsenoneSecond address line
ยป addressLine3stringfalsenoneThird address line
ยป addressTypestringfalsenoneResidential address frame type (e.g., HH, CE)
ยป caseEvents[CaseEventDTO]falsenoneList of events associated with the case
ยปยป createdDateTimestring(date-time)truenoneDate and time when the event was created
ยปยป descriptionstringfalsenoneHuman-readable description of the event
ยปยป eventTypeEventTypeDTOtruenoneEnumeration of all possible event types that can occur in the census RM system
ยปยป idstring(uuid)truenoneUnique event identifier (UUID)
ยป caseRefstringtruenoneUnique numeric reference for the case
ยป caseTypestringfalsenoneCase type classification (e.g., HH, HI, CE). It will match addressType unless it is an individual (HI) case.
ยป collectionExerciseIdstring(uuid)falsenoneCollection Exercise UUID identifier
ยป createdDateTimestring(date-time)falsenoneDate and time when the case was created
ยป estabTypestringfalsenoneEstablishment type (e.g., HALL OF RESIDENCE, HOUSEHOLD, SHELTERED ACCOMMODATION, RESIDENTIAL CARAVAN, RESIDENTIAL BOAT)
ยป estabUprnstringfalsenoneEstablishment UPRN for non-household establishments
ยป idstring(uuid)truenoneUnique case UUID identifier
ยป invalidbooleanfalsenoneFlag indicating if the case record is marked as invalid
ยป ladstringfalsenoneLocal Authority District code (e.g., N06000023, S06000023, E06000023, W06000023)
ยป lastUpdatedstring(date-time)falsenoneDate and time when the case was last updated
ยป latitudestringfalsenoneGeographic latitude coordinate
ยป longitudestringfalsenoneGeographic longitude coordinate
ยป lsoastringfalsenoneLower Layer Super Output Area grid reference (e.g., N01014540, S01014540, E01014540, W01014540)
ยป msoastringfalsenoneMiddle Layer Super Output Area grid reference (e.g., N02003043, S02003043, E02003043, W02003043)
ยป oastringfalsenoneOutput Area grid reference (e.g., N00073438, S00073438, E00073438, W00073438)
ยป organisationNamestringfalsenoneName of the organisation at the address
ยป postcodestringfalsenoneUK postal code
ยป regionstringfalsenoneAdministrative region code (e.g., N12000007, S12000007, E12000007, W12000007)
ยป secureEstablishmentbooleanfalsenoneIndicator whether address is a secure establishment
ยป surveyTypestringfalsenoneType of survey (e.g., CENSUS, CCS)
ยป townNamestringfalsenoneTown or city name
ยป uprnstringfalsenoneUnique Property Reference Number

Enumerated Values

PropertyValue
eventTypeNEW_CASE
eventTypeRECEIPT
eventTypeREFUSAL
eventTypeINVALID_CASE
eventTypeEQ_LAUNCH
eventTypeUAC_AUTHENTICATION
eventTypePRINT_FULFILMENT
eventTypeEXPORT_FILE
eventTypeDEACTIVATE_UAC
eventTypeUPDATE_SAMPLE
eventTypeUPDATE_SAMPLE_SENSITIVE
eventTypeSMS_FULFILMENT
eventTypeACTION_RULE_SMS_REQUEST
eventTypeEMAIL_FULFILMENT
eventTypeACTION_RULE_EMAIL_REQUEST
eventTypeACTION_RULE_SMS_CONFIRMATION
eventTypeACTION_RULE_EMAIL_CONFIRMATION
eventTypeERASE_DATA

findCaseById

Code samples

# You can also use wget
curl -X GET http://localhost:8161/cases/{id} \
  -H 'Accept: application/json'

GET http://localhost:8161/cases/{id} HTTP/1.1
Host: localhost:8161
Accept: application/json


const headers = {
  'Accept':'application/json'
};

fetch('http://localhost:8161/cases/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'http://localhost:8161/cases/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:8161/cases/{id}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','http://localhost:8161/cases/{id}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("http://localhost:8161/cases/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "http://localhost:8161/cases/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /cases/{id}

Find case by ID

Retrieves a single case container record matching the specified UUID.

Parameters

NameInTypeRequiredDescription
idpathstring(uuid)trueUnique UUID of the case
caseEventsquerybooleanfalseFlag indicating whether to include case events

Example responses

200 Response

{
  "caseRef": "100000000000001",
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "estabType": "HOUSEHOLD",
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "surveyType": "CENSUS",
  "addressType": "HH",
  "caseType": "HH",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "organisationName": "Acme Corporation",
  "addressLevel": "U",
  "abpCode": "RD06",
  "region": "E12000007",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "lastUpdated": "2024-01-20T14:45:00Z",
  "caseEvents": [],
  "secureEstablishment": false,
  "invalid": false
}

Responses

StatusMeaningDescriptionSchema
200OKCase record found successfullyCaseContainerDTO
404Not FoundCase record not foundNone
500Internal Server ErrorInternal server error occurredNone

Schemas

CaseContainerDTO

{
  "caseRef": "100000000000001",
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "estabType": "HOUSEHOLD",
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "surveyType": "CENSUS",
  "addressType": "HH",
  "caseType": "HH",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "organisationName": "Acme Corporation",
  "addressLevel": "U",
  "abpCode": "RD06",
  "region": "E12000007",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "lastUpdated": "2024-01-20T14:45:00Z",
  "caseEvents": [],
  "secureEstablishment": false,
  "invalid": false
}

Data Transfer Object representing a census case container

Properties

NameTypeRequiredRestrictionsDescription
abpCodestringfalsenoneAddressBase classification code
addressLevelstringfalsenoneAddress level classification (e.g., E, U (signifying Establishment and Unit))
addressLine1stringfalsenoneFirst address line
addressLine2stringfalsenoneSecond address line
addressLine3stringfalsenoneThird address line
addressTypestringfalsenoneResidential address frame type (e.g., HH, CE)
caseEvents[CaseEventDTO]falsenoneList of events associated with the case
caseRefstringtruenoneUnique numeric reference for the case
caseTypestringfalsenoneCase type classification (e.g., HH, HI, CE). It will match addressType unless it is an individual (HI) case.
collectionExerciseIdstring(uuid)falsenoneCollection Exercise UUID identifier
createdDateTimestring(date-time)falsenoneDate and time when the case was created
estabTypestringfalsenoneEstablishment type (e.g., HALL OF RESIDENCE, HOUSEHOLD, SHELTERED ACCOMMODATION, RESIDENTIAL CARAVAN, RESIDENTIAL BOAT)
estabUprnstringfalsenoneEstablishment UPRN for non-household establishments
idstring(uuid)truenoneUnique case UUID identifier
invalidbooleanfalsenoneFlag indicating if the case record is marked as invalid
ladstringfalsenoneLocal Authority District code (e.g., N06000023, S06000023, E06000023, W06000023)
lastUpdatedstring(date-time)falsenoneDate and time when the case was last updated
latitudestringfalsenoneGeographic latitude coordinate
longitudestringfalsenoneGeographic longitude coordinate
lsoastringfalsenoneLower Layer Super Output Area grid reference (e.g., N01014540, S01014540, E01014540, W01014540)
msoastringfalsenoneMiddle Layer Super Output Area grid reference (e.g., N02003043, S02003043, E02003043, W02003043)
oastringfalsenoneOutput Area grid reference (e.g., N00073438, S00073438, E00073438, W00073438)
organisationNamestringfalsenoneName of the organisation at the address
postcodestringfalsenoneUK postal code
regionstringfalsenoneAdministrative region code (e.g., N12000007, S12000007, E12000007, W12000007)
secureEstablishmentbooleanfalsenoneIndicator whether address is a secure establishment
surveyTypestringfalsenoneType of survey (e.g., CENSUS, CCS)
townNamestringfalsenoneTown or city name
uprnstringfalsenoneUnique Property Reference Number

CaseDetailsDTO

{
  "id": "a11e3456-e89b-12d3-a456-426614174000",
  "caseRef": 100000000000001,
  "uprn": "10008677190",
  "estabUprn": "10008677190",
  "caseType": "HH",
  "addressType": "HH",
  "estabType": "HOUSEHOLD",
  "addressLevel": "U",
  "abpCode": "RD06",
  "organisationName": "Acme Corporation",
  "addressLine1": "Flat 51 Francombe House",
  "addressLine2": "Commercial Road",
  "addressLine3": "Suite 3",
  "townName": "Windleybury",
  "postcode": "XX1 0XX",
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "oa": "E00073438",
  "lsoa": "E01014540",
  "msoa": "E02003043",
  "lad": "E06000023",
  "region": "E12000009",
  "htcWillingness": "3",
  "htcDigital": "4",
  "fieldCoordinatorId": "FC12344",
  "fieldOfficerId": "FO12345",
  "treatmentCode": "HH_PSCE",
  "ceExpectedCapacity": 1505,
  "ceActualResponses": 1504,
  "collectionExerciseId": "b22e3456-e89b-12d3-a456-426614174000",
  "createdDateTime": "2024-01-15T10:30:00Z",
  "events": [],
  "receiptReceived": true,
  "refusalReceived": "HARD_REFUSAL",
  "invalid": false,
  "lastUpdated": "2024-01-20T14:45:00Z",
  "printBatch": "15",
  "surveyLaunched": true
}

Comprehensive Data Transfer Object containing detailed case attributes

Properties

NameTypeRequiredRestrictionsDescription
abpCodestringfalsenoneAddressBase classification code
addressLevelstringfalsenoneAddress level classification (e.g., E, U (signifying Establishment and Unit))
addressLine1stringfalsenoneFirst address line
addressLine2stringfalsenoneSecond address line
addressLine3stringfalsenoneThird address line
addressTypestringfalsenoneResidential address frame type (e.g., HH, CE)
caseRefinteger(int64)truenoneUnique numeric reference for the case
caseTypestringfalsenoneCase type classification (e.g., HH, HI, CE). It will match addressType unless it is an individual (HI) case.
ceActualResponsesinteger(int32)falsenoneActual number of responses received for Communal Establishment
ceExpectedCapacityinteger(int32)falsenoneExpected resident capacity (bedspaces) of communal establishments (CE)
collectionExerciseIdstring(uuid)falsenoneCollection Exercise UUID identifier
createdDateTimestring(date-time)falsenoneDate and time when the case was created
estabTypestringfalsenoneEstablishment type (e.g., HALL OF RESIDENCE, HOUSEHOLD, SHELTERED ACCOMMODATION, RESIDENTIAL CARAVAN, RESIDENTIAL BOAT)
estabUprnstringfalsenoneEstablishment UPRN for non-household establishments
events[CaseDetailsEventDTO]falsenoneList of events associated with this case
fieldCoordinatorIdstringfalsenoneField Coordinator identifier for the assigned case
fieldOfficerIdstringfalsenoneField Officer identifier for the assigned case
htcDigitalstringfalsenoneHard to Count Index - Digital (1-5) indicator
htcWillingnessstringfalsenoneHard to Count Index - Willingness (1-5) indicator
idstring(uuid)truenoneUnique case UUID identifier
invalidbooleanfalsenoneFlag indicating if the case record is marked as invalid
ladstringfalsenoneLocal Authority District code (e.g., N06000023, S06000023, E06000023, W06000023)
lastUpdatedstring(date-time)falsenoneDate and time when the case was last updated
latitudestringfalsenoneGeographic latitude coordinate
longitudestringfalsenoneGeographic longitude coordinate
lsoastringfalsenoneLower Layer Super Output Area grid reference (e.g., N01014540, S01014540, E01014540, W01014540)
msoastringfalsenoneMiddle Layer Super Output Area grid reference (e.g., N02003043, S02003043, E02003043, W02003043)
oastringfalsenoneOutput Area grid reference (e.g., N00073438, S00073438, E00073438, W00073438)
organisationNamestringfalsenoneName of the organisation at the address
postcodestringfalsenoneUK postal code
printBatchstringfalsenonePrint batch identifier for household initial contact material
receiptReceivedbooleanfalsenoneFlag indicating if receipt has been received from respondent
refusalReceivedstringfalsenoneType of refusal received (HARD_REFUSAL, EXTRAORDINARY_REFUSAL, or null)
regionstringfalsenoneAdministrative region code (e.g., N12000009, S12000009, E12000009, W12000009)
surveyLaunchedbooleanfalsenoneFlag indicating if survey has been launched to respondent
townNamestringfalsenoneTown or city name
treatmentCodestringfalsenoneTreatment code (one of the appropriate ones for the region (e.g., HH_PSCE, HH_PSLE, HH_PNCE, HH_PNLE, HH_OSCE, HH_OSLE, HH_ONCE, HH_ONLE, HH_PSCW, HH_PSLW, HH_PNCW, HH_PN, HH_OSCW, HH_OSLW, HH_ONCW, HH_ONLW, HH_OGXS, HH_OSXS, HH_PBXN, HH_OAXN, HH_OBXN)) indicating special handling or processing instructions for the case
uprnstringfalsenoneUnique Property Reference Number

Enumerated Values

PropertyValue
refusalReceivedHARD_REFUSAL
refusalReceivedEXTRAORDINARY_REFUSAL

CaseDetailsEventDTO

{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "eventType": "NEW_CASE",
  "eventDescription": "Case created for collection exercise",
  "eventDate": "2024-01-15T10:30:00Z",
  "eventChannel": "RM",
  "eventTransactionId": "d290f1ee-6c54-4b01-90e6-d701748f0851",
  "rmEventProcessed": "2024-01-15T10:35:00Z",
  "eventSource": "UAC_SERVICE",
  "eventPayload": "{\"caseRef\":\"100000000000001\"}",
  "messageTimestamp": "2024-01-15T10:30:00Z"
}

Detailed Data Transfer Object containing event attributes for case details response

Properties

NameTypeRequiredRestrictionsDescription
eventChannelstringtruenoneChannel through which the event was triggered (RM, CC, etc.)
eventDatestring(date-time)truenoneDate and time when the event occurred
eventDescriptionstringfalsenoneHuman-readable description of the event
eventPayloadstringfalsenoneJSON payload containing event-specific data
eventSourcestringfalsenoneSource system that generated the event (e.g., UAC_SERVICE, PRINT_SERVICE)
eventTransactionIdstring(uuid)falsenoneUnique transaction identifier for this event
eventTypestringtruenoneType of event (e.g., NEW_CASE, RECEIPT, REFUSAL, EQ_LAUNCH, UAC_AUTHENTICATION)
idstring(uuid)truenoneUnique event identifier (UUID)
messageTimestampstring(date-time)falsenoneMessage timestamp from the originating system
rmEventProcessedstring(date-time)falsenoneDate and time when the event was processed by RM

CaseEventDTO

{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "eventType": "NEW_CASE",
  "description": "Case created for collection exercise",
  "createdDateTime": "2024-01-15T10:30:00Z"
}

Data Transfer Object representing an event associated with a case

Properties

NameTypeRequiredRestrictionsDescription
createdDateTimestring(date-time)truenoneDate and time when the event was created
descriptionstringfalsenoneHuman-readable description of the event
eventTypeEventTypeDTOtruenoneType of event that occurred on the case (e.g., NEW_CASE, RECEIPT, REFUSAL, INVALID_CASE, EQ_LAUNCH)
idstring(uuid)truenoneUnique event identifier (UUID)

EventTypeDTO

"NEW_CASE"

Enumeration of all possible event types that can occur in the census RM system

Properties

NameTypeRequiredRestrictionsDescription
anonymousstringfalsenoneEnumeration of all possible event types that can occur in the census RM system

Enumerated Values

PropertyValue
anonymousNEW_CASE
anonymousRECEIPT
anonymousREFUSAL
anonymousINVALID_CASE
anonymousEQ_LAUNCH
anonymousUAC_AUTHENTICATION
anonymousPRINT_FULFILMENT
anonymousEXPORT_FILE
anonymousDEACTIVATE_UAC
anonymousUPDATE_SAMPLE
anonymousUPDATE_SAMPLE_SENSITIVE
anonymousSMS_FULFILMENT
anonymousACTION_RULE_SMS_REQUEST
anonymousEMAIL_FULFILMENT
anonymousACTION_RULE_EMAIL_REQUEST
anonymousACTION_RULE_SMS_CONFIRMATION
anonymousACTION_RULE_EMAIL_CONFIRMATION
anonymousERASE_DATA
{
  "transactionId": "a11e3456-e89b-12d3-a456-426614174000",
  "channel": "CONTACT_CENTRE",
  "qidLink": {
    "questionnaireId": "Q123456",
    "caseId": "a11e3456-e89b-12d3-a456-426614174000"
  }
}

Data Transfer Object for creating a new QID link to a case

Properties

NameTypeRequiredRestrictionsDescription
channelstringfalsenoneChannel through which this link was created (e.g., CONTACT_CENTRE, PHONE, ONLINE)
qidLinkQidLinkfalsenoneQID link details containing questionnaire ID and case ID
transactionIdstring(uuid)falsenoneTransaction ID for tracing this QID link request
{
  "questionnaireId": "Q123456",
  "caseId": "a11e3456-e89b-12d3-a456-426614174000"
}

Data Transfer Object representing the link between a Questionnaire ID (QID) and a Case

Properties

NameTypeRequiredRestrictionsDescription
caseIdstring(uuid)falsenoneUUID of the census case associated with this QID
questionnaireIdstringtruenoneUnique Questionnaire Identifier (QID) assigned to the respondent