{
  "openapi": "3.1.0",
  "info": {
    "description": "V1.1 of the set of APIs for the new 'Submit an application to change the Land Register API' Schema",
    "title": "V1.1 'Submit an application to change the Land Register API' Schema",
    "version": "1.1.0"
  },
  "servers": [
    {
      "url": "https://businessgateway.landregistry.gov.uk/bg2/api",
      "description": "Production"
    },
    {
      "url": "https://bgtest.landregistry.gov.uk/bg2test/api",
      "description": "Stub"
    }
  ],
  "paths": {
    "/v1/applications": {
      "post": {
        "description": "Submit an application API - Submit application creation requests for processing",
        "operationId": "submit_an_application_to_change_the_register_v1",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubstantiveApplication"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationCreationDataResponse"
                }
              }
            },
            "description": "Application creation request accepted",
            "headers": {
              "Location": {
                "description": "Get application creation status URI for checking status",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Bad Request due to payload not meeting the required schema"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Unauthorised - an access token is required"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Submit an application API"
        ]
      }
    },
    "/v1/documents/{document_id}": {
      "get": {
        "description": "Request the download link for a document. Currently only supports the download of documents HMLR despatches, i.e correspondence, cancellation and completion documents.",
        "operationId": "download_a_document_v1",
        "parameters": [
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "May also be referred to as the `download_id` by some services"
          }
        ],
        "responses": {
          "302": {
            "description": "Resource was successfully found.",
            "headers": {
              "location": {
                "description": "URL to the document resource for download",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Not Found"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              },
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Download a document API"
        ]
      }
    },
    "/v1/documents/url": {
      "post": {
        "description": "Create an upload URL - Retrieve a generated document upload URL. For more details see [our Technical Guide](https://landregistry.github.io/bg-dev-pack-redesign/apis/send-a-document/1.0/technical-guide/)",
        "operationId": "send_a_document_v1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentUploadUrlRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentUploadUrlDataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised - an access token is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          }
        },
        "parameters": [],
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Send a document API"
        ]
      }
    },
    "/v1/applications/{application_request_id}/information": {
      "get": {
        "description": "Can return status, fees and correspondence documents for an application",
        "operationId": "get_application_information_v1",
        "parameters": [
          {
            "description": "The ID returned by Application Creation to track submission requests",
            "in": "path",
            "name": "application_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationInformationResponse"
                }
              }
            },
            "description": "Request status received"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Unauthorised - an access token is required"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Application creation request not found in the system"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Application information API"
        ]
      }
    },
    "/v1/applications/{application_request_id}/attachments": {
      "post": {
        "description": "Attach a document from Send a Document to an existing application",
        "operationId": "attach_a_document_v1",
        "parameters": [
          {
            "description": "The ID returned by Application Creation to track submission requests",
            "in": "path",
            "name": "application_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachADocumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised - an access token is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Application creation request not found in the system"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Attach a document"
        ]
      }
    },
    "/v1/applications/{application_request_id}/messages": {
      "post": {
        "description": "Application information API - Get the information about an application",
        "operationId": "attach_a_message_v1",
        "parameters": [
          {
            "description": "The ID returned by Application Creation to track submission requests",
            "in": "path",
            "name": "application_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachAMessageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised - an access token is required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Application creation request not found in the system"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ],
        "tags": [
          "Attach a message"
        ]
      }
    },
    "/v1/notifications": {
      "get": {
        "description": "Receive notifications API - Get any unacknowledged notifications",
        "operationId": "get_notifications_v1",
        "tags": [
          "Notifications API"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "description": "Status of the notifications - Either NEW or ACKNOWLEDGED.  Default is NEW",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "ACKNOWLEDGED"
              ]
            }
          },
          {
            "name": "additional_provider_filter",
            "in": "query",
            "description": "The Additional Provider filter used by the Provider",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 50,
              "minLength": 1
            }
          },
          {
            "name": "subject",
            "in": "query",
            "description": "The Subject of the notification - this is currently the application_request_id",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 128,
              "minLength": 0,
              "pattern": "^[A-Za-z0-9._@ -]*$"
            }
          },
          {
            "name": "subject_type",
            "in": "query",
            "description": "The type of Subject for the notification - currently only APPLICATION is available",
            "required": false,
            "schema": {
              "type": "string",
              "default": "",
              "maxLength": 64,
              "minLength": 0,
              "pattern": "^[A-Za-z0-9._@ -]*$"
            }
          },
          {
            "name": "notification_type",
            "in": "query",
            "description": "The type of notification to search for",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 255,
              "minLength": 0,
              "pattern": "^[A-Za-z0-9._@ -]*$"
            }
          },
          {
            "name": "created_after",
            "in": "query",
            "description": "Search for notifications with a created_timestamp after this date and time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "created_before",
            "in": "query",
            "description": "Search for notifications with a created_timestamp before this date and time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "occurred_after",
            "in": "query",
            "description": "Search for notifications with an event_timestamp after this date and time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "occurred_before",
            "in": "query",
            "description": "Search for notifications with an event_timestamp before this date and time",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of notifications to return in a single response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of notifications",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/NotificationResponse"
                      }
                    }
                  }
                },
                "examples": {
                  "Accepted Priority Pending": {
                    "summary": "Accepted Priority Pending",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/accepted-priority-pending.json",
                          "notification_type": "application.accepted-priority-pending",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "ACCEPTED_AWAITING_PRIORITY"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Accepted Priority Protected": {
                    "summary": "Accepted Priority Protected",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/accepted-priority-protected.json",
                          "notification_type": "application.accepted-priority-protected",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "ACCEPTED_PRIORITY_PROTECTED",
                              "priority": "2026-04-02T08:03:23.739426Z",
                              "hmlr_reference": "F027MZW"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Attachment Failed": {
                    "summary": "Attachment Failed",
                    "value": {
                      "data": [
                        {
                          "notification_id": "1279ffdb-c680-447c-8d28-3aeed99b51f3",
                          "created_datetime": "2026-04-24T08:53:19.132Z",
                          "event_datetime": "2026-04-24T08:53:19.100Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/document-failed.json",
                          "notification_type": "application.attachment-failed",
                          "subject_type": "APPLICATION",
                          "subject": "887c2ef4-40da-47cf-afeb-33237fb81986",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "failure_reason": "Application status is not PENDING"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Attachment Success": {
                    "summary": "Attachment Success",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/document-success.json",
                          "notification_type": "application.attachment-success",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "attachment_id": 3
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Cancelled": {
                    "summary": "Cancelled",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/cancelled.json",
                          "notification_type": "application.cancelled",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "CANCELLED"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Completed": {
                    "summary": "Completed",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/completed.json",
                          "notification_type": "application.completed",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "COMPLETED"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Correspondence Despatched": {
                    "summary": "Correspondence Despatched",
                    "value": {
                      "data": [
                        {
                          "notification_id": "90e8b228-2a1b-4226-bdf9-835bcb72dda9",
                          "created_datetime": "2026-04-16T15:45:05.590Z",
                          "event_datetime": "2026-04-16T15:45:00.684Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/correspondence-despatched.json",
                          "notification_type": "application.correspondence-despatched",
                          "subject_type": "APPLICATION",
                          "subject": "0064871c-272c-4f0b-91ad-0947da85d48a",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "documents": [
                                {
                                  "type": {
                                    "code": "LTR",
                                    "name": "LETTER"
                                  },
                                  "created_at": "2026-04-16T15:45:04.860Z",
                                  "download_id": "0e6ed28d122c94bae226c265db81ae5e4493ddaa3c5abd6931f54377895aa476"
                                }
                              ],
                              "hmlr_reference": "K800KRW",
                              "application_request_id": "0064871c-272c-4f0b-91ad-0947da85d48a"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Message Failed": {
                    "summary": "Message Failed",
                    "value": {
                      "data": [
                        {
                          "notification_id": "bd3cf355-d934-44e7-a8ca-f9d7793abbaf",
                          "created_datetime": "2026-04-17T07:43:48.768Z",
                          "event_datetime": "2026-04-17T07:43:48.756Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/message-failed.json",
                          "notification_type": "application.message-failed",
                          "subject_type": "APPLICATION",
                          "subject": "887c2ef4-40da-47cf-afeb-33237fb81986",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "failure_reason": "Application status is not PENDING"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Message Success": {
                    "summary": "Message Success",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/message-success.json",
                          "notification_type": "application.message-success",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "attachment_id": 3
                            }
                          }
                        }
                      ]
                    }
                  },
                  "System Error": {
                    "summary": "System Error",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/error.json",
                          "notification_type": "application.system-error",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "SYSTEM_ERROR"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "Validation Failed": {
                    "summary": "Validation Failed",
                    "value": {
                      "data": [
                        {
                          "notification_id": "0d265b8c-bcff-4677-b6c3-81b1010c21bc",
                          "created_datetime": "2026-04-16T10:22:30.753Z",
                          "event_datetime": "2026-04-16T10:22:30.715Z",
                          "payload_schema": "https://landregistry.github.io/bgtechdoc/schemas/v1/application/validation-failed.json",
                          "notification_type": "application.validation-failed",
                          "subject_type": "APPLICATION",
                          "subject": "373e569c-a5bf-4319-9c02-2309529461cf",
                          "additional_provider_filter": "null",
                          "status": "NEW",
                          "payload": {
                            "data": {
                              "status": "VALIDATION_FAILED"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail",
                  "additionalProperties": false,
                  "default": ""
                }
              }
            }
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ]
      }
    },
    "/v1/notifications/acknowledge": {
      "post": {
        "description": "Acknowledge notifications API - Acknowledge notifications that have been processed, so they are no longer returned when fetching",
        "operationId": "acknowledge_notifications_v1",
        "tags": [
          "Notifications API"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcknowledgeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Notifications acknowledged successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/BulkAcknowledgeResult"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetail",
                  "additionalProperties": false,
                  "default": ""
                }
              }
            }
          }
        },
        "security": [
          {
            "basic_auth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "PartyReference": {
        "type": "string",
        "description": "Unique identifier for parties, used to reference parties from elsewhere in the spec",
        "maxLength": 50,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9-?,_]+$"
      },
      "AddressReference": {
        "type": "string",
        "description": "Unique identifier for addresses, used to reference addresses from elsewhere in the spec",
        "maxLength": 50,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9-?,_]+$"
      },
      "DocumentReference": {
        "type": "string",
        "description": "Unique identifier for documents, used to reference documents from elsewhere in the spec",
        "maxLength": 50,
        "minLength": 1,
        "pattern": "^[A-Za-z0-9-?,_]+$"
      },
      "ProblemDetails": {
        "description": "Detailed information about an error",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of error received",
            "example": "L2_MDREF_ERROR"
          },
          "detail": {
            "type": "string",
            "description": "A longer description about the type of error received",
            "example": "The MDref included in the request does not exist"
          },
          "pointer": {
            "type": "string",
            "description": "A JSON pointer to the location in the JSON payload that caused the error (optional)",
            "example": "/data/transaction/t1/mdref"
          }
        },
        "required": [
          "detail",
          "type"
        ],
        "type": "object"
      },
      "DocumentUploadUrlData": {
        "required": [
          "document_type",
          "file_length",
          "file_sha256"
        ],
        "type": "object",
        "properties": {
          "document_type": {
            "type": "string",
            "enum": [
              "ABSTRACT",
              "ACKAPU",
              "ADJAR",
              "ADJREVU",
              "ADMIN_LTRS",
              "ADV1",
              "ADV2",
              "AGREEMENT",
              "AMS1",
              "AN1",
              "AP1",
              "APPL_FRM",
              "APPOINTMENT_OF_TRUSTEE",
              "AS1",
              "AS2",
              "AS3",
              "ASSENT",
              "ASSIGNMENT",
              "BANKRUPTCY_COURT_ORDER",
              "BCA_TRUST",
              "BIRTH_CERT",
              "BOUND_PLAN",
              "CC",
              "CCD",
              "CERT_CON_CH",
              "CERT_DEATH",
              "CERT_RED_EX",
              "CERT_REG_CH",
              "CERT_S89",
              "CH1",
              "CH2",
              "CH3",
              "CHARG_ORD",
              "CHARGE",
              "CIVIL_CERT",
              "CM2",
              "CM5",
              "CM6",
              "CN1",
              "CNFRM_DTMN_LTA_LGHA",
              "CNFRM_NO_DEED_SUR",
              "CNFRM_NO_LTA_LGHA",
              "CNSNT_ADMIN_COURT",
              "COMP_DOC",
              "CONSENT",
              "CONST_COMP",
              "CONTR_RES",
              "CONV_CERT",
              "CONV_CERT_DEATH",
              "CONVEYANCE",
              "COR_CERT",
              "CORRES",
              "COSR",
              "COURT_ORD",
              "CRALIQ",
              "CRED_DEC",
              "CRED_RES",
              "CRT_FORM_7",
              "CRWALIQ",
              "DB",
              "DEATH_CERT",
              "DEBENTURE",
              "DEC_AB_NULL_MARR",
              "DEED",
              "DEED_POLL",
              "DEED_REG_DIS",
              "DEED_SUR",
              "DISCHARGE",
              "DJP",
              "DL",
              "DOP",
              "DRIVING_LICENCE",
              "DS1",
              "DS2",
              "DS3",
              "DS3_SHORT",
              "EOB",
              "EOL",
              "EVD_NO_RENEW",
              "EVIDENCE",
              "EV_OV_NAME_CHANGE",
              "EX1",
              "EX1A",
              "EX3",
              "FORM_600",
              "FORM_600CH",
              "FORM_DI",
              "FORM_JO",
              "FR1",
              "GENDER_CERT",
              "GVD",
              "HR1",
              "HR2",
              "HR4",
              "ID1",
              "ID2",
              "ID3",
              "ID4",
              "ID5",
              "ID_EV",
              "ID_FRM",
              "INDENTURE",
              "JP1",
              "K17_OR_K18",
              "K20",
              "K22",
              "K3",
              "K4",
              "LEASE",
              "LICENCE",
              "LIQ_CERT_1",
              "LIQ_CERT_2",
              "LIQ_CERT_3",
              "LIQ01",
              "LNDLD_CNSNT",
              "LONP",
              "LR_CORRES",
              "LTT",
              "MARR_CERT",
              "MEMO",
              "MORD",
              "MRTG_DEED",
              "NOD",
              "NOTICE_OF_APPOINTMENT",
              "ORD_DISS_NULL_CP",
              "OR_CERT_BE",
              "PASSPORT",
              "PLAN",
              "POA",
              "PROBATE",
              "PSS1",
              "REVERS_INT",
              "RN",
              "RX1",
              "RX2",
              "RX3",
              "RX4",
              "RXC",
              "RXCD",
              "SC",
              "SDLT",
              "SEV",
              "SHRF_RTN",
              "SIDE_LTR",
              "SOT",
              "SSALIQ",
              "SSA_TRUST",
              "STAT_DEC",
              "SUB_CHARGE",
              "TIB_CERT_BE",
              "TP1",
              "TP2",
              "TRUSTEE_COURT_ORDER",
              "TR1",
              "TR2",
              "TR4",
              "TR5",
              "TRANSFER",
              "TRUSTEE_RESOLUTION",
              "UN1",
              "UN2",
              "UN3",
              "UN4",
              "UT1",
              "VAR_CHARGE",
              "VAR_COV",
              "VAR_EAS",
              "VAR_LEASE",
              "VESTING_ORDER",
              "WCT",
              "WINDING_UP",
              "WIT_STATE"
            ]
          },
          "additional_provider_filter": {
            "maxLength": 300,
            "minLength": 1,
            "type": "string",
            "description": "A value that can be used to subsequently retrieve request responses based upon high level grouping"
          },
          "file_length": {
            "maximum": 41943040,
            "minimum": 1,
            "type": "integer",
            "description": "The file contents length in bytes",
            "format": "int64"
          },
          "file_sha256": {
            "maxLength": 44,
            "minLength": 44,
            "type": "string",
            "description": "The checksum of file contents, as a base64 encoded string of the SHA-256 binary digest of the file, which should be 44 characters long. See the Business Gateway developer pack for detailed information on generating the correct SHA-256 hash",
            "default": ""
          }
        }
      },
      "DocumentUploadUrlRequest": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DocumentUploadUrlData"
          }
        }
      },
      "DocumentUploadUrlResponse": {
        "type": "object",
        "properties": {
          "upload_url": {
            "type": "string",
            "description": "The URL used to upload the document. The request must be a PUT HTTP request, where the body of the request is the document that will be uploaded. This URL should only be used once",
            "example": "about:blank"
          },
          "document_id": {
            "type": "string",
            "description": "A unique id for this document, which should be used in the application submission request",
            "example": "12345678-1234-1234-1234-1234-123456789abc"
          }
        }
      },
      "CorrespondenceDocumentType": {
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "CorrespondenceRecordDocumentItemWithDownloadId": {
        "properties": {
          "created_at": {
            "type": "string"
          },
          "download_id": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/CorrespondenceDocumentType"
          }
        },
        "required": [
          "type"
        ],
        "description": "List of documents in the correspondence record"
      },
      "ProblemDetail": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri",
            "example": "about:blank",
            "description": "A uri referencing documentation for this problem"
          },
          "title": {
            "type": [
              "string",
              "null"
            ],
            "example": "Server Error",
            "description": "A brief summary of the problem"
          },
          "detail": {
            "type": [
              "string",
              "null"
            ],
            "example": "There was a problem with your request, try again soon.",
            "description": "A human readable explanation of the problem"
          },
          "instance": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "example": "https://api.example.com/path/you/called",
            "description": "A reference that identifies the specific occurrence of the problem"
          },
          "status": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 100,
            "maximum": 599,
            "description": "HTTP status code of the original response",
            "example": 500
          },
          "errors": {
            "type": [
              "array",
              "null"
            ],
            "description": "An extension to the RFC that describes errors that occurred in the request",
            "items": {
              "$ref": "#/components/schemas/ErrorDescription"
            }
          }
        },
        "required": [
          "type"
        ]
      },
      "AcknowledgeRequest": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "maxItems": 100,
            "minItems": 1
          }
        },
        "required": [
          "data"
        ]
      },
      "AcknowledgeOut": {
        "type": "object",
        "properties": {
          "acknowledged": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "not_found": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "acknowledged"
        ]
      },
      "CorrespondenceRecordInApplicationInformation": {
        "properties": {
          "documents": {
            "type": "array",
            "description": "List of documents in the correspondence record",
            "items": {
              "$ref": "#/components/schemas/CorrespondenceRecordDocumentItemWithDownloadId"
            }
          },
          "hmlr_reference": {
            "type": "string",
            "description": "The HMLR application reference to which the record applies."
          },
          "record_id": {
            "type": "string",
            "description": "ID of the correspondence record",
            "example": "1234567"
          },
          "title_no": {
            "type": "string",
            "description": "The title number to which the record applies."
          }
        },
        "required": [
          "documents",
          "record_id"
        ],
        "description": "Representation of a correspondence record"
      },
      "ApplicationCreationDataResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationCreationResponse"
          }
        },
        "required": [
          "data"
        ]
      },
      "SubstantiveApplication": {
        "description": "The request to submit an application to HM Land Registry",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/SubstantiveApplicationData"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "SubstantiveApplicationData": {
        "description": "The data required to capture an application",
        "properties": {
          "additional_provider_filter": {
            "type": "string",
            "description": "A value that can be used to subsequently retrieve request responses based upon high level grouping",
            "maxLength": 50,
            "minLength": 0,
            "pattern": "^\\w*$"
          },
          "addresses": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "A map of address references to addresses"
          },
          "applicants": {
            "type": "array",
            "description": "The party or parties who the application is being submitted for.",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PartyReference"
                }
              ],
              "description": "The party or parties who the application is being submitted for."
            }
          },
          "application_lodger": {
            "$ref": "#/components/schemas/ApplicationLodger"
          },
          "customer_reference": {
            "type": "string",
            "description": "A short name/reference a customer has given to the application",
            "maxLength": 25,
            "minLength": 0
          },
          "disagree_with_validation_results": {
            "type": "array",
            "description": "A list of instances for which the user disagrees with validation errors",
            "items": {
              "$ref": "#/components/schemas/ValidationDisagreement"
            }
          },
          "documents": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/DocumentDetails"
            },
            "description": "A map of document references to documents"
          },
          "jp1_reference": {
            "type": "string",
            "description": "The JP1 reference to use when removing a JP1 restriction",
            "maxLength": 7,
            "minLength": 7,
            "pattern": "^([a-zA-Z0-9]*)$"
          },
          "parties": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Party"
            },
            "description": "A map of party references to parties"
          },
          "submission_warning_understood": {
            "type": "boolean",
            "description": "Setting this value to true notes you have understood the following: <br>**WARNING** <br>Section 77 of the Land Registration Act 2002 imposes a duty not to apply for the entry of a restriction without reasonable cause; anyone in breach of this duty may be liable in damages to anyone who suffers loss in consequence. <br>If you dishonestly enter information or make a statement that you know is, or might be, untrue or misleading, and intend by doing so to make a gain for yourself or another person, or to cause loss or the risk of loss to another person, you may commit the offence of fraud under section 1 of the Fraud Act 2006, the maximum penalty for which is 10 years’ imprisonment or an unlimited fine, or both. <br>Failure to complete this form with proper care may result in a loss of protection under the Land Registration Act 2002 if, as a result, a mistake is made in the register.  <br>Under section 66 of the Land Registration Act 2002 most documents (including this form) kept by the registrar relating to an application to the registrar or referred to in the register are open to public inspection and copying. If you believe a document contains prejudicial information, you may apply for that part of the document to be made exempt using Form EX1, under rule 136 of the Land Registration Rules 2003."
          },
          "titles": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/TitleDetails"
            },
            "description": "A map of title references to titles",
            "maxProperties": 199,
            "minProperties": 1
          },
          "transactions": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Transaction"
            },
            "description": "A map of transaction references to transactions",
            "minProperties": 1
          },
          "type": {
            "type": "string",
            "description": "The type of application to submit",
            "enum": [
              "REGISTER_UPDATE",
              "TRANSFER_OF_PART",
              "DISPOSITIONARY_FIRST_LEASE",
              "REMOVE_JP1"
            ]
          }
        },
        "required": [
          "application_lodger",
          "customer_reference",
          "submission_warning_understood",
          "titles",
          "transactions",
          "type"
        ],
        "type": "object"
      },
      "ApplicationInformationResponse": {
        "description": "Resource containing representation of an application's details",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationInformation"
          }
        }
      },
      "ApplicationCreationResponse": {
        "description": "The response from the application submission endpoint",
        "properties": {
          "application_request_id": {
            "type": "string",
            "description": "The ID of the application submission request"
          }
        },
        "type": "object"
      },
      "BulkAcknowledgeResult": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AcknowledgeOut"
          }
        }
      },
      "AttachAMessageRequest": {
        "properties": {
          "data": {
            "properties": {
              "message_text": {
                "type": "string",
                "description": "The content of the message to be attached",
                "maxLength": 4034,
                "minLength": 0
              }
            },
            "required": [
              "message_text"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object",
        "description": "The request to send to the endpoint to request an upload URL"
      },
      "AttachADocumentRequest": {
        "properties": {
          "data": {
            "properties": {
              "certification_statement_type": {
                "type": "string",
                "description": "    * `CERTIFIED` - I/we certify this is a true copy of an original document\n    * `CERTIFIED_BY_ANOTHER` - I/we certify this document is a true copy of an original document which is certified by a conveyancer to be a true copy of the original\n    * `NOT_CERTIFIED` - This document is an uncertified copy\n",
                "enum": [
                  "CERTIFIED",
                  "CERTIFIED_BY_ANOTHER",
                  "NOT_CERTIFIED"
                ]
              },
              "document_id": {
                "type": "string",
                "description": "The id of the document from the document upload request",
                "example": "12345678-1234-1234-1234-123456789abc"
              }
            },
            "required": [
              "certification_statement_type",
              "document_id"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object",
        "description": "The request to send to the endpoint to request an upload URL"
      },
      "ErrorDescription": {
        "type": "object",
        "properties": {
          "detail": {
            "description": "A human readable explanation of the error",
            "type": "string",
            "example": "Date must be in the past"
          },
          "pointer": {
            "description": "A JSON pointer to where in the body this error occurred",
            "type": [
              "string",
              "null"
            ],
            "example": "#/data/name"
          },
          "header": {
            "description": "The header where this error occurred",
            "type": [
              "string",
              "null"
            ],
            "example": "Idempotency-Key"
          },
          "parameter": {
            "description": "The path or query parameter where this error occurred",
            "type": [
              "string",
              "null"
            ],
            "example": "occurred_before"
          }
        },
        "required": [
          "detail"
        ]
      },
      "Address": {
        "description": "An object containing an address, where the address details may be one of multiple types",
        "properties": {
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/BfpoAddress"
              },
              {
                "$ref": "#/components/schemas/DxAddress"
              },
              {
                "$ref": "#/components/schemas/EmailAddress"
              },
              {
                "$ref": "#/components/schemas/OverseasAddress"
              },
              {
                "$ref": "#/components/schemas/PoBoxAddress"
              },
              {
                "$ref": "#/components/schemas/UkAddress"
              }
            ]
          }
        },
        "required": [
          "details"
        ]
      },
      "BfpoAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "care_of_name": {
                "type": "string",
                "description": "The care of name to address correspondence to",
                "maxLength": 200,
                "minLength": 0
              },
              "number": {
                "type": "string",
                "description": "The BPFO number for the address",
                "maxLength": 10,
                "minLength": 0
              },
              "service_number_rank": {
                "type": "string",
                "description": "The service number of the personnel",
                "maxLength": 35,
                "minLength": 0
              },
              "unit_regiment": {
                "type": "string",
                "description": "The unit or regiment of the personnel",
                "maxLength": 35,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A British Forces Post Office address",
        "required": [
          "number",
          "service_number_rank",
          "unit_regiment"
        ]
      },
      "DxAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "care_of_name": {
                "type": "string",
                "description": "The care of name to address correspondence to",
                "maxLength": 200,
                "minLength": 0
              },
              "exchange_name": {
                "type": "string",
                "description": "The DX exchange",
                "maxLength": 20,
                "minLength": 0
              },
              "number": {
                "type": "string",
                "description": "The DX number",
                "maxLength": 10,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A document exchange address",
        "required": [
          "exchange_name",
          "number"
        ]
      },
      "EmailAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "The email address of the customer",
                "maxLength": 254,
                "minLength": 0
              }
            }
          }
        ],
        "description": "An object containing the email address of the customer",
        "required": [
          "email"
        ]
      },
      "OverseasAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "care_of_name": {
                "type": "string",
                "description": "The care of name to address correspondence to",
                "maxLength": 200,
                "minLength": 0
              },
              "country": {
                "type": "string",
                "description": "The country the address resides in",
                "maxLength": 35,
                "minLength": 0
              },
              "line1": {
                "type": "string",
                "description": "The first line of the address, may differ per country/region",
                "maxLength": 35,
                "minLength": 0
              },
              "line2": {
                "type": "string",
                "description": "The second line of the address, may differ per country/region",
                "maxLength": 35,
                "minLength": 0
              },
              "line3": {
                "type": "string",
                "description": "The third line of the address, may differ per country/region",
                "maxLength": 35,
                "minLength": 0
              },
              "line4": {
                "type": "string",
                "description": "The fourth line of the address, may differ per country/region",
                "maxLength": 35,
                "minLength": 0
              },
              "line5": {
                "type": "string",
                "description": "The fifth line of the address, may differ per country/region",
                "maxLength": 35,
                "minLength": 0
              }
            }
          }
        ],
        "description": "The address of a premise outside the UK",
        "required": [
          "country",
          "line1"
        ]
      },
      "PoBoxAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "care_of_name": {
                "type": "string",
                "description": "The care of name to address correspondence to",
                "maxLength": 200,
                "minLength": 0
              },
              "number": {
                "type": "string",
                "description": "The number of the PO Box",
                "maxLength": 20,
                "minLength": 0
              },
              "post_town": {
                "type": "string",
                "description": "The town/city of the PO Box",
                "maxLength": 35,
                "minLength": 0
              },
              "postcode": {
                "type": "string",
                "description": "The postcode of the PO Box",
                "minLength": 1,
                "pattern": "^([Gg][Ii][Rr] ?0[Aa]{2})|([A-Za-z]{1,2}[0-9][0-9A-Za-z]? ?[0-9][A-Za-z]{2})$"
              }
            }
          }
        ],
        "description": "An address of a PO Box",
        "required": [
          "number",
          "post_town",
          "postcode"
        ]
      },
      "UkAddress": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AddressDetails"
          },
          {
            "type": "object",
            "properties": {
              "building_description": {
                "type": "string",
                "description": "Name of residential or commercial premise",
                "maxLength": 85,
                "minLength": 0
              },
              "care_of_name": {
                "type": "string",
                "description": "The care of name to address correspondence to",
                "maxLength": 200,
                "minLength": 0
              },
              "county": {
                "type": "string",
                "description": "UK County",
                "maxLength": 50,
                "minLength": 0
              },
              "department_name": {
                "type": "string",
                "description": "Used to supplement Organisation Name to identify a department within the organisation",
                "maxLength": 60,
                "minLength": 0
              },
              "dependent_locality": {
                "type": "string",
                "description": "Used when the same thoroughfare or street name reoccurs in a Post town",
                "maxLength": 35,
                "minLength": 0
              },
              "dependent_street": {
                "type": "string",
                "description": "Used to supplement street, when a street name is used twice in the same post town",
                "maxLength": 80,
                "minLength": 0
              },
              "double_dependent_locality": {
                "type": "string",
                "description": "Used to supplement Dependant Locality, when the dependant locality exists twice in the same locality",
                "maxLength": 35,
                "minLength": 0
              },
              "organisation_name": {
                "type": "string",
                "description": "The name of the organisation at the address",
                "maxLength": 60,
                "minLength": 0
              },
              "post_town": {
                "type": "string",
                "description": "The town of the delivery point of the address",
                "maxLength": 35,
                "minLength": 0
              },
              "postcode": {
                "type": "string",
                "description": "A UK postcode",
                "minLength": 1,
                "pattern": "^([Gg][Ii][Rr] ?0[Aa]{2})|([A-Za-z]{1,2}[0-9][0-9A-Za-z]? ?[0-9][A-Za-z]{2})$"
              },
              "street": {
                "type": "string",
                "description": "The street of the address",
                "maxLength": 80,
                "minLength": 0
              },
              "sub_building_description": {
                "type": "string",
                "description": "Used to identify a specific building when a premise is split into individual units",
                "maxLength": 40,
                "minLength": 0
              },
              "uprn": {
                "type": "integer",
                "format": "int64",
                "description": "The Unique Property Reference Number of the address",
                "minimum": 1
              }
            }
          }
        ],
        "description": "A UK postal address",
        "required": [
          "building_description",
          "post_town",
          "postcode"
        ]
      },
      "AddressDetails": {
        "description": "The details captured for a specific address. Details differ depending on type",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "UK",
              "OVERSEAS",
              "EMAIL",
              "DX",
              "BFPO",
              "PO_BOX"
            ]
          }
        }
      },
      "ApplicationLodger": {
        "description": "Information about the person lodging the application (This is usually the conveyancer lodging on behalf of an individual)",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email address of the application lodger",
            "maxLength": 254,
            "minLength": 0,
            "pattern": "^(?:[a-zA-Z0-9!#$%'*+/=?^_{|}~&-]+(?:\\.[a-zA-Z0-9!#$%'*+/=?^_{|}~&-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$"
          },
          "telephone": {
            "type": "string",
            "description": "A telephone number that can be used to contact the person lodging the application",
            "maxLength": 50,
            "minLength": 0
          },
          "type": {
            "type": "string",
            "description": "* `CONVEYANCER` - The user submitting the application is a conveyancer or acting on behalf of a conveyancer\n* `NON_CONVEYANCER` - The user submitting the application is not a conveyancer",
            "enum": [
              "CONVEYANCER",
              "NON_CONVEYANCER"
            ]
          }
        },
        "required": [
          "email",
          "type"
        ],
        "type": "object"
      },
      "ValidationDisagreement": {
        "description": "Fields to describe which validation results are contested and why",
        "properties": {
          "comment": {
            "type": "string",
            "description": "A free text description of the disagreement",
            "maxLength": 250,
            "minLength": 1
          },
          "reason": {
            "type": "string",
            "description": "The reason for disagreeing with the validation result",
            "enum": [
              "DISAGREE_WITH_REGISTER",
              "HMLR_DATA_INCORRECT_OR_OUTDATED",
              "EXCEPTION_NOT_COVERED_BY_BUSINESS_RULES"
            ]
          },
          "validation_pointer": {
            "type": "string",
            "description": "A JSON pointer to the contested field in the submission payload. Should match the 'pointer' returned within a status API error",
            "maxLength": 250,
            "minLength": 1
          },
          "validation_type": {
            "type": "string",
            "description": "The type of validation being contested. Should match the 'type' returned within a status API error",
            "maxLength": 250,
            "minLength": 1
          }
        },
        "required": [
          "comment",
          "reason",
          "validation_pointer",
          "validation_type"
        ]
      },
      "DocumentDetails": {
        "description": "The details about an uploaded document",
        "properties": {
          "document_id": {
            "type": "string",
            "description": "The id of the document from the document upload request",
            "minLength": 1
          },
          "document_metadata": {
            "$ref": "#/components/schemas/DocumentMetadata"
          },
          "type": {
            "type": "string",
            "description": "The HM Land Registry document type",
            "enum": [
              "ABSTRACT",
              "ACKAPU",
              "ADJAR",
              "ADJREVU",
              "ADMIN_LTRS",
              "ADV1",
              "ADV2",
              "AGREEMENT",
              "AMS1",
              "AN1",
              "AP1",
              "APPL_FRM",
              "APPOINTMENT_OF_TRUSTEE",
              "AS1",
              "AS2",
              "AS3",
              "ASSENT",
              "ASSIGNMENT",
              "BANKRUPTCY_COURT_ORDER",
              "BCA_TRUST",
              "BIRTH_CERT",
              "BOUND_PLAN",
              "CC",
              "CCD",
              "CERT_CON_CH",
              "CERT_DEATH",
              "CERT_RED_EX",
              "CERT_REG_CH",
              "CERT_S89",
              "CH1",
              "CH2",
              "CH3",
              "CHARG_ORD",
              "CHARGE",
              "CIVIL_CERT",
              "CM2",
              "CM5",
              "CM6",
              "CN1",
              "CNFRM_DTMN_LTA_LGHA",
              "CNFRM_NO_DEED_SUR",
              "CNFRM_NO_LTA_LGHA",
              "CNSNT_ADMIN_COURT",
              "COMP_DOC",
              "CONSENT",
              "CONST_COMP",
              "CONTR_RES",
              "CONV_CERT",
              "CONV_CERT_DEATH",
              "CONVEYANCE",
              "COR_CERT",
              "CORRES",
              "COSR",
              "COURT_ORD",
              "CRALIQ",
              "CRED_DEC",
              "CRED_RES",
              "CRT_FORM_7",
              "CRWALIQ",
              "DB",
              "DEATH_CERT",
              "DEBENTURE",
              "DEC_AB_NULL_MARR",
              "DEED",
              "DEED_POLL",
              "DEED_REG_DIS",
              "DEED_SUR",
              "DISCHARGE",
              "DJP",
              "DL",
              "DOP",
              "DRIVING_LICENCE",
              "DS1",
              "DS2",
              "DS3",
              "DS3_SHORT",
              "EOB",
              "EOL",
              "EVD_NO_RENEW",
              "EVIDENCE",
              "EV_OV_NAME_CHANGE",
              "EX1",
              "EX1A",
              "EX3",
              "FORM_600",
              "FORM_600CH",
              "FORM_DI",
              "FORM_JO",
              "FR1",
              "GENDER_CERT",
              "GVD",
              "HR1",
              "HR2",
              "HR4",
              "ID1",
              "ID2",
              "ID3",
              "ID4",
              "ID5",
              "ID_EV",
              "ID_FRM",
              "INDENTURE",
              "JP1",
              "K17_OR_K18",
              "K20",
              "K22",
              "K3",
              "K4",
              "LEASE",
              "LICENCE",
              "LIQ_CERT_1",
              "LIQ_CERT_2",
              "LIQ_CERT_3",
              "LIQ01",
              "LNDLD_CNSNT",
              "LONP",
              "LR_CORRES",
              "LTT",
              "MARR_CERT",
              "MEMO",
              "MORD",
              "MRTG_DEED",
              "NOD",
              "NOTICE_OF_APPOINTMENT",
              "ORD_DISS_NULL_CP",
              "OR_CERT_BE",
              "PASSPORT",
              "PLAN",
              "POA",
              "PROBATE",
              "PSS1",
              "REVERS_INT",
              "RN",
              "RX1",
              "RX2",
              "RX3",
              "RX4",
              "RXC",
              "RXCD",
              "SC",
              "SDLT",
              "SEV",
              "SHRF_RTN",
              "SIDE_LTR",
              "SOT",
              "SSALIQ",
              "SSA_TRUST",
              "STAT_DEC",
              "SUB_CHARGE",
              "TIB_CERT_BE",
              "TP1",
              "TP2",
              "TRUSTEE_COURT_ORDER",
              "TR1",
              "TR2",
              "TR4",
              "TR5",
              "TRANSFER",
              "TRUSTEE_RESOLUTION",
              "UN1",
              "UN2",
              "UN3",
              "UN4",
              "UT1",
              "VAR_CHARGE",
              "VAR_COV",
              "VAR_EAS",
              "VAR_LEASE",
              "VESTING_ORDER",
              "WCT",
              "WINDING_UP",
              "WIT_STATE"
            ]
          },
          "companies_house_certification": {
            "type": "boolean",
            "description": "Required when document is of type `CERT_REG_CH`.\nSupplying a value of `true` means the customer confirms that the charge lodged here\n* has been filed at Companies House\n* related to the accompanying certificate of registration."
          }
        },
        "required": [
          "document_id",
          "document_metadata",
          "type"
        ]
      },
      "Party": {
        "description": "A person or entity that has a role in an transaction",
        "properties": {
          "address_for_service_option": {
            "$ref": "#/components/schemas/AddressForServiceOption"
          },
          "addresses": {
            "type": "array",
            "description": "A list of address references for the party",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/AddressReference"
                }
              ],
              "description": "A list of address references for the party"
            }
          },
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/OtherOrganisation"
              },
              {
                "$ref": "#/components/schemas/OverseasCompany"
              },
              {
                "$ref": "#/components/schemas/PrivateIndividual"
              },
              {
                "$ref": "#/components/schemas/UKCompany"
              },
              {
                "$ref": "#/components/schemas/UnknownParty"
              }
            ]
          },
          "identity_evidence_type": {
            "type": "string",
            "description": "Required when `representation_type` is `NOT_REPRESENTED`\n* `EVIDENCE` - I have attached evidence of their identity with this application\n* `VERIFIED` - I am satisfied that sufficient steps have been taken to verify their identity and that they are the registered proprietor or have the right to be registered as the proprietor \n* `NOT_REQUIRED` - I don’t need to provide evidence of ID",
            "enum": [
              "EVIDENCE",
              "VERIFIED",
              "NOT_REQUIRED"
            ]
          },
          "other_conveyancer": {
            "$ref": "#/components/schemas/OtherConveyancer"
          },
          "representation_type": {
            "type": "string",
            "description": "The type of representation the party has.\n* `LODGING_CONVEYANCER` - The conveyancer lodging the application.\n* `OTHER_CONVEYANCER` - The party is represented by another conveyancer. Details will be included with the application.\n* `NOT_REPRESENTED` - The party is not represented by a conveyancer and identity evidence has been provided.\n* `NOT_REQUIRED` - The party is not required to have a representation type.",
            "enum": [
              "LODGING_CONVEYANCER",
              "OTHER_CONVEYANCER",
              "NOT_REPRESENTED",
              "NOT_REQUIRED"
            ]
          }
        },
        "required": [
          "address_for_service_option",
          "details",
          "representation_type"
        ]
      },
      "TitleDetails": {
        "description": "Information about a HM Land Registry title",
        "properties": {
          "disclosable_overriding_interests": {
            "type": "boolean",
            "description": "Are there any disclosable overriding interests for the title"
          },
          "property_address": {
            "$ref": "#/components/schemas/PropertyAddress"
          },
          "scope_details": {
            "$ref": "#/components/schemas/TitleScopeDetails"
          },
          "search_reference": {
            "type": "string",
            "description": "Search reference for the transaction. Must be exactly 9 characters: first three digits in the range 001-255, a hyphen, 2 alphanumeric characters, a hyphen, then 2 alphanumeric characters. Capitalisation does not matter.",
            "maxLength": 9,
            "minLength": 9,
            "pattern": "^(00[1-9]|0[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])-[A-Za-z0-9]{2}-[A-Za-z0-9]{2}$"
          },
          "title_number": {
            "type": "string",
            "description": "The HM Land Registry title number",
            "maxLength": 9,
            "minLength": 0,
            "pattern": "^[A-Z]{0,3}[0-9]{1,6}[ZT]?$"
          },
          "title_type": {
            "type": "string",
            "description": "* `REGISTER_TITLE` - Any titles on REGISTER_UPDATE or REMOVE_JP1 application types\n* `TRANSFEROR_TITLE` - Titles related to the transferor (TRANSFER_OF_PART applications only)\n* `LANDLORD_TITLE` - Titles related to the landlord (DISPOSITIONARY_FIRST_LEASE applications only)\n* `TENANT_TITLE` - The title related to the tenant on a DISPOSITIONARY_FIRST_LEASE application which is a lease extension.\n* `ADDITIONAL_TITLE` - Any other titles on TRANSFER_OF_PART or DISPOSITIONARY_FIRST_LEASE applications",
            "enum": [
              "REGISTER_TITLE",
              "TRANSFEROR_TITLE",
              "ADDITIONAL_TITLE",
              "LANDLORD_TITLE",
              "TENANT_TITLE"
            ]
          }
        },
        "required": [
          "disclosable_overriding_interests",
          "scope_details",
          "title_number"
        ]
      },
      "Transaction": {
        "description": "The object representing a transaction to apply to specific titles on the application",
        "properties": {
          "details": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AmountDetails"
              },
              {
                "$ref": "#/components/schemas/Charge"
              },
              {
                "$ref": "#/components/schemas/Discharge"
              },
              {
                "$ref": "#/components/schemas/Transfer"
              }
            ]
          },
          "documents": {
            "type": "array",
            "description": "List of document references that are linked to this transaction.",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DocumentReference"
                }
              ],
              "description": "List of document references that are linked to this transaction."
            }
          },
          "fee_in_pence": {
            "type": "integer",
            "format": "int32",
            "description": "The fee (in pence) for the transaction",
            "minimum": 0
          },
          "party_roles": {
            "type": "array",
            "description": "A list of roles/capacities for each party relating to the transaction",
            "items": {
              "$ref": "#/components/schemas/PartyRole"
            }
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "description": "The priority application the transactions should be processed in. Multiple transactions cannot have the same priority.",
            "maximum": 20,
            "minimum": 1
          },
          "relates_to_new_title": {
            "type": "boolean",
            "description": "Set to true when title number cannot be provided"
          },
          "title_references": {
            "type": "array",
            "description": "A list of titles that affect or relate to this transaction",
            "items": {
              "type": "string",
              "description": "A list of titles that affect or relate to this transaction",
              "maxLength": 9,
              "minLength": 0
            }
          },
          "type": {
            "type": "string",
            "description": "The HM Land Registry transaction type code",
            "enum": [
              "ADV1",
              "ADV2",
              "AGN",
              "AML",
              "APLC",
              "APLCO",
              "APLM",
              "APR",
              "APT",
              "ARC",
              "ASSTTP",
              "ASTC",
              "ASTT",
              "ATP",
              "ATR",
              "AUN",
              "BKN",
              "BKR",
              "C",
              "CAG",
              "CANI",
              "CANR",
              "CANU",
              "CBKN",
              "CBKR",
              "CCT",
              "CH2",
              "CH3",
              "CHOA",
              "CHOU",
              "CHR",
              "CN",
              "CNC",
              "CNL",
              "COA",
              "COAC",
              "CON",
              "COP",
              "CPD",
              "CPVK",
              "CPVU",
              "CTD",
              "CUR",
              "DB",
              "DCLN",
              "DCLV",
              "DEB",
              "DFL1",
              "DFL3",
              "DFL4",
              "DFL5",
              "DFL6",
              "DFT",
              "DIS",
              "DJP",
              "DL",
              "DMR",
              "DOG",
              "DP",
              "DPR",
              "DSP",
              "DSS",
              "DTL",
              "EX1",
              "EX3",
              "EXR",
              "HR",
              "JP1",
              "LCATCO",
              "LCBD",
              "LCBET",
              "LCBN",
              "LCF",
              "LCMRE",
              "LCOE",
              "LCOF",
              "LCSD",
              "LCSDM",
              "LCSOL",
              "LCSOLM",
              "LCSDWT",
              "LCSDMWT",
              "MDR",
              "NCT",
              "NDC",
              "NFR",
              "NOE",
              "NOL",
              "NOPSC",
              "NPR",
              "NRT",
              "PC",
              "PER",
              "PRO",
              "RC",
              "RE",
              "RFN",
              "RHR",
              "ROCA",
              "ROCC",
              "ROCU",
              "RNT",
              "ROE",
              "RRC",
              "RRD",
              "RTM",
              "RUN",
              "RXL",
              "RXN",
              "RXS",
              "SBC",
              "SCH",
              "SHO",
              "SJT",
              "SOT",
              "STVC",
              "STVL",
              "T",
              "TNV",
              "TNVTP",
              "TOC",
              "TOSNV",
              "TOSNVTP",
              "TOSTP",
              "TOSV",
              "TPS",
              "TPSTP",
              "TRC",
              "TRM",
              "TSCNV",
              "TSCNVTP",
              "TSCTP",
              "TSCV",
              "TTP",
              "TVR",
              "TVRTP",
              "UNN",
              "UPT",
              "VC",
              "VLAN",
              "VLAP",
              "VLUN",
              "VO",
              "VOC",
              "VOCA",
              "VOCU",
              "VOE",
              "VOEA",
              "VOEU",
              "VRC",
              "WCT",
              "CADV",
              "ADV1NT2",
              "DM",
              "ADV1S12",
              "RADV",
              "RTBAP",
              "RORBAP",
              "NAOA",
              "WDR"
            ]
          }
        },
        "required": [
          "fee_in_pence",
          "priority",
          "type"
        ]
      },
      "NotificationResponse": {
        "type": "object",
        "properties": {
          "notification_id": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the notification"
          },
          "created_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2025-01-01T00:00:00Z",
            "description": "Date and time the notification was created"
          },
          "event_datetime": {
            "type": "string",
            "format": "date-time",
            "example": "2025-01-01T00:00:00Z",
            "description": "Date and time the event occurred"
          },
          "payload_schema": {
            "type": "string",
            "description": "A link to a resource that describes the schema of the payload, this could be a JSON schema or documentation for example",
            "format": "uri",
            "example": "https://example.com/"
          },
          "notification_type": {
            "type": "string",
            "description": "The type of notification, required to distiguish notification types that share a schema",
            "example": "TYPE_1"
          },
          "subject_type": {
            "description": "An indicator for the type of the subject",
            "type": "string",
            "example": "subject_type"
          },
          "subject": {
            "type": "string",
            "description": "Unique reference to the subject of the notification",
            "example": "subject"
          },
          "additional_provider_filter": {
            "type": "string",
            "description": "Provides additional filtering for larger integrators"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACKNOWLEDGED"
            ]
          },
          "payload": {
            "type": "object",
            "description": "The payload of the notification",
            "additionalProperties": true
          }
        },
        "required": [
          "created_datetime",
          "event_datetime",
          "notification_id",
          "notification_type",
          "payload",
          "payload_schema",
          "status",
          "subject",
          "subject_type"
        ]
      },
      "DocumentUploadUrlDataResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DocumentUploadUrlResponse"
          }
        },
        "required": [
          "data"
        ]
      },
      "DocumentMetadata": {
        "description": "Metadata about the document that was uploaded",
        "properties": {
          "certification_statement_type": {
            "type": "string",
            "description": "* `CERTIFIED` - I/we certify this is a true copy of an original document\n* `CERTIFIED_BY_ANOTHER` - I/we certify this document is a true copy of an original document which is certified by a conveyancer to be a true copy of the original\n* `NOT_CERTIFIED` - This document is an uncertified copy ",
            "enum": [
              "CERTIFIED",
              "CERTIFIED_BY_ANOTHER",
              "NOT_CERTIFIED"
            ]
          },
          "document_filename": {
            "type": "string",
            "description": "The filename of the document",
            "maxLength": 255,
            "minLength": 0
          }
        },
        "required": [
          "certification_statement_type",
          "document_filename"
        ]
      },
      "Charge": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          {
            "type": "object",
            "properties": {
              "date": {
                "type": "string",
                "format": "date",
                "description": "The date of the charge, in the format yyyy-MM-dd"
              },
              "mdref": {
                "type": "string",
                "description": "The unique MD reference given to the mortgage. Should be upper case",
                "maxLength": 10,
                "minLength": 0
              },
              "value": {
                "type": "integer",
                "format": "int32",
                "description": "The total charge amount for all titles in pounds"
              }
            }
          }
        ],
        "description": "A TransactionDetails object to capture information about a charge",
        "required": [
          "date",
          "value"
        ]
      },
      "AddressForServiceOption": {
        "type": "string",
        "description": "* `PROVIDED_ADDRESS` - The address for service has been provided alongside this option\n* `NOT_REQUIRED` - The address for service is not required for the party",
        "enum": [
          "PROVIDED_ADDRESS",
          "NOT_REQUIRED"
        ]
      },
      "PartyDetails": {
        "description": "Details of the party that apply to all party types",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string",
            "description": "The overall type of the party (`PRIVATE_INDIVIDUAL` - A singular person `UK_COMPANY` - A company that was incorporated/registered in the UK `OVERSEAS_COMPANY` - A company that was first incorporated outside the UK `OTHER_ORGANISATION` - Any other organisation, e.g. a charity `UNKNOWN` - The type of the party is unknown)",
            "enum": [
              "PRIVATE_INDIVIDUAL",
              "OTHER_ORGANISATION",
              "OVERSEAS_COMPANY",
              "UK_COMPANY",
              "UNKNOWN"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "OtherOrganisation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PartyDetails"
          },
          {
            "type": "object",
            "properties": {
              "organisation_name": {
                "type": "string",
                "description": "Full name registered at Companies House or Company name as incorporated in its state of origin",
                "maxLength": 366,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A party object to capture infomation about an other organisation",
        "required": [
          "organisation_name",
          "type"
        ]
      },
      "OverseasCompany": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PartyDetails"
          },
          {
            "type": "object",
            "properties": {
              "company_number": {
                "type": "string",
                "description": "The UK Company Number or UK LLC number",
                "maxLength": 30,
                "minLength": 0
              },
              "incorporation_territory": {
                "type": "string",
                "description": "The territory, country or place where the company was first incorporated",
                "maxLength": 254,
                "minLength": 0
              },
              "organisation_name": {
                "type": "string",
                "description": "Full name registered at Companies House or Company name as incorporated in its state of origin",
                "maxLength": 366,
                "minLength": 0
              },
              "roe_id": {
                "type": "string",
                "description": "Registration of Overseas Entity ID",
                "pattern": "OE\\d{6}"
              },
              "roe_id_exempt": {
                "type": "boolean",
                "description": "Set to true if the company is exempt from providing a ROE ID"
              }
            }
          }
        ],
        "description": "A party object to capture information about an overseas company",
        "required": [
          "incorporation_territory",
          "organisation_name",
          "roe_id_exempt",
          "type"
        ]
      },
      "PrivateIndividual": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PartyDetails"
          },
          {
            "type": "object",
            "properties": {
              "forenames": {
                "type": "string",
                "description": "Forenames of a private individual",
                "maxLength": 366,
                "minLength": 0
              },
              "surname": {
                "type": "string",
                "description": "The surname of a private individual",
                "maxLength": 366,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A party object to capture infomation about a private individual",
        "required": [
          "surname",
          "type"
        ]
      },
      "UKCompany": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PartyDetails"
          },
          {
            "type": "object",
            "properties": {
              "company_number": {
                "type": "string",
                "description": "The UK Company Number or UK LLC number",
                "maxLength": 30,
                "minLength": 0
              },
              "organisation_name": {
                "type": "string",
                "description": "Full name registered at Companies House or Company name as incorporated in its state of origin",
                "maxLength": 366,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A party object to capture infomation about an UK company",
        "required": [
          "organisation_name",
          "type"
        ]
      },
      "UnknownParty": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PartyDetails"
          },
          {
            "type": "object",
            "properties": {
              "freeformat_name": {
                "type": "string",
                "description": "The name of the party, when type is UNKNOWN",
                "maxLength": 366,
                "minLength": 0
              }
            }
          }
        ],
        "description": "A party object to capture infomation about an unknown party",
        "required": [
          "freeformat_name",
          "type"
        ]
      },
      "OtherConveyancer": {
        "description": "Information about another conveyancer (who is not the lodging conveyancer) representing a party on the application",
        "properties": {
          "address_reference": {
            "type": "string",
            "description": "Reference to the conveyancer's registered address",
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9-?,_]+$"
          },
          "conveyancer_reference": {
            "type": "string",
            "description": "The conveyancer's reference",
            "maxLength": 25,
            "minLength": 0
          },
          "full_name": {
            "type": "string",
            "description": "The conveyancer's full name",
            "maxLength": 200,
            "minLength": 0
          }
        },
        "required": [
          "address_reference",
          "conveyancer_reference",
          "full_name"
        ]
      },
      "TitleScopeDetails": {
        "description": "The scope of the title that is being updated",
        "properties": {
          "part_description": {
            "type": "string",
            "description": "A description of the part of the title being updated",
            "maxLength": 100,
            "minLength": 0
          },
          "scope": {
            "type": "string",
            "description": "* `WHOLE` - The whole of the title\n* `PART` - Part of the title",
            "enum": [
              "WHOLE",
              "PART"
            ]
          }
        },
        "required": [
          "scope"
        ]
      },
      "AmountDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          {
            "type": "object",
            "properties": {
              "full_value_of_property": {
                "type": "integer",
                "format": "int32",
                "description": "Full value of the property in the title(s) in pounds"
              },
              "full_value_of_property_band": {
                "$ref": "#/components/schemas/ValueBand"
              },
              "outstanding_charge": {
                "type": "integer",
                "format": "int32",
                "description": "Value in pounds of any outstanding charge if applicable"
              },
              "value": {
                "type": "integer",
                "format": "int32",
                "description": "The value associated with the transaction in pounds",
                "minimum": 0
              },
              "value_band": {
                "$ref": "#/components/schemas/ValueBand"
              }
            }
          }
        ],
        "description": "A type of TransactionDetails that captures the value of the transaction"
      },
      "TransactionDetails": {
        "description": "Details of the transaction that apply to all transaction types",
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string",
            "description": "The overall type of the transaction (TRANSFER, CHARGE, DISCHARGE, AMOUNT, SEVERANCE)"
          }
        },
        "required": [
          "type"
        ]
      },
      "ValueBand": {
        "description": "A range the value of the transaction falls between. Valid bands are:\n* `0 - 100000`\n * `100001 - 200000\n* `200001 - 500000`\n* `500001 - 1000000`\n* `1000001 +`",
        "properties": {
          "lower_value_band": {
            "type": "integer",
            "format": "int32",
            "description": "The lower value in the band in pounds",
            "minimum": 0
          },
          "upper_value_band": {
            "type": "integer",
            "format": "int32",
            "description": "The upper value in the band in pounds. Not required when lower_value_band equals 1000001",
            "minimum": 100000
          }
        },
        "required": [
          "lower_value_band"
        ]
      },
      "Discharge": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          {
            "type": "object",
            "properties": {
              "discharge_submission_type": {
                "type": "string",
                "description": "How the discharge will be submitted:\n* ATTACHED - The discharge is submitted with this application\n* LENDER - The lender will submit the discharge\n* LATER - The discharge will be submitted later",
                "enum": [
                  "ATTACHED",
                  "LENDER",
                  "LATER"
                ]
              }
            }
          }
        ],
        "description": "A TransactionDetails object to capture information about a discharge",
        "required": [
          "discharge_submission_type"
        ]
      },
      "Transfer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          {
            "type": "object",
            "properties": {
              "additional_provisions": {
                "type": "string",
                "description": "The provided additional provisions",
                "maxLength": 10000,
                "minLength": 0
              },
              "additional_provisions_code": {
                "type": "string",
                "description": "* `NO_PROVISIONS` - There are no additional provisions\n* `MANUAL_TR1_FORM` - The details of the additional provision are on the TR1 form\n* `DETAILS_ENTERED` - The details have been provided with the submission",
                "enum": [
                  "NO_PROVISIONS",
                  "MANUAL_TR1_FORM",
                  "DETAILS_ENTERED"
                ]
              },
              "consideration_description": {
                "type": "string",
                "description": "The consideration, when a consideration_type of OTHER is specified",
                "maxLength": 200,
                "minLength": 0
              },
              "consideration_type": {
                "type": "string",
                "description": "* `MONETARY_VALUE` - The sum received by the transferor from the transferee for the property\n* `NO_MONETARY_VALUE` - The transfer is not for money or anything that has a monetary value\n* `OTHER` - to be specified in consideration_description",
                "enum": [
                  "MONETARY_VALUE",
                  "NO_MONETARY_VALUE",
                  "OTHER"
                ]
              },
              "date": {
                "type": "string",
                "format": "date",
                "description": "The date of the transfer, in the format yyyy-MM-dd"
              },
              "full_value_of_property": {
                "type": "integer",
                "format": "int32",
                "description": "Full value of the property in the title(s) in pounds"
              },
              "full_value_of_property_band": {
                "$ref": "#/components/schemas/ValueBand"
              },
              "outstanding_charge": {
                "type": "integer",
                "format": "int32",
                "description": "Value in pounds of any outstanding charge if applicable"
              },
              "title_guarantee_code": {
                "type": "string",
                "description": "* `FULL` - the transferor(s) guarantee, to the best of their knowledge, that there are no financial charges/encumbrances (such as mortgages) or other third party interests (such as rights of way/leases) which affect the property other than those already revealed to the transferee(s).\n* `LIMITED` - a more restricted set of promises by the transferor(s). This guarantees that the transferor(s) have not themselves created, or allowed to be created, any charge, encumbrance or third party interest that still exists at the date of the transfer",
                "enum": [
                  "FULL",
                  "LIMITED"
                ]
              },
              "trust_declaration_type": {
                "type": "string",
                "description": "* `JOINT_TENANTS` - The transferees are joint tenants.\n* `TENANTS_IN_COMMON` - The transferees are tenants in common\n* `TRUST_DETAILS` - Details of the trust declaration will be provided in the application\n* `FORM_JO` - The trust details will be provided in an attached FormJO document",
                "enum": [
                  "JOINT_TENANTS",
                  "TENANTS_IN_COMMON",
                  "TRUST_DETAILS",
                  "FORM_JO"
                ]
              },
              "trust_details": {
                "type": "string",
                "description": "Details of the trust declaration, to be provided when trust_declaration_type is TRUST_DETAILS",
                "maxLength": 300,
                "minLength": 0
              },
              "value": {
                "type": "integer",
                "format": "int32",
                "description": "Transaction value of the equity being transferred (including VAT if applicable) in pounds",
                "minimum": 0
              },
              "value_band": {
                "$ref": "#/components/schemas/ValueBand"
              }
            }
          }
        ],
        "description": "Details about a transfer transaction"
      },
      "PartyRole": {
        "description": "Information about the roles and capacities for a specific party",
        "properties": {
          "attorneys": {
            "type": "array",
            "description": "List of references to parties who hold power of attorney for this party",
            "items": {
              "type": "string",
              "description": "List of references to parties who hold power of attorney for this party"
            },
            "maxItems": 4,
            "minItems": 0
          },
          "capacity": {
            "type": "string",
            "description": "This enum describes the capacity in which a party is acting in a transaction. The possible values are:\n* `REGISTERED_PROPRIETOR` - The party is acting as a registered proprietor.\n* `ENTITLED_REGISTERED_PROPRIETOR` - The party is acting as entitled to be registered as the proprietor.\n* `ADDITIONAL_TRUSTEE - The party is acting as an additional trustee.\n* `INSOLVENCY_PRACTITIONER` - The party is acting as an insolvency practitioner.\n* `RECEIVER` - The party is acting as receiver.\n* `DEPUTY` - The party is acting as a deputy.\n* `GUARDIAN` - The party is acting as a guardian.\n* `PERSONAL_REPRESENTATIVE` - The party is acting as a personal representative.\n* `NOT_REQUIRED` - Capacity is not required for the party role (at time of capture by land registry policy).\n* `null` - The capacity value is not known for the party.\n",
            "enum": [
              "REGISTERED_PROPRIETOR",
              "ENTITLED_REGISTERED_PROPRIETOR",
              "ADDITIONAL_TRUSTEE",
              "INSOLVENCY_PRACTITIONER",
              "RECEIVER",
              "DEPUTY",
              "GUARDIAN",
              "PERSONAL_REPRESENTATIVE",
              "NOT_REQUIRED"
            ]
          },
          "party_reference": {
            "$ref": "#/components/schemas/PartyReference"
          },
          "role": {
            "type": "string",
            "description": "The role the party is performing on the transaction",
            "enum": [
              "ATTORNEY",
              "TRANSFEROR",
              "TRANSFEREE",
              "LENDER",
              "BORROWER",
              "PERSONAL_REPRESENTATIVE",
              "ASSENTOR",
              "LANDLORD",
              "OFFICIAL_RECEIVER",
              "TRUSTEE_IN_BANKRUPTCY",
              "TENANT",
              "APPLICANT"
            ]
          }
        },
        "required": [
          "party_reference",
          "role"
        ]
      },
      "PropertyAddress": {
        "description": "A UK property address",
        "properties": {
          "building_description": {
            "type": "string",
            "description": "Name of residential or commercial premise",
            "maxLength": 85,
            "minLength": 0
          },
          "care_of_name": {
            "type": "string",
            "description": "The care of name to address correspondence to",
            "maxLength": 200,
            "minLength": 0
          },
          "county": {
            "type": "string",
            "description": "UK County",
            "maxLength": 50,
            "minLength": 0
          },
          "department_name": {
            "type": "string",
            "description": "Used to supplement Organisation Name to identify a department within the organisation",
            "maxLength": 60,
            "minLength": 0
          },
          "dependent_locality": {
            "type": "string",
            "description": "Used when the same thoroughfare or street name reoccurs in a Post town",
            "maxLength": 35,
            "minLength": 0
          },
          "dependent_street": {
            "type": "string",
            "description": "Used to supplement street, when a street name is used twice in the same post town",
            "maxLength": 80,
            "minLength": 0
          },
          "double_dependent_locality": {
            "type": "string",
            "description": "Used to supplement Dependant Locality, when the dependant locality exists twice in the same locality",
            "maxLength": 35,
            "minLength": 0
          },
          "organisation_name": {
            "type": "string",
            "description": "The name of the organisation at the address",
            "maxLength": 60,
            "minLength": 0
          },
          "post_town": {
            "type": "string",
            "description": "The town of the delivery point of the address",
            "maxLength": 35,
            "minLength": 0
          },
          "postcode": {
            "type": "string",
            "description": "A UK postcode",
            "pattern": "^([Gg][Ii][Rr] ?0[Aa]{2})|([A-Za-z]{1,2}[0-9][0-9A-Za-z]? ?[0-9][A-Za-z]{2})$"
          },
          "street": {
            "type": "string",
            "description": "The street of the address",
            "maxLength": 80,
            "minLength": 0
          },
          "sub_building_description": {
            "type": "string",
            "description": "Used to identify a specific building when a premise is split into individual units",
            "maxLength": 40,
            "minLength": 0
          },
          "type": {
            "type": "string",
            "enum": [
              "UK",
              "OVERSEAS",
              "EMAIL",
              "DX",
              "BFPO",
              "PO_BOX"
            ]
          },
          "uprn": {
            "type": "integer",
            "format": "int64",
            "description": "The Unique Property Reference Number of the address",
            "minimum": 1
          }
        },
        "required": [
          "building_description"
        ]
      },
      "ApplicationInformation": {
        "description": "Representation of an application with its details",
        "properties": {
          "application_request_id": {
            "type": "string",
            "description": "The ID of the application submission request"
          },
          "correspondences": {
            "type": "array",
            "description": "A list of correspondence records on the application",
            "items": {
              "$ref": "#/components/schemas/CorrespondenceRecordInApplicationInformation"
            }
          },
          "errors": {
            "type": "array",
            "description": "A list of errors that caused the application to not be accepted",
            "items": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          },
          "hmlr_reference": {
            "type": "string",
            "description": "The reference used by HM Land Registry to identify the application"
          },
          "priority_timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The priority date and time of when the application was accepted onto the day list"
          },
          "status": {
            "type": "string",
            "description": "  * `VALIDATING` - HM Land Registry are still processing the application and it has not yet been added to the day list.\n  * `ACCEPTED_PRIORITY_PROTECTED` - The application has been accepted onto the day list, and has priority.\n  * `VALIDATION_FAILED` - The application has not been added to the day list, due to errors during validation. The errors that were found are included in the \"errors\" section in the response.\n  * `ACCEPTED_AWAITING_PRIORITY` - The application has passed validation but has not yet been added to the day list as the day list is currently closed.\n  * `SYSTEM_ERROR` - The application has not been added to the day list, due to a HM Land Registry system error. The request should be retried, or the support team contacted.\n  * `COMPLETED` - The application has been processed. Service completed.\n  * `CANCELLED` - The application has been cancelled.\n*\n"
          },
          "warnings": {
            "type": "array",
            "description": "A list of warnings incurred during the creation of the application",
            "items": {
              "type": "string",
              "description": "A list of warnings incurred during the creation of the application"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "basic_auth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  }
}