@pdtf/schemas 3.6.0-dev.3 → 3.6.0-dev.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ta6-certificate-permit-contract.md +51 -0
- package/docs/v4-mapping-and-recomposition.md +476 -0
- package/index.js +212 -0
- package/package.json +10 -1
- package/src/schemas/v3/combined.json +2267 -658
- package/src/schemas/v3/compactSkeleton.txt +120 -51
- package/src/schemas/v3/overlays/baspi4.json +54 -74
- package/src/schemas/v3/overlays/baspi5.json +54 -74
- package/src/schemas/v3/overlays/extensions/ac.json +2 -1
- package/src/schemas/v3/overlays/extensions/dk.json +3 -2
- package/src/schemas/v3/overlays/extensions/fd.json +2 -1
- package/src/schemas/v3/overlays/extensions/ic.json +44 -9
- package/src/schemas/v3/overlays/extensions/lc.json +3 -2
- package/src/schemas/v3/overlays/extensions/mi.json +2 -1
- package/src/schemas/v3/overlays/extensions/nd.json +3 -2
- package/src/schemas/v3/overlays/extensions/pc.json +3 -2
- package/src/schemas/v3/overlays/extensions/ph.json +2 -1
- package/src/schemas/v3/overlays/extensions/rw.json +4 -3
- package/src/schemas/v3/overlays/extensions/sc.json +8 -4
- package/src/schemas/v3/overlays/extensions/sd.json +3 -2
- package/src/schemas/v3/overlays/extensions/tr.json +3 -2
- package/src/schemas/v3/overlays/extensions/wg.json +2 -1
- package/src/schemas/v3/overlays/llc1.json +1 -2
- package/src/schemas/v3/overlays/lpe1.json +3 -2
- package/src/schemas/v3/overlays/nts.json +7 -3
- package/src/schemas/v3/overlays/nts2.json +9 -4
- package/src/schemas/v3/overlays/ntsl.json +5 -2
- package/src/schemas/v3/overlays/ntsl2.json +7 -3
- package/src/schemas/v3/overlays/piq.json +34 -25
- package/src/schemas/v3/overlays/rds.json +24 -50
- package/src/schemas/v3/overlays/sef25.json +16 -2
- package/src/schemas/v3/overlays/ta10.json +0 -9
- package/src/schemas/v3/overlays/ta6.json +39 -70
- package/src/schemas/v3/overlays/ta6ed6.json +331 -307
- package/{pensive-tesla-d0d355/src/schemas/v3/overlays/ta6.json → src/schemas/v3/overlays/ta6ed6v2.json} +1574 -1464
- package/src/schemas/v3/overlays/ta7.json +2 -1
- package/src/schemas/v3/overlays/ta7ed5.json +77 -21
- package/src/schemas/v3/pdtf-transaction.json +1030 -492
- package/src/schemas/v3/skeleton.json +163 -57
- package/src/schemas/v4/Gift.json +88 -0
- package/src/schemas/v4/Offer.json +425 -0
- package/src/schemas/v4/Organisation.json +167 -0
- package/src/schemas/v4/Person.json +321 -0
- package/src/schemas/v4/Property.json +27813 -0
- package/src/schemas/v4/PropertyTitleLink.json +183 -0
- package/src/schemas/v4/Representation.json +67 -0
- package/src/schemas/v4/SellerCapacity.json +193 -0
- package/src/schemas/v4/Title.json +14675 -0
- package/src/schemas/v4/Transaction.json +1612 -0
- package/src/schemas/v4/TransactionRole.json +59 -0
- package/src/schemas/v4/mapping.json +1188 -0
- package/src/utils/checkTa6OmissionCompatibility.js +146 -0
- package/src/utils/extractExtensionOverlays.js +11 -2
- package/src/utils/extractOverlay.js +21 -0
- package/src/utils/generateV4Schemas.js +1561 -0
- package/src/utils/syncTa6ed6v2Markers.js +92 -0
- package/src/utils/v4.js +956 -0
- package/CLAUDE.md +0 -101
- package/pensive-tesla-d0d355/CLAUDE.md +0 -101
- package/pensive-tesla-d0d355/LICENSE +0 -21
- package/pensive-tesla-d0d355/README.md +0 -435
- package/pensive-tesla-d0d355/docs/branch-release-workflow.md +0 -138
- package/pensive-tesla-d0d355/docs/sef25-extensions-ui-spec.md +0 -355
- package/pensive-tesla-d0d355/index.js +0 -654
- package/pensive-tesla-d0d355/package-lock.json +0 -7297
- package/pensive-tesla-d0d355/package.json +0 -44
- package/pensive-tesla-d0d355/src/examples/v1/exampleAddParticipantVouch.json +0 -32
- package/pensive-tesla-d0d355/src/examples/v1/exampleDocumentedVouch.json +0 -40
- package/pensive-tesla-d0d355/src/examples/v1/exampleElectronicRecord.json +0 -30
- package/pensive-tesla-d0d355/src/examples/v1/exampleTransaction.json +0 -878
- package/pensive-tesla-d0d355/src/examples/v1/exampleVouch.json +0 -25
- package/pensive-tesla-d0d355/src/examples/v2/exampleTransaction.json +0 -901
- package/pensive-tesla-d0d355/src/examples/v3/exampleAddParticipantVouch.json +0 -38
- package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay.json +0 -55
- package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay2.json +0 -93
- package/pensive-tesla-d0d355/src/examples/v3/exampleDocumentedVouch.json +0 -47
- package/pensive-tesla-d0d355/src/examples/v3/exampleElectronicRecord.json +0 -36
- package/pensive-tesla-d0d355/src/examples/v3/exampleTransaction.json +0 -1038
- package/pensive-tesla-d0d355/src/examples/v3/exampleVouch.json +0 -32
- package/pensive-tesla-d0d355/src/mappings/SendPropertyDetailsRequestSchema.json +0 -1588
- package/pensive-tesla-d0d355/src/mappings/adf.js +0 -198
- package/pensive-tesla-d0d355/src/schemas/v1/GeoJSON.json +0 -1279
- package/pensive-tesla-d0d355/src/schemas/v1/baspiNotes.html +0 -102
- package/pensive-tesla-d0d355/src/schemas/v1/energy-performance-certificate.json +0 -124
- package/pensive-tesla-d0d355/src/schemas/v1/freehold-information.json +0 -2051
- package/pensive-tesla-d0d355/src/schemas/v1/leasehold-information.json +0 -2064
- package/pensive-tesla-d0d355/src/schemas/v1/legal-information.json +0 -1045
- package/pensive-tesla-d0d355/src/schemas/v1/material-facts.json +0 -2109
- package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction-search-results.json +0 -40
- package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction.json +0 -191
- package/pensive-tesla-d0d355/src/schemas/v1/searches/drainage-and-water.json +0 -261
- package/pensive-tesla-d0d355/src/schemas/v1/searches/local-land-charges.json +0 -69
- package/pensive-tesla-d0d355/src/schemas/v1/searches/local-searches-required.json +0 -857
- package/pensive-tesla-d0d355/src/schemas/v1/searches.json +0 -237
- package/pensive-tesla-d0d355/src/schemas/v1/title-deed.json +0 -841
- package/pensive-tesla-d0d355/src/schemas/v2/baspiNotes.html +0 -102
- package/pensive-tesla-d0d355/src/schemas/v2/combined.json +0 -37731
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/baspi.json +0 -8132
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29DW.json +0 -705
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29R.json +0 -2956
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/fme1.json +0 -1259
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/llc1.json +0 -25
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/lpe1.json +0 -2171
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/nts.json +0 -326
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/oc1.json +0 -2799
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/piq.json +0 -3419
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/rds.json +0 -3736
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta10.json +0 -5306
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta6.json +0 -4533
- package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta7.json +0 -1045
- package/pensive-tesla-d0d355/src/schemas/v2/pdtf-transaction.json +0 -34351
- package/pensive-tesla-d0d355/src/schemas/v2/skeleton.json +0 -3973
- package/pensive-tesla-d0d355/src/schemas/v3/combined.json +0 -48469
- package/pensive-tesla-d0d355/src/schemas/v3/compactSkeleton.txt +0 -4519
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/README.md +0 -299
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi4.json +0 -8025
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi5.json +0 -8175
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29DW.json +0 -716
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29R.json +0 -2981
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ac.json +0 -333
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/as.json +0 -74
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dk.json +0 -32
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dr.json +0 -73
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/er.json +0 -85
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/fd.json +0 -75
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hi.json +0 -51
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hs.json +0 -73
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ic.json +0 -59
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/jk.json +0 -96
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/la.json +0 -85
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/lc.json +0 -75
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ma.json +0 -90
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mc.json +0 -38
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mi.json +0 -69
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/nd.json +0 -43
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oa.json +0 -24
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oc.json +0 -57
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/pc.json +0 -37
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ph.json +0 -194
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/rw.json +0 -68
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sb.json +0 -73
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sc.json +0 -129
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sd.json +0 -63
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sf.json +0 -74
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sl.json +0 -68
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ta.json +0 -252
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tf.json +0 -103
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tr.json +0 -73
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/wg.json +0 -350
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/fme1.json +0 -1266
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/llc1.json +0 -25
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/lpe1.json +0 -2199
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts.json +0 -2157
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts2.json +0 -2742
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl.json +0 -1813
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl2.json +0 -2217
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/oc1.json +0 -2817
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/piq.json +0 -3322
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/rds.json +0 -3665
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/sef25.json +0 -1639
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/sr24.json +0 -38
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta10.json +0 -4654
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta6ed6.json +0 -6534
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7.json +0 -1537
- package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7ed5.json +0 -1551
- package/pensive-tesla-d0d355/src/schemas/v3/pdtf-transaction.json +0 -41573
- package/pensive-tesla-d0d355/src/schemas/v3/skeleton.json +0 -5767
- package/pensive-tesla-d0d355/src/schemas/verifiedClaims/README.md +0 -21
- package/pensive-tesla-d0d355/src/schemas/verifiedClaims/pdtf-verified-claims.json +0 -447
- package/pensive-tesla-d0d355/src/utils/compactSkeleton.js +0 -84
- package/pensive-tesla-d0d355/src/utils/countTokens.js +0 -67
- package/pensive-tesla-d0d355/src/utils/extractExtensionOverlays.js +0 -624
- package/pensive-tesla-d0d355/src/utils/extractOverlay.js +0 -381
- package/pensive-tesla-d0d355/src/utils/extractProperties.js +0 -44
- package/pensive-tesla-d0d355/src/utils/listPathTitles.js +0 -36
- package/pensive-tesla-d0d355/src/utils/minimalSkeleton.js +0 -85
- package/pensive-tesla-d0d355/src/utils/pathList.csv +0 -903
- package/pensive-tesla-d0d355/src/utils/pathSkeleton.js +0 -181
- package/src/examples/v1/exampleAddParticipantVouch.json +0 -32
- package/src/examples/v1/exampleDocumentedVouch.json +0 -40
- package/src/examples/v1/exampleElectronicRecord.json +0 -30
- package/src/examples/v1/exampleTransaction.json +0 -878
- package/src/examples/v1/exampleVouch.json +0 -25
- package/src/examples/v2/exampleTransaction.json +0 -901
- package/src/examples/v3/exampleAddParticipantVouch.json +0 -38
- package/src/examples/v3/exampleCustomOverlay.json +0 -55
- package/src/examples/v3/exampleCustomOverlay2.json +0 -93
- package/src/examples/v3/exampleDocumentedVouch.json +0 -47
- package/src/examples/v3/exampleElectronicRecord.json +0 -36
- package/src/examples/v3/exampleTransaction.json +0 -1038
- package/src/examples/v3/exampleVouch.json +0 -32
- package/src/mappings/SendPropertyDetailsRequestSchema.json +0 -1588
- package/src/mappings/adf.js +0 -198
|
@@ -0,0 +1,1612 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://trust.propdata.org.uk/schemas/v4/entities/transaction.json",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Transaction Entity",
|
|
6
|
+
"description": "Transaction-level metadata — status, milestones, chain, contracts, offers, enquiries, and sale context.",
|
|
7
|
+
"x-pdtf-source": {
|
|
8
|
+
"packageName": "@pdtf/schemas",
|
|
9
|
+
"packageVersion": "3.6.0-dev.32",
|
|
10
|
+
"v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
|
|
11
|
+
"combinedPath": "src/schemas/v3/combined.json",
|
|
12
|
+
"combinedSha256": "83f31fddf82e57e67f2bc92844459095041b254b970d8881dd4318248c188f67"
|
|
13
|
+
},
|
|
14
|
+
"properties": {
|
|
15
|
+
"transactionId": {
|
|
16
|
+
"title": "UUID for the transaction",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"externalIds": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"patternProperties": {
|
|
22
|
+
".*": {
|
|
23
|
+
"oneOf": [
|
|
24
|
+
{
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "number"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "boolean"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"type": "object",
|
|
35
|
+
"patternProperties": {
|
|
36
|
+
".*": {}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"metadata": {
|
|
44
|
+
"title": "Metadata",
|
|
45
|
+
"description": "Flexible container for vendor-specific metadata items relating to the transaction. Keys are vendor-defined; values may be strings, numbers, booleans or nested objects. Paths are addressable up to three levels below /metadata (e.g. /metadata/vendor/item/field).",
|
|
46
|
+
"type": "object",
|
|
47
|
+
"patternProperties": {
|
|
48
|
+
".*": {
|
|
49
|
+
"oneOf": [
|
|
50
|
+
{
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"type": "number"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"type": "boolean"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "object",
|
|
61
|
+
"patternProperties": {
|
|
62
|
+
".*": {
|
|
63
|
+
"oneOf": [
|
|
64
|
+
{
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "number"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "array"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "null"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"type": "object",
|
|
81
|
+
"patternProperties": {
|
|
82
|
+
".*": {}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"status": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"enum": [
|
|
96
|
+
"active",
|
|
97
|
+
"For sale",
|
|
98
|
+
"Under offer",
|
|
99
|
+
"Sold subject to contract",
|
|
100
|
+
"Contracts exchanged",
|
|
101
|
+
"Completed",
|
|
102
|
+
"Cancelled",
|
|
103
|
+
"To let",
|
|
104
|
+
"Let agreed"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"valuationComparisonData": {
|
|
108
|
+
"title": "Valuation Comparison Data",
|
|
109
|
+
"description": "A collection of data used to compare the valuations (market values) of properties in the real estate or property market.",
|
|
110
|
+
"type": "object",
|
|
111
|
+
"properties": {
|
|
112
|
+
"propertyDetails": {
|
|
113
|
+
"title": "Property Details",
|
|
114
|
+
"description": "Details and information related to individual properties for valuation comparison.",
|
|
115
|
+
"type": "array",
|
|
116
|
+
"items": {
|
|
117
|
+
"type": "object",
|
|
118
|
+
"properties": {
|
|
119
|
+
"propertyListingInfo": {
|
|
120
|
+
"title": "Property Listing Information",
|
|
121
|
+
"description": "Information related to the pricing and status of a property listing.",
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"listingType": {
|
|
125
|
+
"title": "Listing Type",
|
|
126
|
+
"type": "string",
|
|
127
|
+
"enum": [
|
|
128
|
+
"Recently Sold",
|
|
129
|
+
"Currently On Sale"
|
|
130
|
+
],
|
|
131
|
+
"description": "Type of property listing, indicating whether it was recently sold or is currently on sale."
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"discriminator": {
|
|
135
|
+
"propertyName": "listingType"
|
|
136
|
+
},
|
|
137
|
+
"oneOf": [
|
|
138
|
+
{
|
|
139
|
+
"title": "Recently Sold Property",
|
|
140
|
+
"description": "Specific information about a property that was recently sold.",
|
|
141
|
+
"properties": {
|
|
142
|
+
"listingType": {
|
|
143
|
+
"enum": [
|
|
144
|
+
"Recently Sold"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"soldDate": {
|
|
148
|
+
"title": "Sold Date",
|
|
149
|
+
"type": "string",
|
|
150
|
+
"format": "date-time",
|
|
151
|
+
"description": "The date when the property was sold."
|
|
152
|
+
},
|
|
153
|
+
"soldPrice": {
|
|
154
|
+
"title": "Sold Price",
|
|
155
|
+
"type": "number",
|
|
156
|
+
"description": "The amount for which the property was sold."
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"title": "Property Currently On Sale",
|
|
162
|
+
"description": "Specific information about a property that is currently listed for sale.",
|
|
163
|
+
"properties": {
|
|
164
|
+
"listingType": {
|
|
165
|
+
"enum": [
|
|
166
|
+
"Currently On Sale"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"listedDate": {
|
|
170
|
+
"title": "Listed Date",
|
|
171
|
+
"type": "string",
|
|
172
|
+
"format": "date-time",
|
|
173
|
+
"description": "The date when the property was listed for sale."
|
|
174
|
+
},
|
|
175
|
+
"listPrice": {
|
|
176
|
+
"title": "List Price",
|
|
177
|
+
"type": "number",
|
|
178
|
+
"description": "The asking price for the property currently on sale."
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"propertyFullDescription": {
|
|
185
|
+
"title": "Property Description",
|
|
186
|
+
"description": "A detailed description of the property.",
|
|
187
|
+
"type": "string"
|
|
188
|
+
},
|
|
189
|
+
"uprn": {
|
|
190
|
+
"title": "Unique Property Reference Number (UPRN)",
|
|
191
|
+
"description": "A unique identifier for the property.",
|
|
192
|
+
"type": "string"
|
|
193
|
+
},
|
|
194
|
+
"propertyType": {
|
|
195
|
+
"title": "Type of Property",
|
|
196
|
+
"description": "The type or category of the property.",
|
|
197
|
+
"type": "string"
|
|
198
|
+
},
|
|
199
|
+
"marketingTenure": {
|
|
200
|
+
"title": "Marketing Tenure",
|
|
201
|
+
"description": "The type of tenure being marketed for the property.",
|
|
202
|
+
"type": "string",
|
|
203
|
+
"enum": [
|
|
204
|
+
"Commonhold",
|
|
205
|
+
"Freehold",
|
|
206
|
+
"Leasehold",
|
|
207
|
+
"Share of Freehold",
|
|
208
|
+
"Shared Ownership"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
"basicDetails": {
|
|
212
|
+
"title": "Basic Property Details",
|
|
213
|
+
"description": "Basic information about the property.",
|
|
214
|
+
"type": "object",
|
|
215
|
+
"properties": {
|
|
216
|
+
"bedrooms": {
|
|
217
|
+
"title": "Number of Bedrooms",
|
|
218
|
+
"description": "The total number of bedrooms in the property.",
|
|
219
|
+
"type": "integer"
|
|
220
|
+
},
|
|
221
|
+
"bathrooms": {
|
|
222
|
+
"title": "Number of Bathrooms",
|
|
223
|
+
"description": "The total number of bathrooms in the property.",
|
|
224
|
+
"type": "integer"
|
|
225
|
+
},
|
|
226
|
+
"buildInformation": {
|
|
227
|
+
"title": "Information related to property build",
|
|
228
|
+
"description": "Details related to the construction of the property.",
|
|
229
|
+
"type": "object",
|
|
230
|
+
"properties": {
|
|
231
|
+
"internalArea": {
|
|
232
|
+
"title": "Total internal floor area",
|
|
233
|
+
"description": "The total internal floor area of the property.",
|
|
234
|
+
"type": "object",
|
|
235
|
+
"properties": {
|
|
236
|
+
"area": {
|
|
237
|
+
"title": "Internal area value",
|
|
238
|
+
"description": "The numerical value of the internal floor area.",
|
|
239
|
+
"type": "number",
|
|
240
|
+
"minimum": 0
|
|
241
|
+
},
|
|
242
|
+
"units": {
|
|
243
|
+
"title": "Internal area units",
|
|
244
|
+
"description": "The units of measurement for the internal floor area.",
|
|
245
|
+
"type": "string",
|
|
246
|
+
"enum": [
|
|
247
|
+
"square metres",
|
|
248
|
+
"square feet"
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"yearOfBuild": {
|
|
254
|
+
"title": "Year the property was built",
|
|
255
|
+
"description": "The year when the property was constructed.",
|
|
256
|
+
"type": "integer"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"media": {
|
|
263
|
+
"title": "Media",
|
|
264
|
+
"description": "Media content related to the property listing.",
|
|
265
|
+
"type": "array",
|
|
266
|
+
"items": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"mediaType": {
|
|
270
|
+
"title": "Type of media",
|
|
271
|
+
"description": "The type of media content (e.g., images, floorplans, brochures) related to the property.",
|
|
272
|
+
"type": "string",
|
|
273
|
+
"enum": [
|
|
274
|
+
"Image",
|
|
275
|
+
"Floorplan",
|
|
276
|
+
"Brochure",
|
|
277
|
+
"Virtual tour",
|
|
278
|
+
"Audio tour",
|
|
279
|
+
"EPC",
|
|
280
|
+
"EPC graph",
|
|
281
|
+
"Other"
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"mediaUrl": {
|
|
285
|
+
"title": "Media URL",
|
|
286
|
+
"description": "The URL or link to access the media content.",
|
|
287
|
+
"type": "string",
|
|
288
|
+
"format": "uri"
|
|
289
|
+
},
|
|
290
|
+
"caption": {
|
|
291
|
+
"title": "Caption",
|
|
292
|
+
"description": "A descriptive caption or label for the media content.",
|
|
293
|
+
"type": "string"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"propertyPricing": {
|
|
302
|
+
"title": "Property Pricing Estimates",
|
|
303
|
+
"description": "Detailed property pricing estimates, including rental estimates, market value, and yield calculations.",
|
|
304
|
+
"type": "object",
|
|
305
|
+
"properties": {
|
|
306
|
+
"rentalEstimate": {
|
|
307
|
+
"title": "Rental Estimate",
|
|
308
|
+
"description": "Estimated rental income for the property.",
|
|
309
|
+
"type": "object",
|
|
310
|
+
"properties": {
|
|
311
|
+
"estimatedAmount": {
|
|
312
|
+
"title": "Rental Estimate Amount",
|
|
313
|
+
"description": "The estimated rental amount for the property.",
|
|
314
|
+
"type": "number"
|
|
315
|
+
},
|
|
316
|
+
"paymentFrequency": {
|
|
317
|
+
"title": "Payment Frequency",
|
|
318
|
+
"description": "The frequency at which the rental amount is calculated.",
|
|
319
|
+
"type": "string",
|
|
320
|
+
"enum": [
|
|
321
|
+
"Per Week",
|
|
322
|
+
"Per Calendar Month",
|
|
323
|
+
"Per Year"
|
|
324
|
+
]
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"estimatedPrice": {
|
|
329
|
+
"title": "Estimated Price",
|
|
330
|
+
"description": "Approximation of the property's current market value",
|
|
331
|
+
"type": "number"
|
|
332
|
+
},
|
|
333
|
+
"yield": {
|
|
334
|
+
"title": "Yield",
|
|
335
|
+
"description": "Return on investment (ROI) generated by an income-producing asset",
|
|
336
|
+
"type": "number"
|
|
337
|
+
},
|
|
338
|
+
"priceEstimationDetails": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"title": "Credibility and Pricing Methodology",
|
|
341
|
+
"description": "Information about the credibility of property pricing estimates and the methodology used in their calculation.",
|
|
342
|
+
"properties": {
|
|
343
|
+
"credibilitySources": {
|
|
344
|
+
"type": "array",
|
|
345
|
+
"title": "Data Sources",
|
|
346
|
+
"description": "The sources of data used for property pricing estimates.",
|
|
347
|
+
"items": {
|
|
348
|
+
"type": "string"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
"pricingMethodology": {
|
|
352
|
+
"title": "Pricing Methodology",
|
|
353
|
+
"description": "Description of the methodology used to estimate property pricing.",
|
|
354
|
+
"type": "string",
|
|
355
|
+
"default": "This estimate is based on a combination of market research, historical sales data, and current market trends. It may not represent the exact market value."
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"contracts": {
|
|
364
|
+
"type": "array",
|
|
365
|
+
"items": {
|
|
366
|
+
"type": "object",
|
|
367
|
+
"properties": {
|
|
368
|
+
"contractId": {
|
|
369
|
+
"title": "Contract id",
|
|
370
|
+
"description": "Stable identifier for this contract within the transaction. Array position is not a safe reference: contracts are added and superseded independently by different parties.",
|
|
371
|
+
"type": "string",
|
|
372
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
373
|
+
},
|
|
374
|
+
"contract": {
|
|
375
|
+
"type": "object",
|
|
376
|
+
"required": [
|
|
377
|
+
"template",
|
|
378
|
+
"terms"
|
|
379
|
+
],
|
|
380
|
+
"properties": {
|
|
381
|
+
"template": {
|
|
382
|
+
"type": "object",
|
|
383
|
+
"required": [
|
|
384
|
+
"name",
|
|
385
|
+
"url",
|
|
386
|
+
"requiredSignatories"
|
|
387
|
+
],
|
|
388
|
+
"properties": {
|
|
389
|
+
"name": {
|
|
390
|
+
"type": "string"
|
|
391
|
+
},
|
|
392
|
+
"url": {
|
|
393
|
+
"type": "string",
|
|
394
|
+
"format": "uri"
|
|
395
|
+
},
|
|
396
|
+
"externalIds": {
|
|
397
|
+
"type": "object",
|
|
398
|
+
"patternProperties": {
|
|
399
|
+
".*": {
|
|
400
|
+
"oneOf": [
|
|
401
|
+
{
|
|
402
|
+
"type": "string"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"type": "number"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"type": "boolean"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"type": "object",
|
|
412
|
+
"patternProperties": {
|
|
413
|
+
".*": {}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
]
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
"requiredSignatories": {
|
|
421
|
+
"type": "array",
|
|
422
|
+
"items": {
|
|
423
|
+
"type": "object",
|
|
424
|
+
"properties": {
|
|
425
|
+
"role": {
|
|
426
|
+
"type": "string",
|
|
427
|
+
"enum": [
|
|
428
|
+
"Seller",
|
|
429
|
+
"Seller's Conveyancer",
|
|
430
|
+
"Prospective Buyer",
|
|
431
|
+
"Buyer",
|
|
432
|
+
"Buyer's Conveyancer",
|
|
433
|
+
"Estate Agent",
|
|
434
|
+
"Buyer's Agent",
|
|
435
|
+
"Surveyor",
|
|
436
|
+
"Mortgage Broker",
|
|
437
|
+
"Lender",
|
|
438
|
+
"Landlord",
|
|
439
|
+
"Tenant"
|
|
440
|
+
]
|
|
441
|
+
},
|
|
442
|
+
"requiresAll": {
|
|
443
|
+
"type": "boolean"
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
"terms": {
|
|
451
|
+
"type": "object"
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"signatures": {
|
|
456
|
+
"type": "array",
|
|
457
|
+
"items": {
|
|
458
|
+
"type": "object",
|
|
459
|
+
"required": [
|
|
460
|
+
"name",
|
|
461
|
+
"signedOn",
|
|
462
|
+
"role",
|
|
463
|
+
"contractHash"
|
|
464
|
+
],
|
|
465
|
+
"properties": {
|
|
466
|
+
"signatureId": {
|
|
467
|
+
"title": "Signature id",
|
|
468
|
+
"description": "Stable identifier for this signature within the contract. Array position is not a safe reference: signatories sign independently and in any order.",
|
|
469
|
+
"type": "string",
|
|
470
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
471
|
+
},
|
|
472
|
+
"name": {
|
|
473
|
+
"type": "string"
|
|
474
|
+
},
|
|
475
|
+
"signedOn": {
|
|
476
|
+
"type": "string",
|
|
477
|
+
"format": "date-time"
|
|
478
|
+
},
|
|
479
|
+
"externalIds": {
|
|
480
|
+
"type": "object",
|
|
481
|
+
"patternProperties": {
|
|
482
|
+
".*": {
|
|
483
|
+
"oneOf": [
|
|
484
|
+
{
|
|
485
|
+
"type": "string"
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"type": "number"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"type": "boolean"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"type": "object",
|
|
495
|
+
"patternProperties": {
|
|
496
|
+
".*": {}
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
]
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"role": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"enum": [
|
|
507
|
+
"Seller",
|
|
508
|
+
"Seller's Conveyancer",
|
|
509
|
+
"Prospective Buyer",
|
|
510
|
+
"Buyer",
|
|
511
|
+
"Buyer's Conveyancer",
|
|
512
|
+
"Estate Agent",
|
|
513
|
+
"Buyer's Agent",
|
|
514
|
+
"Surveyor",
|
|
515
|
+
"Mortgage Broker",
|
|
516
|
+
"Lender",
|
|
517
|
+
"Landlord",
|
|
518
|
+
"Tenant"
|
|
519
|
+
]
|
|
520
|
+
},
|
|
521
|
+
"contractHash": {
|
|
522
|
+
"title": "An MD5 hash of the stable-stringified contract object being signed",
|
|
523
|
+
"type": "string"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"chain": {
|
|
531
|
+
"title": "Data Containing the Related Chain",
|
|
532
|
+
"description": "the data through which the chain for this tranasaction can be built.",
|
|
533
|
+
"type": "object",
|
|
534
|
+
"properties": {
|
|
535
|
+
"onwardPurchase": {
|
|
536
|
+
"type": "array",
|
|
537
|
+
"minItems": 1,
|
|
538
|
+
"items": {
|
|
539
|
+
"type": "object",
|
|
540
|
+
"title": "Onwards Purchase",
|
|
541
|
+
"properties": {
|
|
542
|
+
"transactionId": {
|
|
543
|
+
"title": "UUID for an onward transaction",
|
|
544
|
+
"type": "string"
|
|
545
|
+
},
|
|
546
|
+
"externalIds": {
|
|
547
|
+
"type": "object",
|
|
548
|
+
"patternProperties": {
|
|
549
|
+
".*": {
|
|
550
|
+
"oneOf": [
|
|
551
|
+
{
|
|
552
|
+
"type": "string"
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"type": "number"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"type": "boolean"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"type": "object",
|
|
562
|
+
"patternProperties": {
|
|
563
|
+
".*": {}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"address": {
|
|
571
|
+
"title": "Address",
|
|
572
|
+
"type": "object",
|
|
573
|
+
"properties": {
|
|
574
|
+
"buildingNumber": {
|
|
575
|
+
"title": "Building number",
|
|
576
|
+
"type": "string",
|
|
577
|
+
"minLength": 1
|
|
578
|
+
},
|
|
579
|
+
"buildingName": {
|
|
580
|
+
"title": "Building name",
|
|
581
|
+
"type": "string"
|
|
582
|
+
},
|
|
583
|
+
"subBuilding": {
|
|
584
|
+
"title": "Sub building name",
|
|
585
|
+
"type": "string"
|
|
586
|
+
},
|
|
587
|
+
"street": {
|
|
588
|
+
"title": "Street",
|
|
589
|
+
"type": "string",
|
|
590
|
+
"minLength": 1
|
|
591
|
+
},
|
|
592
|
+
"line1": {
|
|
593
|
+
"title": "Address 1",
|
|
594
|
+
"type": "string",
|
|
595
|
+
"minLength": 1
|
|
596
|
+
},
|
|
597
|
+
"line2": {
|
|
598
|
+
"title": "Address 2",
|
|
599
|
+
"type": "string"
|
|
600
|
+
},
|
|
601
|
+
"line 3": {
|
|
602
|
+
"title": "Address 3",
|
|
603
|
+
"type": "string"
|
|
604
|
+
},
|
|
605
|
+
"town": {
|
|
606
|
+
"title": "Town",
|
|
607
|
+
"type": "string"
|
|
608
|
+
},
|
|
609
|
+
"postcode": {
|
|
610
|
+
"title": "Postcode",
|
|
611
|
+
"type": "string",
|
|
612
|
+
"minLength": 1
|
|
613
|
+
},
|
|
614
|
+
"homeNation": {
|
|
615
|
+
"title": "Home nation",
|
|
616
|
+
"type": "string",
|
|
617
|
+
"enum": [
|
|
618
|
+
"England",
|
|
619
|
+
"Wales",
|
|
620
|
+
"Scotland",
|
|
621
|
+
"Northern Ireland"
|
|
622
|
+
]
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
},
|
|
626
|
+
"uprn": {
|
|
627
|
+
"title": "Unique Property Reference Number",
|
|
628
|
+
"type": "integer"
|
|
629
|
+
},
|
|
630
|
+
"sellingAgent": {
|
|
631
|
+
"title": "Estate Agent selling the property",
|
|
632
|
+
"type": "string"
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
"buyersSale": {
|
|
638
|
+
"description": "The property or properties the buyer must sell in order to proceed with this purchase. Whether the buyer depends on a sale at all is recorded in the offer's buyerCircumstances.dependentOnSale.",
|
|
639
|
+
"type": "array",
|
|
640
|
+
"minItems": 1,
|
|
641
|
+
"items": {
|
|
642
|
+
"type": "object",
|
|
643
|
+
"title": "The property(ies) the buyer/buyers are selling to finance the purchase",
|
|
644
|
+
"properties": {
|
|
645
|
+
"transactionId": {
|
|
646
|
+
"title": "UUID for the buyer's sale transaction",
|
|
647
|
+
"type": "string"
|
|
648
|
+
},
|
|
649
|
+
"externalIds": {
|
|
650
|
+
"type": "object",
|
|
651
|
+
"patternProperties": {
|
|
652
|
+
".*": {
|
|
653
|
+
"oneOf": [
|
|
654
|
+
{
|
|
655
|
+
"type": "string"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"type": "number"
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
"type": "boolean"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"type": "object",
|
|
665
|
+
"patternProperties": {
|
|
666
|
+
".*": {}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
]
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
},
|
|
673
|
+
"address": {
|
|
674
|
+
"title": "Address",
|
|
675
|
+
"type": "object",
|
|
676
|
+
"properties": {
|
|
677
|
+
"buildingNumber": {
|
|
678
|
+
"title": "Building number",
|
|
679
|
+
"type": "string",
|
|
680
|
+
"minLength": 1
|
|
681
|
+
},
|
|
682
|
+
"buildingName": {
|
|
683
|
+
"title": "Building name",
|
|
684
|
+
"type": "string"
|
|
685
|
+
},
|
|
686
|
+
"subBuilding": {
|
|
687
|
+
"title": "Sub building name",
|
|
688
|
+
"type": "string"
|
|
689
|
+
},
|
|
690
|
+
"street": {
|
|
691
|
+
"title": "Street",
|
|
692
|
+
"type": "string",
|
|
693
|
+
"minLength": 1
|
|
694
|
+
},
|
|
695
|
+
"line1": {
|
|
696
|
+
"title": "Address 1",
|
|
697
|
+
"type": "string",
|
|
698
|
+
"minLength": 1
|
|
699
|
+
},
|
|
700
|
+
"line2": {
|
|
701
|
+
"title": "Address 2",
|
|
702
|
+
"type": "string"
|
|
703
|
+
},
|
|
704
|
+
"line 3": {
|
|
705
|
+
"title": "Address 3",
|
|
706
|
+
"type": "string"
|
|
707
|
+
},
|
|
708
|
+
"town": {
|
|
709
|
+
"title": "Town",
|
|
710
|
+
"type": "string"
|
|
711
|
+
},
|
|
712
|
+
"postcode": {
|
|
713
|
+
"title": "Postcode",
|
|
714
|
+
"type": "string",
|
|
715
|
+
"minLength": 1
|
|
716
|
+
},
|
|
717
|
+
"homeNation": {
|
|
718
|
+
"title": "Home nation",
|
|
719
|
+
"type": "string",
|
|
720
|
+
"enum": [
|
|
721
|
+
"England",
|
|
722
|
+
"Wales",
|
|
723
|
+
"Scotland",
|
|
724
|
+
"Northern Ireland"
|
|
725
|
+
]
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"uprn": {
|
|
730
|
+
"title": "Unique Property Reference Number",
|
|
731
|
+
"type": "integer"
|
|
732
|
+
},
|
|
733
|
+
"sellingAgent": {
|
|
734
|
+
"title": "Estate Agent selling the property",
|
|
735
|
+
"type": "string"
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
},
|
|
742
|
+
"milestones": {
|
|
743
|
+
"title": "Transaction Milestones",
|
|
744
|
+
"type": "object",
|
|
745
|
+
"properties": {
|
|
746
|
+
"listed": {
|
|
747
|
+
"description": "The date the property commenced marketing by being publicly listed for sale",
|
|
748
|
+
"type": "object",
|
|
749
|
+
"properties": {
|
|
750
|
+
"expected": {
|
|
751
|
+
"description": "Planned date of listing, for example when scheduled in advance around e.g. Boxing Day activities",
|
|
752
|
+
"type": "string",
|
|
753
|
+
"format": "date-time"
|
|
754
|
+
},
|
|
755
|
+
"completed": {
|
|
756
|
+
"description": "Actual date of first public listing for sale",
|
|
757
|
+
"type": "string",
|
|
758
|
+
"format": "date-time"
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
},
|
|
762
|
+
"legalForms": {
|
|
763
|
+
"description": "The progress of the legal forms completion, including TA6, TA7 where relevant, and TA10 forms or their equivalents",
|
|
764
|
+
"type": "object",
|
|
765
|
+
"properties": {
|
|
766
|
+
"started": {
|
|
767
|
+
"description": "The date the legal forms were shared with the vendors for completion",
|
|
768
|
+
"type": "string",
|
|
769
|
+
"format": "date-time"
|
|
770
|
+
},
|
|
771
|
+
"completed": {
|
|
772
|
+
"description": "The date the legal forms were completed and signed by all parties",
|
|
773
|
+
"type": "string",
|
|
774
|
+
"format": "date-time"
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
},
|
|
778
|
+
"soldSubjectToContract": {
|
|
779
|
+
"type": "object",
|
|
780
|
+
"properties": {
|
|
781
|
+
"completed": {
|
|
782
|
+
"description": "The date an offer for sale was accepted by a proceedable buyer",
|
|
783
|
+
"type": "string",
|
|
784
|
+
"format": "date-time"
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
},
|
|
788
|
+
"searches": {
|
|
789
|
+
"description": "The progress of all searches in a standard search pack together",
|
|
790
|
+
"type": "object",
|
|
791
|
+
"properties": {
|
|
792
|
+
"started": {
|
|
793
|
+
"description": "The date the first of the searches in the pack was ordered",
|
|
794
|
+
"type": "string",
|
|
795
|
+
"format": "date-time"
|
|
796
|
+
},
|
|
797
|
+
"expected": {
|
|
798
|
+
"description": "The latest date the searches are expected to be completed",
|
|
799
|
+
"type": "string",
|
|
800
|
+
"format": "date-time"
|
|
801
|
+
},
|
|
802
|
+
"completed": {
|
|
803
|
+
"description": "The date the last of the searches in the pack was delivered",
|
|
804
|
+
"type": "string",
|
|
805
|
+
"format": "date-time"
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
"enquiries": {
|
|
810
|
+
"type": "object",
|
|
811
|
+
"properties": {
|
|
812
|
+
"started": {
|
|
813
|
+
"description": "The date the enquiries process between conveyancers was commenced",
|
|
814
|
+
"type": "string",
|
|
815
|
+
"format": "date-time"
|
|
816
|
+
},
|
|
817
|
+
"completed": {
|
|
818
|
+
"description": "The date the last of the enquiries was resolved",
|
|
819
|
+
"type": "string",
|
|
820
|
+
"format": "date-time"
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
},
|
|
824
|
+
"exchangeOfContracts": {
|
|
825
|
+
"type": "object",
|
|
826
|
+
"properties": {
|
|
827
|
+
"expected": {
|
|
828
|
+
"description": "A proposed or agreed date for the exchange of contracts",
|
|
829
|
+
"type": "string",
|
|
830
|
+
"format": "date-time"
|
|
831
|
+
},
|
|
832
|
+
"completed": {
|
|
833
|
+
"description": "The actual date the contracts were exchanged",
|
|
834
|
+
"type": "string",
|
|
835
|
+
"format": "date-time"
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
"completion": {
|
|
840
|
+
"type": "object",
|
|
841
|
+
"properties": {
|
|
842
|
+
"started": {
|
|
843
|
+
"type": "string",
|
|
844
|
+
"format": "date-time"
|
|
845
|
+
},
|
|
846
|
+
"expected": {
|
|
847
|
+
"description": "A proposed or agreed date for completion",
|
|
848
|
+
"type": "string",
|
|
849
|
+
"format": "date-time"
|
|
850
|
+
},
|
|
851
|
+
"completed": {
|
|
852
|
+
"description": "The actual date the property sale was completed",
|
|
853
|
+
"type": "string",
|
|
854
|
+
"format": "date-time"
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
},
|
|
860
|
+
"offers": {
|
|
861
|
+
"title": "Offers for purchase of the property",
|
|
862
|
+
"type": "object",
|
|
863
|
+
"propertyNames": {
|
|
864
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
865
|
+
},
|
|
866
|
+
"patternProperties": {
|
|
867
|
+
".*": {
|
|
868
|
+
"type": "object",
|
|
869
|
+
"properties": {
|
|
870
|
+
"amount": {
|
|
871
|
+
"type": "number",
|
|
872
|
+
"minimum": 0
|
|
873
|
+
},
|
|
874
|
+
"currency": {
|
|
875
|
+
"type": "string",
|
|
876
|
+
"pattern": "^[A-Z]{3}$"
|
|
877
|
+
},
|
|
878
|
+
"status": {
|
|
879
|
+
"type": "string",
|
|
880
|
+
"enum": [
|
|
881
|
+
"Pending",
|
|
882
|
+
"Withdrawn",
|
|
883
|
+
"Rejected",
|
|
884
|
+
"Accepted",
|
|
885
|
+
"Note of Interest"
|
|
886
|
+
]
|
|
887
|
+
},
|
|
888
|
+
"inclusions": {
|
|
889
|
+
"type": "array",
|
|
890
|
+
"items": {
|
|
891
|
+
"type": "string"
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
"exclusions": {
|
|
895
|
+
"type": "array",
|
|
896
|
+
"items": {
|
|
897
|
+
"type": "string"
|
|
898
|
+
}
|
|
899
|
+
},
|
|
900
|
+
"conditions": {
|
|
901
|
+
"type": "array",
|
|
902
|
+
"items": {
|
|
903
|
+
"type": "string"
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
"externalIds": {
|
|
907
|
+
"type": "object",
|
|
908
|
+
"patternProperties": {
|
|
909
|
+
".*": {
|
|
910
|
+
"oneOf": [
|
|
911
|
+
{
|
|
912
|
+
"type": "string"
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
"type": "number"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
"type": "boolean"
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"type": "object",
|
|
922
|
+
"patternProperties": {
|
|
923
|
+
".*": {}
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
]
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
},
|
|
930
|
+
"metadata": {
|
|
931
|
+
"title": "Offer metadata",
|
|
932
|
+
"description": "Flexible container for vendor-specific metadata items relating to this offer, keyed by vendor namespace (e.g. /offers/{id}/metadata/Moverly/lenderCompatibilityAnalysis). Values may be strings, numbers, booleans or nested objects. Paths are addressable up to three levels below metadata (e.g. /offers/{id}/metadata/vendor/item/field).",
|
|
933
|
+
"type": "object",
|
|
934
|
+
"patternProperties": {
|
|
935
|
+
".*": {
|
|
936
|
+
"oneOf": [
|
|
937
|
+
{
|
|
938
|
+
"type": "string"
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"type": "number"
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"type": "boolean"
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"type": "object",
|
|
948
|
+
"patternProperties": {
|
|
949
|
+
".*": {
|
|
950
|
+
"oneOf": [
|
|
951
|
+
{
|
|
952
|
+
"type": "string"
|
|
953
|
+
},
|
|
954
|
+
{
|
|
955
|
+
"type": "number"
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"type": "boolean"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"type": "array"
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"type": "null"
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"type": "object",
|
|
968
|
+
"patternProperties": {
|
|
969
|
+
".*": {}
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
]
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
]
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
},
|
|
980
|
+
"buyerCircumstances": {
|
|
981
|
+
"title": "Buyer circumstances",
|
|
982
|
+
"description": "Information about the buyer's circumstances for lender compatibility analysis and conveyancing quotes",
|
|
983
|
+
"type": "object",
|
|
984
|
+
"properties": {
|
|
985
|
+
"intendedUse": {
|
|
986
|
+
"type": "string",
|
|
987
|
+
"title": "Intended use of property",
|
|
988
|
+
"description": "The primary purpose of the purchase: whether the buyer will live at the property as their main home, and if not, on what basis it is held. Other circumstances are recorded in the separate fields below and are never values of this field. A home-worker is \"Owner occupied\" with intendsBusiness true. A property bought for a relative to live in is \"Second home\" (no rent) or \"Buy-to-let\" (rent paid), with occupiedByFamilyMember true. A purchase to renovate and sell is \"Second home\" with intendsAlterations and intendsResale true.",
|
|
989
|
+
"enum": [
|
|
990
|
+
"Owner occupied",
|
|
991
|
+
"Buy-to-let",
|
|
992
|
+
"Holiday let",
|
|
993
|
+
"Second home"
|
|
994
|
+
]
|
|
995
|
+
},
|
|
996
|
+
"firstTimeBuyer": {
|
|
997
|
+
"type": "boolean",
|
|
998
|
+
"title": "First-time buyer"
|
|
999
|
+
},
|
|
1000
|
+
"rightToBuy": {
|
|
1001
|
+
"type": "boolean",
|
|
1002
|
+
"title": "Right to Buy purchase"
|
|
1003
|
+
},
|
|
1004
|
+
"ltdCompanyPurchase": {
|
|
1005
|
+
"type": "boolean",
|
|
1006
|
+
"title": "Limited company purchase"
|
|
1007
|
+
},
|
|
1008
|
+
"numberOfOwners": {
|
|
1009
|
+
"type": "integer",
|
|
1010
|
+
"title": "Number of owners",
|
|
1011
|
+
"nullable": true
|
|
1012
|
+
},
|
|
1013
|
+
"numberOfExpats": {
|
|
1014
|
+
"type": "integer",
|
|
1015
|
+
"title": "Number of expat buyers",
|
|
1016
|
+
"nullable": true
|
|
1017
|
+
},
|
|
1018
|
+
"giftedEquity": {
|
|
1019
|
+
"type": "boolean",
|
|
1020
|
+
"title": "Gifted equity"
|
|
1021
|
+
},
|
|
1022
|
+
"numberOfGiftedDeposits": {
|
|
1023
|
+
"type": "integer",
|
|
1024
|
+
"title": "Number of gifted deposits",
|
|
1025
|
+
"nullable": true
|
|
1026
|
+
},
|
|
1027
|
+
"requiresMortgage": {
|
|
1028
|
+
"type": "string",
|
|
1029
|
+
"title": "Requires mortgage",
|
|
1030
|
+
"enum": [
|
|
1031
|
+
"Yes",
|
|
1032
|
+
"No"
|
|
1033
|
+
]
|
|
1034
|
+
},
|
|
1035
|
+
"isAdditionalProperty": {
|
|
1036
|
+
"type": "boolean",
|
|
1037
|
+
"title": "Additional property purchase",
|
|
1038
|
+
"description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
|
|
1039
|
+
},
|
|
1040
|
+
"dependentOnSale": {
|
|
1041
|
+
"type": "boolean",
|
|
1042
|
+
"title": "Buyer needs to sell a property to proceed",
|
|
1043
|
+
"description": "Whether the buyer's purchase depends on the sale of another property, i.e. the buyer's side of the chain. False positively records that it does not, for example a first-time buyer or a buyer who has already sold; absent means the buyer's position is not known. Owning another property is not the same thing: see isAdditionalProperty. The property or properties being sold are recorded in chain.buyersSale."
|
|
1044
|
+
},
|
|
1045
|
+
"hasPets": {
|
|
1046
|
+
"type": "boolean",
|
|
1047
|
+
"title": "Buyer has pets",
|
|
1048
|
+
"description": "Relevant to lease and covenant pet restriction assessment"
|
|
1049
|
+
},
|
|
1050
|
+
"petDetails": {
|
|
1051
|
+
"type": "string",
|
|
1052
|
+
"title": "Pets or other animals",
|
|
1053
|
+
"description": "The pets, horses or other animals the buyer intends to keep at the property, and how many (e.g. \"2 dogs, 1 cat\")"
|
|
1054
|
+
},
|
|
1055
|
+
"occupiedByFamilyMember": {
|
|
1056
|
+
"type": "boolean",
|
|
1057
|
+
"title": "Occupied by a member of the buyer's family",
|
|
1058
|
+
"description": "Whether a member of the buyer's family, rather than the buyer, will live at the property. Recorded with intendedUse \"Second home\" when no rent is paid, or \"Buy-to-let\" when it is. Relevant to lender acceptability, occupancy and tax assessment"
|
|
1059
|
+
},
|
|
1060
|
+
"intendsSublet": {
|
|
1061
|
+
"type": "boolean",
|
|
1062
|
+
"title": "Buyer intends to sublet",
|
|
1063
|
+
"description": "Relevant to lease and covenant subletting restriction assessment"
|
|
1064
|
+
},
|
|
1065
|
+
"subletType": {
|
|
1066
|
+
"type": "string",
|
|
1067
|
+
"title": "Type of subletting intended",
|
|
1068
|
+
"enum": [
|
|
1069
|
+
"AST",
|
|
1070
|
+
"Lodger",
|
|
1071
|
+
"Airbnb",
|
|
1072
|
+
"HMO",
|
|
1073
|
+
"Company let",
|
|
1074
|
+
"Other"
|
|
1075
|
+
]
|
|
1076
|
+
},
|
|
1077
|
+
"intendsBusiness": {
|
|
1078
|
+
"type": "boolean",
|
|
1079
|
+
"title": "Buyer intends business use",
|
|
1080
|
+
"description": "Relevant to covenant and lease business-use restriction assessment"
|
|
1081
|
+
},
|
|
1082
|
+
"businessType": {
|
|
1083
|
+
"type": "string",
|
|
1084
|
+
"title": "Type of business intended"
|
|
1085
|
+
},
|
|
1086
|
+
"businessUseType": {
|
|
1087
|
+
"type": "string",
|
|
1088
|
+
"title": "Extent of intended business use",
|
|
1089
|
+
"description": "How the business use recorded in intendsBusiness will affect the property: working from home with no visitors, clients or staff visiting, or using the property or part of it as business premises such as a shop, office or surgery. For a mixed-use purchase, intendedUse records the residential occupation and this field records the business part. Relevant to use covenants, lease restrictions and planning use class",
|
|
1090
|
+
"enum": [
|
|
1091
|
+
"Working from home",
|
|
1092
|
+
"Clients or staff visit",
|
|
1093
|
+
"Business premises"
|
|
1094
|
+
]
|
|
1095
|
+
},
|
|
1096
|
+
"intendsAlterations": {
|
|
1097
|
+
"type": "boolean",
|
|
1098
|
+
"title": "Buyer intends significant alterations",
|
|
1099
|
+
"description": "Relevant to covenant, planning and building regulations assessment"
|
|
1100
|
+
},
|
|
1101
|
+
"alterationDescription": {
|
|
1102
|
+
"type": "string",
|
|
1103
|
+
"title": "Planned alterations",
|
|
1104
|
+
"description": "What the buyer intends to alter, extend or develop"
|
|
1105
|
+
},
|
|
1106
|
+
"intendsResale": {
|
|
1107
|
+
"type": "boolean",
|
|
1108
|
+
"title": "Buyer intends to sell after works",
|
|
1109
|
+
"description": "Whether the buyer intends to sell the property, or parts of it, once planned works are complete, rather than live in it or let it. Relevant to covenant, planning, lender and tax assessment"
|
|
1110
|
+
},
|
|
1111
|
+
"vehicleRequirements": {
|
|
1112
|
+
"type": "string",
|
|
1113
|
+
"title": "Vehicles to keep at the property",
|
|
1114
|
+
"description": "Any caravan, motorhome, commercial vehicle or boat the buyer intends to keep at the property. Relevant to parking and use covenants"
|
|
1115
|
+
},
|
|
1116
|
+
"financingMethod": {
|
|
1117
|
+
"type": "string",
|
|
1118
|
+
"title": "Primary financing method",
|
|
1119
|
+
"description": "How the purchase is funded, distinct from intendedUse (how the property will be used)",
|
|
1120
|
+
"enum": [
|
|
1121
|
+
"Mortgage",
|
|
1122
|
+
"Cash",
|
|
1123
|
+
"Shared ownership",
|
|
1124
|
+
"Help to Buy",
|
|
1125
|
+
"Right to Buy"
|
|
1126
|
+
]
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
"discriminator": {
|
|
1130
|
+
"propertyName": "requiresMortgage"
|
|
1131
|
+
},
|
|
1132
|
+
"required": [
|
|
1133
|
+
"requiresMortgage"
|
|
1134
|
+
],
|
|
1135
|
+
"oneOf": [
|
|
1136
|
+
{
|
|
1137
|
+
"properties": {
|
|
1138
|
+
"requiresMortgage": {
|
|
1139
|
+
"enum": [
|
|
1140
|
+
"No"
|
|
1141
|
+
]
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"properties": {
|
|
1147
|
+
"requiresMortgage": {
|
|
1148
|
+
"enum": [
|
|
1149
|
+
"Yes"
|
|
1150
|
+
]
|
|
1151
|
+
},
|
|
1152
|
+
"helpToBuyEquityLoan": {
|
|
1153
|
+
"type": "boolean",
|
|
1154
|
+
"title": "Help to Buy equity loan"
|
|
1155
|
+
},
|
|
1156
|
+
"armedForcesHelpToBuy": {
|
|
1157
|
+
"type": "boolean",
|
|
1158
|
+
"title": "Armed Forces Help to Buy"
|
|
1159
|
+
},
|
|
1160
|
+
"numberOfHelpToBuyIsas": {
|
|
1161
|
+
"type": "integer",
|
|
1162
|
+
"title": "Number of Help to Buy ISAs",
|
|
1163
|
+
"nullable": true
|
|
1164
|
+
},
|
|
1165
|
+
"bridgingFinanceRepresentation": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"title": "Bridging finance representation",
|
|
1168
|
+
"enum": [
|
|
1169
|
+
"Dual",
|
|
1170
|
+
"Separate"
|
|
1171
|
+
],
|
|
1172
|
+
"nullable": true
|
|
1173
|
+
},
|
|
1174
|
+
"depositAmount": {
|
|
1175
|
+
"type": "number",
|
|
1176
|
+
"title": "Deposit amount",
|
|
1177
|
+
"minimum": 0
|
|
1178
|
+
},
|
|
1179
|
+
"loanToValue": {
|
|
1180
|
+
"type": "number",
|
|
1181
|
+
"title": "Loan-to-Value (LTV)",
|
|
1182
|
+
"minimum": 0,
|
|
1183
|
+
"maximum": 100
|
|
1184
|
+
},
|
|
1185
|
+
"numberOfBorrowers": {
|
|
1186
|
+
"type": "integer",
|
|
1187
|
+
"title": "Number of borrowers",
|
|
1188
|
+
"minimum": 1,
|
|
1189
|
+
"maximum": 4,
|
|
1190
|
+
"default": 1
|
|
1191
|
+
},
|
|
1192
|
+
"jointProprietorSoleMortgagor": {
|
|
1193
|
+
"type": "boolean",
|
|
1194
|
+
"title": "Joint proprietor, sole mortgagor"
|
|
1195
|
+
},
|
|
1196
|
+
"soleProprietorJointMortgagor": {
|
|
1197
|
+
"type": "boolean",
|
|
1198
|
+
"title": "Sole proprietor, joint mortgagor"
|
|
1199
|
+
},
|
|
1200
|
+
"deedOfPostponement": {
|
|
1201
|
+
"type": "boolean",
|
|
1202
|
+
"title": "Deed of postponement required"
|
|
1203
|
+
},
|
|
1204
|
+
"separateRepresentation": {
|
|
1205
|
+
"type": "boolean",
|
|
1206
|
+
"title": "Separate legal representation required",
|
|
1207
|
+
"nullable": true
|
|
1208
|
+
},
|
|
1209
|
+
"oldestBorrowerAge": {
|
|
1210
|
+
"type": "integer",
|
|
1211
|
+
"title": "Oldest borrower age",
|
|
1212
|
+
"minimum": 18,
|
|
1213
|
+
"maximum": 85
|
|
1214
|
+
},
|
|
1215
|
+
"mortgageTerm": {
|
|
1216
|
+
"type": "integer",
|
|
1217
|
+
"title": "Mortgage term",
|
|
1218
|
+
"minimum": 5,
|
|
1219
|
+
"maximum": 40
|
|
1220
|
+
},
|
|
1221
|
+
"adverseCredit": {
|
|
1222
|
+
"type": "string",
|
|
1223
|
+
"title": "Adverse credit",
|
|
1224
|
+
"enum": [
|
|
1225
|
+
"No",
|
|
1226
|
+
"Yes",
|
|
1227
|
+
"Prefer not to say"
|
|
1228
|
+
]
|
|
1229
|
+
},
|
|
1230
|
+
"employmentType": {
|
|
1231
|
+
"type": "string",
|
|
1232
|
+
"title": "Employment type",
|
|
1233
|
+
"enum": [
|
|
1234
|
+
"Employed",
|
|
1235
|
+
"Self-employed",
|
|
1236
|
+
"Retired",
|
|
1237
|
+
"Contractor",
|
|
1238
|
+
"Other"
|
|
1239
|
+
]
|
|
1240
|
+
},
|
|
1241
|
+
"existingMortgagedProperties": {
|
|
1242
|
+
"type": "integer",
|
|
1243
|
+
"title": "Existing mortgaged properties",
|
|
1244
|
+
"minimum": 0
|
|
1245
|
+
},
|
|
1246
|
+
"annualIncome": {
|
|
1247
|
+
"type": "number",
|
|
1248
|
+
"title": "Annual gross income",
|
|
1249
|
+
"minimum": 0
|
|
1250
|
+
},
|
|
1251
|
+
"residencyStatus": {
|
|
1252
|
+
"type": "string",
|
|
1253
|
+
"title": "Residency status",
|
|
1254
|
+
"enum": [
|
|
1255
|
+
"UK citizen",
|
|
1256
|
+
"Permanent resident",
|
|
1257
|
+
"Visa holder",
|
|
1258
|
+
"Non-resident"
|
|
1259
|
+
]
|
|
1260
|
+
},
|
|
1261
|
+
"nominatedLender": {
|
|
1262
|
+
"type": "string",
|
|
1263
|
+
"title": "Nominated lender",
|
|
1264
|
+
"description": "The nominated lender's name as entered or selected"
|
|
1265
|
+
},
|
|
1266
|
+
"nominatedLenderHandbookId": {
|
|
1267
|
+
"type": "string",
|
|
1268
|
+
"title": "Nominated lender (UK Finance Handbook id)",
|
|
1269
|
+
"description": "The nominated lender's identifier in the UK Finance Mortgage Lenders' Handbook, e.g. nationwide-building-society, so lender requirements can be looked up without matching on name"
|
|
1270
|
+
}
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
]
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
},
|
|
1279
|
+
"enquiries": {
|
|
1280
|
+
"title": "Property transaction enquiries between conveyancers",
|
|
1281
|
+
"type": "object",
|
|
1282
|
+
"propertyNames": {
|
|
1283
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1284
|
+
},
|
|
1285
|
+
"patternProperties": {
|
|
1286
|
+
".*": {
|
|
1287
|
+
"type": "object",
|
|
1288
|
+
"properties": {
|
|
1289
|
+
"subject": {
|
|
1290
|
+
"description": "The subject or topic of the enquiry",
|
|
1291
|
+
"type": "string"
|
|
1292
|
+
},
|
|
1293
|
+
"status": {
|
|
1294
|
+
"type": "string",
|
|
1295
|
+
"enum": [
|
|
1296
|
+
"pending",
|
|
1297
|
+
"open",
|
|
1298
|
+
"resolved",
|
|
1299
|
+
"resolvedWithCondition",
|
|
1300
|
+
"withdrawn"
|
|
1301
|
+
]
|
|
1302
|
+
},
|
|
1303
|
+
"messages": {
|
|
1304
|
+
"description": "Messages exchanged regarding this enquiry",
|
|
1305
|
+
"type": "object",
|
|
1306
|
+
"propertyNames": {
|
|
1307
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1308
|
+
},
|
|
1309
|
+
"patternProperties": {
|
|
1310
|
+
".*": {
|
|
1311
|
+
"type": "object",
|
|
1312
|
+
"properties": {
|
|
1313
|
+
"datetime": {
|
|
1314
|
+
"type": "string",
|
|
1315
|
+
"format": "date-time"
|
|
1316
|
+
},
|
|
1317
|
+
"originatorRole": {
|
|
1318
|
+
"type": "string",
|
|
1319
|
+
"enum": [
|
|
1320
|
+
"Seller",
|
|
1321
|
+
"Seller's Conveyancer",
|
|
1322
|
+
"Buyer",
|
|
1323
|
+
"Buyer's Conveyancer",
|
|
1324
|
+
"Estate Agent",
|
|
1325
|
+
"Buyer's Agent",
|
|
1326
|
+
"Surveyor",
|
|
1327
|
+
"Mortgage Broker",
|
|
1328
|
+
"Lender"
|
|
1329
|
+
]
|
|
1330
|
+
},
|
|
1331
|
+
"destinationRole": {
|
|
1332
|
+
"type": "string",
|
|
1333
|
+
"enum": [
|
|
1334
|
+
"Seller",
|
|
1335
|
+
"Seller's Conveyancer",
|
|
1336
|
+
"Buyer",
|
|
1337
|
+
"Buyer's Conveyancer",
|
|
1338
|
+
"Estate Agent",
|
|
1339
|
+
"Buyer's Agent",
|
|
1340
|
+
"Surveyor",
|
|
1341
|
+
"Mortgage Broker",
|
|
1342
|
+
"Lender"
|
|
1343
|
+
]
|
|
1344
|
+
},
|
|
1345
|
+
"messageText": {
|
|
1346
|
+
"type": "string"
|
|
1347
|
+
},
|
|
1348
|
+
"pdtfPath": {
|
|
1349
|
+
"description": "PDTF schema path indicating where response data should be stored, enabling structured data resolution alongside the enquiry message",
|
|
1350
|
+
"type": "string",
|
|
1351
|
+
"pattern": "^/"
|
|
1352
|
+
}
|
|
1353
|
+
},
|
|
1354
|
+
"required": [
|
|
1355
|
+
"datetime",
|
|
1356
|
+
"originatorRole",
|
|
1357
|
+
"destinationRole",
|
|
1358
|
+
"messageText"
|
|
1359
|
+
]
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
},
|
|
1363
|
+
"externalIds": {
|
|
1364
|
+
"type": "object",
|
|
1365
|
+
"patternProperties": {
|
|
1366
|
+
".*": {
|
|
1367
|
+
"oneOf": [
|
|
1368
|
+
{
|
|
1369
|
+
"type": "string"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
"type": "number"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"type": "boolean"
|
|
1376
|
+
},
|
|
1377
|
+
{
|
|
1378
|
+
"type": "object",
|
|
1379
|
+
"patternProperties": {
|
|
1380
|
+
".*": {}
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1383
|
+
]
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
}
|
|
1387
|
+
},
|
|
1388
|
+
"required": [
|
|
1389
|
+
"subject",
|
|
1390
|
+
"status",
|
|
1391
|
+
"messages"
|
|
1392
|
+
],
|
|
1393
|
+
"discriminator": {
|
|
1394
|
+
"propertyName": "status"
|
|
1395
|
+
},
|
|
1396
|
+
"oneOf": [
|
|
1397
|
+
{
|
|
1398
|
+
"properties": {
|
|
1399
|
+
"status": {
|
|
1400
|
+
"const": "resolvedWithCondition"
|
|
1401
|
+
},
|
|
1402
|
+
"resolutionCondition": {
|
|
1403
|
+
"description": "Condition that must be met for the enquiry to be fully resolved",
|
|
1404
|
+
"type": "string"
|
|
1405
|
+
}
|
|
1406
|
+
},
|
|
1407
|
+
"required": [
|
|
1408
|
+
"resolutionCondition"
|
|
1409
|
+
]
|
|
1410
|
+
},
|
|
1411
|
+
{
|
|
1412
|
+
"properties": {
|
|
1413
|
+
"status": {
|
|
1414
|
+
"enum": [
|
|
1415
|
+
"pending",
|
|
1416
|
+
"open",
|
|
1417
|
+
"resolved",
|
|
1418
|
+
"withdrawn"
|
|
1419
|
+
]
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1423
|
+
]
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
},
|
|
1427
|
+
"id": {
|
|
1428
|
+
"title": "Transaction DID",
|
|
1429
|
+
"description": "Decentralised Identifier for the transaction",
|
|
1430
|
+
"type": "string",
|
|
1431
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1432
|
+
},
|
|
1433
|
+
"property": {
|
|
1434
|
+
"title": "Property Reference",
|
|
1435
|
+
"description": "URN referencing the Property entity associated with this transaction",
|
|
1436
|
+
"type": "string",
|
|
1437
|
+
"pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
|
|
1438
|
+
},
|
|
1439
|
+
"titlesToBeSold": {
|
|
1440
|
+
"title": "Titles to be Sold",
|
|
1441
|
+
"description": "Ordered URNs of the Title entities that V3 listed in propertyPack.titlesToBeSold. A title known only from propertyPack.ownership.ownershipsToBeTransferred is a Title entity but is NOT listed here, so recomposition can tell the two apart and rebuild each source array faithfully.",
|
|
1442
|
+
"type": "array",
|
|
1443
|
+
"minItems": 1,
|
|
1444
|
+
"items": {
|
|
1445
|
+
"title": "Title URN",
|
|
1446
|
+
"description": "URN reference to a Title entity",
|
|
1447
|
+
"type": "string",
|
|
1448
|
+
"pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
"participants": {
|
|
1452
|
+
"title": "Participants",
|
|
1453
|
+
"description": "Ordered roster of the parties to this transaction. Each entry references a Person or Organisation entity and carries only its transaction-scoped identity and firm; role and every relationship live on the credentials, so that revoking a credential removes what it asserts. The array order is the V3 participants order and is authoritative for recomposition.",
|
|
1454
|
+
"type": "array",
|
|
1455
|
+
"items": {
|
|
1456
|
+
"type": "object",
|
|
1457
|
+
"title": "Transaction Participant",
|
|
1458
|
+
"properties": {
|
|
1459
|
+
"participant": {
|
|
1460
|
+
"title": "Participant DID",
|
|
1461
|
+
"description": "DID reference to the Person or Organisation entity",
|
|
1462
|
+
"type": "string",
|
|
1463
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1464
|
+
},
|
|
1465
|
+
"organisation": {
|
|
1466
|
+
"title": "Organisation",
|
|
1467
|
+
"type": "string"
|
|
1468
|
+
},
|
|
1469
|
+
"organisationReference": {
|
|
1470
|
+
"title": "Reference",
|
|
1471
|
+
"type": "string"
|
|
1472
|
+
},
|
|
1473
|
+
"did": {
|
|
1474
|
+
"title": "Participant DID",
|
|
1475
|
+
"description": "Decentralised Identifier for this party - the primary way to identify them. Unlike participantId it is global and stable: the same person carries the same DID across transactions, and across two entries in one transaction where they are both buying and selling. Minted when the party is created, so it should always be present.",
|
|
1476
|
+
"type": "string",
|
|
1477
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1478
|
+
},
|
|
1479
|
+
"participantId": {
|
|
1480
|
+
"title": "Participant id",
|
|
1481
|
+
"description": "Transaction-local identifier for this participant, for implementations that do not mint DIDs. Prefer did. Referencing by array position is unsafe because participants may be added or removed.",
|
|
1482
|
+
"type": "string",
|
|
1483
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1484
|
+
}
|
|
1485
|
+
},
|
|
1486
|
+
"required": [
|
|
1487
|
+
"participant"
|
|
1488
|
+
]
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
"saleContext": {
|
|
1492
|
+
"title": "Sale Context",
|
|
1493
|
+
"description": "Residual ownership/sale facts that apply at the transaction level (e.g. outstanding mortgage, Help to Buy equity loan status).",
|
|
1494
|
+
"type": "object",
|
|
1495
|
+
"properties": {
|
|
1496
|
+
"numberOfSellers": {
|
|
1497
|
+
"title": "How many sellers are involved in the transaction?",
|
|
1498
|
+
"description": "This may differ from the number of legal owners, for example if the property is being sold by executors of a deceased owner",
|
|
1499
|
+
"type": "integer"
|
|
1500
|
+
},
|
|
1501
|
+
"numberOfNonUkResidentSellers": {
|
|
1502
|
+
"title": "How many sellers are involved in the transaction who are resident outside the UK?",
|
|
1503
|
+
"description": "This may differ from the number of legal owners, for example if the property is being sold by executors of a deceased owner",
|
|
1504
|
+
"type": "integer"
|
|
1505
|
+
},
|
|
1506
|
+
"outstandingMortgage": {
|
|
1507
|
+
"title": "Are there any outstanding mortgages on the property?",
|
|
1508
|
+
"type": "string",
|
|
1509
|
+
"enum": [
|
|
1510
|
+
"Yes",
|
|
1511
|
+
"No"
|
|
1512
|
+
]
|
|
1513
|
+
},
|
|
1514
|
+
"existingLender": {
|
|
1515
|
+
"title": "What is the name of the existing lender?",
|
|
1516
|
+
"type": "string"
|
|
1517
|
+
},
|
|
1518
|
+
"hasHelpToBuyEquityLoan": {
|
|
1519
|
+
"title": "Is the property being sold with a Help to Buy equity loan outstanding?",
|
|
1520
|
+
"type": "string",
|
|
1521
|
+
"enum": [
|
|
1522
|
+
"Yes",
|
|
1523
|
+
"No"
|
|
1524
|
+
]
|
|
1525
|
+
},
|
|
1526
|
+
"isFirstRegistration": {
|
|
1527
|
+
"title": "Is this the first time the property is to be registered with HMLR?",
|
|
1528
|
+
"type": "string",
|
|
1529
|
+
"enum": [
|
|
1530
|
+
"Yes",
|
|
1531
|
+
"No"
|
|
1532
|
+
]
|
|
1533
|
+
},
|
|
1534
|
+
"isLimitedCompanySale": {
|
|
1535
|
+
"title": "Is the property being sold by a Limited Company?",
|
|
1536
|
+
"type": "string",
|
|
1537
|
+
"enum": [
|
|
1538
|
+
"Yes",
|
|
1539
|
+
"No"
|
|
1540
|
+
]
|
|
1541
|
+
},
|
|
1542
|
+
"legalOwners": {
|
|
1543
|
+
"title": "Legal Owners",
|
|
1544
|
+
"type": "object",
|
|
1545
|
+
"properties": {
|
|
1546
|
+
"namesOfLegalOwners": {
|
|
1547
|
+
"title": "Names of all legal owners",
|
|
1548
|
+
"type": "array",
|
|
1549
|
+
"minItems": 1,
|
|
1550
|
+
"items": {
|
|
1551
|
+
"title": "Legal owner",
|
|
1552
|
+
"type": "object",
|
|
1553
|
+
"properties": {
|
|
1554
|
+
"ownerType": {
|
|
1555
|
+
"type": "string",
|
|
1556
|
+
"title": "Type of owner",
|
|
1557
|
+
"enum": [
|
|
1558
|
+
"Private individual",
|
|
1559
|
+
"Organisation"
|
|
1560
|
+
]
|
|
1561
|
+
}
|
|
1562
|
+
},
|
|
1563
|
+
"discriminator": {
|
|
1564
|
+
"propertyName": "ownerType"
|
|
1565
|
+
},
|
|
1566
|
+
"oneOf": [
|
|
1567
|
+
{
|
|
1568
|
+
"properties": {
|
|
1569
|
+
"ownerType": {
|
|
1570
|
+
"enum": [
|
|
1571
|
+
"Private individual"
|
|
1572
|
+
]
|
|
1573
|
+
},
|
|
1574
|
+
"firstName": {
|
|
1575
|
+
"title": "First name",
|
|
1576
|
+
"type": "string",
|
|
1577
|
+
"minLength": 1
|
|
1578
|
+
},
|
|
1579
|
+
"middleNames": {
|
|
1580
|
+
"title": "Middle names",
|
|
1581
|
+
"type": "string"
|
|
1582
|
+
},
|
|
1583
|
+
"lastName": {
|
|
1584
|
+
"title": "Last name",
|
|
1585
|
+
"type": "string",
|
|
1586
|
+
"minLength": 1
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
"properties": {
|
|
1592
|
+
"ownerType": {
|
|
1593
|
+
"enum": [
|
|
1594
|
+
"Organisation"
|
|
1595
|
+
]
|
|
1596
|
+
},
|
|
1597
|
+
"organisationName": {
|
|
1598
|
+
"title": "Organisation name",
|
|
1599
|
+
"type": "string",
|
|
1600
|
+
"minLength": 1
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
]
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
}
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1612
|
+
}
|