Business Gateway Estimate Completion Date API

Returns HM Land Registry's estimated completion date for a lodged application, given its application reference, so a conveyancer's system can set client expectations on how long a registration will take. Single GET operation on /v1/applications/{application_reference}/estimate-completion-date, OpenAPI 3.0.0, HTTP Basic, with both the production and bgtest hosts declared.

OpenAPI Specification

hm-land-registry-estimate-completion-date-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Estimate Completion Date API
  description: A specification for the HMLR Business Gateway estimate completion date service.
  version: 1.0.0
servers:
  - url: https://businessgateway.landregistry.gov.uk/bg2/api
    description: Live endpoint
  - url: https://bgtest.landregistry.gov.uk/bg2test/api
    description: Customer Test Endpoint
security:
  - basicAuth: []
tags:
  - name: ECD
paths:
  /v1/applications/{application_reference}/estimate-completion-date:
    get:
      operationId: getEstimateCompletionDate
      tags:
        - ECD
      summary: Get estimate completion date of associated application reference
      description: Get estimated completion date for register create/update applications associated to application reference.
      parameters:
        - $ref: '#/components/parameters/ApplicationReferenceParameter'
      responses:
        '200':
          description: Successfully retrieved the application estimate completion date
          content:
            application/json:
              schema:
                type: object
                required:
                  - 'data'
                properties:
                  data:
                    $ref: '#/components/schemas/ECDResponseData'
              examples: {
                "Example: Application reference valid, application is received. ECD is available.": {
                  "value": {
                    "data": {
                      "application_reference": "X000XXX",
                      "application_status": "RECEIVED",
                      "application_priority_date": "20/08/2021",
                      "estimated_completion_date_status": "AVAILABLE",
                      "estimated_completion_dates": [
                        {
                          "date": "17/03/2023",
                          "probability": 0.9
                        }
                      ]
                    }
                  }
                },
                "Example: Application reference is valid, application is delayed. ECD is available.": {
                  "value": {
                    "data": {
                      "application_reference": "X001XXX",
                      "application_status": "DELAYED",
                      "application_priority_date": "19/01/2023",
                      "estimated_completion_date_status": "AVAILABLE",
                      "estimated_completion_dates": [
                        {
                          "date": "13/05/2024",
                          "probability": 0.9
                        }
                      ]
                    }
                  }
                },
                "Example: Application reference is valid, application is received. ECD status is exceeded.": {
                  "value": {
                    "data": {
                      "application_reference": "X002XXX",
                      "application_status": "RECEIVED",
                      "application_priority_date": "12/02/2022",
                      "estimated_completion_date_status": "EXCEEDED"
                    }
                  }
                },
                "Example: Application reference valid and matches an application. ECD is not yet calculated.": {
                  "value": {
                    "data": {
                      "application_reference": "X003XXX",
                      "application_status": "RECEIVED",
                      "application_priority_date": "20/04/2022",
                      "estimated_completion_date_status": "CALCULATING"
                    }
                  }
                },
                "Example: Application reference is valid and matches a cancelled application. ECD status is unavailable.": {
                  "value": {
                    "data": {
                      "application_reference": "X004XXX",
                      "application_status": "CANCELLED",
                      "application_priority_date": "23/08/2022",
                      "estimated_completion_date_status": "UNAVAILABLE"
                    }
                  }
                }
              }
        '4XX':
          description: client errors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples: {
                "Example 400: Application reference invalid format": {
                  "value": {
                    "errors": [
                      {
                        "code": "BG40001",
                        "detail": "Malformed invalid schema. Application Reference is invalid.",
                        "status": "400",
                        "trace_id": "c62e9b3f-e523-4f04-a941-c6cf0d60c080",
                        "title": "Invalid application reference."
                      }
                    ]
                  }
                },
                "Example 404: Application reference valid format but does not match an HMLR application": {
                  "value": {
                    "errors": [
                      {
                        "code": "BG40002",
                        "detail": "application reference is not found.",
                        "status": "404",
                        "trace_id": "c62e9b3f-e523-4f04-a941-c6cf0d60c080",
                        "title": "application reference not found."
                      }
                    ]
                  }
                }
              }
        '5XX':
          $ref: '#/components/responses/DefaultErrorResponse'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
  parameters:
    ApplicationReferenceParameter:
      in: path
      name: application_reference
      description: HMLR generated unique set of characters that identifies applications.
      required: true
      schema:
        $ref: '#/components/schemas/ApplicationReference'
  responses:
    DefaultErrorResponse:
      description: An error has occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            Gateway Timeout:
              value:
                errors:
                  - code: BG50004
                    detail: The gateway has timed out.
                    status: '504'
                    trace_id: c62e9b3f-e523-4f04-a941-c6cf0d60c080
                    title: An error has occurred
  schemas:
    ECDResponseData:
      description: Response object
      type: object
      required:
        - application_reference
        - application_status
        - application_priority_date
        - estimated_completion_date_status
      properties:
        application_reference:
          $ref: '#/components/schemas/ApplicationReference'
        application_status:
          $ref: '#/components/schemas/ApplicationStatus'
        application_priority_date:
          type: string
          format: date
          description: 'Date of a Land Registry Application that is used to confer priority.'
        estimated_completion_date_status:
          $ref: '#/components/schemas/ECDStatus'
        estimated_completion_dates:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ECD'
    ApplicationReference:
      description: HMLR generated unique set of characters that identifies applications
      type: string
      pattern: ^([A-Z][0-9]{3}[A-Z]{3})|([A-Z]{2}[0-9A-F]{5})$
    ApplicationStatus:
      type: string
      description: "A code representing the status of an application.  \n - DELAYED: The application has requisitions, an extension of time has been granted, a site visit has been requested, the application has been referred internally or there are prior pending applications. \n - RECEIVED: The application has been received, the priority is protected and is awaiting processing. \n - CANCELLED: The application has been cancelled and removed from the Daylist. \n - COMPLETED: The application has been completed and is no longer active on the Daylist."
      enum: ["DELAYED", "CANCELLED", "RECEIVED", "COMPLETED"]
    ECDStatus:
      type: string
      description: "A code representing the status of obtaining the estimated completion date.  \n - AVAILABLE: ECD is available \n - CALCULATING: This is shown when the ECD for the application is being calculated for the first time. \n - EXCEEDED: ECD is unavailable. This is shown when the ECD for the application has elapsed. \n - UNAVAILABLE: ECD is unavailable. Application status is completed or cancelled. \n - NOT_APPLICABLE: ECD is unavailable."
      enum: ["AVAILABLE", "CALCULATING", "EXCEEDED", "UNAVAILABLE", "NOT_APPLICABLE"]
    ECD:
      type: object
      description: "If EstimatedCompletionDateStatus is [AVAILABLE] the estimated completion date of the application is provided."
      properties:
        date:
          type: string
          format: date
          description: "ECD is calculated using the time in which 90% of the application type were completed. See documentation for current calculation ruleset."
        probability:
          description: "The chance the application will be completed by this date."
          type: number
          example: 0.9
          minimum: 0
          maximum: 1
    ErrorResponse:
      description: A response for an unsuccessful result.
      type: object
      properties:
        errors:
          description: A collection of one or more errors as to why the API request failed.
          type: array
          items:
            $ref: '#/components/schemas/Error'
    Error:
      type: object
      description: An error response for an unsuccessful request.
      required:
        - code
        - detail
      properties:
        code:
          description: The code related to this error, see documentation for more information.
          type: string
        detail:
          description: The descriptive reason behind an error.
          type: string
        status:
          description: The http status code related to this error.
          type: string
          example: '503'
        trace_id:
          type: string
          description: A trace identifier for this request.
          example: c62e9b3f-e523-4f04-a941-c6cf0d60c080
        title:
          type: string
          description: A short summary of the problem that does not change from occurrence to occurrence of the problem.
        source:
          $ref: '#/components/schemas/Source'
    Source:
      type: object
      description: An object containing references to the primary source of the error.
      properties:
        pointer:
          type: string
          description: JSON Pointer to the value in the request document that caused the error
        parameter:
          type: string
          description: A string indicating which URI query parameter caused the error
        header:
          type: string
          description: A string indicating the name of a single request header which caused the error