Provider API v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
API for managing Legal Service Providers, including Chambers, solicitors, and advocates.
Unless explicitly stated otherwise, officeGUID values identify the provider-office link
record, not the underlying office record. The underlying office GUID is mainly an internal
identifier used to associate an office record with a provider-office link.
Base URLs:
https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk
https://laa-data-provider-api-uat.apps.live.cloud-platform.service.justice.gov.uk
https://laa-data-provider-api-staging.apps.live.cloud-platform.service.justice.gov.uk
License: MIT
Authentication
API Key (ApiKeyAuth)
- Parameter Name: X-Authorization, in: header.
oAuth2 authentication. OAuth2 client credentials via Microsoft Entra ID. Callers acquire a token using
scope={backend-api-application-id}/.default. The API then enforces thePDA_ACCESSapplication role from the JWTrolesclaim.- Flow: clientCredentials
- Token URL = https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
| Scope | Scope Description |
|---|---|
| {backend-api-application-id}/.default | Request app permissions granted to the client app for this API (including PDA_ACCESS). |
Provider Liaison Managers
getLiaisonManager
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-liaison-managers/{liaisonManagerGUID} \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-liaison-managers/{liaisonManagerGUID}
Retrieve a liaison manager
Retrieve details of a specific liaison manager.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| liaisonManagerGUID | path | string(uuid) | true | The GUID of the liaison manager. |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | Inline |
| 404 | Not Found | Not found | NotFoundError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | object | false | none | none |
| »»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»» telephoneNumber | LiaisonManagerPhoneV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
updateLiaisonManager
Code samples
# You can also use wget
curl -X PATCH https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-liaison-managers/{liaisonManagerGUID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
PATCH /provider-liaison-managers/{liaisonManagerGUID}
Amend a liaison manager
Amend the permitted details of an existing liaison manager.
Body parameter
{
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| liaisonManagerGUID | path | string(uuid) | true | The GUID of the liaison manager. |
| body | body | ProviderLiaisonManagerPatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Successful response | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 404 | Not Found | Not found | NotFoundError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | object | false | none | none |
| »»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»» telephoneNumber | LiaisonManagerPhoneV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
Events
getProviderEvents
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-events \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-events
Retrieve a list of event headers
Provides capability to view all events that have been emitted by the microservice.
Use cases: 1) Search event header history. 2) Identify event GUID for a given correlationId.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| eventType | query | array[string] | false | Filter by event type (multi) |
| correlationId | query | string | false | Filter by correlation Id |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Enumerated Values
| Parameter | Value |
|---|---|
| eventType | ProviderFirmChangedSnapshotEvent |
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"eventSource": "apiV2",
"eventType": "ProviderFirmChangedSnapshotEvent",
"correlationId": "string",
"traceId": "string"
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of events matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» eventSource | EventSourceV2 | false | none | none |
| »»»» eventType | EventTypeV2 | false | none | none |
| »»»» correlationId | string | false | none | none |
| »»»» traceId | string | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| eventSource | apiV2 |
| eventType | ProviderFirmChangedSnapshotEvent |
| direction | asc |
| direction | desc |
getEventByGUID
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-events/{eventGUID} \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-events/{eventGUID}
Retrieve event by GUID
Retrieve full event details by GUID.
Use cases: 1) Retrieve details necessary for connectors to downstream systems
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| eventGUID | path | string | true | Filter by event GUID |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"eventHeader": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"eventSource": "apiV2",
"eventType": "ProviderFirmChangedSnapshotEvent",
"correlationId": "string",
"traceId": "string"
},
"eventPayload": {
"providerFirm": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
},
"bankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000"
}
],
"offices": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"liaisonManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
}
],
"contractManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
],
"officeBankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
]
}
]
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Event details | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | EventV2 | false | none | none |
| »» eventHeader | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» eventSource | EventSourceV2 | false | none | none |
| »»»» eventType | EventTypeV2 | false | none | none |
| »»»» correlationId | string | false | none | none |
| »»»» traceId | string | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» eventPayload | ProviderFirmChangedSnapshotEventV2Payload | true | none | none |
| »»» providerFirm | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ProviderBaseV2 | false | none | none |
| »»»»» firmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | ProviderLSPV2 | false | none | Provider of firmType=Legal Services Provider
|
| »»»»»» legalServicesProvider | LSPDetailsV2 | true | none | none |
| »»»»»»» constitutionalStatus | LSPDetailsConstitutionalStatusV2 | true | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| »»»»»»» notForProfitOrganisationFlag | LSPDetailsNotForProfitOrganisationFlagV2 | true | none |
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity CWA ref: PO_VENDORS.ATTRIBUTE3. |
| »»»»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | true | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | true | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»»»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»»»»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»»»»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»»»»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»»»»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»»»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»»»»»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»»»»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»»»»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»»»»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»»» headOfficeFlag | boolean | true | none | none |
| »»»»»»»»» activeDateFrom | OfficeActiveDateFromV2(date) | false | none | Start date of activity for the provider office link. |
| »»»»»»»»» liaisonManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»»»»»»»»»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»»»»»»»»»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»»»»»»»»»» telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»»»»» activeDateFrom | LiaisonManagerActiveDateFromV2(date) | true | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
| »»»»»»»»»»» activeDateTo | LiaisonManagerActiveDateToV2(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
| »»»»»»»»»»» linkedFlag | LiaisonManagerLinkedFlagV2 | true | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» contractManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»»»»»»»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»»»»»»»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» bankAccount | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»»»»»»»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»»»»»»»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| »»»»»»»»»»» activeDateFrom | BankAccountActiveDateFromV2(date) | true | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
| »»»»»»»»»»» activeDateTo | BankAccountActiveDateToV2(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
| »»»»»»»»»»» primaryFlag | BankAccountPrimaryFlagV2 | true | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | ProviderChambersV2 | false | none | Provider of firmType=Chambers
|
| »»»»»» chambers | ChambersDetailsV2 | true | none | none |
| »»»»»»» office | ChambersOfficeCoreDetailsV2 | true | none | none |
| »»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
| »»»»»» practitioner | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | PractitionerDetailsBaseV2 | false | none | none |
| »»»»»»»» parentFirms | [PractitionerDetailsParentV2] | true | none | none |
| »»»»»»»»» parentGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»»» parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»»»»»»» parentFirmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»»» advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
| »»»»»»»» office | PractitionerOfficeCoreDetailsV2 | true | none | none |
| »»»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | PractitionerDetailsAdvocateV2 | false | none | none |
| »»»»»»»»» advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
| »»»»»»»»»» advocateLevel | PractitionerDetailsAdvocateLevelV2 | true | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»»»» solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | true | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | PractitionerDetailsBarristerV2 | false | none | none |
| »»»»»»»»» barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
| »»»»»»»»»» barristerLevel | PractitionerDetailsBarristerLevelV2 | true | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»»»» barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | true | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | ProviderPDSV2 | false | none | none |
| »»»»»» publicDefenderService | PDSDetailsV2 | true | none | none |
| »»»»»»» constitutionalStatus | PDSConstitutionalStatusV2 | true | none | Constitutional status for a Public Defender Service provider. |
| »»»»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»»»»»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»»»»»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» bankDetails | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | object | false | none | none |
| »»»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» offices | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | ChambersOfficeDetailsV2 | false | none | none |
| »»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»» dxDetails | DXV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | AdvocateOfficeDetailsV2 | false | none | none |
| »»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»»» payment | PaymentDetailsV2 | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | object | false | none | none |
| »»»»» liaisonManagers | [allOf] | true | none | none |
| »»»»» contractManagers | [allOf] | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | object | false | none | none |
| »»»»»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»»»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»»»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» officeBankDetails | [allOf] | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| eventSource | apiV2 |
| eventType | ProviderFirmChangedSnapshotEvent |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| constitutionalStatus | Partnership |
| constitutionalStatus | Limited Company |
| constitutionalStatus | Sole Practitioner |
| constitutionalStatus | LLP |
| constitutionalStatus | Charity |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| parentFirmType | Legal Services Provider |
| parentFirmType | Chambers |
| parentFirmType | Advocate |
| parentFirmType | Public Defender Service |
| advocateType | Advocate |
| advocateType | Barrister |
| advocateLevel | Junior |
| advocateLevel | KC |
| barristerLevel | Junior |
| barristerLevel | KC |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
Contract Managers
getProviderContractManagers
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-contract-managers \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-contract-managers
Retrieve a list of contract managers
Retrieve a list of contract managers.
These are employee records in CWA and potentially we need to get this information from SiLAS.
Contract managers are required for assigning contracts and schedules to a provider firm in CWA.
Use cases: 1) List available contract managers to get the GUID before assigning them to an office
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| contractManagerId | query | array[string] | false | Filter by contract manager ID (multi) |
| name | query | string | false | Fuzzy search by contract manager name (searches both first and last names) |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
name: Fuzzy search by contract manager name (searches both first and last names)
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of contract managers matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
Provider Firms
createProviderFirm
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /provider-firms
Create a provider firm
Create a provider firm (e.g., Legal Service Provider, Chambers, advocates).
Each provider must include a name, type, and other type specific data.
The request body should contain either legalServicesProvider, chambers or
practitioner element depending on the type.
practitioner is further sub-divided into Advocate or Barrister.
Each entity will have its own specific schema and data requirement for a complete record.
Use cases: 1) Create a complete record for a provider firm
Body parameter
{
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| body | body | ProviderCreateV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
201 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found. Returned when a referenced parent entity (e.g. a practitioner’s parent | |
| Chambers) does not exist. | NotFoundError | ||
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
getProviderFirms
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms
Retrieve providers with optional filters
Use cases: 1) Browse provider data 2) Search for specific provider(s) that match criteria
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUID | query | array[string] | false | Filter by provider firm GUID (multi) |
| providerFirmNumber | query | array[string] | false | Filter by provider firm number (multi) |
| name | query | string | false | Filter by provider name |
| activeStatus | query | string | false | Filter by active status |
| type | query | array[string] | false | Filter by provider type (multi) |
| accountNumber | query | array[string] | false | Filter by office account number (multi) |
| practitionerRollNumber | query | array[string] | false | Filter by Barrister roll number or Advocate SRA (multi) |
| parentFirmGUID | query | array[string] | false | Filter by parent firm GUID (multi) |
| parentFirmNumber | query | array[string] | false | Filter by parent firm number (multi) |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Enumerated Values
| Parameter | Value |
|---|---|
| activeStatus | All |
| activeStatus | Active |
| activeStatus | ContingentLiability |
| activeStatus | ActiveOrContingentLiability |
| type | Legal Services Provider |
| type | Chambers |
| type | Advocate |
| type | Public Defender Service |
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of providers matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderBaseV2 | false | none | none |
| »»»» firmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ProviderLSPV2 | false | none | Provider of firmType=Legal Services Provider
|
| »»»»» legalServicesProvider | LSPDetailsV2 | true | none | none |
| »»»»»» constitutionalStatus | LSPDetailsConstitutionalStatusV2 | true | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| »»»»»» notForProfitOrganisationFlag | LSPDetailsNotForProfitOrganisationFlagV2 | true | none |
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity CWA ref: PO_VENDORS.ATTRIBUTE3. |
| »»»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | true | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | true | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»»»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»»»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»»»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»»»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»»»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»»»»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»»»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»»»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»»»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | object | false | none | none |
| »»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»» headOfficeFlag | boolean | true | none | none |
| »»»»»»»» activeDateFrom | OfficeActiveDateFromV2(date) | false | none | Start date of activity for the provider office link. |
| »»»»»»»» liaisonManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»»»»»»»»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»»»»»»»»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»»»»»»»»» telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»»»» activeDateFrom | LiaisonManagerActiveDateFromV2(date) | true | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
| »»»»»»»»»» activeDateTo | LiaisonManagerActiveDateToV2(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
| »»»»»»»»»» linkedFlag | LiaisonManagerLinkedFlagV2 | true | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» contractManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»»»»»»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»»»»»»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» bankAccount | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»»»»»»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»»»»»»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| »»»»»»»»»» activeDateFrom | BankAccountActiveDateFromV2(date) | true | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
| »»»»»»»»»» activeDateTo | BankAccountActiveDateToV2(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
| »»»»»»»»»» primaryFlag | BankAccountPrimaryFlagV2 | true | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ProviderChambersV2 | false | none | Provider of firmType=Chambers
|
| »»»»» chambers | ChambersDetailsV2 | true | none | none |
| »»»»»» office | ChambersOfficeCoreDetailsV2 | true | none | none |
| »»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
| »»»»» practitioner | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PractitionerDetailsBaseV2 | false | none | none |
| »»»»»»» parentFirms | [PractitionerDetailsParentV2] | true | none | none |
| »»»»»»»» parentGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»» parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»»»»»» parentFirmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»» advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
| »»»»»»» office | PractitionerOfficeCoreDetailsV2 | true | none | none |
| »»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | PractitionerDetailsAdvocateV2 | false | none | none |
| »»»»»»»» advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
| »»»»»»»»» advocateLevel | PractitionerDetailsAdvocateLevelV2 | true | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»»» solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | true | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | PractitionerDetailsBarristerV2 | false | none | none |
| »»»»»»»» barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
| »»»»»»»»» barristerLevel | PractitionerDetailsBarristerLevelV2 | true | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»»» barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | true | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ProviderPDSV2 | false | none | none |
| »»»»» publicDefenderService | PDSDetailsV2 | true | none | none |
| »»»»»» constitutionalStatus | PDSConstitutionalStatusV2 | true | none | Constitutional status for a Public Defender Service provider. |
| »»»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»»»»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»»»»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» anonymous | object | false | none | none |
| »»»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| constitutionalStatus | Partnership |
| constitutionalStatus | Limited Company |
| constitutionalStatus | Sole Practitioner |
| constitutionalStatus | LLP |
| constitutionalStatus | Charity |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| parentFirmType | Legal Services Provider |
| parentFirmType | Chambers |
| parentFirmType | Advocate |
| parentFirmType | Public Defender Service |
| advocateType | Advocate |
| advocateType | Barrister |
| advocateLevel | Junior |
| advocateLevel | KC |
| barristerLevel | Junior |
| barristerLevel | KC |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| direction | asc |
| direction | desc |
createPublicDefenderServiceProviderFirm
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/public-defender-services \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /provider-firms/public-defender-services
Create a Public Defender Service provider firm
Create a provider firm of type Public Defender Service together with its head office.
The firm type is implied by this resource path and is not supplied by the caller.
The current PDS scope supports a head office only. Whether PDS providers may have child
offices is an open business question for a future change.
Unlike a Legal Services Provider, a PDS provider does not require a contract manager, liaison manager, bank account, contract or schedule association.
Body parameter
{
"name": "Legal Services Co.",
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"vatRegistration": {
"vatNumber": "476628407"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
}
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| body | body | PublicDefenderServiceCreateV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
201 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
getProviderFirmByGUIDorFirmNumber
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber} \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}
Retrieve provider details by GUID or firm number
Retrieve basic provider details. Use sub-resources to retrieve other information.
Use cases: 1) Retrieve provider firm details when GUID or firm number is available
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | ProviderBaseV2 | false | none | none |
| »»» firmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»» name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderLSPV2 | false | none | Provider of firmType=Legal Services Provider
|
| »»»» legalServicesProvider | LSPDetailsV2 | true | none | none |
| »»»»» constitutionalStatus | LSPDetailsConstitutionalStatusV2 | true | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| »»»»» notForProfitOrganisationFlag | LSPDetailsNotForProfitOrganisationFlagV2 | true | none |
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity CWA ref: PO_VENDORS.ATTRIBUTE3. |
| »»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | true | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | true | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»»»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | object | false | none | none |
| »»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» headOfficeFlag | boolean | true | none | none |
| »»»»»»» activeDateFrom | OfficeActiveDateFromV2(date) | false | none | Start date of activity for the provider office link. |
| »»»»»»» liaisonManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»»»»»»»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»»»»»»»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»»»»»»»» telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»»»» activeDateFrom | LiaisonManagerActiveDateFromV2(date) | true | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
| »»»»»»»»» activeDateTo | LiaisonManagerActiveDateToV2(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
| »»»»»»»»» linkedFlag | LiaisonManagerLinkedFlagV2 | true | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» contractManager | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»»»»»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»»»»»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»» bankAccount | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»»»» anonymous | object | false | none | none |
| »»»»»»»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»»»»»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»»»»»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| »»»»»»»»» activeDateFrom | BankAccountActiveDateFromV2(date) | true | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
| »»»»»»»»» activeDateTo | BankAccountActiveDateToV2(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
| »»»»»»»»» primaryFlag | BankAccountPrimaryFlagV2 | true | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderChambersV2 | false | none | Provider of firmType=Chambers
|
| »»»» chambers | ChambersDetailsV2 | true | none | none |
| »»»»» office | ChambersOfficeCoreDetailsV2 | true | none | none |
| »»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
| »»»» practitioner | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | PractitionerDetailsBaseV2 | false | none | none |
| »»»»»» parentFirms | [PractitionerDetailsParentV2] | true | none | none |
| »»»»»»» parentGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»»»»» parentFirmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»» advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
| »»»»»» office | PractitionerOfficeCoreDetailsV2 | true | none | none |
| »»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PractitionerDetailsAdvocateV2 | false | none | none |
| »»»»»»» advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
| »»»»»»»» advocateLevel | PractitionerDetailsAdvocateLevelV2 | true | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»» solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | true | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PractitionerDetailsBarristerV2 | false | none | none |
| »»»»»»» barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
| »»»»»»»» barristerLevel | PractitionerDetailsBarristerLevelV2 | true | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»» barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | true | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderPDSV2 | false | none | none |
| »»»» publicDefenderService | PDSDetailsV2 | true | none | none |
| »»»»» constitutionalStatus | PDSConstitutionalStatusV2 | true | none | Constitutional status for a Public Defender Service provider. |
| »»»»» indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2(date) | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| »»»»» companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| »»»»» headOffice | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»»»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»»»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»»»» dxDetails | DXV2 | false | none | none |
| »»»»»»» vatRegistration | VATRegistrationV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | object | false | none | none |
| »»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| constitutionalStatus | Partnership |
| constitutionalStatus | Limited Company |
| constitutionalStatus | Sole Practitioner |
| constitutionalStatus | LLP |
| constitutionalStatus | Charity |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| parentFirmType | Legal Services Provider |
| parentFirmType | Chambers |
| parentFirmType | Advocate |
| parentFirmType | Public Defender Service |
| advocateType | Advocate |
| advocateType | Barrister |
| advocateLevel | Junior |
| advocateLevel | KC |
| barristerLevel | Junior |
| barristerLevel | KC |
| constitutionalStatus | Government Funded Organisation |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
updateProviderFirm
Code samples
# You can also use wget
curl -X PATCH https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
PATCH /provider-firms/{providerFirmGUIDorFirmNumber}
Update provider firm details
Use cases: 1) Updating firm name 2) Updating Legal Service Provider’s basic details 3) Changing head office of a Legal Service Provider. 4) Updating Barrister’s or Advocate’s basic details 5) Changing parent firm of a Barrister or an Advocate. Note that changing parent Chambers should also re-link office details and liaison manager. There are three options: 1. use new Chambers’ LM, 2. keep existing LM or 3. add new LM. 6) Updating permitted Public Defender Service details and its head office.
Body parameter
{
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
},
"firmIntervenedFlag": true,
"firmIntervenedDate": "2019-08-24",
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"referredToDebtRecoveryFlag": true
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| body | body | ProviderPatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details updated successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
Provider Firm Bank Accounts
getProviderFirmBankAccounts
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/bank-details \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details
Retrieve a list of provider bank accounts with optional filters
Retrieve bank account details for a given provider.
This is a read-only retrieval operation. It does not create, amend, assign, or unassign bank accounts.
For Legal Service Provider or Advocate firm type the response returns bank accounts
associated with that provider only.
For Chambers firm type the response returns bank accounts for all Advocates in that
Chambers.
Note that bank account details are created only via creating or updating office details
using the payment element.
Use cases:
1) Retrieve the list of bank accounts available for office assignment. Use GUID in office
payment PATCH operation to set alternative bank account details.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| bankAccountNumber | query | string | false | Partial text search by bank account number |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
bankAccountNumber: Partial text search by bank account number
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000"
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of bank accounts matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
getProviderFirmOfficeBankAccounts
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/bank-details \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/bank-details
Retrieve a list of provider’s office bank accounts with optional filters
Retrieve bank account details for a given provider’s office.
This is a read-only retrieval operation. It does not create, amend, assign, or unassign bank accounts.
Note that bank account details are created only via creating or updating office details
using the payment element.
Use cases:
1) Retrieve the list of bank accounts assigned to office. Use GUID in office payment
PATCH operation to set alternative bank account details.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| bankAccountNumber | query | string | false | Partial text search by bank account number |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
bankAccountNumber: Partial text search by bank account number
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of bank accounts matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| »»»» sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| »»»» accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| »»»» activeDateFrom | BankAccountActiveDateFromV2(date) | true | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
| »»»» activeDateTo | BankAccountActiveDateToV2(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
| »»»» primaryFlag | BankAccountPrimaryFlagV2 | true | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
Provider Firm Offices
createProviderFirmOffice
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /provider-firms/{providerFirmGUIDorFirmNumber}/offices
Create an office for a Legal Service Provider firm
Create new office details used by given provider firm. Only applicable for
firmType=Legal Service Provider.
Use cases: 1) Create additional office details for Legal Service Provider firm
Body parameter
{
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| body | body | LSPOfficeCreateV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
201 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856",
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"officeCode": "0Q731M"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Office created successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »» officeGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» officeCode | OfficeAccountNumberV2 | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
getProviderFirmOffices
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices
Retrieve a list of provider offices with optional filters
Retrieve office details for a given provider. Use this endpoint when you have
providerFirmGUID.
When you do not have providerFirmGUID but only officeGUID or officeCode - use
/provider-firms-offices?officeGUID=123e4567-e89b-12d3-a456-426614174000&allProviderOffices=true
Use cases: 1) Browse all offices belonging to a Legal Service Provider firm 2) Show details of the Chambers’ office 3) Show details of the Advocate’s office (which is the Chambers’ office they are currently assigned to)
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of provider offices matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ChambersOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | AdvocateOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»» payment | PaymentDetailsV2 | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| direction | asc |
| direction | desc |
getOffices
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms-offices \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms-offices
Retrieve a list of provider offices with optional filters
Retrieve office details when you do not have providerFirmGUID or firmNumber.
Use cases:
1) Browse all active offices
2) Browse all offices of a specific provider when only officeGUID or officeCode
is known.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| officeGUID | query | array[string] | false | Filter by provider office GUID (multi) |
| officeCode | query | array[string] | false | Filter by provider office code (multi) |
| allProviderOffices | query | boolean | false | Use this filter in conjunction with officeGUID or officeCode to get all offices for the provider that the office with specified GUID belongs to. |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of provider offices matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | ChambersOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | AdvocateOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»» payment | PaymentDetailsV2 | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»»» address | OfficeAddressV2 | true | none | none |
| »»»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»»» dxDetails | DXV2 | false | none | none |
| »»»»» vatRegistration | VATRegistrationV2 | false | none | none |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| direction | asc |
| direction | desc |
getProviderFirmOfficeByGUID
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode} \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}
Retrieve provider office details by GUID or office code
Retrieve provider office details.
Use cases: 1) Retrieve office details by GUID or office code
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | LSPOfficeDetailsV2 | false | none | none |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»»» intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| »»»»» intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
| »»»» address | OfficeAddressV2 | true | none | none |
| »»»»» line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| »»»»» line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| »»»»» line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| »»»»» line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| »»»»» townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| »»»»» county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| »»»»» postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
| »»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»» dxDetails | DXV2 | false | none | none |
| »»»»» dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| »»»»» dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
| »»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»»» vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
| »»»» payment | PaymentDetailsV2 | true | none | none |
| »»»»» paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| »»»»» paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| »»»»» paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ChambersOfficeDetailsV2 | false | none | none |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»» address | OfficeAddressV2 | true | none | none |
| »»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»» dxDetails | DXV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | AdvocateOfficeDetailsV2 | false | none | none |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»» debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»» falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»» intervened | IntervenedOfficeDetailsV2 | true | none | none |
| »»»» address | OfficeAddressV2 | true | none | none |
| »»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»» dxDetails | DXV2 | false | none | none |
| »»»» vatRegistration | VATRegistrationV2 | false | none | none |
| »»»» payment | PaymentDetailsV2 | true | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | PDSOfficeDetailsV2 | false | none | none |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»» headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| »»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| »»»» debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| »»»» falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| »»»» intervened | IntervenedOfficeDetailsV2 | false | none | none |
| »»»» holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| »»»» holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| »»»» address | OfficeAddressV2 | true | none | none |
| »»»» telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»» emailAddress | OfficeEmailAddressV2(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| »»»» website | OfficeWebsiteV2(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| »»»» dxDetails | DXV2 | false | none | none |
| »»»» vatRegistration | VATRegistrationV2 | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| paymentMethod | CHECK |
| paymentMethod | EFT |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
updateProviderFirmOffice
Code samples
# You can also use wget
curl -X PATCH https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
PATCH /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}
Update provider office details
Update provider office details.
Note that firmType=Advocate can’t patch Chambers’ office details.
Use cases:
1) Deactivating office details by setting activeDateTo.
Note that if the office is a head office of Legal Service Provider firm, activeDateTo
should be set on all other offices which are not yet de-activated.
For a Chambers’ office, activeDateTo can only be applied if no active practitioners
are linked to the Chambers (DS_MAPD_FR_019). All associated practitioners must be
deactivated or reassigned to another Chambers before this Chambers can be made inactive.
2) Holding payments using paymentHeldFlag
3) Updating office details
4) Setting intervened flag
5) Creating or assigning different bank details using payment.bankAccountDetails
6) Setting debtRecoveryFlag for LSP/Advocate. Can only be set to true if the firm office
is still active. If office is made inactive this flag should be reset to false.
7) Setting falseBalanceFlag for LSP/Advocate. Can only be set to true if the firm office
is inactive. If the office is being made active in the same request, falseBalanceFlag
must be explicitly set to false, unless it is already false.
8) Re-activating an office by setting clearActiveDateTo: true. This clears activeDateTo
for LSP and Advocate/Barrister offices. falseBalanceFlag and payment.paymentHeldFlag
are not reset automatically: if either is already true, it must be explicitly set to
false in the same request, otherwise the request is rejected.
Must not be combined with activeDateTo in the same request.
Body parameter
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| body | body | OfficePatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856",
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"officeCode": "0Q731M"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details updated successfully | Inline |
| 400 | Bad Request | Bad request | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »» officeGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» officeCode | OfficeAccountNumberV2 | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
Provider Firm Offices Liaison Managers
createProviderFirmOfficeLiaisonManager
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers
Create a liaison manager for office. Creating new manager end-dates all other managers.
Create new liaison manager for an office. There can be only one active liaison manager and all firm types are able to have liaison manager independently set at the office level.
Use cases: 1) Create a new liaison manager entry specific to given LSP office. 2) Choose to use LSP’s head office liaison manager for given LSP office. 3) Create a new liaison manager entry specific to Chambers’ office. 4) Create a new liaison manager entry specific to Advocate/Barrister for a given Chambers’ office. 5) Choose to use Chambers’ office liaison manager for given Advocate/Barrister.
Body parameter
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| body | body | OfficeLiaisonManagerCreateOrLinkV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
201 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856",
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"officeCode": "0Q731M",
"liaisonManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Liaison manager created or assigned successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »» officeGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» officeCode | OfficeAccountNumberV2 | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »» liaisonManagerGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
getProviderFirmOfficeLiaisonManagers
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers
Retrieve liaison managers for a given office
Retrieve provider office liaison managers.
Use cases: 1) Show full list of liaison managers including currently active and assigned in the past.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| »»»» lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| »»»» emailAddress | LiaisonManagerEmailAddressV2(email) | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| »»»» telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| »»»» activeDateFrom | LiaisonManagerActiveDateFromV2(date) | true | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
| »»»» activeDateTo | LiaisonManagerActiveDateToV2(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
| »»»» linkedFlag | LiaisonManagerLinkedFlagV2 | true | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
Provider Firm Offices Contract Managers
createProviderFirmOfficeContractManager
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers
Assign a contract manager for office. Assigning a new manager removes the previous manager.
Assigning a new contract manager for an office.
There should be only a maximum of one assignment (MVP scope).
Applicable only for LSPs.
Note that in CWA there are currently fake contract manager entries assigned as it is a mandatory field. In addition business users used some of these entries to mark debt recovery and false balance flags. This is no longer necessary in the new model.
Use cases: 1) Assign new contract manager to a given office.
Body parameter
{
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| body | body | ContractManagerProviderPatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
201 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"providerFirmNumber": "3856",
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"officeCode": "0Q731M",
"contractManagerId": "string"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Contract manager assigned successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» providerFirmNumber | ProviderFirmNumberV2 | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »» officeGUID | BaseEntityGUIDV2(uuid) | false | none | GUID is the primary key for entity |
| »» officeCode | OfficeAccountNumberV2 | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »» contractManagerId | string | false | none | Unique identifier of the assigned contract manager |
getProviderFirmOfficeContractManagers
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers
Retrieve contract managers for a given provider office
Retrieve provider office contract managers. Applicable only for LSPs.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| officeGUIDorCode | path | string | true | GUID of the provider-office link (not of the underlying office record), or the office code (unique account number). |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| »»»» firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| »»»» lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
Chambers Practitioners
getProviderFirmPractitioners
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/practitioners \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/practitioners
Retrieve practitioners for a given Chambers
Retrieve Chambers practitioners.
Note that to create new practitioner you need to create new provider firm of type
Barrister or Advocate.
To re-assign Advocate/Barrister to a different Chambers, use the PATCH
/provider-firms/{providerFirmGUIDorFirmNumber} to change parent firms.
Use cases: 1) List all Advocates and Barristers assigned to given Chambers.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"practitioner": {
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
],
"advocateType": "Advocate",
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
},
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | false | none | none |
| »» content | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderBaseV2 | false | none | none |
| »»»» firmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»» firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»» name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
| »»»» practitioner | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | PractitionerDetailsBaseV2 | false | none | none |
| »»»»»» parentFirms | [PractitionerDetailsParentV2] | true | none | none |
| »»»»»»» parentGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| »»»»»»» parentFirmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| »»»»»» advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
| »»»»»» office | PractitionerOfficeCoreDetailsV2 | true | none | none |
| »»»»»»» officeGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»»» accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| »»»»»»» activeDateTo | OfficeActiveDateToV2(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PractitionerDetailsAdvocateV2 | false | none | none |
| »»»»»»» advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
| »»»»»»»» advocateLevel | PractitionerDetailsAdvocateLevelV2 | true | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»» solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | true | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»»» anonymous | PractitionerDetailsBarristerV2 | false | none | none |
| »»»»»»» barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
| »»»»»»»» barristerLevel | PractitionerDetailsBarristerLevelV2 | true | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| »»»»»»»» barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | true | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | false | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | false | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| firmType | Legal Services Provider |
| firmType | Chambers |
| firmType | Advocate |
| firmType | Public Defender Service |
| parentFirmType | Legal Services Provider |
| parentFirmType | Chambers |
| parentFirmType | Advocate |
| parentFirmType | Public Defender Service |
| advocateType | Advocate |
| advocateType | Barrister |
| advocateLevel | Junior |
| advocateLevel | KC |
| barristerLevel | Junior |
| barristerLevel | KC |
| direction | asc |
| direction | desc |
Novations
createNovation
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /novations
Create a Novation
Create a Novation record together with its initial predecessor/successor provider relationships. At least one relationship is required; each relationship requires a predecessor and successor provider firm and may optionally reference a Child Office.
A Novation cannot be created directly with a status of Rescinded. Decision Date and Decision Reason requirements depend on the selected Novation Status (BR-39).
Body parameter
{
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
]
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| body | body | NovationCreateV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
201 Response
{
"data": {
"novationGUID": "123e4567-e89b-12d3-a456-426614174000",
"novationRelationshipGUIDs": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Created successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | A referenced provider or office was not found | NotFoundError |
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | NovationCreateResponseV2 | true | none | none |
| »» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »» novationRelationshipGUIDs | [BaseEntityGUIDV2] | true | none | [GUID is the primary key for entity] |
getNovations
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /novations
Retrieve Novations
Retrieve Novations with optional filters.
Not yet implemented; published as a contract-only stub.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| novationGUID | query | array[string] | false | Filter by Novation GUID (multi) |
| novationStatus | query | array[string] | false | Filter by Novation status (multi) |
| providerFirmGUID | query | array[string] | false | Filter by predecessor or successor provider firm GUID (multi) |
| page | query | integer | false | Page index for given request (start from 0, default is 0) |
| pageSize | query | integer | false | Page size for given request (default is 100) |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Enumerated Values
| Parameter | Value |
|---|---|
| novationStatus | Proposed |
| novationStatus | Approved |
| novationStatus | Approved with Conditions |
| novationStatus | Rejected |
| novationStatus | Withdrawn |
| novationStatus | Rescinded |
Example responses
200 Response
{
"data": {
"content": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"decisionBy": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"rescindedBy": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
],
"metadata": {
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
},
"links": {
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | List of Novations matching the filters | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | true | none | none |
| »» content | [allOf] | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | BaseEntityV2 | false | none | none |
| »»»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»»» createdTimestamp | string(date-time) | true | none | none |
| »»»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | NovationCoreV2 | false | none | none |
| »»»» novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| »»»» novationEffectiveDate | string(date) | true | none | none |
| »»»» novationStatus | NovationStatusV2 | false | none | none |
| »»»» decisionDate | string(date)¦null | false | none | Required when the Novation has moved out of Proposed. |
| »»»» decisionReason | string¦null | false | none | Required for decision statuses as defined by BR-39. |
| »»»» decisionBy | string¦null | false | read-only | User ID from the authenticated request which moved the Novation out of Proposed. |
| »»»» rescindedDate | string(date)¦null | false | none | Required when the status is Rescinded. |
| »»»» rescindedReason | string¦null | false | none | Required when the status is Rescinded. |
| »»»» rescindedBy | string¦null | false | read-only | User ID from the authenticated request which rescinded the Novation. |
| »»»» driverForNovation | string¦null | false | none | none |
| »»»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»» anonymous | object | false | none | none |
| »»»» relationships | [allOf] | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | NovationRelationshipCreateV2 | false | none | One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service. |
| »»»»»» previousProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»» newProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»»» previousOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»»» newOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»»» previousContractGUID | string(uuid)¦null | false | none | none |
| »»»»»» newContractGUID | string(uuid)¦null | false | none | none |
| »»»»»» previousScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»»» newScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»»» anonymous | object | false | none | none |
| »»»»»» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
continued
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» metadata | PaginatedSearchV2 | true | none | none |
| »»» searchCriteria | SearchCriteriaV2 | true | none | none |
| »»»» criteria | [SearchCriterionV2] | false | none | none |
| »»»»» filter | string | false | none | Filter key |
| »»»»» values | [string] | false | none | none |
| »»» pagination | PaginationV2 | true | none | none |
| »»»» currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| »»»» pageSize | integer | false | none | Page size used for this search |
| »»»» totalPages | integer | false | none | Total number of pages |
| »»»» totalItems | integer(int64) | false | none | Total number of records for given search request |
| »»» sort | SortV2 | false | none | none |
| »»»» field | string | false | none | none |
| »»»» direction | string | false | none | none |
| »» links | LinksV2 | true | none | none |
| »»» self | string(uri) | false | none | none |
| »»» next | string(uri) | false | none | none |
| »»» prev | string(uri) | false | none | none |
| »»» first | string(uri) | false | none | none |
| »»» last | string(uri) | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| novationStatus | Proposed |
| novationStatus | Approved |
| novationStatus | Approved with Conditions |
| novationStatus | Rejected |
| novationStatus | Withdrawn |
| novationStatus | Rescinded |
| direction | asc |
| direction | desc |
getNovation
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations/{novationGUID} \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /novations/{novationGUID}
Retrieve a Novation
Retrieve a Novation record and its supported predecessor/successor provider relationships. Supported relationships include Legal Organisation relationships and Child Office relationships where those Office links are available.
This is a read-only operation and does not create, amend or delete Novation data or relationship data.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| novationGUID | path | string(uuid) | true | The GUID of the Novation. |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"decisionBy": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"rescindedBy": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Novation details retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | NovationCoreV2 | false | none | none |
| »»» novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| »»» novationEffectiveDate | string(date) | true | none | none |
| »»» novationStatus | NovationStatusV2 | false | none | none |
| »»» decisionDate | string(date)¦null | false | none | Required when the Novation has moved out of Proposed. |
| »»» decisionReason | string¦null | false | none | Required for decision statuses as defined by BR-39. |
| »»» decisionBy | string¦null | false | read-only | User ID from the authenticated request which moved the Novation out of Proposed. |
| »»» rescindedDate | string(date)¦null | false | none | Required when the status is Rescinded. |
| »»» rescindedReason | string¦null | false | none | Required when the status is Rescinded. |
| »»» rescindedBy | string¦null | false | read-only | User ID from the authenticated request which rescinded the Novation. |
| »»» driverForNovation | string¦null | false | none | none |
| »»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | object | false | none | none |
| »»» relationships | [allOf] | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | NovationRelationshipCreateV2 | false | none | One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service. |
| »»»»» previousProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»» newProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»» previousOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»» newOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»» previousContractGUID | string(uuid)¦null | false | none | none |
| »»»»» newContractGUID | string(uuid)¦null | false | none | none |
| »»»»» previousScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»» newScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | object | false | none | none |
| »»»»» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
Enumerated Values
| Property | Value |
|---|---|
| novationStatus | Proposed |
| novationStatus | Approved |
| novationStatus | Approved with Conditions |
| novationStatus | Rejected |
| novationStatus | Withdrawn |
| novationStatus | Rescinded |
updateNovation
Code samples
# You can also use wget
curl -X PATCH https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations/{novationGUID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
PATCH /novations/{novationGUID}
Amend a Novation
Amend permitted Novation details or perform a permitted status transition.
Status transitions follow the Novation status management rules: Proposed can move to Approved, Approved with Conditions, Rejected or Withdrawn; Approved and Approved with Conditions can move to Rescinded. Rescission updates the existing Novation record and records rescission-specific date, reason and user metadata without overwriting the original decision metadata.
Body parameter
{
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"driverForNovation": "string",
"notes": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| novationGUID | path | string(uuid) | true | The GUID of the Novation. |
| body | body | NovationPatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"decisionBy": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"rescindedBy": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Novation updated successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | NovationCoreV2 | false | none | none |
| »»» novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| »»» novationEffectiveDate | string(date) | true | none | none |
| »»» novationStatus | NovationStatusV2 | false | none | none |
| »»» decisionDate | string(date)¦null | false | none | Required when the Novation has moved out of Proposed. |
| »»» decisionReason | string¦null | false | none | Required for decision statuses as defined by BR-39. |
| »»» decisionBy | string¦null | false | read-only | User ID from the authenticated request which moved the Novation out of Proposed. |
| »»» rescindedDate | string(date)¦null | false | none | Required when the status is Rescinded. |
| »»» rescindedReason | string¦null | false | none | Required when the status is Rescinded. |
| »»» rescindedBy | string¦null | false | read-only | User ID from the authenticated request which rescinded the Novation. |
| »»» driverForNovation | string¦null | false | none | none |
| »»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | object | false | none | none |
| »»» relationships | [allOf] | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | NovationRelationshipCreateV2 | false | none | One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service. |
| »»»»» previousProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»» newProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»»»» previousOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»» newOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»»»» previousContractGUID | string(uuid)¦null | false | none | none |
| »»»»» newContractGUID | string(uuid)¦null | false | none | none |
| »»»»» previousScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»» newScheduleGUID | string(uuid)¦null | false | none | none |
| »»»»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »»»» anonymous | object | false | none | none |
| »»»»» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
Enumerated Values
| Property | Value |
|---|---|
| novationStatus | Proposed |
| novationStatus | Approved |
| novationStatus | Approved with Conditions |
| novationStatus | Rejected |
| novationStatus | Withdrawn |
| novationStatus | Rescinded |
Novation Relationships
createNovationRelationship
Code samples
# You can also use wget
curl -X POST https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations/{novationGUID}/relationships \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
POST /novations/{novationGUID}/relationships
Add a relationship to a Novation
Add a predecessor/successor relationship to an existing Novation.
Not yet implemented; published as a contract-only stub for DSTEW-1976/1982.
Body parameter
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| novationGUID | path | string(uuid) | true | The GUID of the Novation. |
| body | body | NovationRelationshipCreateV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
201 Response
{
"data": {
"novationRelationshipGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 201 | Created | Relationship created successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | The Novation or a referenced entity was not found | NotFoundError |
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 201
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | object | true | none | none |
| »» novationRelationshipGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
updateNovationRelationship
Code samples
# You can also use wget
curl -X PATCH https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/novations/{novationGUID}/relationships/{novationRelationshipGUID} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
PATCH /novations/{novationGUID}/relationships/{novationRelationshipGUID}
Amend a Novation relationship
Amend the permitted fields of an existing Novation Relationship. Existing identifiers for the Novation and the relationship itself are immutable.
This operation supports correcting supported predecessor/successor provider and Child Office relationships for DSTEW-1977. Contract and Schedule GUID fields are retained as forward- compatible opaque values until those entities are implemented in later stories.
Body parameter
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| novationGUID | path | string(uuid) | true | The GUID of the Novation. |
| novationRelationshipGUID | path | string(uuid) | true | The GUID of the Novation Relationship. |
| body | body | NovationRelationshipPatchV2 | true | none |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
Example responses
200 Response
{
"data": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Relationship updated successfully | Inline |
| 400 | Bad Request | Invalid input | BadRequestError |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 409 | Conflict | Conflict | ConflictError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | BaseEntityV2 | false | none | none |
| »»» guid | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| »»» createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| »»» createdTimestamp | string(date-time) | true | none | none |
| »»» lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| »»» lastUpdatedTimestamp | string(date-time) | true | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | NovationRelationshipCreateV2 | false | none | One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service. |
| »»» previousProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» newProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» previousOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»» newOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| »»» previousContractGUID | string(uuid)¦null | false | none | none |
| »»» newContractGUID | string(uuid)¦null | false | none | none |
| »»» previousScheduleGUID | string(uuid)¦null | false | none | none |
| »»» newScheduleGUID | string(uuid)¦null | false | none | none |
| »»» notes | string¦null | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| »» anonymous | object | false | none | none |
| »»» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
Provider Firm Lineage
getProviderFirmLineage
Code samples
# You can also use wget
curl -X GET https://laa-data-provider-api-dev.apps.live.cloud-platform.service.justice.gov.uk/provider-firms/{providerFirmGUIDorFirmNumber}/lineage \
-H 'Accept: application/json' \
-H 'traceparent: string' \
-H 'X-Authorization: API_KEY'
GET /provider-firms/{providerFirmGUIDorFirmNumber}/lineage
Retrieve provider lineage
Retrieve provider predecessor and successor relationships across Novation events, ordered chronologically by Novation effective date.
Not yet implemented; published as a contract-only stub for DSTEW-1982.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| traceparent | header | string | false | W3C Trace Context header used for distributed tracing. Format: 00- |
| providerFirmGUIDorFirmNumber | path | string | true | GUID of the provider firm, or the firm number (unique account number). |
Detailed descriptions
traceparent: W3C Trace Context header used for distributed tracing. Format: 00-
providerFirmGUIDorFirmNumber: GUID of the provider firm, or the firm number (unique account number).
Example responses
200 Response
{
"data": {
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"currentProviderFirmGUIDs": [
"123e4567-e89b-12d3-a456-426614174000"
],
"relationships": [
{
"novationGUID": "123e4567-e89b-12d3-a456-426614174000",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Provider lineage retrieved successfully | Inline |
| 403 | Forbidden | Forbidden | ForbiddenError |
| 404 | Not Found | Not found | NotFoundError |
| 500 | Internal Server Error | Server error | InternalServerError |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » data | ProviderFirmLineageV2 | true | none | none |
| »» providerFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »» currentProviderFirmGUIDs | [BaseEntityGUIDV2] | false | none | Provider firm(s) at the current end of the lineage graph. Array form preserves the ability to represent one-to-many successor relationships. Precise treatment of rescinded Novations remains subject to business clarification. |
| »» relationships | [ProviderFirmLineageRelationshipV2] | true | none | Relationships ordered by Novation effective date. |
| »»» novationGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| »»» novationEffectiveDate | string(date) | true | none | none |
| »»» novationStatus | NovationStatusV2 | false | none | none |
| »»» previousProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
| »»» newProviderFirmGUID | BaseEntityGUIDV2(uuid) | true | none | GUID is the primary key for entity |
Enumerated Values
| Property | Value |
|---|---|
| novationStatus | Proposed |
| novationStatus | Approved |
| novationStatus | Approved with Conditions |
| novationStatus | Rejected |
| novationStatus | Withdrawn |
| novationStatus | Rescinded |
Schemas
BaseEntityGUIDV2
"123e4567-e89b-12d3-a456-426614174000"
GUID is the primary key for entity
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(uuid) | false | none | GUID is the primary key for entity |
BaseEntityV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| guid | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| version | integer(int64) | true | none | Record version (for audit and event concurrency) |
| createdBy | string | true | none | User ID from the auth token which resulted in creating this record |
| createdTimestamp | string(date-time) | true | none | none |
| lastUpdatedBy | string | true | none | User ID from the auth token which resulted in updating this record last |
| lastUpdatedTimestamp | string(date-time) | true | none | none |
ErrorResponse
{
"error": {
"errorCode": "P00XX"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
BadRequestError
{
"error": {
"errorCode": "P00BR"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
ForbiddenError
{
"error": {
"errorCode": "P00AD"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
ConflictError
{
"error": {
"errorCode": "P00CV"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
NotFoundError
{
"error": {
"errorCode": "P00NF"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
InternalServerError
{
"error": {
"errorCode": "P00SE"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| error | object | false | none | none |
| » errorCode | string | false | none | none |
NovationTypeV2
"Merger"
Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
NovationStatusV2
"Proposed"
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Proposed |
| anonymous | Approved |
| anonymous | Approved with Conditions |
| anonymous | Rejected |
| anonymous | Withdrawn |
| anonymous | Rescinded |
NovationCreateStatusV2
"Proposed"
Initial Novation status. A Novation cannot be created directly as Rescinded.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Initial Novation status. A Novation cannot be created directly as Rescinded. |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Proposed |
| anonymous | Approved |
| anonymous | Approved with Conditions |
| anonymous | Rejected |
| anonymous | Withdrawn |
NovationCoreV2
{
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"decisionBy": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"rescindedBy": "string",
"driverForNovation": "string",
"notes": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| novationEffectiveDate | string(date) | true | none | none |
| novationStatus | NovationStatusV2 | false | none | none |
| decisionDate | string(date)¦null | false | none | Required when the Novation has moved out of Proposed. |
| decisionReason | string¦null | false | none | Required for decision statuses as defined by BR-39. |
| decisionBy | string¦null | false | read-only | User ID from the authenticated request which moved the Novation out of Proposed. |
| rescindedDate | string(date)¦null | false | none | Required when the status is Rescinded. |
| rescindedReason | string¦null | false | none | Required when the status is Rescinded. |
| rescindedBy | string¦null | false | read-only | User ID from the authenticated request which rescinded the Novation. |
| driverForNovation | string¦null | false | none | none |
| notes | string¦null | false | none | none |
NovationCreateV2
{
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| novationEffectiveDate | string(date) | true | none | none |
| novationStatus | NovationCreateStatusV2 | false | none | Initial Novation status. A Novation cannot be created directly as Rescinded. |
| decisionDate | string(date)¦null | false | none | none |
| decisionReason | string¦null | false | none | Decision reason required according to the initial non-Proposed status. |
| driverForNovation | string¦null | false | none | none |
| notes | string¦null | false | none | none |
| relationships | [NovationRelationshipCreateV2] | true | none | Predecessor/successor relationships for this Novation. Multiple entries support many-to-one and one-to-many provider changes. |
NovationV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"decisionBy": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"rescindedBy": "string",
"driverForNovation": "string",
"notes": "string",
"relationships": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | NovationCoreV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » relationships | [NovationRelationshipV2] | true | none | none |
NovationCreateResponseV2
{
"novationGUID": "123e4567-e89b-12d3-a456-426614174000",
"novationRelationshipGUIDs": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| novationGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| novationRelationshipGUIDs | [BaseEntityGUIDV2] | true | none | [GUID is the primary key for entity] |
NovationRelationshipCreateV2
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| previousProviderFirmGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| newProviderFirmGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| previousOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| newOfficeGUID | string(uuid)¦null | false | none | GUID of the provider-office link, not the underlying physical office row. |
| previousContractGUID | string(uuid)¦null | false | none | none |
| newContractGUID | string(uuid)¦null | false | none | none |
| previousScheduleGUID | string(uuid)¦null | false | none | none |
| newScheduleGUID | string(uuid)¦null | false | none | none |
| notes | string¦null | false | none | none |
NovationRelationshipV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string",
"novationGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | NovationRelationshipCreateV2 | false | none | One predecessor/successor mapping belonging to a Novation. Previous/new Contract GUIDs must be supplied together when a Contract relationship is recorded. Previous/new Schedule GUIDs must be supplied together when a Schedule relationship is recorded. Referenced Offices, Contracts and Schedules must be consistent with the referenced provider firms; those cross-entity rules are enforced by the service. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » novationGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
NovationPatchV2
{
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"decisionDate": "2019-08-24",
"decisionReason": "string",
"rescindedDate": "2019-08-24",
"rescindedReason": "string",
"driverForNovation": "string",
"notes": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| novationType | NovationTypeV2 | false | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| novationEffectiveDate | string(date) | false | none | none |
| novationStatus | NovationStatusV2 | false | none | none |
| decisionDate | string(date)¦null | false | none | none |
| decisionReason | string¦null | false | none | Original decision reason; must not be overwritten by a later rescission. |
| rescindedDate | string(date)¦null | false | none | Required when transitioning an Approved or Approved with Conditions Novation to Rescinded. |
| rescindedReason | string¦null | false | none | Required when transitioning an Approved or Approved with Conditions Novation to Rescinded. |
| driverForNovation | string¦null | false | none | none |
| notes | string¦null | false | none | none |
NovationRelationshipPatchV2
{
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"previousOfficeGUID": "6e9369fc-7ef0-425e-9a40-5bd2f626fb16",
"newOfficeGUID": "bc1fedd9-7125-4f01-a776-65eff0882ea4",
"previousContractGUID": "b79c9269-8625-41f9-ba79-ce04859b38d8",
"newContractGUID": "5f418073-a4a4-4924-b467-752581258a39",
"previousScheduleGUID": "8867f81a-88df-4e43-b91e-1fca03025a93",
"newScheduleGUID": "c3e42dea-4d67-4a19-a0df-d1192f38d8dc",
"notes": "string"
}
Properties
None
ProviderFirmLineageRelationshipV2
{
"novationGUID": "123e4567-e89b-12d3-a456-426614174000",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| novationGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| novationType | NovationTypeV2 | true | none | Business classification of the Novation. The final permitted value set is still to be confirmed by the business, so this is intentionally not constrained by an enum yet. |
| novationEffectiveDate | string(date) | true | none | none |
| novationStatus | NovationStatusV2 | false | none | none |
| previousProviderFirmGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| newProviderFirmGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
ProviderFirmLineageV2
{
"providerFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"currentProviderFirmGUIDs": [
"123e4567-e89b-12d3-a456-426614174000"
],
"relationships": [
{
"novationGUID": "123e4567-e89b-12d3-a456-426614174000",
"novationType": "Merger",
"novationEffectiveDate": "2019-08-24",
"novationStatus": "Proposed",
"previousProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000",
"newProviderFirmGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| providerFirmGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| currentProviderFirmGUIDs | [BaseEntityGUIDV2] | false | none | Provider firm(s) at the current end of the lineage graph. Array form preserves the ability to represent one-to-many successor relationships. Precise treatment of rescinded Novations remains subject to business clarification. |
| relationships | [ProviderFirmLineageRelationshipV2] | true | none | Relationships ordered by Novation effective date. |
ProviderFirmNumberV2
"3856"
Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1
TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
ProviderFirmTypeV2
"Legal Services Provider"
Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type.
CWA ref: PO_VENDORS.ATTRIBUTE4.
TODO: Check if these are all valid types
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Legal Services Provider |
| anonymous | Chambers |
| anonymous | Advocate |
| anonymous | Public Defender Service |
ProviderFirmNameV2
"Legal Services Co."
Name of the provider firm.
CWA ref: PO_VENDORS.VENDOR_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
PDSConstitutionalStatusV2
"Government Funded Organisation"
Constitutional status for a Public Defender Service provider.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Constitutional status for a Public Defender Service provider. |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Government Funded Organisation |
PDSHeadOfficeCreateV2
{
"vatRegistration": {
"vatNumber": "476628407"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
}
}
PDS head office details. Address line 1, city and postcode are required by OfficeAddressV2.
DX Number and DX Centre must either both be supplied or both be absent. No payment, bank
account, liaison manager or contract manager is required.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatRegistration | VATRegistrationCreateV2 | false | none | none |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXCreateV2 | false | none | none |
PublicDefenderServiceCreateV2
{
"name": "Legal Services Co.",
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"vatRegistration": {
"vatNumber": "476628407"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
}
}
}
Complete request to create a Public Defender Service provider and its head office. The firm type is fixed by the PDS-specific endpoint and is not supplied by the caller. The current PDS scope supports a head office only; whether child offices may be added is an open business question for a future change. The nested head office is therefore implicitly the provider’s head office.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
| constitutionalStatus | PDSConstitutionalStatusV2 | true | none | Constitutional status for a Public Defender Service provider. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| headOffice | PDSHeadOfficeCreateV2 | true | none | PDS head office details. Address line 1, city and postcode are required by OfficeAddressV2.DX Number and DX Centre must either both be supplied or both be absent. No payment, bank account, liaison manager or contract manager is required. |
ProviderCreateV2
{
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ProviderCreateBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderCreateLSPV2 | false | none | Create provider of firmType=Legal Services Provider
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderCreateChambersV2 | false | none | Create provider of firmType=Chambers
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderCreatePractitionerV2 | false | none | Create provider of firmType=Advocate. Office is linked to the parent Chambers’ office. |
ProviderCreateBaseV2
{
"firmType": "Legal Services Provider",
"name": "Legal Services Co."
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
ProviderCreateLSPV2
{
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Create provider of firmType=Legal Services Provider
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| legalServicesProvider | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | LSPDetailsCreateV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | LSPHeadOfficeCreateV2 | false | none | none |
ProviderCreateChambersV2
{
"chambers": {
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Create provider of firmType=Chambers
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| chambers | ChambersHeadOfficeCreateV2 | true | none | none |
ProviderCreatePractitionerV2
{
"practitioner": {
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
],
"advocateType": "Advocate",
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
}
}
Create provider of firmType=Advocate. Office is linked to the parent Chambers’ office.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| practitioner | any | true | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsCreateV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerHeadOfficeCreateV2 | false | none | none |
ProviderV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ProviderBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderLSPV2 | false | none | Provider of firmType=Legal Services Provider
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderChambersV2 | false | none | Provider of firmType=Chambers
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPDSV2 | false | none | none |
ProviderBaseV2
{
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co."
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| name | ProviderFirmNameV2 | true | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
ProviderLSPV2
{
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
}
Provider of firmType=Legal Services Provider
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| legalServicesProvider | LSPDetailsV2 | true | none | none |
ProviderChambersV2
{
"chambers": {
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
}
}
}
Provider of firmType=Chambers
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| chambers | ChambersDetailsV2 | true | none | none |
ProviderPractitionerV2
{
"practitioner": {
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
],
"advocateType": "Advocate",
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
},
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
}
Provider of firmType=Advocate
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| practitioner | PractitionerDetailsV2 | true | none | none |
ProviderPatchV2
{
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
},
"firmIntervenedFlag": true,
"firmIntervenedDate": "2019-08-24",
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"referredToDebtRecoveryFlag": true
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ProviderPatchBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPatchLSPV2 | false | none | Update provider of firmType=Legal Services Provider
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPatchChambersV2 | false | none | Update provider of firmType=Chambers
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPatchPractitionerV2 | false | none | Update provider of firmType=Advocate
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ProviderPatchPDSV2 | false | none | Update permitted details of a Public Defender Service provider. Firm type and server-owned identifiers are not amendable through the common provider PATCH operation. |
ProviderPatchBaseV2
{
"name": "Legal Services Co."
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | ProviderFirmNameV2 | false | none | Name of the provider firm. CWA ref: PO_VENDORS.VENDOR_NAME |
ProviderPatchLSPV2
{
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
},
"firmIntervenedFlag": true,
"firmIntervenedDate": "2019-08-24",
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"referredToDebtRecoveryFlag": true
}
}
Update provider of firmType=Legal Services Provider
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| legalServicesProvider | LSPDetailsPatchV2 | false | none | none |
ProviderPatchChambersV2
{}
Update provider of firmType=Chambers
Properties
None
ProviderPatchPractitionerV2
{
"practitioner": {
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
],
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
Update provider of firmType=Advocate
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| practitioner | PractitionerDetailsPatchV2 | false | none | none |
LSPDetailsConstitutionalStatusV2
"Partnership"
‘N/A’ for Firm type Advocate or Chambers.
For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’.
When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be set
to true.
CWA ref: PO_VENDORS.ATTRIBUTE1.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Partnership |
| anonymous | Limited Company |
| anonymous | Sole Practitioner |
| anonymous | LLP |
| anonymous | Charity |
| anonymous | Government Funded Organisation |
LSPDetailsNotForProfitOrganisationFlagV2
true
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity
CWA ref: PO_VENDORS.ATTRIBUTE3.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none |
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity CWA ref: PO_VENDORS.ATTRIBUTE3. |
LSPDetailsIndemnityReceivedDateV2
"2019-08-24"
TODO: Need better description of this field
CWA ref: PO_VENDORS.ATTRIBUTE2.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
LSPDetailsCompaniesHouseNumberV2
"*TODO: Provide example*"
TODO: Need better description of this field
WARNING: same field is used by Advocates for Bar Council or SRA roll number.
CWA ref: PO_VENDORS.ATTRIBUTE11
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
LSPDetailsCreateV2
{
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| constitutionalStatus | LSPDetailsConstitutionalStatusV2 | true | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
LSPDetailsV2
{
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| constitutionalStatus | LSPDetailsConstitutionalStatusV2 | true | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| notForProfitOrganisationFlag | LSPDetailsNotForProfitOrganisationFlagV2 | true | none |
TODO: Check if this flag is true for LSP with constitutionalStatus=Charity CWA ref: PO_VENDORS.ATTRIBUTE3. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | true | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | true | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| headOffice | LSPHeadOfficeDetailsV2 | true | none | none |
LSPDetailsPatchV2
{
"constitutionalStatus": "Partnership",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
},
"firmIntervenedFlag": true,
"firmIntervenedDate": "2019-08-24",
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"referredToDebtRecoveryFlag": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| constitutionalStatus | LSPDetailsConstitutionalStatusV2 | false | none | ‘N/A’ for Firm type Advocate or Chambers. For Legal Services provider, options are: - ‘Partnership’, - ‘Limited Company’, - ‘Sole Practitioner’, - ‘LLP’, (Limited Liability Partnership) - ‘Charity’, - ‘Government Funded Organisation’. When constitutional status is set to ‘Charity’ notForProfitOrganisationFlag must be setto true. CWA ref: PO_VENDORS.ATTRIBUTE1. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| headOffice | LSPHeadOfficeDetailsPatchV2 | false | none | none |
| firmIntervenedFlag | FirmIntervenedFlagV2 | false | none | Flag indicating whether firm is under intervention. If true, firmIntervenedDate must also be provided. |
| firmIntervenedDate | FirmIntervenedDateV2 | false | none | Date when firm was placed under intervention. Must be provided together with firmIntervenedFlag. |
| holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| referredToDebtRecoveryFlag | ReferredToDebtRecoveryFlagV2 | false | none | Flag indicating whether firm has been referred to debt recovery. |
ChambersDetailsV2
{
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| office | ChambersOfficeCoreDetailsV2 | true | none | none |
PractitionerDetailsParentUpdateV2
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » parentGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
PractitionerDetailsParentV2
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| parentGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| parentFirmNumber | ProviderFirmNumberV2 | true | none | Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1 TODO: Check which to use, SiLAS uses segment1, but all V1 endpoints use VENDOR_ID in path TODO: Is this the same as account number. CWA ref, is it segment 1 TODO: Do we need ccmsFirmId. xxccms_provider_offices_v.providerfirm_id TODO: Check rules for generating these and what sequence number to start from at go live |
| parentFirmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
PractitionerDetailsAdvocateTypeV2
"Advocate"
Advocate sub-type can be Advocate or Barrister.
Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister
CWA ref: PO_VENDORS.ATTRIBUTE9.
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Advocate |
| anonymous | Barrister |
PractitionerDetailsAdvocateLevelV2
"Junior"
Advocate level.
WARNING: Same field as Barrister level in CWA
CWA ref: PO_VENDORS.ATTRIBUTE10.
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Junior |
| anonymous | KC |
PractitionerDetailsBarristerLevelV2
"Junior"
Barrister level.
WARNING: Same field as Advocate level in CWA
CWA ref: PO_VENDORS.ATTRIBUTE10.
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | Junior |
| anonymous | KC |
PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2
"*TODO: Provide example*"
Solicitors Regulation Authority roll number.
CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number).
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
PractitionerDetailsBarCouncilRollNumberV2
"*TODO: Provide example*"
Bar Council roll number.
CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number).
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
PractitionerDetailsAdvocateDetailsV2
{
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| advocateLevel | PractitionerDetailsAdvocateLevelV2 | true | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | true | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
PractitionerDetailsBarristerDetailsV2
{
"barristerLevel": "Junior",
"barCouncilRollNumber": "*TODO: Provide example*"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| barristerLevel | PractitionerDetailsBarristerLevelV2 | true | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | true | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
PractitionerDetailsCreateV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
],
"advocateType": "Advocate",
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PractitionerDetailsCreateBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsCreateAdvocateV2 | false | none | Applicable only for advocateType=Advocate
|
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsCreateBarristerV2 | false | none | Applicable only for advocateType=Barrister
|
PractitionerDetailsCreateBaseV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
],
"advocateType": "Advocate"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| parentFirms | [PractitionerDetailsParentUpdateV2] | true | none | none |
| advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
PractitionerDetailsCreateAdvocateV2
{
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
Applicable only for advocateType=Advocate
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
PractitionerDetailsCreateBarristerV2
{
"barrister": {
"barristerLevel": "Junior",
"barCouncilRollNumber": "*TODO: Provide example*"
}
}
Applicable only for advocateType=Barrister
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
PractitionerDetailsV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
],
"advocateType": "Advocate",
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
},
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PractitionerDetailsBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsAdvocateV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsBarristerV2 | false | none | none |
PractitionerDetailsBaseV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
],
"advocateType": "Advocate",
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| parentFirms | [PractitionerDetailsParentV2] | true | none | none |
| advocateType | PractitionerDetailsAdvocateTypeV2 | true | none | Advocate sub-type can be Advocate or Barrister. Derived from advocateSolicitor flag in CWA. If advocateSolicitor=Y -> Advocate, if advocateSolicitor=N -> Barrister CWA ref: PO_VENDORS.ATTRIBUTE9. TODO: Need better description of this field, any business rules |
| office | PractitionerOfficeCoreDetailsV2 | true | none | none |
PractitionerDetailsAdvocateV2
{
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| advocate | PractitionerDetailsAdvocateDetailsV2 | true | none | none |
PractitionerDetailsBarristerV2
{
"barrister": {
"barristerLevel": "Junior",
"barCouncilRollNumber": "*TODO: Provide example*"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| barrister | PractitionerDetailsBarristerDetailsV2 | true | none | none |
PractitionerDetailsPatchV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
],
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PractitionerDetailsPatchBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » liaisonManager | AdvocateOfficeLiaisonManagerCreateOrLinkV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsPatchAdvocateDetailsV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PractitionerDetailsPatchBarristerDetailsV2 | false | none | none |
PractitionerDetailsPatchBaseV2
{
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| parentFirms | [PractitionerDetailsParentUpdateV2] | false | none | none |
PractitionerDetailsPatchAdvocateDetailsV2
{
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| advocateLevel | PractitionerDetailsAdvocateLevelV2 | false | none | Advocate level. WARNING: Same field as Barrister level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| solicitorRegulationAuthorityRollNumber | PractitionerDetailsSolicitorRegulationAuthorityRollNumberV2 | false | none | Solicitors Regulation Authority roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Barristers for Bar Council roll number). TODO: Need better description of this field, any business rules |
PractitionerDetailsPatchBarristerDetailsV2
{
"barristerLevel": "Junior",
"barCouncilRollNumber": "*TODO: Provide example*"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| barristerLevel | PractitionerDetailsBarristerLevelV2 | false | none | Barrister level. WARNING: Same field as Advocate level in CWA CWA ref: PO_VENDORS.ATTRIBUTE10. TODO: Need better description of this field, any business rules |
| barCouncilRollNumber | PractitionerDetailsBarCouncilRollNumberV2 | false | none | Bar Council roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used by LSPs for Companies House number and by Advocates for SRA roll number). TODO: Need better description of this field, any business rules |
LSPHeadOfficeCreateV2
{
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatRegistration | VATRegistrationCreateV2 | false | none | none |
| payment | PaymentDetailsCreateV2 | true | none | none |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXCreateV2 | false | none | none |
| liaisonManager | LiaisonManagerCreateV2 | true | none | activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment. |
| contractManager | HeadOfficeContractManagerLinkV2 | true | none | Exactly one of contractManagerGUID or useDefaultContractManager must be provided whencreating an LSP or Chambers head office. useHeadOfficeContractManager is not applicablehere since this office is itself the head office. |
LSPHeadOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LSPOfficeDetailsV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » officeGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| » headOfficeFlag | boolean | true | none | none |
| » activeDateFrom | OfficeActiveDateFromV2 | false | none | Start date of activity for the provider office link. |
| » liaisonManager | LiaisonManagerV2 | false | none | none |
| » contractManager | OfficeContractManagerV2 | false | none | none |
| » bankAccount | OfficeBankAccountV2 | false | none | none |
LSPHeadOfficeDetailsPatchV2
{
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| officeGUID | BaseEntityGUIDV2 | false | none | GUID is the primary key for entity |
| accountNumber | OfficeAccountNumberV2 | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| address | OfficeAddressPatchV2 | false | none | Address fields for a PATCH request. All fields are optional — absent or null means “leave unchanged”. If a field is provided it must be non-blank ( minLength: 1).Mandatory address fields ( line1, townOrCity, postcode) cannot be blanked viaa PATCH because null is treated as “leave unchanged” and empty strings are rejected. |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXPatchV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
| payment | PaymentDetailsPatchOrLinkV2 | false | none | none |
| intervened | IntervenedOfficeDetailsPatchV2 | false | none | none |
ChambersHeadOfficeCreateV2
{
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXCreateV2 | false | none | none |
| liaisonManager | ChambersOfficeLiaisonManagerCreateOrLinkV2 | true | none | none |
| contractManager | HeadOfficeContractManagerLinkV2 | false | none | Exactly one of contractManagerGUID or useDefaultContractManager must be provided whencreating an LSP or Chambers head office. useHeadOfficeContractManager is not applicablehere since this office is itself the head office. |
PractitionerHeadOfficeCreateV2
{
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatRegistration | VATRegistrationCreateV2 | false | none | none |
| payment | PaymentDetailsCreateV2 | true | none | none |
| liaisonManager | AdvocateOfficeLiaisonManagerCreateOrLinkV2 | true | none | none |
LSPOfficeCreateV2
{
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"liaisonManager": {
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
},
"contractManager": {
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatRegistration | VATRegistrationCreateV2 | false | none | none |
| payment | PaymentDetailsCreateOrLinkV2 | true | none | none |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXCreateV2 | false | none | none |
| liaisonManager | LSPOfficeLiaisonManagerCreateOrLinkV2 | true | none | none |
| contractManager | LSPOfficeContractManagerLinkV2 | true | none | Exactly one of contractManagerGUID, useDefaultContractManager oruseHeadOfficeContractManager must be provided when creating an LSP Child Office. |
OfficeAccountNumberV2
"0Q731M"
Unique provider office identifier.
CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
OfficeActiveDateToV2
"2019-08-24"
End date of activity.
When activeDateTo is set on the head office for LSP all child offices that do not have
activeDateTo set should be updated to the same value (i.e. deactivating head office
deactivates all active child offices).
When activeDateTo is set on the Chambers’ office all assigned advocates/barristers that
do not have activeDateTo set should be updated to the same value (i.e. deactivating
a Chambers’ office deactivates all active advocate/barrister offices).
When activeDateTo is set on an LSP office or an Advocate/Barrister office, the
debtRecoveryFlag should be set to false.
When activeDateTo is set on an LSP office or an Advocate/Barrister office that was
previously active (deactivation), payment.paymentHeldFlag must be included and set to
true in the same request, unless it is already true. The API does not auto-correct
this value; the request is rejected if it is omitted or false.
CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
OfficeActiveDateFromV2
"2019-08-24"
Start date of activity for the provider office link.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | Start date of activity for the provider office link. |
ClearActiveDateToV2
true
When true, clears activeDateTo back to null, re-activating the office.
This field exists because a PATCH request cannot otherwise distinguish an explicit
activeDateTo: null (meaning “clear the value”) from the field being absent (meaning
“no change”). Must not be combined with activeDateTo in the same request.
On an LSP or Advocate/Barrister office that was previously inactive, reactivating in
this way requires falseBalanceFlag and payment.paymentHeldFlag to both be included
and set to false in the same request, unless each is already false. The API does not
auto-correct these values; the request is rejected if either is omitted or true.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
DebtRecoveryFlagV2
true
Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false.
CWA ref: via fake contract manager.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
FalseBalanceFlagV2
true
Can only be set to true if the firm office is inactive.
If the office is being made active in the same request (clearActiveDateTo: true), this
flag must also be explicitly set to false in that request, unless it is already false.
The API does not auto-correct this value.
CWA ref: via fake contract manager.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
OfficeV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | LSPOfficeDetailsV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | ChambersOfficeDetailsV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | AdvocateOfficeDetailsV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | PDSOfficeDetailsV2 | false | none | none |
LSPOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsV2 | true | none | none |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
| payment | PaymentDetailsV2 | true | none | none |
ChambersOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXV2 | false | none | none |
AdvocateOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| debtRecoveryFlag | DebtRecoveryFlagV2 | true | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | true | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsV2 | true | none | none |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
| payment | PaymentDetailsV2 | true | none | none |
OfficePatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LSPOfficePatchV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ChambersOfficePatchV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | AdvocateOfficePatchV2 | false | none | none |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PDSOfficePatchV2 | false | none | none |
LSPOfficePatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsPatchV2 | false | none | none |
| address | OfficeAddressPatchV2 | false | none | Address fields for a PATCH request. All fields are optional — absent or null means “leave unchanged”. If a field is provided it must be non-blank ( minLength: 1).Mandatory address fields ( line1, townOrCity, postcode) cannot be blanked viaa PATCH because null is treated as “leave unchanged” and empty strings are rejected. |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXPatchV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
| payment | PaymentDetailsPatchOrLinkV2 | false | none | none |
ChambersOfficePatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| address | OfficeAddressPatchV2 | false | none | Address fields for a PATCH request. All fields are optional — absent or null means “leave unchanged”. If a field is provided it must be non-blank ( minLength: 1).Mandatory address fields ( line1, townOrCity, postcode) cannot be blanked viaa PATCH because null is treated as “leave unchanged” and empty strings are rejected. |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXPatchV2 | false | none | none |
AdvocateOfficePatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsPatchV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
| payment | PaymentDetailsPatchOrLinkV2 | false | none | none |
PDSOfficePatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsPatchV2 | false | none | none |
| holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| address | OfficeAddressPatchV2 | false | none | Address fields for a PATCH request. All fields are optional — absent or null means “leave unchanged”. If a field is provided it must be non-blank ( minLength: 1).Mandatory address fields ( line1, townOrCity, postcode) cannot be blanked viaa PATCH because null is treated as “leave unchanged” and empty strings are rejected. |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXPatchV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
PDSDetailsPatchV2
{
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| constitutionalStatus | PDSConstitutionalStatusV2 | false | none | Constitutional status for a Public Defender Service provider. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| headOffice | PDSHeadOfficeDetailsPatchV2 | false | none | none |
ProviderPatchPDSV2
{
"publicDefenderService": {
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
}
}
}
}
Update permitted details of a Public Defender Service provider. Firm type and server-owned identifiers are not amendable through the common provider PATCH operation.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| publicDefenderService | PDSDetailsPatchV2 | false | none | none |
ChambersOfficeCoreDetailsV2
{
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| officeGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
PractitionerOfficeCoreDetailsV2
{
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| officeGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
IntervenedOfficeDetailsIntervenedFlagV2
true
CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”).
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
IntervenedOfficeDetailsIntervenedChangeDateV2
"2019-08-24"
CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12.
TODO: Need better description of this field, any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
IntervenedOfficeDetailsV2
{
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
IntervenedOfficeDetailsPatchV2
{
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| intervenedFlag | IntervenedOfficeDetailsIntervenedFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE11 (this is an enum in CWA “Y”/“N”). TODO: Need better description of this field, any business rules |
| intervenedChangeDate | IntervenedOfficeDetailsIntervenedChangeDateV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE12. TODO: Need better description of this field, any business rules |
FirmIntervenedFlagV2
true
Flag indicating whether firm is under intervention. If true, firmIntervenedDate must also be provided.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Flag indicating whether firm is under intervention. If true, firmIntervenedDate must also be provided. |
FirmIntervenedDateV2
"2019-08-24"
Date when firm was placed under intervention. Must be provided together with firmIntervenedFlag.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | Date when firm was placed under intervention. Must be provided together with firmIntervenedFlag. |
HoldAllPaymentsFlagV2
true
Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
HoldAllPaymentsReasonV2
"string"
Reason for holding all payments. Must be provided together with holdAllPaymentsFlag.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
ReferredToDebtRecoveryFlagV2
true
Flag indicating whether firm has been referred to debt recovery.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Flag indicating whether firm has been referred to debt recovery. |
OfficeAddressPatchV2
{
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
}
Address fields for a PATCH request. All fields are optional — absent or null means
“leave unchanged”. If a field is provided it must be non-blank (minLength: 1).
Mandatory address fields (line1, townOrCity, postcode) cannot be blanked via
a PATCH because null is treated as “leave unchanged” and empty strings are rejected.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| line1 | string¦null | false | none | none |
| line2 | string¦null | false | none | none |
| line3 | string¦null | false | none | none |
| line4 | string¦null | false | none | none |
| townOrCity | string¦null | false | none | none |
| county | string¦null | false | none | none |
| postcode | string¦null | false | none | none |
OfficeAddressV2
{
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| line1 | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE1. TODO: Find out what address info is stored in this attribute |
| line2 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE2. TODO: Find out what address info is stored in this attribute |
| line3 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE3. TODO: Find out what address info is stored in this attribute |
| line4 | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ADDRESS_LINE4. TODO: Find out what address info is stored in this attribute |
| townOrCity | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.CITY. TODO: Any business rules for verifying data |
| county | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.COUNTY. TODO: Any business rules for verifying data |
| postcode | string | true | none | CWA ref: PO_VENDOR_SITES_ALL.ZIP. TODO: Any business rules for verifying data |
OfficePhoneV2
"0113 496 0000"
CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE.
TODO: Any business rules for verifying data. Do we need it as a separate field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
OfficeEmailAddressV2
"user@example.com"
CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(email) | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
OfficeWebsiteV2
"https://www.abc.com"
CWA ref: PO_VENDOR_CONTACTS.URL
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(uri) | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
DXdxNumberV2
"string"
CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6.
TODO: Need better description of this field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
DXdxCentreV2
"string"
CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7.
TODO: Need better description of this field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
DXCreateV2
{
"dxNumber": "string",
"dxCentre": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
DXV2
{
"dxNumber": "string",
"dxCentre": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
DXPatchV2
{
"dxNumber": "string",
"dxCentre": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| dxNumber | DXdxNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE6. TODO: Need better description of this field |
| dxCentre | DXdxCentreV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.ATTRIBUTE7. TODO: Need better description of this field |
VATRegistrationVatNumberV2
"476628407"
CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
VATRegistrationCreateV2
{
"vatNumber": "476628407"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
VATRegistrationV2
{
"vatNumber": "476628407"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| vatNumber | VATRegistrationVatNumberV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.VAT_REGISTRATION_NUM |
PaymentDetailsPaymentMethodV2
"CHECK"
CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD.
TODO: Check the enum values. Any business rules
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | CHECK |
| anonymous | EFT |
PaymentDetailsPaymentHeldFlagV2
true
CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”).
TODO: Check the enum values. Any business rules
When an LSP or Advocate/Barrister office is being deactivated (activeDateTo set) or
reactivated (clearActiveDateTo: true) in the same request, this flag must be included
and set to true (deactivation) or false (reactivation), unless it already holds that
value. The API does not auto-correct this value; see OfficeActiveDateToV2 and
ClearActiveDateToV2.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
PaymentDetailsPaymentHeldReasonV2
"Under investigation"
CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON.
TODO: Check if this is mandatory when paymentHeldFlag=Y
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
PaymentDetailsCreateV2
{
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| bankAccountDetails | BankAccountProviderOfficeCreateV2 | false | none | Only applicable for paymentMethod=EFT.activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.Record that previously had primary flag set must be updated so that activeDateTo is setto new primary record’s activeDateFrom and primary flag is set to false. |
PaymentDetailsCreateOrLinkV2
{
"paymentMethod": "CHECK",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| bankAccountDetails | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | BankAccountProviderOfficeCreateV2 | false | none | Only applicable for paymentMethod=EFT.activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.Record that previously had primary flag set must be updated so that activeDateTo is setto new primary record’s activeDateFrom and primary flag is set to false. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | BankAccountProviderOfficeLinkV2 | false | none | Only applicable for paymentMethod=EFT.activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.Record that previously had primary flag set must be updated so that activeDateTo is setto new primary record’s activeDateFrom and primary flag is set to false.bankAccountGUID can be obtained usingGET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details
|
PaymentDetailsV2
{
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
PaymentDetailsPatchOrLinkV2
{
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation",
"bankAccountDetails": {
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| paymentMethod | PaymentDetailsPaymentMethodV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.EDI_PAYMENT_METHOD. TODO: Check the enum values. Any business rules |
| paymentHeldFlag | PaymentDetailsPaymentHeldFlagV2 | true | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_ALL_PAYMENTS_FLAG (this is an enum in CWA “Y”/“N”). TODO: Check the enum values. Any business rules When an LSP or Advocate/Barrister office is being deactivated ( activeDateTo set) orreactivated ( clearActiveDateTo: true) in the same request, this flag must be includedand set to true (deactivation) or false (reactivation), unless it already holds thatvalue. The API does not auto-correct this value; see OfficeActiveDateToV2 andClearActiveDateToV2. |
| paymentHeldReason | PaymentDetailsPaymentHeldReasonV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.HOLD_REASON. TODO: Check if this is mandatory when paymentHeldFlag=Y |
| bankAccountDetails | any | false | none | none |
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | BankAccountProviderOfficeCreateV2 | false | none | Only applicable for paymentMethod=EFT.activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.Record that previously had primary flag set must be updated so that activeDateTo is setto new primary record’s activeDateFrom and primary flag is set to false. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | BankAccountProviderOfficeLinkV2 | false | none | Only applicable for paymentMethod=EFT.activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.Record that previously had primary flag set must be updated so that activeDateTo is setto new primary record’s activeDateFrom and primary flag is set to false.bankAccountGUID can be obtained usingGET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details
|
BankAccountAccountNameV2
"ABC co (UK) LLP CLIENT A/C 1"
CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
BankAccountSortCodeV2
"000000"
CWA ref: AP_BANK_BRANCHES.BANK_NUM
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
BankAccountAccountNumberV2
"00000000"
CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
BankAccountActiveDateFromV2
"2019-08-24"
CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
BankAccountActiveDateToV2
"2019-08-24"
CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE
Absent from the response for the currently active record (i.e. where the underlying value is null).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
BankAccountPrimaryFlagV2
true
Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections.
If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom.
CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
BankAccountProviderOfficeCreateV2
{
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24"
}
Only applicable for paymentMethod=EFT.
activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.
Record that previously had primary flag set must be updated so that activeDateTo is set
to new primary record’s activeDateFrom and primary flag is set to false.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| activeDateFrom | BankAccountActiveDateFromV2 | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
BankAccountProviderOfficeLinkV2
{
"bankAccountGUID": "123e4567-e89b-12d3-a456-426614174000",
"activeDateFrom": "2019-08-24"
}
Only applicable for paymentMethod=EFT.
activeDateFrom is set to today’s date by default. primaryFlag is set to true by default.
Record that previously had primary flag set must be updated so that activeDateTo is set
to new primary record’s activeDateFrom and primary flag is set to false.
bankAccountGUID can be obtained using
GET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| bankAccountGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
| activeDateFrom | BankAccountActiveDateFromV2 | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
BankAccountV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| » sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| » accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
OfficeBankAccountV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » accountName | BankAccountAccountNameV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NAME |
| » sortCode | BankAccountSortCodeV2 | true | none | CWA ref: AP_BANK_BRANCHES.BANK_NUM |
| » accountNumber | BankAccountAccountNumberV2 | true | none | CWA ref: AP_BANK_ACCOUNTS_ALL.BANK_ACCOUNT_NUM |
| » activeDateFrom | BankAccountActiveDateFromV2 | true | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE |
| » activeDateTo | BankAccountActiveDateToV2 | false | none | CWA ref: AP_BANK_ACCOUNT_USES_ALL.END_DATE Absent from the response for the currently active record (i.e. where the underlying value is null). |
| » primaryFlag | BankAccountPrimaryFlagV2 | true | none | Marks currently active bank account details for given provider office. Bank account details which are not primary are considered historical selections. If this flag is set to true and there is an ‘old’ bank details record that was marked as primary, then the ‘old’ record should be set to old.primary=false and old.activeDateTo=new.activeDateFrom. CWA ref: AP_BANK_ACCOUNT_USES_ALL.PRIMARY_FLAG. |
LiaisonManagerFirstNameV2
"John"
CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
LiaisonManagerLastNameV2
"Smith"
CWA ref: PO_VENDOR_CONTACTS.LAST_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
LiaisonManagerEmailAddressV2
"john.smith@example.com"
CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(email) | false | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
LiaisonManagerPhoneV2
"0113 496 0000"
CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE.
TODO: Any business rules for verifying data. Do we need it as a separate field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
LiaisonManagerActiveDateFromV2
"2019-08-24"
CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
LiaisonManagerActiveDateToV2
"2019-08-24"
CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(date) | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
OfficeLiaisonManagerCreateOrLinkV2
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerCreateV2 | false | none | activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkHeadOfficeV2 | false | none | Applicable only for LSP offices. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the head office. This update only links the data (no duplicate is created). |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkChambersV2 | false | none | Applicable only for Advocate/Barrister. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the Chambers’ office. This update only links the data (no duplicate is created). |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkByGUIDV2 | false | none | Links an existing liaison manager to an office by GUID. Use this when the liaison manager already exists and you want to assign it to an office without creating a duplicate. |
LSPOfficeLiaisonManagerCreateOrLinkV2
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerCreateV2 | false | none | activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkHeadOfficeV2 | false | none | Applicable only for LSP offices. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the head office. This update only links the data (no duplicate is created). |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkByGUIDV2 | false | none | Links an existing liaison manager to an office by GUID. Use this when the liaison manager already exists and you want to assign it to an office without creating a duplicate. |
ChambersOfficeLiaisonManagerCreateOrLinkV2
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerCreateV2 | false | none | activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkByGUIDV2 | false | none | Links an existing liaison manager to an office by GUID. Use this when the liaison manager already exists and you want to assign it to an office without creating a duplicate. |
AdvocateOfficeLiaisonManagerCreateOrLinkV2
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerCreateV2 | false | none | activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkChambersV2 | false | none | Applicable only for Advocate/Barrister. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the Chambers’ office. This update only links the data (no duplicate is created). |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | LiaisonManagerLinkByGUIDV2 | false | none | Links an existing liaison manager to an office by GUID. Use this when the liaison manager already exists and you want to assign it to an office without creating a duplicate. |
LiaisonManagerCreateV2
{
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24"
}
activeDateFrom by default is set to today’s date. Previously ‘active’ liaison manager assignment activeDateTo’s value should be set to activeDateFrom’s date minus one day of the new assignment.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| emailAddress | LiaisonManagerEmailAddressV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| activeDateFrom | LiaisonManagerActiveDateFromV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
LiaisonManagerLinkHeadOfficeV2
{
"useHeadOfficeLiaisonManager": true
}
Applicable only for LSP offices. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the head office. This update only links the data (no duplicate is created).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| useHeadOfficeLiaisonManager | boolean | true | none | Setting this flag to true interlinks liaison manager record from the head office |
LiaisonManagerLinkChambersV2
{
"useChambersLiaisonManager": true
}
Applicable only for Advocate/Barrister. Indicates that new liaison manager assignment should be to the liaison manager that is currently specified at the Chambers’ office. This update only links the data (no duplicate is created).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| useChambersLiaisonManager | boolean | true | none | Setting this flag to true interlinks liaison manager record from the Chambers |
LiaisonManagerLinkedFlagV2
true
Indicates whether this liaison manager entry is specific to given provider or is linked.
If the office is LSP and this flag is set to true it indicates that
useHeadOfficeLiaisonManager option was used to create this entry.
If the office is Advocate/Barrister and this flag is set to true it indicates that
useChambersLiaisonManager option was used to create this entry.
This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | boolean | false | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
ProviderLiaisonManagerV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| » lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| » emailAddress | LiaisonManagerEmailAddressV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| » telephoneNumber | LiaisonManagerPhoneV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
ProviderLiaisonManagerPatchV2
{
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000"
}
Permitted fields for amending a liaison manager. Only emailAddress and telephoneNumber may be amended. The fields guid, firstName, lastName, activeDateFrom and activeDateTo are read-only and will be rejected if provided.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| emailAddress | LiaisonManagerEmailAddressV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| telephoneNumber | LiaisonManagerPhoneV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
LiaisonManagerV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » firstName | LiaisonManagerFirstNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.FIRST_NAME |
| » lastName | LiaisonManagerLastNameV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.LAST_NAME |
| » emailAddress | LiaisonManagerEmailAddressV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.EMAIL_ADDRESS |
| » telephoneNumber | LiaisonManagerPhoneV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.AREA_CODE + PO_VENDOR_CONTACTS.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| » activeDateFrom | LiaisonManagerActiveDateFromV2 | true | none | CWA ref: PO_VENDOR_CONTACTS.CREATION_DATE |
| » activeDateTo | LiaisonManagerActiveDateToV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.INACTIVE_DATE |
| » linkedFlag | LiaisonManagerLinkedFlagV2 | true | none | Indicates whether this liaison manager entry is specific to given provider or is linked. If the office is LSP and this flag is set to true it indicates that useHeadOfficeLiaisonManager option was used to create this entry.If the office is Advocate/Barrister and this flag is set to true it indicates that useChambersLiaisonManager option was used to create this entry.This flag is informational only; changes to the parent entity’s liaison manager do not cascade to offices where this flag is set. |
LiaisonManagerLinkByGUIDV2
{
"liaisonManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Links an existing liaison manager to an office by GUID. Use this when the liaison manager already exists and you want to assign it to an office without creating a duplicate.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| liaisonManagerGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
ContractManagerProviderPatchV2
{
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Exactly one of contractManagerGUID, useDefaultContractManager or
useHeadOfficeContractManager must be provided. useHeadOfficeContractManager assigns
whichever contract manager is currently linked to the provider’s head office and is
applicable for LSP child offices only.
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkByGUIDV2 | false | none | Links an existing contract manager to an office by GUID. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkDefaultV2 | false | none | Indicates that the system default contract manager should be assigned. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkHeadOfficeV2 | false | none | Applicable only for LSP Child Offices. Indicates that the new contract manager assignment should be to the contract manager that is currently specified at the head office (Firm Contract Manager trickle-down). This update only links the data (no duplicate is created). Rejected if the head office has no contract manager assigned. |
ContractManagerLinkByGUIDV2
{
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Links an existing contract manager to an office by GUID.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| contractManagerGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
ContractManagerLinkDefaultV2
{
"useDefaultContractManager": true
}
Indicates that the system default contract manager should be assigned.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| useDefaultContractManager | boolean | true | none | Setting this flag to true assigns the system default contract manager. |
ContractManagerLinkHeadOfficeV2
{
"useHeadOfficeContractManager": true
}
Applicable only for LSP Child Offices. Indicates that the new contract manager assignment should be to the contract manager that is currently specified at the head office (Firm Contract Manager trickle-down). This update only links the data (no duplicate is created). Rejected if the head office has no contract manager assigned.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| useHeadOfficeContractManager | boolean | true | none | Setting this flag to true interlinks the contract manager record from the head office |
LSPOfficeContractManagerLinkV2
{
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Exactly one of contractManagerGUID, useDefaultContractManager or
useHeadOfficeContractManager must be provided when creating an LSP Child Office.
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkByGUIDV2 | false | none | Links an existing contract manager to an office by GUID. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkDefaultV2 | false | none | Indicates that the system default contract manager should be assigned. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkHeadOfficeV2 | false | none | Applicable only for LSP Child Offices. Indicates that the new contract manager assignment should be to the contract manager that is currently specified at the head office (Firm Contract Manager trickle-down). This update only links the data (no duplicate is created). Rejected if the head office has no contract manager assigned. |
HeadOfficeContractManagerLinkV2
{
"contractManagerGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Exactly one of contractManagerGUID or useDefaultContractManager must be provided when
creating an LSP or Chambers head office. useHeadOfficeContractManager is not applicable
here since this office is itself the head office.
Properties
oneOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkByGUIDV2 | false | none | Links an existing contract manager to an office by GUID. |
xor
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ContractManagerLinkDefaultV2 | false | none | Indicates that the system default contract manager should be assigned. |
OfficePractitionerV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"practitioner": {
"parentFirms": [
{
"parentGUID": "123e4567-e89b-12d3-a456-426614174000",
"parentFirmNumber": "3856",
"parentFirmType": "Legal Services Provider"
}
],
"advocateType": "Advocate",
"office": {
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24"
},
"advocate": {
"advocateLevel": "Junior",
"solicitorRegulationAuthorityRollNumber": "*TODO: Provide example*"
}
}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ProviderBaseV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ProviderPractitionerV2 | false | none | Provider of firmType=Advocate
|
ContractManagerContractManagerIdV2
"*TODO: Provide example*"
CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4)
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
ContractManagerFirstNameV2
"John"
CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
ContractManagerLastNameV2
"Smith"
CWA ref: PER_ALL_PEOPLE_F.LAST_NAME
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
ContractManagerEmailAddressV2
"john.smith@example.com"
CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string(email) | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
ContractManagerV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| » firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| » lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2 | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
OfficeContractManagerV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » contractManagerId | ContractManagerContractManagerIdV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.PERSON_ID (for provider firms’ offices ID is stored in PO_VENDOR_SITES_ALL.ATTRIBUTE4) |
| » firstName | ContractManagerFirstNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.FIRST_NAME |
| » lastName | ContractManagerLastNameV2 | true | none | CWA ref: PER_ALL_PEOPLE_F.LAST_NAME |
| ContractManagerEmailAddressV2 | false | none | CWA ref: PER_ALL_PEOPLE_F.EMAIL_ADDRESS |
PaginatedSearchV2
{
"searchCriteria": {
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
},
"pagination": {
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
},
"sort": {
"field": "sortByOption",
"direction": "asc"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| searchCriteria | SearchCriteriaV2 | true | none | none |
| pagination | PaginationV2 | true | none | none |
| sort | SortV2 | false | none | none |
SearchCriteriaV2
{
"criteria": [
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| criteria | [SearchCriterionV2] | false | none | none |
SearchCriterionV2
{
"filter": "guid",
"values": [
"123e4567-e89b-12d3-a456-426614174000"
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| filter | string | false | none | Filter key |
| values | [string] | false | none | none |
PaginationV2
{
"currentPage": 2,
"pageSize": 10,
"totalPages": 5,
"totalItems": 123
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| currentPage | integer | false | none | Page index denoting the current page index for response, starting from 0 |
| pageSize | integer | false | none | Page size used for this search |
| totalPages | integer | false | none | Total number of pages |
| totalItems | integer(int64) | false | none | Total number of records for given search request |
SortV2
{
"field": "sortByOption",
"direction": "asc"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| field | string | false | none | none |
| direction | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| direction | asc |
| direction | desc |
LinksV2
{
"self": "https://example.com/example?page=2&pageSize=10",
"next": "https://example.com/example?page=3&pageSize=10",
"prev": "https://example.com/example?page=1&pageSize=10",
"first": "https://example.com/example?page=1&pageSize=10",
"last": "https://example.com/example?page=5&pageSize=10"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| self | string(uri) | false | none | none |
| next | string(uri) | false | none | none |
| prev | string(uri) | false | none | none |
| first | string(uri) | false | none | none |
| last | string(uri) | false | none | none |
ProviderFirmChangedSnapshotEventV2Payload
{
"providerFirm": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
},
"bankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000"
}
],
"offices": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"liaisonManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
}
],
"contractManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
],
"officeBankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
]
}
]
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| providerFirm | ProviderV2 | false | none | none |
| bankDetails | [BankAccountV2] | false | none | none |
| offices | [allOf] | false | none | none |
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | OfficeV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| » anonymous | object | false | none | none |
| »» liaisonManagers | [LiaisonManagerV2] | true | none | none |
| »» contractManagers | [ContractManagerV2] | true | none | none |
| »» officeBankDetails | [OfficeBankAccountV2] | false | none | none |
EventTypeV2
"ProviderFirmChangedSnapshotEvent"
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | ProviderFirmChangedSnapshotEvent |
EventSourceV2
"apiV2"
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | string | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| anonymous | apiV2 |
EventHeaderV2
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"eventSource": "apiV2",
"eventType": "ProviderFirmChangedSnapshotEvent",
"correlationId": "string",
"traceId": "string"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | BaseEntityV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » eventSource | EventSourceV2 | false | none | none |
| » eventType | EventTypeV2 | false | none | none |
| » correlationId | string | false | none | none |
| » traceId | string | false | none | none |
EventV2
{
"eventHeader": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"eventSource": "apiV2",
"eventType": "ProviderFirmChangedSnapshotEvent",
"correlationId": "string",
"traceId": "string"
},
"eventPayload": {
"providerFirm": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmNumber": "3856",
"firmType": "Legal Services Provider",
"name": "Legal Services Co.",
"legalServicesProvider": {
"constitutionalStatus": "Partnership",
"notForProfitOrganisationFlag": true,
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000",
"headOfficeFlag": true,
"activeDateFrom": "2019-08-24",
"liaisonManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
},
"contractManager": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
},
"bankAccount": {
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
}
}
},
"bankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000"
}
],
"offices": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"payment": {
"paymentMethod": "CHECK",
"paymentHeldFlag": true,
"paymentHeldReason": "Under investigation"
},
"liaisonManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"firstName": "John",
"lastName": "Smith",
"emailAddress": "john.smith@example.com",
"telephoneNumber": "0113 496 0000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"linkedFlag": true
}
],
"contractManagers": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"contractManagerId": "*TODO: Provide example*",
"firstName": "John",
"lastName": "Smith",
"email": "john.smith@example.com"
}
],
"officeBankDetails": [
{
"guid": "123e4567-e89b-12d3-a456-426614174000",
"version": 12,
"createdBy": "john.smith.42",
"createdTimestamp": "2025-09-25T09:30:00Z",
"lastUpdatedBy": "john.doe.24",
"lastUpdatedTimestamp": "2025-09-26T12:30:00Z",
"accountName": "ABC co (UK) LLP CLIENT A/C 1",
"sortCode": "000000",
"accountNumber": "00000000",
"activeDateFrom": "2019-08-24",
"activeDateTo": "2019-08-24",
"primaryFlag": true
}
]
}
]
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| eventHeader | EventHeaderV2 | true | none | none |
| eventPayload | ProviderFirmChangedSnapshotEventV2Payload | true | none | none |
PDSOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"headOfficeFlag": true,
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| firmType | ProviderFirmTypeV2 | true | none | Type of the provider firm. Barristers are entered as Advocates. Public Defender Service is a distinct provider firm type. CWA ref: PO_VENDORS.ATTRIBUTE4. TODO: Check if these are all valid types |
| accountNumber | OfficeAccountNumberV2 | true | none | Unique provider office identifier. CWA ref: PO_VENDOR_SITES_ALL.VENDOR_SITE_CODE |
| headOfficeFlag | boolean | true | none | Whether this office is the provider’s head office. |
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsV2 | false | none | none |
| holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| address | OfficeAddressV2 | true | none | none |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |
PDSHeadOfficeDetailsV2
{
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"headOfficeFlag": true,
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000"
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | PDSOfficeDetailsV2 | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » officeGUID | BaseEntityGUIDV2 | true | none | GUID is the primary key for entity |
PDSDetailsV2
{
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"headOfficeFlag": true,
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| constitutionalStatus | PDSConstitutionalStatusV2 | true | none | Constitutional status for a Public Defender Service provider. |
| indemnityReceivedDate | LSPDetailsIndemnityReceivedDateV2 | false | none |
TODO: Need better description of this field CWA ref: PO_VENDORS.ATTRIBUTE2. |
| companiesHouseNumber | LSPDetailsCompaniesHouseNumberV2 | false | none |
TODO: Need better description of this field WARNING: same field is used by Advocates for Bar Council or SRA roll number. CWA ref: PO_VENDORS.ATTRIBUTE11 |
| headOffice | PDSHeadOfficeDetailsV2 | true | none | none |
ProviderPDSV2
{
"publicDefenderService": {
"constitutionalStatus": "Government Funded Organisation",
"indemnityReceivedDate": "2019-08-24",
"companiesHouseNumber": "*TODO: Provide example*",
"headOffice": {
"firmType": "Legal Services Provider",
"accountNumber": "0Q731M",
"headOfficeFlag": true,
"activeDateTo": "2019-08-24",
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
},
"officeGUID": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| publicDefenderService | PDSDetailsV2 | true | none | none |
PDSHeadOfficeDetailsPatchV2
{
"activeDateTo": "2019-08-24",
"clearActiveDateTo": true,
"debtRecoveryFlag": true,
"falseBalanceFlag": true,
"intervened": {
"intervenedFlag": true,
"intervenedChangeDate": "2019-08-24"
},
"holdAllPaymentsFlag": true,
"holdAllPaymentsReason": "string",
"address": {
"line1": "JUSTICE HOUSE",
"line2": "1 COURT LANE",
"line3": "string",
"line4": "string",
"townOrCity": "LEEDS",
"county": "string",
"postcode": "LS1 1AA"
},
"telephoneNumber": "0113 496 0000",
"emailAddress": "user@example.com",
"website": "https://www.abc.com",
"dxDetails": {
"dxNumber": "string",
"dxCentre": "string"
},
"vatRegistration": {
"vatNumber": "476628407"
}
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| activeDateTo | OfficeActiveDateToV2 | false | none | End date of activity. When activeDateTo is set on the head office for LSP all child offices that do not haveactiveDateTo set should be updated to the same value (i.e. deactivating head officedeactivates all active child offices). When activeDateTo is set on the Chambers’ office all assigned advocates/barristers thatdo not have activeDateTo set should be updated to the same value (i.e. deactivatinga Chambers’ office deactivates all active advocate/barrister offices). When activeDateTo is set on an LSP office or an Advocate/Barrister office, thedebtRecoveryFlag should be set to false.When activeDateTo is set on an LSP office or an Advocate/Barrister office that waspreviously active (deactivation), payment.paymentHeldFlag must be included and set totrue in the same request, unless it is already true. The API does not auto-correctthis value; the request is rejected if it is omitted or false.CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE |
| clearActiveDateTo | ClearActiveDateToV2 | false | none | When true, clears activeDateTo back to null, re-activating the office.This field exists because a PATCH request cannot otherwise distinguish an explicit activeDateTo: null (meaning “clear the value”) from the field being absent (meaning“no change”). Must not be combined with activeDateTo in the same request.On an LSP or Advocate/Barrister office that was previously inactive, reactivating in this way requires falseBalanceFlag and payment.paymentHeldFlag to both be includedand set to false in the same request, unless each is already false. The API does notauto-correct these values; the request is rejected if either is omitted or true. |
| debtRecoveryFlag | DebtRecoveryFlagV2 | false | none | Can only be set to true if the firm office is still active. If office is made inactive this flag should be reset to false. CWA ref: via fake contract manager. |
| falseBalanceFlag | FalseBalanceFlagV2 | false | none | Can only be set to true if the firm office is inactive. If the office is being made active in the same request ( clearActiveDateTo: true), thisflag must also be explicitly set to false in that request, unless it is already false.The API does not auto-correct this value. CWA ref: via fake contract manager. |
| intervened | IntervenedOfficeDetailsPatchV2 | false | none | none |
| holdAllPaymentsFlag | HoldAllPaymentsFlagV2 | false | none | Flag indicating whether all payments should be held. If true, holdAllPaymentsReason must also be provided. |
| holdAllPaymentsReason | HoldAllPaymentsReasonV2 | false | none | Reason for holding all payments. Must be provided together with holdAllPaymentsFlag. |
| address | OfficeAddressPatchV2 | false | none | Address fields for a PATCH request. All fields are optional — absent or null means “leave unchanged”. If a field is provided it must be non-blank ( minLength: 1).Mandatory address fields ( line1, townOrCity, postcode) cannot be blanked viaa PATCH because null is treated as “leave unchanged” and empty strings are rejected. |
| telephoneNumber | OfficePhoneV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.AREA_CODE + PO_VENDOR_SITES_ALL.PHONE. TODO: Any business rules for verifying data. Do we need it as a separate field |
| emailAddress | OfficeEmailAddressV2 | false | none | CWA ref: PO_VENDOR_SITES_ALL.EMAIL_ADDRESS |
| website | OfficeWebsiteV2 | false | none | CWA ref: PO_VENDOR_CONTACTS.URL |
| dxDetails | DXPatchV2 | false | none | none |
| vatRegistration | VATRegistrationV2 | false | none | none |