Skip to main content

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:

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 the PDA_ACCESS application role from the JWT roles claim.

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
eventGUID path string true Filter by event GUID

Detailed descriptions

traceparent: W3C Trace Context header used for distributed tracing. Format: 00---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 set
to 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 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
»»»»»»»»» 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), 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.
»»»»»»»»» 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) 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.
»»»»»»»»»» 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
»»»»»»»»»»» email 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 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

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 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

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 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
»»»»»»»»» 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), 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.
»»»»»»»»» 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 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
»»»»»»» 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 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
»»»»»»» 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), 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.
»»»»»»» 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
»»»»»»» email 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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
»»»» email 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
body body ProviderCreateV2 true none

Detailed descriptions

traceparent: W3C Trace Context header used for distributed tracing. Format: 00---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 set
to 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 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
»»»»»»»» 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), 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.
»»»»»»»» 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) 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.
»»»»»»»»» 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
»»»»»»»»»» email 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 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

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 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

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 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
»»»»»»»» 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), 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.
»»»»»»»» 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
body body PublicDefenderServiceCreateV2 true none

Detailed descriptions

traceparent: W3C Trace Context header used for distributed tracing. Format: 00---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 set
to 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 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
»»»»»»» 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), 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.
»»»»»»» 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) 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.
»»»»»»»» 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
»»»»»»»»» email 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 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

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 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

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 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
»»»»»»» 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), 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.
»»»»»»» 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 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
»»»»» 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), 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.
»»»»» 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) 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.
»»»»»» 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 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
»»»»» 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 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
»»»»» 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), 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.
»»»»» 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 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
»»»»» 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), 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.
»»»»» 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 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
»»»»» 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), 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.
»»»»» 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) 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.
»»»»»» 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 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
»»»»» 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 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
»»»»» 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), 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.
»»»»» 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 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
»»»»» 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), 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.
»»»»» 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 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
»»»» 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), 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.
»»»» 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) 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.
»»»»» 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 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
»»»» 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 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
»»»» 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), 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.
»»»» 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 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
»»»» 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), 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.
»»»» 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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
»»»» email 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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 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

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
body body NovationCreateV2 true none

Detailed descriptions

traceparent: W3C Trace Context header used for distributed tracing. Format: 00---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
novationGUID path string(uuid) true The GUID of the Novation.

Detailed descriptions

traceparent: W3C Trace Context header used for distributed tracing. Format: 00---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0
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---. Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-0

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 set
to 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 set
to 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 set
to 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 set
to 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 when
creating an LSP or Chambers head office. useHeadOfficeContractManager is not applicable
here 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 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
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 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.
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), 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.
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 via
a 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 when
creating an LSP or Chambers head office. useHeadOfficeContractManager is not applicable
here 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 or
useHeadOfficeContractManager 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 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

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 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.

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), 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.

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 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
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), 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.
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 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
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 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
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), 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.
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 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
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 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.
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), 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.
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 via
a 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 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
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 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.
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 via
a 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 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
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 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.
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), 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.
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 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
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 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.
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), 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.
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 via
a 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 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

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 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

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) 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.

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 set
to 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 set
to 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 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

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) 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.
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) 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.
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 set
to 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 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

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
» email 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
» email 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 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
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), 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.
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 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
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 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.
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), 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.
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 via
a 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