Skip to main content

A Developer Guide to the SOAP Services

Overview

This document provides technical information about Business Gateway. You should use it if you are a:

  • case management software vendor (CMS)
  • conveyancer
  • developer

And wish to integrate with our legacy services using SOAP/XML. To integrate using REST/JSON visit A Developer Guide to the REST Services


System overview

Business Gateway allows CMS vendors to have a direct interface with our e-services. It provides a framework to streamline and improve their business skills.

This provides an electronic XML interface for interoperability between CMS and our existing services.

A mutual SSL connection between the external system and Business Gateway’s web services allows for exchange of information.

Services available on Business Gateway


Prerequisites

Prerequisites for generating a web service client

A valid SSL certificate is required for downloading the WSDL and schema files from HM Land Registry Business Gateway. This certificate is needed for mutual SSL authentication.

A list of URLs for all services provided by Business Gateway to download the respective WSDL and schema files for a given service.

Expiry of Certificates

HM Land Registry Business Gateway certificates expire after 3 years. When this date is approaching you will need to contact your Account Manager who can raise a request to have new Certificates issued.

If your certificate expires you will not be able to access the Business Gateway until the new certificate is installed and your system is configured to use it.

Prerequisites for invoking Business Gateway’s services

To invoke Business Gateway services:

  • a valid SSL certificate issued by Business Gateway is required. This certificate is used to enable mutual SSL authentication. This certificate is installed once at the CMS client site
  • a list of URLs is required for all services provided by Business Gateway in order to invoke the required services
  • an active user account to use Business Gateway. The user ID and the password is the same as for the HM Land Registry portal
  • an active variable direct debit (VDD)
  • the request should conform to the request schema
  • the request must contain Business Gateway User ID and password and locale information as part of the SOAP header
  • a unique message ID generation mechanism should be followed for every request being sent to Business Gateway (see Note 1)
  • a mechanism is required to temporarily store the generated message ID. This message ID is used to fetch the response when the end user does not receive the synchronous response from Business Gateway for example when a request is made out of hours or when the message is lost in transit

Note 1

Reliable Messaging:

Message ID is used for the reliable messaging mechanism used in Business
Gateway. The external system is required to generate a unique identifier for
every request that has been sent to Business Gateway

This message ID is used to receive a response from Business Gateway if the
original response is lost due to network issues or other reasons such as
if the original request was submitted out of hours.

Business Gateway uses the following information for determining whether a
given request is a new request

- Message ID.
- Service Type (for example bankruptcy search).
- User ID.

Business Gateway uses the following information for determining whether a
given request is a new request

Development activities

  • Install SSL certificates issued by HM Land Registry as trusted root.
  • Install client digital certificate issued by HM Land Registry into client key store
  • Develop a mechanism to generate and store unique message IDs with respect to the request sent to Business Gateway
  • Consume the WSDL offered by Business Gateway and develop the following functionality based on the web services exposed
  • Develop a mechanism to send requests to Business Gateway for each web service that has been exposed
  • Develop a mechanism to submit Outstanding Request requests to get information about requests where the response is not available synchronously
  • Develop a mechanism to send polling requests for the requests returned by the Outstanding Request service
  • Develop a mechanism to process responses
  • Develop a mechanism to deal with exceptions
  • For each request sent, the SOAP header must contain the user ID, password and locale information
  • For each request sent, the HTTPS channel will be mutually authenticated using certificate exchange

Design constraints

Web service requests over HTTP/HTTPS internet protocols are not reliable. This can lead to lost messages between request and response.

To solve this, we use a reliable messaging mechanism (see Note 1). This way responses are not lost between the client CMS software and Business Gateway.

The constraints used to ensure reliable messaging include:

  • unique message ID
  • process request only once

Unique message ID

The client sends a SOAP request with a unique message ID and waits for the response. In case the client does not receive a response within a specified period of time, it will send the request with the same message ID once again.

The client ensures that all message requests have a unique message ID. It is the responsibility of Business Gateway to correlate the SOAP request and response with the same message ID.

Process request only once

Business Gateway processes the request for the first time and stores the response in a database. Next time a request arrives as a result of a lost message, with the same message ID for the same service type and from the same user ID then the response is sent from the stored data.


APIs and schema

Information service schema

  • Application Enquiry
  • Discharge Activity
  • Enquiry by property description
  • Land Charges Bankruptcy Search
  • Land Charges Full Search
  • Official Copy Title Known
  • Official Search of Whole
  • Official Search of Part
  • Search of the Index Map
  • Register Extract Service

eDocument Registration Services

  • Application to Change Register
  • Attachment
  • Correspondence
  • Early Completion

Verification Services

  • Online Ownership Verification

Local Land Charges Services

  • Local land charges search

Utility Services

  • Outstanding requests

API request and response

  • Request Type
    • Normal Request

      A request is considered to be a normal request when it is sent to Business Gateway during working hours. The original request is stored by Business Gateway along with the response.

    • Poll Request
      • Collecting Out of Hours applications

        When a request is sent to Business Gateway ‘out of hours’ or after the day list is closed, the system calculates a suggested date and time at which the response to the request will be made available. The client can then make a poll request to Business Gateway at the suggested date and time, with the message ID of the original message, to retrieve the stored response.

      • Manual Processed applications

        A poll request may be used to collect the result of a Business Gateway application that has been processed manually by LR Staff.

      For optimal usage the system can be written to automatically call the Outstanding Request service, which will provide details of requests that have a new response to be collected. These can then automatically be sent through the corresponding Poll Request services, enabling the response to be collected as early as possible. This is the only way to collect some of the messages sent when using electronic Document Registration Service (eDRS). We recommend following this process every couple of hours.

  • Request structure

    Business Gateway’s SOAP request consists of the following elements: SOAP header must contain (refer to figure 1):

    • user ID
    • password
    • locale information
    
    <!-- SOAP envelope starts -->
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:drs="http://drsv1_0.ws.bg.lr.gov"
    xmlns:req="http://www.oscre/ns/eReg-
    Final/2012/RequestApplicationToChangeRegisterV1_0">
    
      <!-- SOAP header starts -->
      <soapenv:Header>
        <wsse:Security xmlns:wsse="http://docs.oasis-
    open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
          <wsse:UsernameToken>
            <wsse:Username>userName here</wsse:Username>
            <wsse:Password type="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-username-token-profile-1.0#PasswordText">password
    here</wsse:Password>
          </wsse:UsernameToken>
        </wsse:Security>
        <i18n:international xmlns:i18n="http://www.w3.org/2005/09/ws-i18n">
          <i18n:locale>en</i18n:locale>
        </i18n:international>
      </soapenv:Header>
      <!-- SOAP header ends -->
    
      <!-- SOAP body starts -->
      <soapenv:Body>
        <!-- SOAP body contains web service request -->
      </soapenv:Body>
      <!-- SOAP body ends -->
    
    </soapenv:Envelope>
    <!-- SOAP envelope ends -->
          

    Figure 1: SOAP request

    The SOAP body contains the web service request as shown in figure 1.

  • Response types

    Business Gateway sends the following types of responses as part of request processing:

    • Normal response when the request is processed successfully. This includes the response for a Business Gateway application that has been processed manually.
    • Acknowledgment response when the requested service is not available, or the application requires manual processing.
    • Error response when one or more business rules failed while processing the request.
    • SOAP fault response when some unexpected exception occurred while processing the request. For example, the submitted request does not contain a value in a mandatory element of the request schema corresponding to the requested service. Refer to figure 2 for the structure of this type of response.
    
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:drs="http://drsv1_0.ws.bg.lr.gov/"
    xmlns:req="http://www.oscre.org/ns/eReg-
    Final/2012/RequestApplicationToChangeRegisterV1_0">
              <soapenv:Fault>
              <faultcode>soapenv:SchemaFault</faultcode>
              <faultstring>Schema Errors have occured</faultstring>
              <detail>
                <drs:SchemaException>cvc-pattern-valid: Value '' is not facet-
                valid with respect to pattern '[A-Z] {0,3} [0-9] {1,6} [ZT]?' for type 
                'TitleType'.</drs:SchemaException>
                  <drs:SchemaException>cvc-type.3.1.3: The value '' of element 
                  'TitleNumber' is not valid.</drs:SchemaException>
              </detail>
              </soapenv:Fault>
          

    Figure 2: SOAP fault response

  • Response structure

    Business Gateway’s response structure has the following elements: Response type code indicates the response type in the response structure. In Business Gateway the response type code element can have one of the following values

    • 10 (for Acknowledgement)
    • 20 (for Rejection)
    • 30 (for Success)

    Acknowledgement

    This element response type contains the following information:

    Expected time when the user is supposed to send a poll request to get the response. (this is only provided if the service was not available when the application was submitted).

    HMLRReference, this is HM Land Registry’s internal reference for the application (this is only provided when the service was available, but the application requires manual processing).

    Unique message ID, the acknowledgment ID, which must be used to get the poll response (refer to figure 3).

    
    <!-- SOAP envelope starts -->
    <soapenv:Envolope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    
      <!-- SOAP body starts -->
      <soapenv:Body>
        <ns3:processLCBankruptcySearchRequestResponse
    xmlns:ns1="http://www.oscre.org/ns/eReg-
    Final/2011/RequestLandChargesBankruptcySearchV2_0"
        xmlns:ns3="http://bankruptcyv2_0.ws.bg.lr.gov/"
        xmlns:ns4="http://www.oscre.org/ns/eReg-
    Final/2011/ResponseLandChargesBankruptcySearchV2_0">
          <return>
            <ns4:GatewayResponse>
              <!-- Response type code:10 i.e Acknowledgement -->
              <ns4:TypeCode>10</ns4:TypeCode>
              <ns4:Acknowledgement>
                <ns4:AcknowledgementDetails>
                  <!-- Unique message ID taken from request -->
                  <ns4:UniqueID>7987dff7666s001</ns4:UniqueID>
                  <!-- Expected date and time for the response to be available -->
                  <ns4:ExpectedResponseDateTime>
                  2011-09-15T06:40:30</ns4:ExpectedResponseDateTime>
                  <ns4:MessageDescription>Service is not currently
                  available.System has queued your request,please poll
                  at specified time.</ns4:MessageDescription>
                </ns4:AcknowledgementDetails>
              </ns4:Acknowledgement>
            </ns4:GatewayResponse>
          </return>
        </ns3:processLCBankruptcySearchRequestResponse>
      </soapenv:Body>
      <!-- SOAP body ends -->
    
    </soapenv:Envelope>
    <!-- SOAP envelope ends -->
          

    Figure 3: SOAP acknowledgement response

    Rejection

    This error response type contains the business rules that have failed while processing the request (refer to figure 4).

    
      <!-- SOAP Envelope starts -->
      <soapenv:Envelope
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      
        <!-- SOAP Body starts>
        <soapenv:Body>
          <ns3:processLCBankruptcySearchRequestResponse
      xmlns:ns1="http://www.oscre.org/ns/eReg-
      Final/2011/RequestLandChargesBankruptcySearchV2_0"
          xmlns:ns3="http://bankruptcyv2_0.ws.bg.lr.gov/"
          xmlns:ns4="http://www.oscre.org/ns/eReg-
      Final/2011/ResponseLandChargesBankruptcySearchV2_0">
              <return>
                <ns4:GatewayResponse>
                  <!-- Response type Code:20 i.e. Rejection -->
                    <ns4:TypeCode>20</ns4:TypeCode>
                    <ns4:Rejection>
                      <ns4:ExternalReference>
                        <ns4:Reference>Test 1.023</ns4:Reference>
                      </ns4:ExternalReference>
                      <ns4:RejectionResponse>
                        <ns4:Reason>BatchException</ns4:Reason>
                        <ns4:Code>BatchExceptionCode</ns4:Code>
                        <!-- Business Rule failed -->
                          <ns4:ValidationErrors>
                            <!-- Language independent error code -->
                              <ns4:Code>bg.fee.feeMismatch</ns4:Code>
                            <!-- Language dependent description (in this case 'EN') -->
                              <ns4:Description>:Fee Amount provided does not match with 
                              the fee calculated by Land Registry.</ns4:Description>
                          </ns4:ValidationErrors>
                      </ns4:RejectionResponse>
                    </ns4:Rejection>
                  </ns4:GatewayResponse>
                </return>
          </ns3:processLCBanruptcySearchRequestResponse>
        </soapenv:Body>
        <!-- SOAP Body end -->
      </soapenv:Envelope>
      <!-- SOAP Envelope ends -->
            

    Figure 4: SOAP rejection response

    Success

    This normal response type contains the success result (refer to figure 5).

    
    <!-- Soap Envelope starts -->
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    
    <!-- Soap Body starts -->
    <soapenv:Body>
      <ns3:processLCBankruptcySearchRequestResponse
    xmlns:ns1="http://www.oscre.org/ns/eReg-
    Final/2011/RequestLandChargesBankruptcySearchV2_0"
      xmlns:ns3="http://bankruptcyv2_0.ws.bg.lr.gov/"
      xmlns:ns4="http://www.oscre.org/ns/eReg-
    Final/2011/ResponseLandChargesBankruptcySearchV2_0">
        <return>
          <ns4:GatewayResponse>
            <!-- Response type Code:30 i.e. Success -->
            <ns4:TypeCode>30</ns4:TypeCode>
              <!-- Success Results -->
            <ns4:Results>
              <ns4:ExternalReference>
                <ns4:Reference>abc12345</ns4:Reference>
              </ns4:ExternalReference>
              <ns4:HMLRReference>
                <ns4:Reference>09395D</ns4:Reference>
              </ns4:HMLRReference>
              <ns4:ActualPrice>
                <ns4:GrossPriceAmount>2.00</ns4:GrossPriceAmount>
              </ns4:ActualPrice>
              <ns4:Attachment>
                <ns4:EmbeddedFileBinaryObject ns4:format="PDF">Large byte
    array here removed for space</ns4:EmbeddedFileBinaryObject>
              </ns4:Attachment>
              <ns4:ResultTypeCode>10</ns4:ResultTypeCode>
            </ns4:Results>
          </ns4:GatewayResponse>
        </return>
      </ns3:processLCBankruptcySearchRequestResponse>
    </soapenv:Body>
    <!-- Soap Body ends -->
    </soapenv:Envelope>
    <!-- Soap Envelope ends -->
          

    Figure 5: SOAP success response


Business Gateway service URLs

Test Environments:

Production Environments:

Service endpoints and XSD schema definitions

Current links to service endpoints and XSD schema definitions can be found within the WSDL file.

Information services

In the URLs listed below, substitute {PLACE_HOLDER} as follows:

Information services
Service Endpoints
Application Enquiry V1.0 {PLACE_HOLDER}/ApplicationEnquiryV1_0PollRequestWebService?wsdl
{PLACE_HOLDER}/ApplicationEnquiryV1_0WebService?wsdl
Discharge Activity V1.0 {PLACE_HOLDER}/DischargeActivityV1_0WebService?wsdl
{PLACE_HOLDER}/DischargeActivityV1_0PollRequestWebService?wsdl
Enquiry by property description V2.0 {PLACE_HOLDER}/EnquiryByPropertyDescriptionV2_0WebService?wsdl
{PLACE_HOLDER}/EnquiryByPropertyDescriptionV2_0PollWebService?wsdl
Land charges bankruptcy search V2.0 {PLACE_HOLDER}/BankruptcySearchV2_0WebService?wsdl
{PLACE_HOLDER}/BankruptcySearchV2_0PollRequestWebService?wsdl
Land charges bankruptcy search V2.1 {PLACE_HOLDER}/BankruptcySearchV2_1WebService?wsdl
{PLACE_HOLDER}/BankruptcySearchV2_1PollRequestWebService?wsdl
Land charges full search V2.0 {PLACE_HOLDER}/FullSearchV2_0WebService?wsdl
{PLACE_HOLDER}/FullSearchV2_0PollRequestWebService?wsdl
Land charges full search V2.1 {PLACE_HOLDER}/FullSearchV2_1WebService?wsdl
{PLACE_HOLDER}/FullSearchV2_1PollRequestWebService?wsdl
Official copy title known V2.0 {PLACE_HOLDER}/OfficialCopyTitleKnownV2_0WebService?wsdl
{PLACE_HOLDER}/OC1TitleKnownV2_0PollRequestWebService?wsdl
Official copy title known V2.1 {PLACE_HOLDER}/OfficialCopyTitleKnownV2_1WebService?wsdl
{PLACE_HOLDER}/OC1TitleKnownV2_1PollRequestWebService?wsdl
Official search of part with priority V2.0 {PLACE_HOLDER}/OfficialSearchOfPartV2_0WebService?wsdl
{PLACE_HOLDER}/OfficialSearchOfPartV2_0PollRequestWebService?wsdl
Official search of part with priority V2.1 {PLACE_HOLDER}/OfficialSearchOfPartV2_1WebService?wsdl
{PLACE_HOLDER}/OfficialSearchOfPartV2_1PollRequestWebService?wsdl
Official search of whole with priority V2.0 {PLACE_HOLDER}/OfficialSearchV2_0WebService?wsdl
{PLACE_HOLDER}/OfficialSearchV2_0PollRequestWebService?wsdl
Official search of whole with priority V2.1 {PLACE_HOLDER}/OfficialSearchV2_1WebService?wsdl
{PLACE_HOLDER}/OfficialSearchV2_1PollRequestWebService?wsdl
Register extract service V2.1 {PLACE_HOLDER}/OfficialCopyWithSummaryV2_1WebService?wsdl
{PLACE_HOLDER}/OfficialCopyWithSummaryV2_1PollRequestWebService?wsdl
Search of the index map V2.0 {PLACE_HOLDER}/SearchOfIndexMapV2_0WebService?wsdl
{PLACE_HOLDER}/SearchOfIndexMapV2_0PollRequestWebService?wsdl
Search of the index map V2.1 {PLACE_HOLDER}/SearchOfIndexMapV2_1WebService?wsdl
{PLACE_HOLDER}/SearchOfIndexMapV2_1PollRequestWebService?wsdl

e-DRS

In the URLs listed below, substitute {PLACE_HOLDER} as follows:

e-DRS
Service Endpoints
Application to change register V2.0 {PLACE_HOLDER}/EDocumentRegistrationV2_0WebService?wsdl
{PLACE_HOLDER}/EDocumentRegistrationV2_0PollRequestWebService?wsdl
Attachment V2.0 {PLACE_HOLDER}/AttachmentV2_0WebService?wsdl
{PLACE_HOLDER}/AttachmentV2_0PollRequestWebService?wsdl
Correspondence V1.0 {PLACE_HOLDER}/CorrespondenceV1_0PollRequestWebService?wsdl
Early completion V2.0 {PLACE_HOLDER}/EarlyCompletionV2_0PollRequestWebService?wsdl
Application to change register V2.1 {PLACE_HOLDER}/EDocumentRegistrationV2_1WebService?wsdl
{PLACE_HOLDER}/EDocumentRegistrationV2_1PollRequestWebService?wsdl
Attachment V2.1 {PLACE_HOLDER}/AttachmentV2_1WebService?wsdl
{PLACE_HOLDER}/AttachmentV2_1PollRequestWebService?wsdl
Correspondence V2.1 {PLACE_HOLDER}/CorrespondenceV2_1PollRequestWebService?wsdl
Early completion V2.1 {PLACE_HOLDER}/EarlyCompletionV2_1PollRequestWebService?wsdl

Verification services_folder

In the URLs listed below, substitute {PLACE_HOLDER} as follows:

Verification services_folder
Service Endpoints
Online Ownership Verification V1.0 {PLACEHOLDER}/OnlineOwnershipVerificationV1_0WebService?wsdl

Local Land Charges Services

In the URLs listed below, substitute {PLACE_HOLDER} as follows:

Local Land Charges Services
Service Endpoints
Local land charges search V2.0 {PLACEHOLDER}/LLCSearchV2_0WebService?wsdl

Outstanding requests

In the URLs listed below, substitute {PLACE_HOLDER} as follows:

Outstanding requests
Service Endpoints
Outstanding Requests V2.0 {PLACE_HOLDER}/OutstandingRequestsV2_0WebService?wsdl
Outstanding Requests V2.1 {PLACE_HOLDER}/OutstandingRequestsV2_1WebService?wsdl

Upgrade and change policy - vendor summary

Information service schema

Due to the impact of delivering new schemas, we will endeavour to schedule a maximum of one release per year. We will only replace a web service immediately if there is a major bug.

New web service

Notification of the functionality and delivery schedule of a new web service will be through standard customer communication channels, combined with the new forum created for users of Business Gateway.

All technical details will be published on the Business Gateway developer pack web page.

A vendor test facility will go live at the same time as or prior to the web service itself. This will include Test Stubs, Vendor Test Data, Workflows providing business rules and message outputs and Schema Validation Sheets.

Web service deprecation

Notification of the schedule for deprecation (removal) will come from the standard customer communication channels. The normal deprecation of a web service will be six months from the date of notification, but this may vary in exceptional circumstances.

All users of a service will receive a final reminder one month before the service is discontinued.

Changes and additions to the service will be contained in the Business Gateway Service release notes on the Business Gateway landing page. Change details relating to the developer pack will be contained in the Business Gateway Developer Pack release notes referenced on the Business Gateway developer pack webpage

Emergency bug fix (minor version of the web service)

Notification of an emergency bug fix will be through the Service Desk. A new version number will be incorporated into an existing web service name that is being replaced, for example Version 1.0 will become Version 1.1.

In this emergency example, Version 1.0 will be withdrawn as soon as Version 1.1 becomes live.

A new version of the vendor test facility (stub) will go live at the same time as the web service itself. Integrated vendors will be notified if and/or when they can test the change before it is put live.

Scheduled upgrade (major version of the web service)

Notification of the changes being made in a new version of an existing web service will be from the standard customer communication channels.

The new version will run simultaneously with the old, until the old version is deprecated, to avoid the need for all applications to perform a hard cutover.

A new version number will be incorporated into an existing web service name that is being replaced, for example Version 1.0 (or 1.1) will become Version 2.0.

A new version of the vendor test facility will go live at the same time as or prior to the new version of the web service.

Change details will be contained in the Service Business Gateway release notes on the Business Gateway landing page.