@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.
@@ -233,6 +233,29 @@
233
233
  "title": "Reference",
234
234
  "type": "string"
235
235
  },
236
+ "did": {
237
+ "title": "Participant DID",
238
+ "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.",
239
+ "type": "string",
240
+ "pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
241
+ },
242
+ "participantId": {
243
+ "title": "Participant id",
244
+ "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.",
245
+ "type": "string",
246
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
247
+ },
248
+ "actingFor": {
249
+ "title": "Acting for",
250
+ "description": "The parties this participant is instructed by, for example the sellers a conveyancer acts for, identified by their did or - where no DID is minted - their participantId. One entry per represented party: a conveyancer instructed jointly by two sellers lists both, and sellers who instruct separate conveyancers appear as separate representatives each acting for one of them. A conveyancer is instructed by a person, not by an offer - the offer link is participants[].offerId.",
251
+ "type": "array",
252
+ "items": {
253
+ "title": "Represented party",
254
+ "description": "did, or participantId, of a party this participant is instructed by",
255
+ "type": "string",
256
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
257
+ }
258
+ },
236
259
  "role": {
237
260
  "title": "Role",
238
261
  "type": "string",
@@ -950,6 +973,12 @@
950
973
  "items": {
951
974
  "type": "object",
952
975
  "properties": {
976
+ "mediaId": {
977
+ "title": "Media id",
978
+ "description": "Stable identifier for this media item within the transaction. Array position is not a safe reference: media is added, removed and re-ordered independently by different parties.",
979
+ "type": "string",
980
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
981
+ },
953
982
  "mediaType": {
954
983
  "title": "Type of media",
955
984
  "type": "string",
@@ -25972,6 +26001,12 @@
25972
26001
  "signedOn"
25973
26002
  ],
25974
26003
  "properties": {
26004
+ "signatureId": {
26005
+ "title": "Signature id",
26006
+ "description": "Stable identifier for this signature within the transaction. Array position is not a safe reference: signatories sign independently and in any order.",
26007
+ "type": "string",
26008
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
26009
+ },
25975
26010
  "name": {
25976
26011
  "title": "Name of signatory",
25977
26012
  "type": "string",
@@ -38082,6 +38117,12 @@
38082
38117
  "items": {
38083
38118
  "type": "object",
38084
38119
  "properties": {
38120
+ "searchId": {
38121
+ "title": "Search id",
38122
+ "description": "Stable identifier for this search within the transaction. Array position is not a safe reference: searches are ordered and updated independently by different parties.",
38123
+ "type": "string",
38124
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
38125
+ },
38085
38126
  "displayName": {
38086
38127
  "title": "Human-readable name of instructed search product",
38087
38128
  "type": "string",
@@ -38172,6 +38213,12 @@
38172
38213
  "items": {
38173
38214
  "type": "object",
38174
38215
  "properties": {
38216
+ "documentId": {
38217
+ "title": "Document id",
38218
+ "description": "Stable identifier for this document within the transaction. Array position is not a safe reference: documents are added, removed and re-ordered independently by different parties.",
38219
+ "type": "string",
38220
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
38221
+ },
38175
38222
  "displayName": {
38176
38223
  "title": "Human-readable name of document",
38177
38224
  "type": "string",
@@ -38233,6 +38280,12 @@
38233
38280
  "items": {
38234
38281
  "type": "object",
38235
38282
  "properties": {
38283
+ "surveyId": {
38284
+ "title": "Survey id",
38285
+ "description": "Stable identifier for this survey within the transaction. Array position is not a safe reference: a property may be surveyed more than once, by different parties.",
38286
+ "type": "string",
38287
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
38288
+ },
38236
38289
  "outside": {
38237
38290
  "type": "object",
38238
38291
  "properties": {
@@ -40973,6 +41026,12 @@
40973
41026
  "items": {
40974
41027
  "type": "object",
40975
41028
  "properties": {
41029
+ "contractId": {
41030
+ "title": "Contract id",
41031
+ "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.",
41032
+ "type": "string",
41033
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
41034
+ },
40976
41035
  "contract": {
40977
41036
  "type": "object",
40978
41037
  "required": [
@@ -41065,6 +41124,12 @@
41065
41124
  "contractHash"
41066
41125
  ],
41067
41126
  "properties": {
41127
+ "signatureId": {
41128
+ "title": "Signature id",
41129
+ "description": "Stable identifier for this signature within the contract. Array position is not a safe reference: signatories sign independently and in any order.",
41130
+ "type": "string",
41131
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$"
41132
+ },
41068
41133
  "name": {
41069
41134
  "type": "string"
41070
41135
  },
@@ -40,6 +40,11 @@
40
40
  },
41
41
  "organisation": "string",
42
42
  "organisationReference": "string",
43
+ "did": "string",
44
+ "participantId": "string",
45
+ "actingFor": [
46
+ "string"
47
+ ],
43
48
  "role": "variant",
44
49
  "externalIds": {
45
50
  "*": {
@@ -164,6 +169,7 @@
164
169
  "marketingTenure": "string",
165
170
  "media": [
166
171
  {
172
+ "mediaId": "string",
167
173
  "mediaType": "string",
168
174
  "mediaUrl": "string",
169
175
  "caption": "string"
@@ -3460,6 +3466,7 @@
3460
3466
  "authorisationToShare": "boolean",
3461
3467
  "sellerSignatures": [
3462
3468
  {
3469
+ "signatureId": "string",
3463
3470
  "name": "string",
3464
3471
  "signedOn": "string",
3465
3472
  "externalIds": {
@@ -4763,6 +4770,7 @@
4763
4770
  ],
4764
4771
  "searches": [
4765
4772
  {
4773
+ "searchId": "string",
4766
4774
  "displayName": "string",
4767
4775
  "productCode": "string",
4768
4776
  "providerName": "string",
@@ -4778,6 +4786,7 @@
4778
4786
  ],
4779
4787
  "documents": [
4780
4788
  {
4789
+ "documentId": "string",
4781
4790
  "displayName": "string",
4782
4791
  "fileName": "string",
4783
4792
  "mimeType": "string",
@@ -4793,6 +4802,7 @@
4793
4802
  ],
4794
4803
  "surveys": [
4795
4804
  {
4805
+ "surveyId": "string",
4796
4806
  "outside": {
4797
4807
  "chimneyStacks": {
4798
4808
  "condition": "string",
@@ -5642,6 +5652,7 @@
5642
5652
  },
5643
5653
  "contracts": [
5644
5654
  {
5655
+ "contractId": "string",
5645
5656
  "contract": {
5646
5657
  "template": {
5647
5658
  "name": "string",
@@ -5662,6 +5673,7 @@
5662
5673
  },
5663
5674
  "signatures": [
5664
5675
  {
5676
+ "signatureId": "string",
5665
5677
  "name": "string",
5666
5678
  "signedOn": "string",
5667
5679
  "externalIds": {
@@ -0,0 +1,88 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://trust.propdata.org.uk/schemas/v4/entities/gift.json",
4
+ "type": "object",
5
+ "title": "Gift Entity",
6
+ "description": "A gift of funds towards a purchase, made by a gift donor. Implies the Gift Donor role.",
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
+ "id": {
16
+ "title": "Gift URN",
17
+ "description": "Uniform Resource Name identifier for the gift",
18
+ "type": "string",
19
+ "pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
20
+ },
21
+ "donor": {
22
+ "title": "Donor Reference",
23
+ "description": "DID referencing the Person or Organisation making the gift",
24
+ "type": "string",
25
+ "pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
26
+ },
27
+ "offerId": {
28
+ "title": "Offer id",
29
+ "type": "string",
30
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$",
31
+ "description": "The offer this gift is contributing towards, as keyed in Transaction.offers. Held here rather than on Offer so that an Offer credential always implies the Buyer role."
32
+ },
33
+ "giftDetails": {
34
+ "title": "Details of the gift being made towards the purchase",
35
+ "description": "The terms on which a gift donor is contributing funds. These are the questions a conveyancer must resolve before reporting to a lender: whether the money is truly a gift rather than a loan, and whether the donor acquires any interest in or occupation of the property.",
36
+ "type": "object",
37
+ "properties": {
38
+ "amount": {
39
+ "title": "Amount being gifted",
40
+ "type": "number",
41
+ "minimum": 0
42
+ },
43
+ "currency": {
44
+ "title": "Currency of the gift",
45
+ "type": "string",
46
+ "default": "GBP"
47
+ },
48
+ "relationshipToBuyer": {
49
+ "title": "Donor's relationship to the buyer",
50
+ "type": "string"
51
+ },
52
+ "fundsTransferred": {
53
+ "title": "Whether the gift has been paid to the buyer yet",
54
+ "type": "string",
55
+ "enum": [
56
+ "None",
57
+ "Part",
58
+ "All"
59
+ ]
60
+ },
61
+ "repayable": {
62
+ "title": "Whether the buyer must repay the money",
63
+ "description": "If true the funds are a loan rather than a gift, which most lenders treat differently.",
64
+ "type": "boolean"
65
+ },
66
+ "confersBeneficialInterest": {
67
+ "title": "Whether the donor acquires an interest in the property",
68
+ "type": "boolean"
69
+ },
70
+ "willOccupyProperty": {
71
+ "title": "Whether the donor will live in the property after completion",
72
+ "description": "An adult occupier who is not a legal owner may be required to sign a deed of consent or waiver of rights.",
73
+ "type": "boolean"
74
+ }
75
+ }
76
+ },
77
+ "transaction": {
78
+ "title": "Transaction Reference",
79
+ "description": "DID referencing the Transaction entity",
80
+ "type": "string",
81
+ "pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
82
+ }
83
+ },
84
+ "required": [
85
+ "donor",
86
+ "transaction"
87
+ ]
88
+ }
@@ -0,0 +1,384 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://trust.propdata.org.uk/schemas/v4/entities/offer.json",
4
+ "type": "object",
5
+ "title": "Offer Entity",
6
+ "description": "An offer made by a prospective buyer in a property transaction.",
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
+ "id": {
16
+ "title": "Offer URN",
17
+ "description": "Uniform Resource Name identifier for the offer",
18
+ "type": "string",
19
+ "pattern": "^urn:[a-z0-9][a-z0-9-]{0,31}:[a-zA-Z0-9._~:/?#\\[\\]@!$&'()*+,;=-]+$"
20
+ },
21
+ "offerId": {
22
+ "title": "Offer id",
23
+ "type": "string",
24
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]*$",
25
+ "description": "The V3 offers object key for this offer, as referenced by participants[].offerId"
26
+ },
27
+ "buyer": {
28
+ "title": "Buyer Reference",
29
+ "description": "DID referencing the Person or Organisation making the offer",
30
+ "type": "string",
31
+ "pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
32
+ },
33
+ "transaction": {
34
+ "title": "Transaction Reference",
35
+ "description": "DID referencing the Transaction entity",
36
+ "type": "string",
37
+ "pattern": "^did:[a-z0-9]+:(?:(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})*:)*(?:[a-zA-Z0-9._-]|%[0-9A-Fa-f]{2})+$"
38
+ },
39
+ "amount": {
40
+ "type": "number",
41
+ "minimum": 0
42
+ },
43
+ "currency": {
44
+ "type": "string",
45
+ "pattern": "^[A-Z]{3}$"
46
+ },
47
+ "status": {
48
+ "type": "string",
49
+ "enum": [
50
+ "Pending",
51
+ "Withdrawn",
52
+ "Rejected",
53
+ "Accepted",
54
+ "Note of Interest"
55
+ ]
56
+ },
57
+ "inclusions": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "exclusions": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "string"
67
+ }
68
+ },
69
+ "conditions": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "string"
73
+ }
74
+ },
75
+ "metadata": {
76
+ "title": "Offer metadata",
77
+ "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).",
78
+ "type": "object",
79
+ "patternProperties": {
80
+ ".*": {
81
+ "oneOf": [
82
+ {
83
+ "type": "string"
84
+ },
85
+ {
86
+ "type": "number"
87
+ },
88
+ {
89
+ "type": "boolean"
90
+ },
91
+ {
92
+ "type": "object",
93
+ "patternProperties": {
94
+ ".*": {
95
+ "oneOf": [
96
+ {
97
+ "type": "string"
98
+ },
99
+ {
100
+ "type": "number"
101
+ },
102
+ {
103
+ "type": "boolean"
104
+ },
105
+ {
106
+ "type": "array"
107
+ },
108
+ {
109
+ "type": "null"
110
+ },
111
+ {
112
+ "type": "object",
113
+ "patternProperties": {
114
+ ".*": {}
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ }
121
+ ]
122
+ }
123
+ }
124
+ },
125
+ "buyerCircumstances": {
126
+ "title": "Buyer circumstances",
127
+ "description": "Information about the buyer's circumstances for lender compatibility analysis and conveyancing quotes",
128
+ "type": "object",
129
+ "properties": {
130
+ "intendedUse": {
131
+ "type": "string",
132
+ "title": "Intended use of property",
133
+ "enum": [
134
+ "Owner occupied",
135
+ "Buy-to-let",
136
+ "Holiday let",
137
+ "Second home"
138
+ ]
139
+ },
140
+ "firstTimeBuyer": {
141
+ "type": "boolean",
142
+ "title": "First-time buyer"
143
+ },
144
+ "rightToBuy": {
145
+ "type": "boolean",
146
+ "title": "Right to Buy purchase"
147
+ },
148
+ "ltdCompanyPurchase": {
149
+ "type": "boolean",
150
+ "title": "Limited company purchase"
151
+ },
152
+ "numberOfOwners": {
153
+ "type": "integer",
154
+ "title": "Number of owners",
155
+ "nullable": true
156
+ },
157
+ "numberOfExpats": {
158
+ "type": "integer",
159
+ "title": "Number of expat buyers",
160
+ "nullable": true
161
+ },
162
+ "giftedEquity": {
163
+ "type": "boolean",
164
+ "title": "Gifted equity"
165
+ },
166
+ "numberOfGiftedDeposits": {
167
+ "type": "integer",
168
+ "title": "Number of gifted deposits",
169
+ "nullable": true
170
+ },
171
+ "requiresMortgage": {
172
+ "type": "string",
173
+ "title": "Requires mortgage",
174
+ "enum": [
175
+ "Yes",
176
+ "No"
177
+ ]
178
+ },
179
+ "isAdditionalProperty": {
180
+ "type": "boolean",
181
+ "title": "Additional property purchase",
182
+ "description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
183
+ },
184
+ "hasPets": {
185
+ "type": "boolean",
186
+ "title": "Buyer has pets",
187
+ "description": "Relevant to lease and covenant pet restriction assessment"
188
+ },
189
+ "intendsSublet": {
190
+ "type": "boolean",
191
+ "title": "Buyer intends to sublet",
192
+ "description": "Relevant to lease and covenant subletting restriction assessment"
193
+ },
194
+ "subletType": {
195
+ "type": "string",
196
+ "title": "Type of subletting intended",
197
+ "enum": [
198
+ "AST",
199
+ "Lodger",
200
+ "Airbnb",
201
+ "HMO",
202
+ "Company let",
203
+ "Other"
204
+ ]
205
+ },
206
+ "intendsBusiness": {
207
+ "type": "boolean",
208
+ "title": "Buyer intends business use",
209
+ "description": "Relevant to covenant and lease business-use restriction assessment"
210
+ },
211
+ "businessType": {
212
+ "type": "string",
213
+ "title": "Type of business intended"
214
+ },
215
+ "intendsAlterations": {
216
+ "type": "boolean",
217
+ "title": "Buyer intends significant alterations",
218
+ "description": "Relevant to covenant, planning and building regulations assessment"
219
+ },
220
+ "financingMethod": {
221
+ "type": "string",
222
+ "title": "Primary financing method",
223
+ "description": "How the purchase is funded, distinct from intendedUse (how the property will be used)",
224
+ "enum": [
225
+ "Mortgage",
226
+ "Cash",
227
+ "Shared ownership",
228
+ "Help to Buy",
229
+ "Right to Buy"
230
+ ]
231
+ }
232
+ },
233
+ "discriminator": {
234
+ "propertyName": "requiresMortgage"
235
+ },
236
+ "required": [
237
+ "requiresMortgage"
238
+ ],
239
+ "oneOf": [
240
+ {
241
+ "properties": {
242
+ "requiresMortgage": {
243
+ "enum": [
244
+ "No"
245
+ ]
246
+ }
247
+ }
248
+ },
249
+ {
250
+ "properties": {
251
+ "requiresMortgage": {
252
+ "enum": [
253
+ "Yes"
254
+ ]
255
+ },
256
+ "helpToBuyEquityLoan": {
257
+ "type": "boolean",
258
+ "title": "Help to Buy equity loan"
259
+ },
260
+ "armedForcesHelpToBuy": {
261
+ "type": "boolean",
262
+ "title": "Armed Forces Help to Buy"
263
+ },
264
+ "numberOfHelpToBuyIsas": {
265
+ "type": "integer",
266
+ "title": "Number of Help to Buy ISAs",
267
+ "nullable": true
268
+ },
269
+ "bridgingFinanceRepresentation": {
270
+ "type": "string",
271
+ "title": "Bridging finance representation",
272
+ "enum": [
273
+ "Dual",
274
+ "Separate"
275
+ ],
276
+ "nullable": true
277
+ },
278
+ "depositAmount": {
279
+ "type": "number",
280
+ "title": "Deposit amount",
281
+ "minimum": 0
282
+ },
283
+ "loanToValue": {
284
+ "type": "number",
285
+ "title": "Loan-to-Value (LTV)",
286
+ "minimum": 0,
287
+ "maximum": 100
288
+ },
289
+ "numberOfBorrowers": {
290
+ "type": "integer",
291
+ "title": "Number of borrowers",
292
+ "minimum": 1,
293
+ "maximum": 4,
294
+ "default": 1
295
+ },
296
+ "jointProprietorSoleMortgagor": {
297
+ "type": "boolean",
298
+ "title": "Joint proprietor, sole mortgagor"
299
+ },
300
+ "soleProprietorJointMortgagor": {
301
+ "type": "boolean",
302
+ "title": "Sole proprietor, joint mortgagor"
303
+ },
304
+ "deedOfPostponement": {
305
+ "type": "boolean",
306
+ "title": "Deed of postponement required"
307
+ },
308
+ "separateRepresentation": {
309
+ "type": "boolean",
310
+ "title": "Separate legal representation required",
311
+ "nullable": true
312
+ },
313
+ "oldestBorrowerAge": {
314
+ "type": "integer",
315
+ "title": "Oldest borrower age",
316
+ "minimum": 18,
317
+ "maximum": 85
318
+ },
319
+ "mortgageTerm": {
320
+ "type": "integer",
321
+ "title": "Mortgage term",
322
+ "minimum": 5,
323
+ "maximum": 40
324
+ },
325
+ "adverseCredit": {
326
+ "type": "string",
327
+ "title": "Adverse credit",
328
+ "enum": [
329
+ "No",
330
+ "Yes",
331
+ "Prefer not to say"
332
+ ]
333
+ },
334
+ "employmentType": {
335
+ "type": "string",
336
+ "title": "Employment type",
337
+ "enum": [
338
+ "Employed",
339
+ "Self-employed",
340
+ "Retired",
341
+ "Contractor",
342
+ "Other"
343
+ ]
344
+ },
345
+ "existingMortgagedProperties": {
346
+ "type": "integer",
347
+ "title": "Existing mortgaged properties",
348
+ "minimum": 0
349
+ },
350
+ "annualIncome": {
351
+ "type": "number",
352
+ "title": "Annual gross income",
353
+ "minimum": 0
354
+ },
355
+ "residencyStatus": {
356
+ "type": "string",
357
+ "title": "Residency status",
358
+ "enum": [
359
+ "UK citizen",
360
+ "Permanent resident",
361
+ "Visa holder",
362
+ "Non-resident"
363
+ ]
364
+ },
365
+ "nominatedLender": {
366
+ "type": "string",
367
+ "title": "Nominated lender",
368
+ "description": "The nominated lender's name as entered or selected"
369
+ },
370
+ "nominatedLenderHandbookId": {
371
+ "type": "string",
372
+ "title": "Nominated lender (UK Finance Handbook id)",
373
+ "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"
374
+ }
375
+ }
376
+ }
377
+ ]
378
+ }
379
+ },
380
+ "required": [
381
+ "buyer",
382
+ "transaction"
383
+ ]
384
+ }