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 solicitors, chambers, 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.

Authentication

Scope Scope Description
api:///access_as_user Access the API as an authenticated user

Events

getProviderEvents

Code samples

# You can also use wget
curl -X GET /provider-events \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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 Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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 /provider-events/{eventGUID} \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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
x-correlation-id header string false Correlation ID for tracing requests
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": "ABCD-DEFG-1234-5678",
      "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": "ABCD-DEFG-1234-5678",
        "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": {
            "officeGUID": "ABCD-DEFG-1234-5678",
            "accountNumber": "0Q731M",
            "activeDateTo": "2019-08-24"
          }
        }
      },
      "bankDetails": [
        {
          "guid": "ABCD-DEFG-1234-5678",
          "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": "601111",
          "accountNumber": "06805333"
        }
      ],
      "offices": [
        {
          "guid": "ABCD-DEFG-1234-5678",
          "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": "OLD COUNTY COURT",
            "line2": "56 WESTGATE ROAD",
            "line3": "string",
            "line4": "string",
            "townOrCity": "NEWCASTLE-UPON-TYNE",
            "county": "string",
            "postcode": "NE1 5XU"
          },
          "telephoneNumber": "0121 232 1111",
          "emailAddress": "user@example.com",
          "website": "www.abc.com",
          "dxDetails": {
            "dxNumber": "string",
            "dxCentre": "string"
          },
          "vatRegistration": {
            "vatNumber": "476628407"
          },
          "payment": {
            "paymentMethod": "CHECK",
            "paymentHeldFlag": true,
            "paymentHeldReason": "Under investigation"
          },
          "liaisonManagers": [
            {
              "guid": "ABCD-DEFG-1234-5678",
              "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": "0121 232 1111",
              "activeDateFrom": "2019-08-24",
              "activeDateTo": "2019-08-24",
              "linkedFlag": true
            }
          ],
          "contractManagers": [
            {
              "guid": "ABCD-DEFG-1234-5678",
              "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": "ABCD-DEFG-1234-5678",
              "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": "601111",
              "accountNumber": "06805333",
              "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(guid) true none GUID is the primary key for entity
»»»» version number 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»»» firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11
»»»»»»» headOffice LSPHeadOfficeDetailsV2 true none none
»»»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

xor

Name Type Required Restrictions Description
»»»»» anonymous ProviderChambersV2 false none Provider of firmType=Chambers
»»»»»» chambers ChamberDetailsV2 true none none
»»»»»»» office ChambersOfficeCoreDetailsV2 true none none
»»»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»»»»»»» parentFirmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

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
»»»»»»» firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» liaisonManagers [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
»»»»»»» 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.

Note that if this attribute is set to true then updates at the parent entity should cascade to create new linked assignment.

continued

Name Type Required Restrictions Description
»»»»» 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

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.

Enumerated Values

Property Value
eventSource apiV2
eventType ProviderFirmChangedSnapshotEvent
firmType Legal Services Provider
firmType Chambers
firmType Advocate
constitutionalStatus Partnership
constitutionalStatus Limited company
constitutionalStatus Sole practitioner
constitutionalStatus Limited Liability Partnership (LLP)
constitutionalStatus Charity
constitutionalStatus Government Funded Organisation
parentFirmType Legal Services Provider
parentFirmType Chambers
parentFirmType Advocate
advocateType Advocate
advocateType Barrister
advocateLevel Junior
advocateLevel KC
barristerLevel Junior
barristerLevel KC
firmType Legal Services Provider
firmType Chambers
firmType Advocate
paymentMethod CHECK
paymentMethod EFT
firmType Legal Services Provider
firmType Chambers
firmType Advocate
firmType Legal Services Provider
firmType Chambers
firmType Advocate

Contract Managers

getProviderContractManagers

Code samples

# You can also use wget
curl -X GET /provider-contract-managers \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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 /provider-firms \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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": "601111",
        "accountNumber": "06805333",
        "activeDateFrom": "2019-08-24"
      }
    },
    "address": {
      "line1": "OLD COUNTY COURT",
      "line2": "56 WESTGATE ROAD",
      "line3": "string",
      "line4": "string",
      "townOrCity": "NEWCASTLE-UPON-TYNE",
      "county": "string",
      "postcode": "NE1 5XU"
    },
    "telephoneNumber": "0121 232 1111",
    "emailAddress": "user@example.com",
    "website": "www.abc.com",
    "dxDetails": {
      "dxNumber": "string",
      "dxCentre": "string"
    },
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "activeDateFrom": "2019-08-24"
    },
    "contractManager": {
      "contractManagerGuid": "ABCD-DEFG-1234-5678"
    }
  }
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856"
  }
}

Responses

Status Meaning Description Schema
201 Created Provider created 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live

getProviderFirms

Code samples

# You can also use wget
curl -X GET /provider-firms \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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
x-correlation-id header string false Correlation ID for tracing requests
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 provider number
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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

Example responses

200 Response

{
  "data": {
    "content": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": {
            "officeGUID": "ABCD-DEFG-1234-5678",
            "accountNumber": "0Q731M",
            "activeDateTo": "2019-08-24"
          }
        }
      }
    ],
    "metadata": {
      "searchCriteria": {
        "criteria": [
          {
            "filter": "guid",
            "values": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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(guid) true none GUID is the primary key for entity
»»»» version number 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»» firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11
»»»»»» headOffice LSPHeadOfficeDetailsV2 true none none
»»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

xor

Name Type Required Restrictions Description
»»»» anonymous ProviderChambersV2 false none Provider of firmType=Chambers
»»»»» chambers ChamberDetailsV2 true none none
»»»»»» office ChambersOfficeCoreDetailsV2 true none none
»»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»»»»»» parentFirmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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
constitutionalStatus Partnership
constitutionalStatus Limited company
constitutionalStatus Sole practitioner
constitutionalStatus Limited Liability Partnership (LLP)
constitutionalStatus Charity
constitutionalStatus Government Funded Organisation
parentFirmType Legal Services Provider
parentFirmType Chambers
parentFirmType Advocate
advocateType Advocate
advocateType Barrister
advocateLevel Junior
advocateLevel KC
barristerLevel Junior
barristerLevel KC
direction asc
direction desc

getProviderFirmByGUIDorFirmNumber

Code samples

# You can also use wget
curl -X GET /provider-firms/{providerFirmGUIDorFirmNumber} \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

GET /provider-firms/{providerFirmGUIDorFirmNumber}

Retrieve provider details by GUID

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
x-correlation-id header string false Correlation ID for tracing requests
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": "ABCD-DEFG-1234-5678",
    "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": {
        "officeGUID": "ABCD-DEFG-1234-5678",
        "accountNumber": "0Q731M",
        "activeDateTo": "2019-08-24"
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»» version number 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»» firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11
»»»»» headOffice LSPHeadOfficeDetailsV2 true none none
»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

xor

Name Type Required Restrictions Description
»»» anonymous ProviderChambersV2 false none Provider of firmType=Chambers
»»»» chambers ChamberDetailsV2 true none none
»»»»» office ChambersOfficeCoreDetailsV2 true none none
»»»»»» officeGUID BaseEntityGUIDV2(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»»»»» parentFirmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

Enumerated Values

Property Value
firmType Legal Services Provider
firmType Chambers
firmType Advocate
constitutionalStatus Partnership
constitutionalStatus Limited company
constitutionalStatus Sole practitioner
constitutionalStatus Limited Liability Partnership (LLP)
constitutionalStatus Charity
constitutionalStatus Government Funded Organisation
parentFirmType Legal Services Provider
parentFirmType Chambers
parentFirmType Advocate
advocateType Advocate
advocateType Barrister
advocateLevel Junior
advocateLevel KC
barristerLevel Junior
barristerLevel KC

updateProviderFirm

Code samples

# You can also use wget
curl -X PATCH /provider-firms/{providerFirmGUIDorFirmNumber} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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 basic. 4) Updating Barrister’s or Advocate’s basic details 5) Changing parent firm of a Barrister or an Advocate. Note that changing parent chamber 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.

Body parameter

{
  "name": "Legal Services Co.",
  "legalServicesProvider": {
    "constitutionalStatus": "Partnership",
    "indemnityReceivedDate": "2019-08-24",
    "companiesHouseNumber": "`TODO: provide example`",
    "headOffice": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M"
    }
  }
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856"
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live

Provider Firm Bank Accounts

getProviderFirmBankAccounts

Code samples

# You can also use wget
curl -X GET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

GET /provider-firms/{providerFirmGUIDorFirmNumber}/bank-details

Retrieve a list of provider bank accounts with optional filters

Retrieve bank account details for a given provider.

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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": "601111",
        "accountNumber": "06805333"
      }
    ],
    "metadata": {
      "searchCriteria": {
        "criteria": [
          {
            "filter": "guid",
            "values": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/bank-details \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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.

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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

bankAccountNumber: Partial text search by bank account number

Example responses

200 Response

{
  "data": {
    "content": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": "601111",
        "accountNumber": "06805333",
        "activeDateFrom": "2019-08-24",
        "activeDateTo": "2019-08-24",
        "primaryFlag": true
      }
    ],
    "metadata": {
      "searchCriteria": {
        "criteria": [
          {
            "filter": "guid",
            "values": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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": "601111",
      "accountNumber": "06805333",
      "activeDateFrom": "2019-08-24"
    }
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "www.abc.com",
  "dxDetails": {
    "dxNumber": "string",
    "dxCentre": "string"
  },
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "activeDateFrom": "2019-08-24"
  },
  "contractManager": {
    "contractManagerGuid": "ABCD-DEFG-1234-5678"
  }
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856",
    "officeGUID": "ABCD-DEFG-1234-5678",
    "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 Provider 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»» officeGUID BaseEntityGUIDV2(guid) 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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=12345&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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": "OLD COUNTY COURT",
          "line2": "56 WESTGATE ROAD",
          "line3": "string",
          "line4": "string",
          "townOrCity": "NEWCASTLE-UPON-TYNE",
          "county": "string",
          "postcode": "NE1 5XU"
        },
        "telephoneNumber": "0121 232 1111",
        "emailAddress": "user@example.com",
        "website": "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": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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
paymentMethod CHECK
paymentMethod EFT
firmType Legal Services Provider
firmType Chambers
firmType Advocate
firmType Legal Services Provider
firmType Chambers
firmType Advocate
direction asc
direction desc

getOffices

Code samples

# You can also use wget
curl -X GET /provider-firms-offices \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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 using when only officeGUID or officeCode is known.

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": "OLD COUNTY COURT",
          "line2": "56 WESTGATE ROAD",
          "line3": "string",
          "line4": "string",
          "townOrCity": "NEWCASTLE-UPON-TYNE",
          "county": "string",
          "postcode": "NE1 5XU"
        },
        "telephoneNumber": "0121 232 1111",
        "emailAddress": "user@example.com",
        "website": "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": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/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(guid) true none GUID is the primary key for entity
»»»» version number 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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
paymentMethod CHECK
paymentMethod EFT
firmType Legal Services Provider
firmType Chambers
firmType Advocate
firmType Legal Services Provider
firmType Chambers
firmType Advocate
direction asc
direction desc

getProviderFirmOfficeByGUID

Code samples

# You can also use wget
curl -X GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode} \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}

Retrieve provider office details by GUID

Retrieve provider office details.

Use cases: 1) Retrieve office details by GUID or office code

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

200 Response

{
  "data": {
    "guid": "ABCD-DEFG-1234-5678",
    "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": "OLD COUNTY COURT",
      "line2": "56 WESTGATE ROAD",
      "line3": "string",
      "line4": "string",
      "townOrCity": "NEWCASTLE-UPON-TYNE",
      "county": "string",
      "postcode": "NE1 5XU"
    },
    "telephoneNumber": "0121 232 1111",
    "emailAddress": "user@example.com",
    "website": "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 Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»» version number 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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

Enumerated Values

Property Value
firmType Legal Services Provider
firmType Chambers
firmType Advocate
paymentMethod CHECK
paymentMethod EFT
firmType Legal Services Provider
firmType Chambers
firmType Advocate
firmType Legal Services Provider
firmType Chambers
firmType Advocate

updateProviderFirmOffice

Code samples

# You can also use wget
curl -X PATCH /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

PATCH /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}

Update provider office details

Update provider office details.

Note that firmType=Advocate can’t patch Chamber 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. Similarly if the office is a Chambers’ office , activeDateTo should be set on all Advocate/Barrister offices which are not yet de-activated. 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 office is made active this flag should be reset to false.

Body parameter

{
  "activeDateTo": "2019-08-24",
  "debtRecoveryFlag": true,
  "falseBalanceFlag": true,
  "intervened": {
    "intervenedFlag": true,
    "intervenedChangeDate": "2019-08-24"
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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": "601111",
      "accountNumber": "06805333",
      "activeDateFrom": "2019-08-24"
    }
  }
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

200 Response

{
  "data": {
    "providerFirmGUID": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856",
    "officeGUID": "ABCD-DEFG-1234-5678",
    "officeCode": "0Q731M"
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»» officeGUID BaseEntityGUIDV2(guid) 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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. 3) Create a new Liaison manager entry specific to Advocate/Barrister for a given Chambers office. 4) Choose to use Chambers’ office liaison manager for given Advocate/Barrister.

Body parameter

{
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@example.com",
  "telephoneNumber": "0121 232 1111",
  "activeDateFrom": "2019-08-24"
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

201 Response

{
  "data": {
    "providerFirmGUID": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856",
    "officeGUID": "ABCD-DEFG-1234-5678",
    "officeCode": "0Q731M",
    "liaisonManagerGUID": "ABCD-DEFG-1234-5678"
  }
}

Responses

Status Meaning Description Schema
201 Created Office created successfully Inline
400 Bad Request Invalid input BadRequestError
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider firm or office 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»» officeGUID BaseEntityGUIDV2(guid) 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(guid) false none GUID is the primary key for entity

getProviderFirmOfficeLiaisonManagers

Code samples

# You can also use wget
curl -X GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/liaison-managers \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

200 Response

{
  "data": {
    "content": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": "0121 232 1111",
        "activeDateFrom": "2019-08-24",
        "activeDateTo": "2019-08-24",
        "linkedFlag": true
      }
    ],
    "metadata": {
      "searchCriteria": {
        "criteria": [
          {
            "filter": "guid",
            "values": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/example?page=5&pageSize=10"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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.

Note that if this attribute is set to true then updates at the parent entity should cascade to create new linked assignment.

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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

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 LSP’s.

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": "ABCD-DEFG-1234-5678"
}

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

201 Response

{
  "data": {
    "providerFirmGUID": "ABCD-DEFG-1234-5678",
    "providerFirmNumber": "3856",
    "officeGUID": "ABCD-DEFG-1234-5678",
    "officeCode": "0Q731M",
    "contractManagerId": "string"
  }
}

Responses

Status Meaning Description Schema
201 Created Office created 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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»» officeGUID BaseEntityGUIDV2(guid) 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 /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

GET /provider-firms/{providerFirmGUIDorFirmNumber}/offices/{officeGUIDorCode}/contract-managers

Retrieve contract managers for a given office

Retrieve provider office contract managers. Applicable only for LSP’s.

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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).

officeGUIDorCode: GUID of the provider-office link (not of the underlying office record), or the office code (unique account number).

Example responses

200 Response

{
  "data": {
    "content": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/example?page=5&pageSize=10"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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

Chamber Office Practitioners

getProviderFirmOfficePractitioners

Code samples

# You can also use wget
curl -X GET /provider-firms/{providerFirmGUIDorFirmNumber}/practitioners \
  -H 'Accept: application/json' \
  -H 'x-correlation-id: string' \
  -H 'traceparent: string' \
  -H 'Authorization: Bearer {access-token}'

GET /provider-firms/{providerFirmGUIDorFirmNumber}/practitioners

Retrieve practitioners for a given chamber office

Retrieve chamber office 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 Chamber, use the PATCH /provider-firms?providerFirmGUIDorFirmNumber=ABC to change parent firms.

Use cases: 1) List all Advocates and Barristers assigned to given Chamber.

Parameters

Name In Type Required Description
x-correlation-id header string false Correlation ID for tracing requests
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 number false Page index for given request (start from 0, default is 0)
pageSize query number 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": "ABCD-DEFG-1234-5678",
        "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": "ABCD-DEFG-1234-5678",
              "parentFirmNumber": "3856",
              "parentFirmType": "Legal Services Provider"
            }
          ],
          "advocateType": "Advocate",
          "office": {
            "officeGUID": "ABCD-DEFG-1234-5678",
            "accountNumber": "0Q731M",
            "activeDateTo": "2019-08-24"
          },
          "advocate": {
            "advocateLevel": "Junior",
            "solicitorRegulationAuthorityRollNumber": "`TODO: provide example`"
          }
        }
      }
    ],
    "metadata": {
      "searchCriteria": {
        "criteria": [
          {
            "filter": "guid",
            "values": [
              "ABCD-EFGH-1234-5678"
            ]
          }
        ]
      },
      "pagination": {
        "currentPage": 2,
        "pageSize": 10,
        "totalPages": 5,
        "totalItems": 123
      },
      "sort": {
        "field": "sortByOption",
        "direction": "asc"
      }
    },
    "links": {
      "self": "/example?page=2&pageSize=10",
      "next": "/example?page=3&pageSize=10",
      "prev": "/example?page=1&pageSize=10",
      "first": "/example?page=1&pageSize=10",
      "last": "/example?page=5&pageSize=10"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Provider details retrieved successfully Inline
403 Forbidden Forbidden ForbiddenError
404 Not Found Provider 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(guid) true none GUID is the primary key for entity
»»»» version number 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»» firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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(guid) 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
»»»»»»» parentFirmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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(guid) 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 number false none Page index denoting the current page index for response, starting from 0
»»»» pageSize number false none Page size used for this search
»»»» totalPages number false none Total number of pages
»»»» totalItems number 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
parentFirmType Legal Services Provider
parentFirmType Chambers
parentFirmType Advocate
advocateType Advocate
advocateType Barrister
advocateLevel Junior
advocateLevel KC
barristerLevel Junior
barristerLevel KC
direction asc
direction desc

Schemas

BaseEntityGUIDV2

"ABCD-DEFG-1234-5678"

GUID is the primary key for entity

Properties

Name Type Required Restrictions Description
anonymous string(guid) false none GUID is the primary key for entity

BaseEntityV2

{
  "guid": "ABCD-DEFG-1234-5678",
  "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 number 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": "P00XX"
  }
}

Properties

Name Type Required Restrictions Description
error object false none none
» errorCode string false none none

ForbiddenError

{
  "error": {
    "errorCode": "P00XX"
  }
}

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

ProviderFirmNumberV2

"3856"

Unique provider firm identifier. CWA ref: PO_VENDOR_CONTACTS.SEGMENT1

TODO: check which one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check 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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live

ProviderFirmTypeV2

"Legal Services Provider"

Type of the provider firm. Barristers are entered as Advocates.

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.

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

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

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": "601111",
        "accountNumber": "06805333",
        "activeDateFrom": "2019-08-24"
      }
    },
    "address": {
      "line1": "OLD COUNTY COURT",
      "line2": "56 WESTGATE ROAD",
      "line3": "string",
      "line4": "string",
      "townOrCity": "NEWCASTLE-UPON-TYNE",
      "county": "string",
      "postcode": "NE1 5XU"
    },
    "telephoneNumber": "0121 232 1111",
    "emailAddress": "user@example.com",
    "website": "www.abc.com",
    "dxDetails": {
      "dxNumber": "string",
      "dxCentre": "string"
    },
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "activeDateFrom": "2019-08-24"
    },
    "contractManager": {
      "contractManagerGuid": "ABCD-DEFG-1234-5678"
    }
  }
}

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.

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": "601111",
        "accountNumber": "06805333",
        "activeDateFrom": "2019-08-24"
      }
    },
    "address": {
      "line1": "OLD COUNTY COURT",
      "line2": "56 WESTGATE ROAD",
      "line3": "string",
      "line4": "string",
      "townOrCity": "NEWCASTLE-UPON-TYNE",
      "county": "string",
      "postcode": "NE1 5XU"
    },
    "telephoneNumber": "0121 232 1111",
    "emailAddress": "user@example.com",
    "website": "www.abc.com",
    "dxDetails": {
      "dxNumber": "string",
      "dxCentre": "string"
    },
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "activeDateFrom": "2019-08-24"
    },
    "contractManager": {
      "contractManagerGuid": "ABCD-DEFG-1234-5678"
    }
  }
}

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": "OLD COUNTY COURT",
      "line2": "56 WESTGATE ROAD",
      "line3": "string",
      "line4": "string",
      "townOrCity": "NEWCASTLE-UPON-TYNE",
      "county": "string",
      "postcode": "NE1 5XU"
    },
    "telephoneNumber": "0121 232 1111",
    "emailAddress": "user@example.com",
    "website": "www.abc.com",
    "dxDetails": {
      "dxNumber": "string",
      "dxCentre": "string"
    },
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "activeDateFrom": "2019-08-24"
    }
  }
}

Create provider of firmType=Chambers

Properties

Name Type Required Restrictions Description
chambers ChambersHeadOfficeCreateV2 true none none

ProviderCreatePractitionerV2

{
  "practitioner": {
    "parentFirms": [
      {
        "parentGuid": "ABCD-DEFG-1234-5678"
      }
    ],
    "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": "601111",
        "accountNumber": "06805333",
        "activeDateFrom": "2019-08-24"
      }
    },
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "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": "ABCD-DEFG-1234-5678",
  "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": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M",
      "activeDateTo": "2019-08-24"
    }
  }
}

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

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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
firmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M",
      "activeDateTo": "2019-08-24"
    }
  }
}

Provider of firmType=Legal Services Provider

Properties

Name Type Required Restrictions Description
legalServicesProvider LSPDetailsV2 true none none

ProviderChambersV2

{
  "chambers": {
    "office": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M",
      "activeDateTo": "2019-08-24"
    }
  }
}

Provider of firmType=Chambers

Properties

Name Type Required Restrictions Description
chambers ChamberDetailsV2 true none none

ProviderPractitionerV2

{
  "practitioner": {
    "parentFirms": [
      {
        "parentGuid": "ABCD-DEFG-1234-5678",
        "parentFirmNumber": "3856",
        "parentFirmType": "Legal Services Provider"
      }
    ],
    "advocateType": "Advocate",
    "office": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "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": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M"
    }
  }
}

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

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": "ABCD-DEFG-1234-5678",
      "accountNumber": "0Q731M"
    }
  }
}

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": "ABCD-DEFG-1234-5678"
      }
    ],
    "liaisonManager": {
      "firstName": "John",
      "lastName": "Smith",
      "emailAddress": "john.smith@example.com",
      "telephoneNumber": "0121 232 1111",
      "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: TODO: check the enum values - Partnership, - Limited Company, - Sole Practitioner, - LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP) - 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: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 Limited Liability Partnership (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 for Advocates for bar council 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 for Advocates for bar council 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: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11

LSPDetailsV2

{
  "constitutionalStatus": "Partnership",
  "notForProfitOrganisationFlag": true,
  "indemnityReceivedDate": "2019-08-24",
  "companiesHouseNumber": "`TODO: provide example`",
  "headOffice": {
    "officeGUID": "ABCD-DEFG-1234-5678",
    "accountNumber": "0Q731M",
    "activeDateTo": "2019-08-24"
  }
}

Properties

Name Type Required Restrictions Description
constitutionalStatus LSPDetailsConstitutionalStatusV2 true none N/A for Firm type Advocate or Chambers.

For Legal Services provider, options are: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council 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": "ABCD-DEFG-1234-5678",
    "accountNumber": "0Q731M"
  }
}

Properties

Name Type Required Restrictions Description
constitutionalStatus LSPDetailsConstitutionalStatusV2 false none N/A for Firm type Advocate or Chambers.

For Legal Services provider, options are: TODO: check the enum values
- Partnership,
- Limited Company,
- Sole Practitioner,
- LLAP, TODO: check why in MAPD documentation it is Limited Liability Partnership (LLP)
- 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 for Advocates for bar council roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11
headOffice LSPHeadOfficeDetailsPatchV2 false none none

ChamberDetailsV2

{
  "office": {
    "officeGUID": "ABCD-DEFG-1234-5678",
    "accountNumber": "0Q731M",
    "activeDateTo": "2019-08-24"
  }
}

Properties

Name Type Required Restrictions Description
office ChambersOfficeCoreDetailsV2 true none none

PractitionerDetailsParentUpdateV2

{
  "parentGuid": "ABCD-DEFG-1234-5678"
}

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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live

PractitionerDetailsParentV2

{
  "parentGuid": "ABCD-DEFG-1234-5678",
  "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 one to use, SiLAS uses segment1 but all V1 endpoints use VENDOR_ID as path variable???.
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 numbers and check what sequence number to start from at go live
parentFirmType ProviderFirmTypeV2 true none Type of the provider firm. Barristers are entered as Advocates.

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"

Advocate 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 Advocate 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`"

Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

Properties

Name Type Required Restrictions Description
anonymous string false none Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

PractitionerDetailsBarCouncilRollNumberV2

"`TODO: provide example`"

Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

Properties

Name Type Required Restrictions Description
anonymous string false none Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house number).

TODO: Need better description of this field, any business rules?

PractitionerDetailsCreateV2

{
  "parentFirms": [
    {
      "parentGuid": "ABCD-DEFG-1234-5678"
    }
  ],
  "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": "ABCD-DEFG-1234-5678"
    }
  ],
  "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": "ABCD-DEFG-1234-5678",
      "parentFirmNumber": "3856",
      "parentFirmType": "Legal Services Provider"
    }
  ],
  "advocateType": "Advocate",
  "office": {
    "officeGUID": "ABCD-DEFG-1234-5678",
    "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": "ABCD-DEFG-1234-5678",
      "parentFirmNumber": "3856",
      "parentFirmType": "Legal Services Provider"
    }
  ],
  "advocateType": "Advocate",
  "office": {
    "officeGUID": "ABCD-DEFG-1234-5678",
    "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": "ABCD-DEFG-1234-5678"
    }
  ],
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "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": "ABCD-DEFG-1234-5678"
    }
  ]
}

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 Bar Council or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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 Advocate 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 or Solicitors Regulation Authority roll number.

CWA ref: PO_VENDORS.ATTRIBUTE11 (WARNING: same field is used for LSP for Company house 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": "601111",
      "accountNumber": "06805333",
      "activeDateFrom": "2019-08-24"
    }
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "www.abc.com",
  "dxDetails": {
    "dxNumber": "string",
    "dxCentre": "string"
  },
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "activeDateFrom": "2019-08-24"
  },
  "contractManager": {
    "contractManagerGuid": "ABCD-DEFG-1234-5678"
  }
}

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 ContractManagerProviderLinkV2 false none none

LSPHeadOfficeDetailsV2

{
  "officeGUID": "ABCD-DEFG-1234-5678",
  "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

LSPHeadOfficeDetailsPatchV2

{
  "officeGUID": "ABCD-DEFG-1234-5678",
  "accountNumber": "0Q731M"
}

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

ChambersHeadOfficeCreateV2

{
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "www.abc.com",
  "dxDetails": {
    "dxNumber": "string",
    "dxCentre": "string"
  },
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "activeDateFrom": "2019-08-24"
  }
}

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

PractitionerHeadOfficeCreateV2

{
  "vatRegistration": {
    "vatNumber": "476628407"
  },
  "payment": {
    "paymentMethod": "CHECK",
    "bankAccountDetails": {
      "accountName": "ABC co (UK) LLP CLIENT A/C 1",
      "sortCode": "601111",
      "accountNumber": "06805333",
      "activeDateFrom": "2019-08-24"
    }
  },
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "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": "601111",
      "accountNumber": "06805333",
      "activeDateFrom": "2019-08-24"
    }
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "www.abc.com",
  "dxDetails": {
    "dxNumber": "string",
    "dxCentre": "string"
  },
  "liaisonManager": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "john.smith@example.com",
    "telephoneNumber": "0121 232 1111",
    "activeDateFrom": "2019-08-24"
  },
  "contractManager": {
    "contractManagerGuid": "ABCD-DEFG-1234-5678"
  }
}

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 ContractManagerProviderLinkV2 false none none

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

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 office is made active 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 inactive.
If office is made active this flag should be reset to false.

CWA ref: via fake contract manager.

OfficeV2

{
  "guid": "ABCD-DEFG-1234-5678",
  "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": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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

LSPOfficeDetailsV2

{
  "firmType": "Legal Services Provider",
  "accountNumber": "0Q731M",
  "activeDateTo": "2019-08-24",
  "debtRecoveryFlag": true,
  "falseBalanceFlag": true,
  "intervened": {
    "intervenedFlag": true,
    "intervenedChangeDate": "2019-08-24"
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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.

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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

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",
  "debtRecoveryFlag": true,
  "falseBalanceFlag": true,
  "intervened": {
    "intervenedFlag": true,
    "intervenedChangeDate": "2019-08-24"
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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": "601111",
      "accountNumber": "06805333",
      "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

LSPOfficePatchV2

{
  "activeDateTo": "2019-08-24",
  "debtRecoveryFlag": true,
  "falseBalanceFlag": true,
  "intervened": {
    "intervenedFlag": true,
    "intervenedChangeDate": "2019-08-24"
  },
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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": "601111",
      "accountNumber": "06805333",
      "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

CWA ref: via fake contract manager.
intervened IntervenedOfficeDetailsPatchV2 false none none
address OfficeAddressV2 false 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 DXPatchV2 false none none
vatRegistration VATRegistrationV2 false none none
payment PaymentDetailsPatchOrLinkV2 false none none

ChambersOfficePatchV2

{
  "activeDateTo": "2019-08-24",
  "address": {
    "line1": "OLD COUNTY COURT",
    "line2": "56 WESTGATE ROAD",
    "line3": "string",
    "line4": "string",
    "townOrCity": "NEWCASTLE-UPON-TYNE",
    "county": "string",
    "postcode": "NE1 5XU"
  },
  "telephoneNumber": "0121 232 1111",
  "emailAddress": "user@example.com",
  "website": "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE
address OfficeAddressV2 false 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 DXPatchV2 false none none

AdvocateOfficePatchV2

{
  "activeDateTo": "2019-08-24",
  "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": "601111",
      "accountNumber": "06805333",
      "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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 office is made active this flag should be reset to false.

CWA ref: via fake contract manager.
intervened IntervenedOfficeDetailsPatchV2 false none none
vatRegistration VATRegistrationV2 false none none
payment PaymentDetailsPatchOrLinkV2 false none none

ChambersOfficeCoreDetailsV2

{
  "officeGUID": "ABCD-DEFG-1234-5678",
  "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to false.

CWA ref: PO_VENDOR_SITES_ALL.INACTIVE_DATE

PractitionerOfficeCoreDetailsV2

{
  "officeGUID": "ABCD-DEFG-1234-5678",
  "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 chambers office deactivates all active advocate/barrister offices).

When activeDateTo is set on an LSP office or an Advocate/Barrister office debtRecoveryFlag should be set to false.

When activeDateTo is unset (office made active) on an LSP office or an Advocate/Barrister office falseBalanceFlag should be set to 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?

OfficeAddressV2

{
  "line1": "OLD COUNTY COURT",
  "line2": "56 WESTGATE ROAD",
  "line3": "string",
  "line4": "string",
  "townOrCity": "NEWCASTLE-UPON-TYNE",
  "county": "string",
  "postcode": "NE1 5XU"
}

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

"0121 232 1111"

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

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

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?

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": "601111",
    "accountNumber": "06805333",
    "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": "601111",
    "accountNumber": "06805333",
    "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?
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": "601111",
    "accountNumber": "06805333",
    "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?
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

"601111"

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

"06805333"

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": "601111",
  "accountNumber": "06805333",
  "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": "ABCD-DEFG-1234-5678",
  "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 false none GUID is the primary key for entity
activeDateFrom BankAccountActiveDateFromV2 false none CWA ref: AP_BANK_ACCOUNT_USES_ALL.START_DATE

BankAccountV2

{
  "guid": "ABCD-DEFG-1234-5678",
  "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": "601111",
  "accountNumber": "06805333"
}

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": "ABCD-DEFG-1234-5678",
  "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": "601111",
  "accountNumber": "06805333",
  "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

"0121 232 1111"

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": "0121 232 1111",
  "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).

LSPOfficeLiaisonManagerCreateOrLinkV2

{
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@example.com",
  "telephoneNumber": "0121 232 1111",
  "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).

ChambersOfficeLiaisonManagerCreateV2

{
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@example.com",
  "telephoneNumber": "0121 232 1111",
  "activeDateFrom": "2019-08-24"
}

Properties

None

AdvocateOfficeLiaisonManagerCreateOrLinkV2

{
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@example.com",
  "telephoneNumber": "0121 232 1111",
  "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).

LiaisonManagerCreateV2

{
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@example.com",
  "telephoneNumber": "0121 232 1111",
  "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 (or Chambers)

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 head office (or 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.

Note that if this attribute is set to true then updates at the parent entity should cascade to create new linked assignment.

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.

Note that if this attribute is set to true then updates at the parent entity should cascade to create new linked assignment.

LiaisonManagerV2

{
  "guid": "ABCD-DEFG-1234-5678",
  "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": "0121 232 1111",
  "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.

Note that if this attribute is set to true then updates at the parent entity should cascade to create new linked assignment.

OfficeLiaisonManagerPatchV2

{
  "liaisonManagerGUID": "ABCD-DEFG-1234-5678"
}

Properties

Name Type Required Restrictions Description
liaisonManagerGUID BaseEntityGUIDV2 false none GUID is the primary key for entity

ContractManagerProviderLinkV2

{
  "contractManagerGuid": "ABCD-DEFG-1234-5678"
}

Properties

Name Type Required Restrictions Description
contractManagerGuid BaseEntityGUIDV2 false none GUID is the primary key for entity

ContractManagerProviderPatchV2

{
  "contractManagerGUID": "ABCD-DEFG-1234-5678"
}

Properties

Name Type Required Restrictions Description
contractManagerGUID BaseEntityGUIDV2 false none GUID is the primary key for entity

OfficePractitionerV2

{
  "guid": "ABCD-DEFG-1234-5678",
  "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": "ABCD-DEFG-1234-5678",
        "parentFirmNumber": "3856",
        "parentFirmType": "Legal Services Provider"
      }
    ],
    "advocateType": "Advocate",
    "office": {
      "officeGUID": "ABCD-DEFG-1234-5678",
      "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": "ABCD-DEFG-1234-5678",
  "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": "ABCD-DEFG-1234-5678",
  "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": [
          "ABCD-EFGH-1234-5678"
        ]
      }
    ]
  },
  "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": [
        "ABCD-EFGH-1234-5678"
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
criteria [SearchCriterionV2] false none none

SearchCriterionV2

{
  "filter": "guid",
  "values": [
    "ABCD-EFGH-1234-5678"
  ]
}

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 number false none Page index denoting the current page index for response, starting from 0
pageSize number false none Page size used for this search
totalPages number false none Total number of pages
totalItems number 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": "/example?page=2&pageSize=10",
  "next": "/example?page=3&pageSize=10",
  "prev": "/example?page=1&pageSize=10",
  "first": "/example?page=1&pageSize=10",
  "last": "/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": "ABCD-DEFG-1234-5678",
    "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": {
        "officeGUID": "ABCD-DEFG-1234-5678",
        "accountNumber": "0Q731M",
        "activeDateTo": "2019-08-24"
      }
    }
  },
  "bankDetails": [
    {
      "guid": "ABCD-DEFG-1234-5678",
      "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": "601111",
      "accountNumber": "06805333"
    }
  ],
  "offices": [
    {
      "guid": "ABCD-DEFG-1234-5678",
      "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": "OLD COUNTY COURT",
        "line2": "56 WESTGATE ROAD",
        "line3": "string",
        "line4": "string",
        "townOrCity": "NEWCASTLE-UPON-TYNE",
        "county": "string",
        "postcode": "NE1 5XU"
      },
      "telephoneNumber": "0121 232 1111",
      "emailAddress": "user@example.com",
      "website": "www.abc.com",
      "dxDetails": {
        "dxNumber": "string",
        "dxCentre": "string"
      },
      "vatRegistration": {
        "vatNumber": "476628407"
      },
      "payment": {
        "paymentMethod": "CHECK",
        "paymentHeldFlag": true,
        "paymentHeldReason": "Under investigation"
      },
      "liaisonManagers": [
        {
          "guid": "ABCD-DEFG-1234-5678",
          "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": "0121 232 1111",
          "activeDateFrom": "2019-08-24",
          "activeDateTo": "2019-08-24",
          "linkedFlag": true
        }
      ],
      "contractManagers": [
        {
          "guid": "ABCD-DEFG-1234-5678",
          "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": "ABCD-DEFG-1234-5678",
          "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": "601111",
          "accountNumber": "06805333",
          "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": "ABCD-DEFG-1234-5678",
  "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": "ABCD-DEFG-1234-5678",
    "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": "ABCD-DEFG-1234-5678",
      "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": {
          "officeGUID": "ABCD-DEFG-1234-5678",
          "accountNumber": "0Q731M",
          "activeDateTo": "2019-08-24"
        }
      }
    },
    "bankDetails": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": "601111",
        "accountNumber": "06805333"
      }
    ],
    "offices": [
      {
        "guid": "ABCD-DEFG-1234-5678",
        "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": "OLD COUNTY COURT",
          "line2": "56 WESTGATE ROAD",
          "line3": "string",
          "line4": "string",
          "townOrCity": "NEWCASTLE-UPON-TYNE",
          "county": "string",
          "postcode": "NE1 5XU"
        },
        "telephoneNumber": "0121 232 1111",
        "emailAddress": "user@example.com",
        "website": "www.abc.com",
        "dxDetails": {
          "dxNumber": "string",
          "dxCentre": "string"
        },
        "vatRegistration": {
          "vatNumber": "476628407"
        },
        "payment": {
          "paymentMethod": "CHECK",
          "paymentHeldFlag": true,
          "paymentHeldReason": "Under investigation"
        },
        "liaisonManagers": [
          {
            "guid": "ABCD-DEFG-1234-5678",
            "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": "0121 232 1111",
            "activeDateFrom": "2019-08-24",
            "activeDateTo": "2019-08-24",
            "linkedFlag": true
          }
        ],
        "contractManagers": [
          {
            "guid": "ABCD-DEFG-1234-5678",
            "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": "ABCD-DEFG-1234-5678",
            "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": "601111",
            "accountNumber": "06805333",
            "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