@pdtf/schemas 3.6.0-dev.20 → 3.6.0-dev.21
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/v4-mapping-and-recomposition.md +416 -0
- package/index.js +18 -0
- package/package.json +2 -1
- package/src/schemas/v3/combined.json +65 -0
- package/src/schemas/v3/compactSkeleton.txt +10 -0
- package/src/schemas/v3/pdtf-transaction.json +65 -0
- package/src/schemas/v3/skeleton.json +12 -0
- package/src/schemas/v4/Gift.json +88 -0
- package/src/schemas/v4/Offer.json +384 -0
- package/src/schemas/v4/Organisation.json +167 -0
- package/src/schemas/v4/Person.json +321 -0
- package/src/schemas/v4/Property.json +27769 -0
- package/src/schemas/v4/Representation.json +67 -0
- package/src/schemas/v4/SellerCapacity.json +193 -0
- package/src/schemas/v4/Title.json +14672 -0
- package/src/schemas/v4/Transaction.json +1570 -0
- package/src/schemas/v4/TransactionRole.json +59 -0
- package/src/schemas/v4/mapping.json +1129 -0
- package/src/utils/generateV4Schemas.js +1341 -0
- package/src/utils/v4.js +765 -0
|
@@ -0,0 +1,1570 @@
|
|
|
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.21",
|
|
10
|
+
"v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
|
|
11
|
+
"combinedPath": "src/schemas/v3/combined.json",
|
|
12
|
+
"combinedSha256": "1c6c5812f73a36d3674d5fb7b5eb1f6ce524d09c4195e281e078b9e41ea94f6d"
|
|
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
|
+
},
|
|
638
|
+
"buyersSale": {
|
|
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 an onward 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
|
+
"milestones": {
|
|
742
|
+
"title": "Transaction Milestones",
|
|
743
|
+
"type": "object",
|
|
744
|
+
"properties": {
|
|
745
|
+
"listed": {
|
|
746
|
+
"description": "The date the property commenced marketing by being publicly listed for sale",
|
|
747
|
+
"type": "object",
|
|
748
|
+
"properties": {
|
|
749
|
+
"expected": {
|
|
750
|
+
"description": "Planned date of listing, for example when scheduled in advance around e.g. Boxing Day activities",
|
|
751
|
+
"type": "string",
|
|
752
|
+
"format": "date-time"
|
|
753
|
+
},
|
|
754
|
+
"completed": {
|
|
755
|
+
"description": "Actual date of first public listing for sale",
|
|
756
|
+
"type": "string",
|
|
757
|
+
"format": "date-time"
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
"legalForms": {
|
|
762
|
+
"description": "The progress of the legal forms completion, including TA6, TA7 where relevant, and TA10 forms or their equivalents",
|
|
763
|
+
"type": "object",
|
|
764
|
+
"properties": {
|
|
765
|
+
"started": {
|
|
766
|
+
"description": "The date the legal forms were shared with the vendors for completion",
|
|
767
|
+
"type": "string",
|
|
768
|
+
"format": "date-time"
|
|
769
|
+
},
|
|
770
|
+
"completed": {
|
|
771
|
+
"description": "The date the legal forms were completed and signed by all parties",
|
|
772
|
+
"type": "string",
|
|
773
|
+
"format": "date-time"
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"soldSubjectToContract": {
|
|
778
|
+
"type": "object",
|
|
779
|
+
"properties": {
|
|
780
|
+
"completed": {
|
|
781
|
+
"description": "The date an offer for sale was accepted by a proceedable buyer",
|
|
782
|
+
"type": "string",
|
|
783
|
+
"format": "date-time"
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
"searches": {
|
|
788
|
+
"description": "The progress of all searches in a standard search pack together",
|
|
789
|
+
"type": "object",
|
|
790
|
+
"properties": {
|
|
791
|
+
"started": {
|
|
792
|
+
"description": "The date the first of the searches in the pack was ordered",
|
|
793
|
+
"type": "string",
|
|
794
|
+
"format": "date-time"
|
|
795
|
+
},
|
|
796
|
+
"expected": {
|
|
797
|
+
"description": "The latest date the searches are expected to be completed",
|
|
798
|
+
"type": "string",
|
|
799
|
+
"format": "date-time"
|
|
800
|
+
},
|
|
801
|
+
"completed": {
|
|
802
|
+
"description": "The date the last of the searches in the pack was delivered",
|
|
803
|
+
"type": "string",
|
|
804
|
+
"format": "date-time"
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
"enquiries": {
|
|
809
|
+
"type": "object",
|
|
810
|
+
"properties": {
|
|
811
|
+
"started": {
|
|
812
|
+
"description": "The date the enquiries process between conveyancers was commenced",
|
|
813
|
+
"type": "string",
|
|
814
|
+
"format": "date-time"
|
|
815
|
+
},
|
|
816
|
+
"completed": {
|
|
817
|
+
"description": "The date the last of the enquiries was resolved",
|
|
818
|
+
"type": "string",
|
|
819
|
+
"format": "date-time"
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
},
|
|
823
|
+
"exchangeOfContracts": {
|
|
824
|
+
"type": "object",
|
|
825
|
+
"properties": {
|
|
826
|
+
"expected": {
|
|
827
|
+
"description": "A proposed or agreed date for the exchange of contracts",
|
|
828
|
+
"type": "string",
|
|
829
|
+
"format": "date-time"
|
|
830
|
+
},
|
|
831
|
+
"completed": {
|
|
832
|
+
"description": "The actual date the contracts were exchanged",
|
|
833
|
+
"type": "string",
|
|
834
|
+
"format": "date-time"
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
"completion": {
|
|
839
|
+
"type": "object",
|
|
840
|
+
"properties": {
|
|
841
|
+
"started": {
|
|
842
|
+
"type": "string",
|
|
843
|
+
"format": "date-time"
|
|
844
|
+
},
|
|
845
|
+
"expected": {
|
|
846
|
+
"description": "A proposed or agreed date for completion",
|
|
847
|
+
"type": "string",
|
|
848
|
+
"format": "date-time"
|
|
849
|
+
},
|
|
850
|
+
"completed": {
|
|
851
|
+
"description": "The actual date the property sale was completed",
|
|
852
|
+
"type": "string",
|
|
853
|
+
"format": "date-time"
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
},
|
|
859
|
+
"offers": {
|
|
860
|
+
"title": "Offers for purchase of the property",
|
|
861
|
+
"type": "object",
|
|
862
|
+
"propertyNames": {
|
|
863
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
864
|
+
},
|
|
865
|
+
"patternProperties": {
|
|
866
|
+
".*": {
|
|
867
|
+
"type": "object",
|
|
868
|
+
"properties": {
|
|
869
|
+
"amount": {
|
|
870
|
+
"type": "number",
|
|
871
|
+
"minimum": 0
|
|
872
|
+
},
|
|
873
|
+
"currency": {
|
|
874
|
+
"type": "string",
|
|
875
|
+
"pattern": "^[A-Z]{3}$"
|
|
876
|
+
},
|
|
877
|
+
"status": {
|
|
878
|
+
"type": "string",
|
|
879
|
+
"enum": [
|
|
880
|
+
"Pending",
|
|
881
|
+
"Withdrawn",
|
|
882
|
+
"Rejected",
|
|
883
|
+
"Accepted",
|
|
884
|
+
"Note of Interest"
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
"inclusions": {
|
|
888
|
+
"type": "array",
|
|
889
|
+
"items": {
|
|
890
|
+
"type": "string"
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
"exclusions": {
|
|
894
|
+
"type": "array",
|
|
895
|
+
"items": {
|
|
896
|
+
"type": "string"
|
|
897
|
+
}
|
|
898
|
+
},
|
|
899
|
+
"conditions": {
|
|
900
|
+
"type": "array",
|
|
901
|
+
"items": {
|
|
902
|
+
"type": "string"
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
"externalIds": {
|
|
906
|
+
"type": "object",
|
|
907
|
+
"patternProperties": {
|
|
908
|
+
".*": {
|
|
909
|
+
"oneOf": [
|
|
910
|
+
{
|
|
911
|
+
"type": "string"
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"type": "number"
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"type": "boolean"
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"type": "object",
|
|
921
|
+
"patternProperties": {
|
|
922
|
+
".*": {}
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
]
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
},
|
|
929
|
+
"metadata": {
|
|
930
|
+
"title": "Offer metadata",
|
|
931
|
+
"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).",
|
|
932
|
+
"type": "object",
|
|
933
|
+
"patternProperties": {
|
|
934
|
+
".*": {
|
|
935
|
+
"oneOf": [
|
|
936
|
+
{
|
|
937
|
+
"type": "string"
|
|
938
|
+
},
|
|
939
|
+
{
|
|
940
|
+
"type": "number"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"type": "boolean"
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
"type": "object",
|
|
947
|
+
"patternProperties": {
|
|
948
|
+
".*": {
|
|
949
|
+
"oneOf": [
|
|
950
|
+
{
|
|
951
|
+
"type": "string"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"type": "number"
|
|
955
|
+
},
|
|
956
|
+
{
|
|
957
|
+
"type": "boolean"
|
|
958
|
+
},
|
|
959
|
+
{
|
|
960
|
+
"type": "array"
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"type": "null"
|
|
964
|
+
},
|
|
965
|
+
{
|
|
966
|
+
"type": "object",
|
|
967
|
+
"patternProperties": {
|
|
968
|
+
".*": {}
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
]
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
]
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
},
|
|
979
|
+
"buyerCircumstances": {
|
|
980
|
+
"title": "Buyer circumstances",
|
|
981
|
+
"description": "Information about the buyer's circumstances for lender compatibility analysis and conveyancing quotes",
|
|
982
|
+
"type": "object",
|
|
983
|
+
"properties": {
|
|
984
|
+
"intendedUse": {
|
|
985
|
+
"type": "string",
|
|
986
|
+
"title": "Intended use of property",
|
|
987
|
+
"enum": [
|
|
988
|
+
"Owner occupied",
|
|
989
|
+
"Buy-to-let",
|
|
990
|
+
"Holiday let",
|
|
991
|
+
"Second home"
|
|
992
|
+
]
|
|
993
|
+
},
|
|
994
|
+
"firstTimeBuyer": {
|
|
995
|
+
"type": "boolean",
|
|
996
|
+
"title": "First-time buyer"
|
|
997
|
+
},
|
|
998
|
+
"rightToBuy": {
|
|
999
|
+
"type": "boolean",
|
|
1000
|
+
"title": "Right to Buy purchase"
|
|
1001
|
+
},
|
|
1002
|
+
"ltdCompanyPurchase": {
|
|
1003
|
+
"type": "boolean",
|
|
1004
|
+
"title": "Limited company purchase"
|
|
1005
|
+
},
|
|
1006
|
+
"numberOfOwners": {
|
|
1007
|
+
"type": "integer",
|
|
1008
|
+
"title": "Number of owners",
|
|
1009
|
+
"nullable": true
|
|
1010
|
+
},
|
|
1011
|
+
"numberOfExpats": {
|
|
1012
|
+
"type": "integer",
|
|
1013
|
+
"title": "Number of expat buyers",
|
|
1014
|
+
"nullable": true
|
|
1015
|
+
},
|
|
1016
|
+
"giftedEquity": {
|
|
1017
|
+
"type": "boolean",
|
|
1018
|
+
"title": "Gifted equity"
|
|
1019
|
+
},
|
|
1020
|
+
"numberOfGiftedDeposits": {
|
|
1021
|
+
"type": "integer",
|
|
1022
|
+
"title": "Number of gifted deposits",
|
|
1023
|
+
"nullable": true
|
|
1024
|
+
},
|
|
1025
|
+
"requiresMortgage": {
|
|
1026
|
+
"type": "string",
|
|
1027
|
+
"title": "Requires mortgage",
|
|
1028
|
+
"enum": [
|
|
1029
|
+
"Yes",
|
|
1030
|
+
"No"
|
|
1031
|
+
]
|
|
1032
|
+
},
|
|
1033
|
+
"isAdditionalProperty": {
|
|
1034
|
+
"type": "boolean",
|
|
1035
|
+
"title": "Additional property purchase",
|
|
1036
|
+
"description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
|
|
1037
|
+
},
|
|
1038
|
+
"hasPets": {
|
|
1039
|
+
"type": "boolean",
|
|
1040
|
+
"title": "Buyer has pets",
|
|
1041
|
+
"description": "Relevant to lease and covenant pet restriction assessment"
|
|
1042
|
+
},
|
|
1043
|
+
"intendsSublet": {
|
|
1044
|
+
"type": "boolean",
|
|
1045
|
+
"title": "Buyer intends to sublet",
|
|
1046
|
+
"description": "Relevant to lease and covenant subletting restriction assessment"
|
|
1047
|
+
},
|
|
1048
|
+
"subletType": {
|
|
1049
|
+
"type": "string",
|
|
1050
|
+
"title": "Type of subletting intended",
|
|
1051
|
+
"enum": [
|
|
1052
|
+
"AST",
|
|
1053
|
+
"Lodger",
|
|
1054
|
+
"Airbnb",
|
|
1055
|
+
"HMO",
|
|
1056
|
+
"Company let",
|
|
1057
|
+
"Other"
|
|
1058
|
+
]
|
|
1059
|
+
},
|
|
1060
|
+
"intendsBusiness": {
|
|
1061
|
+
"type": "boolean",
|
|
1062
|
+
"title": "Buyer intends business use",
|
|
1063
|
+
"description": "Relevant to covenant and lease business-use restriction assessment"
|
|
1064
|
+
},
|
|
1065
|
+
"businessType": {
|
|
1066
|
+
"type": "string",
|
|
1067
|
+
"title": "Type of business intended"
|
|
1068
|
+
},
|
|
1069
|
+
"intendsAlterations": {
|
|
1070
|
+
"type": "boolean",
|
|
1071
|
+
"title": "Buyer intends significant alterations",
|
|
1072
|
+
"description": "Relevant to covenant, planning and building regulations assessment"
|
|
1073
|
+
},
|
|
1074
|
+
"financingMethod": {
|
|
1075
|
+
"type": "string",
|
|
1076
|
+
"title": "Primary financing method",
|
|
1077
|
+
"description": "How the purchase is funded, distinct from intendedUse (how the property will be used)",
|
|
1078
|
+
"enum": [
|
|
1079
|
+
"Mortgage",
|
|
1080
|
+
"Cash",
|
|
1081
|
+
"Shared ownership",
|
|
1082
|
+
"Help to Buy",
|
|
1083
|
+
"Right to Buy"
|
|
1084
|
+
]
|
|
1085
|
+
}
|
|
1086
|
+
},
|
|
1087
|
+
"discriminator": {
|
|
1088
|
+
"propertyName": "requiresMortgage"
|
|
1089
|
+
},
|
|
1090
|
+
"required": [
|
|
1091
|
+
"requiresMortgage"
|
|
1092
|
+
],
|
|
1093
|
+
"oneOf": [
|
|
1094
|
+
{
|
|
1095
|
+
"properties": {
|
|
1096
|
+
"requiresMortgage": {
|
|
1097
|
+
"enum": [
|
|
1098
|
+
"No"
|
|
1099
|
+
]
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
"properties": {
|
|
1105
|
+
"requiresMortgage": {
|
|
1106
|
+
"enum": [
|
|
1107
|
+
"Yes"
|
|
1108
|
+
]
|
|
1109
|
+
},
|
|
1110
|
+
"helpToBuyEquityLoan": {
|
|
1111
|
+
"type": "boolean",
|
|
1112
|
+
"title": "Help to Buy equity loan"
|
|
1113
|
+
},
|
|
1114
|
+
"armedForcesHelpToBuy": {
|
|
1115
|
+
"type": "boolean",
|
|
1116
|
+
"title": "Armed Forces Help to Buy"
|
|
1117
|
+
},
|
|
1118
|
+
"numberOfHelpToBuyIsas": {
|
|
1119
|
+
"type": "integer",
|
|
1120
|
+
"title": "Number of Help to Buy ISAs",
|
|
1121
|
+
"nullable": true
|
|
1122
|
+
},
|
|
1123
|
+
"bridgingFinanceRepresentation": {
|
|
1124
|
+
"type": "string",
|
|
1125
|
+
"title": "Bridging finance representation",
|
|
1126
|
+
"enum": [
|
|
1127
|
+
"Dual",
|
|
1128
|
+
"Separate"
|
|
1129
|
+
],
|
|
1130
|
+
"nullable": true
|
|
1131
|
+
},
|
|
1132
|
+
"depositAmount": {
|
|
1133
|
+
"type": "number",
|
|
1134
|
+
"title": "Deposit amount",
|
|
1135
|
+
"minimum": 0
|
|
1136
|
+
},
|
|
1137
|
+
"loanToValue": {
|
|
1138
|
+
"type": "number",
|
|
1139
|
+
"title": "Loan-to-Value (LTV)",
|
|
1140
|
+
"minimum": 0,
|
|
1141
|
+
"maximum": 100
|
|
1142
|
+
},
|
|
1143
|
+
"numberOfBorrowers": {
|
|
1144
|
+
"type": "integer",
|
|
1145
|
+
"title": "Number of borrowers",
|
|
1146
|
+
"minimum": 1,
|
|
1147
|
+
"maximum": 4,
|
|
1148
|
+
"default": 1
|
|
1149
|
+
},
|
|
1150
|
+
"jointProprietorSoleMortgagor": {
|
|
1151
|
+
"type": "boolean",
|
|
1152
|
+
"title": "Joint proprietor, sole mortgagor"
|
|
1153
|
+
},
|
|
1154
|
+
"soleProprietorJointMortgagor": {
|
|
1155
|
+
"type": "boolean",
|
|
1156
|
+
"title": "Sole proprietor, joint mortgagor"
|
|
1157
|
+
},
|
|
1158
|
+
"deedOfPostponement": {
|
|
1159
|
+
"type": "boolean",
|
|
1160
|
+
"title": "Deed of postponement required"
|
|
1161
|
+
},
|
|
1162
|
+
"separateRepresentation": {
|
|
1163
|
+
"type": "boolean",
|
|
1164
|
+
"title": "Separate legal representation required",
|
|
1165
|
+
"nullable": true
|
|
1166
|
+
},
|
|
1167
|
+
"oldestBorrowerAge": {
|
|
1168
|
+
"type": "integer",
|
|
1169
|
+
"title": "Oldest borrower age",
|
|
1170
|
+
"minimum": 18,
|
|
1171
|
+
"maximum": 85
|
|
1172
|
+
},
|
|
1173
|
+
"mortgageTerm": {
|
|
1174
|
+
"type": "integer",
|
|
1175
|
+
"title": "Mortgage term",
|
|
1176
|
+
"minimum": 5,
|
|
1177
|
+
"maximum": 40
|
|
1178
|
+
},
|
|
1179
|
+
"adverseCredit": {
|
|
1180
|
+
"type": "string",
|
|
1181
|
+
"title": "Adverse credit",
|
|
1182
|
+
"enum": [
|
|
1183
|
+
"No",
|
|
1184
|
+
"Yes",
|
|
1185
|
+
"Prefer not to say"
|
|
1186
|
+
]
|
|
1187
|
+
},
|
|
1188
|
+
"employmentType": {
|
|
1189
|
+
"type": "string",
|
|
1190
|
+
"title": "Employment type",
|
|
1191
|
+
"enum": [
|
|
1192
|
+
"Employed",
|
|
1193
|
+
"Self-employed",
|
|
1194
|
+
"Retired",
|
|
1195
|
+
"Contractor",
|
|
1196
|
+
"Other"
|
|
1197
|
+
]
|
|
1198
|
+
},
|
|
1199
|
+
"existingMortgagedProperties": {
|
|
1200
|
+
"type": "integer",
|
|
1201
|
+
"title": "Existing mortgaged properties",
|
|
1202
|
+
"minimum": 0
|
|
1203
|
+
},
|
|
1204
|
+
"annualIncome": {
|
|
1205
|
+
"type": "number",
|
|
1206
|
+
"title": "Annual gross income",
|
|
1207
|
+
"minimum": 0
|
|
1208
|
+
},
|
|
1209
|
+
"residencyStatus": {
|
|
1210
|
+
"type": "string",
|
|
1211
|
+
"title": "Residency status",
|
|
1212
|
+
"enum": [
|
|
1213
|
+
"UK citizen",
|
|
1214
|
+
"Permanent resident",
|
|
1215
|
+
"Visa holder",
|
|
1216
|
+
"Non-resident"
|
|
1217
|
+
]
|
|
1218
|
+
},
|
|
1219
|
+
"nominatedLender": {
|
|
1220
|
+
"type": "string",
|
|
1221
|
+
"title": "Nominated lender",
|
|
1222
|
+
"description": "The nominated lender's name as entered or selected"
|
|
1223
|
+
},
|
|
1224
|
+
"nominatedLenderHandbookId": {
|
|
1225
|
+
"type": "string",
|
|
1226
|
+
"title": "Nominated lender (UK Finance Handbook id)",
|
|
1227
|
+
"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"
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
]
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
},
|
|
1237
|
+
"enquiries": {
|
|
1238
|
+
"title": "Property transaction enquiries between conveyancers",
|
|
1239
|
+
"type": "object",
|
|
1240
|
+
"propertyNames": {
|
|
1241
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1242
|
+
},
|
|
1243
|
+
"patternProperties": {
|
|
1244
|
+
".*": {
|
|
1245
|
+
"type": "object",
|
|
1246
|
+
"properties": {
|
|
1247
|
+
"subject": {
|
|
1248
|
+
"description": "The subject or topic of the enquiry",
|
|
1249
|
+
"type": "string"
|
|
1250
|
+
},
|
|
1251
|
+
"status": {
|
|
1252
|
+
"type": "string",
|
|
1253
|
+
"enum": [
|
|
1254
|
+
"pending",
|
|
1255
|
+
"open",
|
|
1256
|
+
"resolved",
|
|
1257
|
+
"resolvedWithCondition",
|
|
1258
|
+
"withdrawn"
|
|
1259
|
+
]
|
|
1260
|
+
},
|
|
1261
|
+
"messages": {
|
|
1262
|
+
"description": "Messages exchanged regarding this enquiry",
|
|
1263
|
+
"type": "object",
|
|
1264
|
+
"propertyNames": {
|
|
1265
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1266
|
+
},
|
|
1267
|
+
"patternProperties": {
|
|
1268
|
+
".*": {
|
|
1269
|
+
"type": "object",
|
|
1270
|
+
"properties": {
|
|
1271
|
+
"datetime": {
|
|
1272
|
+
"type": "string",
|
|
1273
|
+
"format": "date-time"
|
|
1274
|
+
},
|
|
1275
|
+
"originatorRole": {
|
|
1276
|
+
"type": "string",
|
|
1277
|
+
"enum": [
|
|
1278
|
+
"Seller",
|
|
1279
|
+
"Seller's Conveyancer",
|
|
1280
|
+
"Buyer",
|
|
1281
|
+
"Buyer's Conveyancer",
|
|
1282
|
+
"Estate Agent",
|
|
1283
|
+
"Buyer's Agent",
|
|
1284
|
+
"Surveyor",
|
|
1285
|
+
"Mortgage Broker",
|
|
1286
|
+
"Lender"
|
|
1287
|
+
]
|
|
1288
|
+
},
|
|
1289
|
+
"destinationRole": {
|
|
1290
|
+
"type": "string",
|
|
1291
|
+
"enum": [
|
|
1292
|
+
"Seller",
|
|
1293
|
+
"Seller's Conveyancer",
|
|
1294
|
+
"Buyer",
|
|
1295
|
+
"Buyer's Conveyancer",
|
|
1296
|
+
"Estate Agent",
|
|
1297
|
+
"Buyer's Agent",
|
|
1298
|
+
"Surveyor",
|
|
1299
|
+
"Mortgage Broker",
|
|
1300
|
+
"Lender"
|
|
1301
|
+
]
|
|
1302
|
+
},
|
|
1303
|
+
"messageText": {
|
|
1304
|
+
"type": "string"
|
|
1305
|
+
},
|
|
1306
|
+
"pdtfPath": {
|
|
1307
|
+
"description": "PDTF schema path indicating where response data should be stored, enabling structured data resolution alongside the enquiry message",
|
|
1308
|
+
"type": "string",
|
|
1309
|
+
"pattern": "^/"
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
"required": [
|
|
1313
|
+
"datetime",
|
|
1314
|
+
"originatorRole",
|
|
1315
|
+
"destinationRole",
|
|
1316
|
+
"messageText"
|
|
1317
|
+
]
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
},
|
|
1321
|
+
"externalIds": {
|
|
1322
|
+
"type": "object",
|
|
1323
|
+
"patternProperties": {
|
|
1324
|
+
".*": {
|
|
1325
|
+
"oneOf": [
|
|
1326
|
+
{
|
|
1327
|
+
"type": "string"
|
|
1328
|
+
},
|
|
1329
|
+
{
|
|
1330
|
+
"type": "number"
|
|
1331
|
+
},
|
|
1332
|
+
{
|
|
1333
|
+
"type": "boolean"
|
|
1334
|
+
},
|
|
1335
|
+
{
|
|
1336
|
+
"type": "object",
|
|
1337
|
+
"patternProperties": {
|
|
1338
|
+
".*": {}
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
]
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
},
|
|
1346
|
+
"required": [
|
|
1347
|
+
"subject",
|
|
1348
|
+
"status",
|
|
1349
|
+
"messages"
|
|
1350
|
+
],
|
|
1351
|
+
"discriminator": {
|
|
1352
|
+
"propertyName": "status"
|
|
1353
|
+
},
|
|
1354
|
+
"oneOf": [
|
|
1355
|
+
{
|
|
1356
|
+
"properties": {
|
|
1357
|
+
"status": {
|
|
1358
|
+
"const": "resolvedWithCondition"
|
|
1359
|
+
},
|
|
1360
|
+
"resolutionCondition": {
|
|
1361
|
+
"description": "Condition that must be met for the enquiry to be fully resolved",
|
|
1362
|
+
"type": "string"
|
|
1363
|
+
}
|
|
1364
|
+
},
|
|
1365
|
+
"required": [
|
|
1366
|
+
"resolutionCondition"
|
|
1367
|
+
]
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"properties": {
|
|
1371
|
+
"status": {
|
|
1372
|
+
"enum": [
|
|
1373
|
+
"pending",
|
|
1374
|
+
"open",
|
|
1375
|
+
"resolved",
|
|
1376
|
+
"withdrawn"
|
|
1377
|
+
]
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
]
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
},
|
|
1385
|
+
"id": {
|
|
1386
|
+
"title": "Transaction DID",
|
|
1387
|
+
"description": "Decentralised Identifier for the transaction",
|
|
1388
|
+
"type": "string",
|
|
1389
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1390
|
+
},
|
|
1391
|
+
"property": {
|
|
1392
|
+
"title": "Property Reference",
|
|
1393
|
+
"description": "URN referencing the Property entity associated with this transaction",
|
|
1394
|
+
"type": "string",
|
|
1395
|
+
"pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
|
|
1396
|
+
},
|
|
1397
|
+
"titlesToBeSold": {
|
|
1398
|
+
"title": "Titles to be Sold",
|
|
1399
|
+
"description": "Array of URNs referencing Title entities to be sold in this transaction",
|
|
1400
|
+
"type": "array",
|
|
1401
|
+
"minItems": 1,
|
|
1402
|
+
"items": {
|
|
1403
|
+
"title": "Title URN",
|
|
1404
|
+
"description": "URN reference to a Title entity",
|
|
1405
|
+
"type": "string",
|
|
1406
|
+
"pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
|
|
1407
|
+
}
|
|
1408
|
+
},
|
|
1409
|
+
"participants": {
|
|
1410
|
+
"title": "Participants",
|
|
1411
|
+
"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.",
|
|
1412
|
+
"type": "array",
|
|
1413
|
+
"items": {
|
|
1414
|
+
"type": "object",
|
|
1415
|
+
"title": "Transaction Participant",
|
|
1416
|
+
"properties": {
|
|
1417
|
+
"participant": {
|
|
1418
|
+
"title": "Participant DID",
|
|
1419
|
+
"description": "DID reference to the Person or Organisation entity",
|
|
1420
|
+
"type": "string",
|
|
1421
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1422
|
+
},
|
|
1423
|
+
"organisation": {
|
|
1424
|
+
"title": "Organisation",
|
|
1425
|
+
"type": "string"
|
|
1426
|
+
},
|
|
1427
|
+
"organisationReference": {
|
|
1428
|
+
"title": "Reference",
|
|
1429
|
+
"type": "string"
|
|
1430
|
+
},
|
|
1431
|
+
"did": {
|
|
1432
|
+
"title": "Participant DID",
|
|
1433
|
+
"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.",
|
|
1434
|
+
"type": "string",
|
|
1435
|
+
"pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
|
|
1436
|
+
},
|
|
1437
|
+
"participantId": {
|
|
1438
|
+
"title": "Participant id",
|
|
1439
|
+
"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.",
|
|
1440
|
+
"type": "string",
|
|
1441
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"required": [
|
|
1445
|
+
"participant"
|
|
1446
|
+
]
|
|
1447
|
+
}
|
|
1448
|
+
},
|
|
1449
|
+
"saleContext": {
|
|
1450
|
+
"title": "Sale Context",
|
|
1451
|
+
"description": "Residual ownership/sale facts that apply at the transaction level (e.g. outstanding mortgage, Help to Buy equity loan status).",
|
|
1452
|
+
"type": "object",
|
|
1453
|
+
"properties": {
|
|
1454
|
+
"numberOfSellers": {
|
|
1455
|
+
"title": "How many sellers are involved in the transaction?",
|
|
1456
|
+
"description": "This may differ from the number of legal owners, for example if the property is being sold by executors of a deceased owner",
|
|
1457
|
+
"type": "integer"
|
|
1458
|
+
},
|
|
1459
|
+
"numberOfNonUkResidentSellers": {
|
|
1460
|
+
"title": "How many sellers are involved in the transaction who are resident outside the UK?",
|
|
1461
|
+
"description": "This may differ from the number of legal owners, for example if the property is being sold by executors of a deceased owner",
|
|
1462
|
+
"type": "integer"
|
|
1463
|
+
},
|
|
1464
|
+
"outstandingMortgage": {
|
|
1465
|
+
"title": "Are there any outstanding mortgages on the property?",
|
|
1466
|
+
"type": "string",
|
|
1467
|
+
"enum": [
|
|
1468
|
+
"Yes",
|
|
1469
|
+
"No"
|
|
1470
|
+
]
|
|
1471
|
+
},
|
|
1472
|
+
"existingLender": {
|
|
1473
|
+
"title": "What is the name of the existing lender?",
|
|
1474
|
+
"type": "string"
|
|
1475
|
+
},
|
|
1476
|
+
"hasHelpToBuyEquityLoan": {
|
|
1477
|
+
"title": "Is the property being sold with a Help to Buy equity loan outstanding?",
|
|
1478
|
+
"type": "string",
|
|
1479
|
+
"enum": [
|
|
1480
|
+
"Yes",
|
|
1481
|
+
"No"
|
|
1482
|
+
]
|
|
1483
|
+
},
|
|
1484
|
+
"isFirstRegistration": {
|
|
1485
|
+
"title": "Is this the first time the property is to be registered with HMLR?",
|
|
1486
|
+
"type": "string",
|
|
1487
|
+
"enum": [
|
|
1488
|
+
"Yes",
|
|
1489
|
+
"No"
|
|
1490
|
+
]
|
|
1491
|
+
},
|
|
1492
|
+
"isLimitedCompanySale": {
|
|
1493
|
+
"title": "Is the property being sold by a Limited Company?",
|
|
1494
|
+
"type": "string",
|
|
1495
|
+
"enum": [
|
|
1496
|
+
"Yes",
|
|
1497
|
+
"No"
|
|
1498
|
+
]
|
|
1499
|
+
},
|
|
1500
|
+
"legalOwners": {
|
|
1501
|
+
"title": "Legal Owners",
|
|
1502
|
+
"type": "object",
|
|
1503
|
+
"properties": {
|
|
1504
|
+
"namesOfLegalOwners": {
|
|
1505
|
+
"title": "Names of all legal owners",
|
|
1506
|
+
"type": "array",
|
|
1507
|
+
"minItems": 1,
|
|
1508
|
+
"items": {
|
|
1509
|
+
"title": "Legal owner",
|
|
1510
|
+
"type": "object",
|
|
1511
|
+
"properties": {
|
|
1512
|
+
"ownerType": {
|
|
1513
|
+
"type": "string",
|
|
1514
|
+
"title": "Type of owner",
|
|
1515
|
+
"enum": [
|
|
1516
|
+
"Private individual",
|
|
1517
|
+
"Organisation"
|
|
1518
|
+
]
|
|
1519
|
+
}
|
|
1520
|
+
},
|
|
1521
|
+
"discriminator": {
|
|
1522
|
+
"propertyName": "ownerType"
|
|
1523
|
+
},
|
|
1524
|
+
"oneOf": [
|
|
1525
|
+
{
|
|
1526
|
+
"properties": {
|
|
1527
|
+
"ownerType": {
|
|
1528
|
+
"enum": [
|
|
1529
|
+
"Private individual"
|
|
1530
|
+
]
|
|
1531
|
+
},
|
|
1532
|
+
"firstName": {
|
|
1533
|
+
"title": "First name",
|
|
1534
|
+
"type": "string",
|
|
1535
|
+
"minLength": 1
|
|
1536
|
+
},
|
|
1537
|
+
"middleNames": {
|
|
1538
|
+
"title": "Middle names",
|
|
1539
|
+
"type": "string"
|
|
1540
|
+
},
|
|
1541
|
+
"lastName": {
|
|
1542
|
+
"title": "Last name",
|
|
1543
|
+
"type": "string",
|
|
1544
|
+
"minLength": 1
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
},
|
|
1548
|
+
{
|
|
1549
|
+
"properties": {
|
|
1550
|
+
"ownerType": {
|
|
1551
|
+
"enum": [
|
|
1552
|
+
"Organisation"
|
|
1553
|
+
]
|
|
1554
|
+
},
|
|
1555
|
+
"organisationName": {
|
|
1556
|
+
"title": "Organisation name",
|
|
1557
|
+
"type": "string",
|
|
1558
|
+
"minLength": 1
|
|
1559
|
+
}
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1562
|
+
]
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
}
|