@pdtf/schemas 3.6.0-dev.24 → 3.6.0-dev.26

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdtf/schemas",
3
- "version": "3.6.0-dev.24",
3
+ "version": "3.6.0-dev.26",
4
4
  "description": "Property Data Trust Framework Schemas and Utilities",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -277,7 +277,7 @@
277
277
  "Prospective Buyer",
278
278
  "Buyer",
279
279
  "Buyer's Conveyancer",
280
- "Gift Donor",
280
+ "Giftor",
281
281
  "Estate Agent",
282
282
  "Buyer's Agent",
283
283
  "Surveyor",
@@ -663,7 +663,7 @@
663
663
  {
664
664
  "properties": {
665
665
  "role": {
666
- "enum": ["Gift Donor"]
666
+ "enum": ["Giftor"]
667
667
  },
668
668
  "offerId": {
669
669
  "title": "Reference to an offer in the offers object",
@@ -672,7 +672,7 @@
672
672
  },
673
673
  "giftDetails": {
674
674
  "title": "Details of the gift being made towards the purchase",
675
- "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.",
675
+ "description": "The terms on which a giftor 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.",
676
676
  "type": "object",
677
677
  "properties": {
678
678
  "amount": {
@@ -49272,101 +49272,102 @@
49272
49272
  }
49273
49273
  }
49274
49274
  }
49275
- }
49276
- },
49277
- "buyersSale": {
49278
- "type": "array",
49279
- "minItems": 1,
49280
- "items": {
49281
- "type": "object",
49282
- "title": "The property(ies) the buyer/buyers are selling to finance the purchase",
49283
- "properties": {
49284
- "transactionId": {
49285
- "title": "UUID for an onward transaction",
49286
- "type": "string"
49287
- },
49288
- "externalIds": {
49289
- "type": "object",
49290
- "patternProperties": {
49291
- ".*": {
49292
- "oneOf": [
49293
- {
49294
- "type": "string"
49295
- },
49296
- {
49297
- "type": "number"
49298
- },
49299
- {
49300
- "type": "boolean"
49301
- },
49302
- {
49303
- "type": "object",
49304
- "patternProperties": {
49305
- ".*": {}
49275
+ },
49276
+ "buyersSale": {
49277
+ "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.",
49278
+ "type": "array",
49279
+ "minItems": 1,
49280
+ "items": {
49281
+ "type": "object",
49282
+ "title": "The property(ies) the buyer/buyers are selling to finance the purchase",
49283
+ "properties": {
49284
+ "transactionId": {
49285
+ "title": "UUID for the buyer's sale transaction",
49286
+ "type": "string"
49287
+ },
49288
+ "externalIds": {
49289
+ "type": "object",
49290
+ "patternProperties": {
49291
+ ".*": {
49292
+ "oneOf": [
49293
+ {
49294
+ "type": "string"
49295
+ },
49296
+ {
49297
+ "type": "number"
49298
+ },
49299
+ {
49300
+ "type": "boolean"
49301
+ },
49302
+ {
49303
+ "type": "object",
49304
+ "patternProperties": {
49305
+ ".*": {}
49306
+ }
49306
49307
  }
49307
- }
49308
- ]
49308
+ ]
49309
+ }
49309
49310
  }
49310
- }
49311
- },
49312
- "address": {
49313
- "title": "Address",
49314
- "type": "object",
49315
- "properties": {
49316
- "buildingNumber": {
49317
- "title": "Building number",
49318
- "type": "string",
49319
- "minLength": 1
49320
- },
49321
- "buildingName": {
49322
- "title": "Building name",
49323
- "type": "string"
49324
- },
49325
- "subBuilding": {
49326
- "title": "Sub building name",
49327
- "type": "string"
49328
- },
49329
- "street": {
49330
- "title": "Street",
49331
- "type": "string",
49332
- "minLength": 1
49333
- },
49334
- "line1": {
49335
- "title": "Address 1",
49336
- "type": "string",
49337
- "minLength": 1
49338
- },
49339
- "line2": {
49340
- "title": "Address 2",
49341
- "type": "string"
49342
- },
49343
- "line 3": {
49344
- "title": "Address 3",
49345
- "type": "string"
49346
- },
49347
- "town": {
49348
- "title": "Town",
49349
- "type": "string"
49350
- },
49351
- "postcode": {
49352
- "title": "Postcode",
49353
- "type": "string",
49354
- "minLength": 1
49355
- },
49356
- "homeNation": {
49357
- "title": "Home nation",
49358
- "type": "string",
49359
- "enum": ["England", "Wales", "Scotland", "Northern Ireland"]
49311
+ },
49312
+ "address": {
49313
+ "title": "Address",
49314
+ "type": "object",
49315
+ "properties": {
49316
+ "buildingNumber": {
49317
+ "title": "Building number",
49318
+ "type": "string",
49319
+ "minLength": 1
49320
+ },
49321
+ "buildingName": {
49322
+ "title": "Building name",
49323
+ "type": "string"
49324
+ },
49325
+ "subBuilding": {
49326
+ "title": "Sub building name",
49327
+ "type": "string"
49328
+ },
49329
+ "street": {
49330
+ "title": "Street",
49331
+ "type": "string",
49332
+ "minLength": 1
49333
+ },
49334
+ "line1": {
49335
+ "title": "Address 1",
49336
+ "type": "string",
49337
+ "minLength": 1
49338
+ },
49339
+ "line2": {
49340
+ "title": "Address 2",
49341
+ "type": "string"
49342
+ },
49343
+ "line 3": {
49344
+ "title": "Address 3",
49345
+ "type": "string"
49346
+ },
49347
+ "town": {
49348
+ "title": "Town",
49349
+ "type": "string"
49350
+ },
49351
+ "postcode": {
49352
+ "title": "Postcode",
49353
+ "type": "string",
49354
+ "minLength": 1
49355
+ },
49356
+ "homeNation": {
49357
+ "title": "Home nation",
49358
+ "type": "string",
49359
+ "enum": ["England", "Wales", "Scotland", "Northern Ireland"]
49360
+ }
49360
49361
  }
49362
+ },
49363
+ "uprn": {
49364
+ "title": "Unique Property Reference Number",
49365
+ "type": "integer"
49366
+ },
49367
+ "sellingAgent": {
49368
+ "title": "Estate Agent selling the property",
49369
+ "type": "string"
49361
49370
  }
49362
- },
49363
- "uprn": {
49364
- "title": "Unique Property Reference Number",
49365
- "type": "integer"
49366
- },
49367
- "sellingAgent": {
49368
- "title": "Estate Agent selling the property",
49369
- "type": "string"
49370
49371
  }
49371
49372
  }
49372
49373
  }
@@ -49667,6 +49668,11 @@
49667
49668
  "title": "Additional property purchase",
49668
49669
  "description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
49669
49670
  },
49671
+ "dependentOnSale": {
49672
+ "type": "boolean",
49673
+ "title": "Buyer needs to sell a property to proceed",
49674
+ "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."
49675
+ },
49670
49676
  "hasPets": {
49671
49677
  "type": "boolean",
49672
49678
  "title": "Buyer has pets",
@@ -4474,6 +4474,23 @@
4474
4474
  uprn
4475
4475
  sellingAgent
4476
4476
  ]
4477
+ buyersSale[
4478
+ transactionId
4479
+ externalIds{*}
4480
+ address
4481
+ buildingNumber
4482
+ buildingName
4483
+ subBuilding
4484
+ street
4485
+ line1
4486
+ line2
4487
+ line 3
4488
+ town
4489
+ postcode
4490
+ homeNation
4491
+ uprn
4492
+ sellingAgent
4493
+ ]
4477
4494
  milestones
4478
4495
  listed
4479
4496
  expected
@@ -4517,6 +4534,7 @@
4517
4534
  numberOfGiftedDeposits
4518
4535
  requiresMortgage
4519
4536
  isAdditionalProperty
4537
+ dependentOnSale
4520
4538
  hasPets
4521
4539
  petDetails
4522
4540
  occupiedByFamilyMember
@@ -132,7 +132,7 @@
132
132
  "properties": {
133
133
  "role": {
134
134
  "enum": [
135
- "Gift Donor"
135
+ "Giftor"
136
136
  ]
137
137
  }
138
138
  }
@@ -132,7 +132,7 @@
132
132
  "properties": {
133
133
  "role": {
134
134
  "enum": [
135
- "Gift Donor"
135
+ "Giftor"
136
136
  ]
137
137
  }
138
138
  }
@@ -91,7 +91,7 @@
91
91
  "properties": {
92
92
  "role": {
93
93
  "enum": [
94
- "Gift Donor"
94
+ "Giftor"
95
95
  ]
96
96
  }
97
97
  }
@@ -135,7 +135,7 @@
135
135
  "properties": {
136
136
  "role": {
137
137
  "enum": [
138
- "Gift Donor"
138
+ "Giftor"
139
139
  ]
140
140
  }
141
141
  }
@@ -135,7 +135,7 @@
135
135
  "properties": {
136
136
  "role": {
137
137
  "enum": [
138
- "Gift Donor"
138
+ "Giftor"
139
139
  ]
140
140
  }
141
141
  }
@@ -265,7 +265,7 @@
265
265
  "Prospective Buyer",
266
266
  "Buyer",
267
267
  "Buyer's Conveyancer",
268
- "Gift Donor",
268
+ "Giftor",
269
269
  "Estate Agent",
270
270
  "Buyer's Agent",
271
271
  "Surveyor",
@@ -614,7 +614,7 @@
614
614
  "properties": {
615
615
  "role": {
616
616
  "enum": [
617
- "Gift Donor"
617
+ "Giftor"
618
618
  ]
619
619
  },
620
620
  "offerId": {
@@ -624,7 +624,7 @@
624
624
  },
625
625
  "giftDetails": {
626
626
  "title": "Details of the gift being made towards the purchase",
627
- "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.",
627
+ "description": "The terms on which a giftor 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.",
628
628
  "type": "object",
629
629
  "properties": {
630
630
  "amount": {
@@ -41294,106 +41294,107 @@
41294
41294
  }
41295
41295
  }
41296
41296
  }
41297
- }
41298
- },
41299
- "buyersSale": {
41300
- "type": "array",
41301
- "minItems": 1,
41302
- "items": {
41303
- "type": "object",
41304
- "title": "The property(ies) the buyer/buyers are selling to finance the purchase",
41305
- "properties": {
41306
- "transactionId": {
41307
- "title": "UUID for an onward transaction",
41308
- "type": "string"
41309
- },
41310
- "externalIds": {
41311
- "type": "object",
41312
- "patternProperties": {
41313
- ".*": {
41314
- "oneOf": [
41315
- {
41316
- "type": "string"
41317
- },
41318
- {
41319
- "type": "number"
41320
- },
41321
- {
41322
- "type": "boolean"
41323
- },
41324
- {
41325
- "type": "object",
41326
- "patternProperties": {
41327
- ".*": {}
41297
+ },
41298
+ "buyersSale": {
41299
+ "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.",
41300
+ "type": "array",
41301
+ "minItems": 1,
41302
+ "items": {
41303
+ "type": "object",
41304
+ "title": "The property(ies) the buyer/buyers are selling to finance the purchase",
41305
+ "properties": {
41306
+ "transactionId": {
41307
+ "title": "UUID for the buyer's sale transaction",
41308
+ "type": "string"
41309
+ },
41310
+ "externalIds": {
41311
+ "type": "object",
41312
+ "patternProperties": {
41313
+ ".*": {
41314
+ "oneOf": [
41315
+ {
41316
+ "type": "string"
41317
+ },
41318
+ {
41319
+ "type": "number"
41320
+ },
41321
+ {
41322
+ "type": "boolean"
41323
+ },
41324
+ {
41325
+ "type": "object",
41326
+ "patternProperties": {
41327
+ ".*": {}
41328
+ }
41328
41329
  }
41329
- }
41330
- ]
41330
+ ]
41331
+ }
41331
41332
  }
41332
- }
41333
- },
41334
- "address": {
41335
- "title": "Address",
41336
- "type": "object",
41337
- "properties": {
41338
- "buildingNumber": {
41339
- "title": "Building number",
41340
- "type": "string",
41341
- "minLength": 1
41342
- },
41343
- "buildingName": {
41344
- "title": "Building name",
41345
- "type": "string"
41346
- },
41347
- "subBuilding": {
41348
- "title": "Sub building name",
41349
- "type": "string"
41350
- },
41351
- "street": {
41352
- "title": "Street",
41353
- "type": "string",
41354
- "minLength": 1
41355
- },
41356
- "line1": {
41357
- "title": "Address 1",
41358
- "type": "string",
41359
- "minLength": 1
41360
- },
41361
- "line2": {
41362
- "title": "Address 2",
41363
- "type": "string"
41364
- },
41365
- "line 3": {
41366
- "title": "Address 3",
41367
- "type": "string"
41368
- },
41369
- "town": {
41370
- "title": "Town",
41371
- "type": "string"
41372
- },
41373
- "postcode": {
41374
- "title": "Postcode",
41375
- "type": "string",
41376
- "minLength": 1
41377
- },
41378
- "homeNation": {
41379
- "title": "Home nation",
41380
- "type": "string",
41381
- "enum": [
41382
- "England",
41383
- "Wales",
41384
- "Scotland",
41385
- "Northern Ireland"
41386
- ]
41333
+ },
41334
+ "address": {
41335
+ "title": "Address",
41336
+ "type": "object",
41337
+ "properties": {
41338
+ "buildingNumber": {
41339
+ "title": "Building number",
41340
+ "type": "string",
41341
+ "minLength": 1
41342
+ },
41343
+ "buildingName": {
41344
+ "title": "Building name",
41345
+ "type": "string"
41346
+ },
41347
+ "subBuilding": {
41348
+ "title": "Sub building name",
41349
+ "type": "string"
41350
+ },
41351
+ "street": {
41352
+ "title": "Street",
41353
+ "type": "string",
41354
+ "minLength": 1
41355
+ },
41356
+ "line1": {
41357
+ "title": "Address 1",
41358
+ "type": "string",
41359
+ "minLength": 1
41360
+ },
41361
+ "line2": {
41362
+ "title": "Address 2",
41363
+ "type": "string"
41364
+ },
41365
+ "line 3": {
41366
+ "title": "Address 3",
41367
+ "type": "string"
41368
+ },
41369
+ "town": {
41370
+ "title": "Town",
41371
+ "type": "string"
41372
+ },
41373
+ "postcode": {
41374
+ "title": "Postcode",
41375
+ "type": "string",
41376
+ "minLength": 1
41377
+ },
41378
+ "homeNation": {
41379
+ "title": "Home nation",
41380
+ "type": "string",
41381
+ "enum": [
41382
+ "England",
41383
+ "Wales",
41384
+ "Scotland",
41385
+ "Northern Ireland"
41386
+ ]
41387
+ }
41387
41388
  }
41389
+ },
41390
+ "uprn": {
41391
+ "title": "Unique Property Reference Number",
41392
+ "type": "integer"
41393
+ },
41394
+ "sellingAgent": {
41395
+ "title": "Estate Agent selling the property",
41396
+ "type": "string"
41388
41397
  }
41389
- },
41390
- "uprn": {
41391
- "title": "Unique Property Reference Number",
41392
- "type": "integer"
41393
- },
41394
- "sellingAgent": {
41395
- "title": "Estate Agent selling the property",
41396
- "type": "string"
41397
41398
  }
41398
41399
  }
41399
41400
  }
@@ -41697,6 +41698,11 @@
41697
41698
  "title": "Additional property purchase",
41698
41699
  "description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
41699
41700
  },
41701
+ "dependentOnSale": {
41702
+ "type": "boolean",
41703
+ "title": "Buyer needs to sell a property to proceed",
41704
+ "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."
41705
+ },
41700
41706
  "hasPets": {
41701
41707
  "type": "boolean",
41702
41708
  "title": "Buyer has pets",
@@ -5709,6 +5709,30 @@
5709
5709
  "uprn": "integer",
5710
5710
  "sellingAgent": "string"
5711
5711
  }
5712
+ ],
5713
+ "buyersSale": [
5714
+ {
5715
+ "transactionId": "string",
5716
+ "externalIds": {
5717
+ "*": {
5718
+ "*": {}
5719
+ }
5720
+ },
5721
+ "address": {
5722
+ "buildingNumber": "string",
5723
+ "buildingName": "string",
5724
+ "subBuilding": "string",
5725
+ "street": "string",
5726
+ "line1": "string",
5727
+ "line2": "string",
5728
+ "line 3": "string",
5729
+ "town": "string",
5730
+ "postcode": "string",
5731
+ "homeNation": "string"
5732
+ },
5733
+ "uprn": "integer",
5734
+ "sellingAgent": "string"
5735
+ }
5712
5736
  ]
5713
5737
  },
5714
5738
  "milestones": {
@@ -5779,6 +5803,7 @@
5779
5803
  "numberOfGiftedDeposits": "integer",
5780
5804
  "requiresMortgage": "variant",
5781
5805
  "isAdditionalProperty": "boolean",
5806
+ "dependentOnSale": "boolean",
5782
5807
  "hasPets": "boolean",
5783
5808
  "petDetails": "string",
5784
5809
  "occupiedByFamilyMember": "boolean",
@@ -3,13 +3,13 @@
3
3
  "$id": "https://trust.propdata.org.uk/schemas/v4/entities/gift.json",
4
4
  "type": "object",
5
5
  "title": "Gift Entity",
6
- "description": "A gift of funds towards a purchase, made by a gift donor. Implies the Gift Donor role.",
6
+ "description": "A gift of funds towards a purchase, made by a giftor. Implies the Giftor role.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "giftDetails": {
34
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.",
35
+ "description": "The terms on which a giftor 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
36
  "type": "object",
37
37
  "properties": {
38
38
  "amount": {
@@ -6,10 +6,10 @@
6
6
  "description": "An offer made by a prospective buyer in a property transaction.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -182,6 +182,11 @@
182
182
  "title": "Additional property purchase",
183
183
  "description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
184
184
  },
185
+ "dependentOnSale": {
186
+ "type": "boolean",
187
+ "title": "Buyer needs to sell a property to proceed",
188
+ "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."
189
+ },
185
190
  "hasPets": {
186
191
  "type": "boolean",
187
192
  "title": "Buyer has pets",
@@ -6,10 +6,10 @@
6
6
  "description": "A legal entity (company, firm, partnership) participating in a property transaction.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -6,10 +6,10 @@
6
6
  "description": "A natural person participating in a property transaction — name, contact details, address, verification status.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "name": {
@@ -6,10 +6,10 @@
6
6
  "description": "Physical and environmental facts about a property — address, construction, fixtures, services, searches, documents. Excludes ownership, titles, and participants.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "address": {
@@ -6,10 +6,10 @@
6
6
  "description": "A professional representation relationship — one party instructed by another, e.g. a conveyancer acting for a seller. One entity per (representative, represented party) pair: a conveyancer instructed jointly by two sellers yields two, and sellers who instruct separate conveyancers yield one each.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -39,7 +39,7 @@
39
39
  "Prospective Buyer",
40
40
  "Buyer",
41
41
  "Buyer's Conveyancer",
42
- "Gift Donor",
42
+ "Giftor",
43
43
  "Estate Agent",
44
44
  "Buyer's Agent",
45
45
  "Surveyor",
@@ -6,10 +6,10 @@
6
6
  "description": "The legal capacity in which a seller is selling a given title. Derived from the V3 participants 'Seller' branch (sellersCapacity, dateBecameOwnerOrAuthority).",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -6,10 +6,10 @@
6
6
  "description": "HM Land Registry title — register extract, tenure type, and legal interest details for a single title number.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "titleNumber": {
@@ -6,10 +6,10 @@
6
6
  "description": "Transaction-level metadata — status, milestones, chain, contracts, offers, enquiries, and sale context.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "transactionId": {
@@ -633,106 +633,107 @@
633
633
  }
634
634
  }
635
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
- ".*": {}
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
+ }
667
668
  }
668
- }
669
- ]
669
+ ]
670
+ }
670
671
  }
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
- ]
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
+ }
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"
727
736
  }
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
  }
737
738
  }
738
739
  }
@@ -1036,6 +1037,11 @@
1036
1037
  "title": "Additional property purchase",
1037
1038
  "description": "Whether the buyer already owns residential property (SDLT higher rates apply)"
1038
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
+ },
1039
1045
  "hasPets": {
1040
1046
  "type": "boolean",
1041
1047
  "title": "Buyer has pets",
@@ -6,10 +6,10 @@
6
6
  "description": "A party's role in a transaction, where no more specific relationship credential applies. Asserts participation in a role, not a relationship to another named party.",
7
7
  "x-pdtf-source": {
8
8
  "packageName": "@pdtf/schemas",
9
- "packageVersion": "3.6.0-dev.24",
9
+ "packageVersion": "3.6.0-dev.26",
10
10
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
11
11
  "combinedPath": "src/schemas/v3/combined.json",
12
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
12
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
13
13
  },
14
14
  "properties": {
15
15
  "id": {
@@ -33,7 +33,7 @@
33
33
  "Prospective Buyer",
34
34
  "Buyer",
35
35
  "Buyer's Conveyancer",
36
- "Gift Donor",
36
+ "Giftor",
37
37
  "Estate Agent",
38
38
  "Buyer's Agent",
39
39
  "Surveyor",
@@ -5,10 +5,10 @@
5
5
  "generator": "src/utils/generateV4Schemas.js",
6
6
  "source": {
7
7
  "packageName": "@pdtf/schemas",
8
- "packageVersion": "3.6.0-dev.24",
8
+ "packageVersion": "3.6.0-dev.26",
9
9
  "v3SchemaId": "https://trust.propdata.org.uk/schemas/v3/pdtf-transaction.json",
10
10
  "combinedPath": "src/schemas/v3/combined.json",
11
- "combinedSha256": "7d438236e5349af54e9a07c9e27ccd8b06c85a1836b9f35b81b1d528cec7b395"
11
+ "combinedSha256": "4faefc641dcb3cdd9e871b53fdaf80d8a02041dfb09d377c959a916eb22276b5"
12
12
  },
13
13
  "entities": {
14
14
  "Property": {
@@ -78,7 +78,7 @@
78
78
  "roleImpliedByCredential": {
79
79
  "SellerCapacity": "Seller",
80
80
  "Offer": "Buyer",
81
- "Gift": "Gift Donor"
81
+ "Gift": "Giftor"
82
82
  },
83
83
  "strippedKeySuffixes": [
84
84
  "Ref",
@@ -768,6 +768,19 @@
768
768
  "scope": "vendor"
769
769
  }
770
770
  ]
771
+ },
772
+ {
773
+ "pointer": "/chain/buyersSale",
774
+ "keys": [
775
+ {
776
+ "pointer": "/transactionId",
777
+ "scope": "canonical"
778
+ },
779
+ {
780
+ "pointer": "/externalIds/{source}",
781
+ "scope": "vendor"
782
+ }
783
+ ]
771
784
  }
772
785
  ],
773
786
  "arrayKeyScopes": {
@@ -831,7 +844,7 @@
831
844
  "notes": "V3 does not tie a seller's capacity to a particular title, so the optional `title` reference is left unset. A transaction selling more than one title therefore yields a capacity scoped to the transaction, not to a title."
832
845
  },
833
846
  "TransactionRole": {
834
- "description": "A party's role where no more specific relationship credential applies — Lender, Landlord, Tenant, Gift Donor, Platform Support — or where the specific relationship is not yet established. Emitted so that every participant carrying a role has exactly one credential embodying it.",
847
+ "description": "A party's role where no more specific relationship credential applies — Lender, Landlord, Tenant, Giftor, Platform Support — or where the specific relationship is not yet established. Emitted so that every participant carrying a role has exactly one credential embodying it.",
835
848
  "source": {
836
849
  "entity": "Transaction",
837
850
  "pointer": "/participants/{index}"
@@ -1054,7 +1067,7 @@
1054
1067
  "cardinality": "many",
1055
1068
  "matchOn": "/donor"
1056
1069
  },
1057
- "impliesRole": "Gift Donor"
1070
+ "impliesRole": "Giftor"
1058
1071
  },
1059
1072
  {
1060
1073
  "id": "credential.representation",
@@ -197,7 +197,7 @@ const CREDENTIAL_ENTITIES = [
197
197
  /**
198
198
  * Role is not stored on the participant. For three credential types it is
199
199
  * implied 1:1 by the type itself — V3 puts sellersCapacity only on the Seller
200
- * branch, giftDetails only on Gift Donor, and offerId on Buyer (and Gift Donor,
200
+ * branch, giftDetails only on Giftor, and offerId on Buyer (and Giftor,
201
201
  * whose offer link lives on the Gift credential instead, keeping this 1:1).
202
202
  * Representation and TransactionRole each span several roles, so they carry
203
203
  * role as their own discriminator: "what kind of representation is this" is a
@@ -206,7 +206,7 @@ const CREDENTIAL_ENTITIES = [
206
206
  const ROLE_IMPLIED_BY_CREDENTIAL = {
207
207
  SellerCapacity: "Seller",
208
208
  Offer: "Buyer",
209
- Gift: "Gift Donor",
209
+ Gift: "Giftor",
210
210
  };
211
211
 
212
212
  // ---------------------------------------------------------------------------
@@ -708,7 +708,7 @@ const generateTransactionRole = () => {
708
708
  // The catch-all relationship credential. Representation, SellerCapacity and
709
709
  // Offer each carry a specific relationship; this one asserts only that a
710
710
  // party takes a given role in a transaction, which is all V3 records for a
711
- // Lender, Landlord, Tenant, Gift Donor or Platform Support. It is also what
711
+ // Lender, Landlord, Tenant, Giftor or Platform Support. It is also what
712
712
  // covers a party whose specific relationship is not yet established — a
713
713
  // conveyancer instructed but with no actingFor recorded, say — so that every
714
714
  // participant carrying a role has exactly one credential embodying it.
@@ -742,7 +742,7 @@ const generateGift = () => {
742
742
  // is truly a gift rather than a loan, and whether the donor acquires an
743
743
  // interest in or occupation of the property, are what a conveyancer must
744
744
  // resolve before reporting to a lender. Separately revocable, and the role
745
- // "Gift Donor" is implied by the credential's existence.
745
+ // "Giftor" is implied by the credential's existence.
746
746
  const giftBranch =
747
747
  (combined.properties.participants.items.oneOf || []).find(
748
748
  (b) => b.properties?.giftDetails
@@ -751,7 +751,7 @@ const generateGift = () => {
751
751
  return makeSchema(
752
752
  "gift",
753
753
  "Gift Entity",
754
- "A gift of funds towards a purchase, made by a gift donor. Implies the Gift Donor role.",
754
+ "A gift of funds towards a purchase, made by a giftor. Implies the Giftor role.",
755
755
  {
756
756
  id: urnRef("Gift URN", "Uniform Resource Name identifier for the gift"),
757
757
  donor: didRef(
@@ -1077,7 +1077,7 @@ const buildRules = () => [
1077
1077
  entityPointer: "",
1078
1078
  keys: { mode: "include", values: ["giftDetails", "offerId"] },
1079
1079
  instance: { cardinality: "many", matchOn: "/donor" },
1080
- impliesRole: "Gift Donor",
1080
+ impliesRole: "Giftor",
1081
1081
  },
1082
1082
  {
1083
1083
  id: "credential.representation",
@@ -1300,7 +1300,7 @@ const mapping = {
1300
1300
  },
1301
1301
  TransactionRole: {
1302
1302
  description:
1303
- "A party's role where no more specific relationship credential applies — Lender, Landlord, Tenant, Gift Donor, Platform Support — or where the specific relationship is not yet established. Emitted so that every participant carrying a role has exactly one credential embodying it.",
1303
+ "A party's role where no more specific relationship credential applies — Lender, Landlord, Tenant, Giftor, Platform Support — or where the specific relationship is not yet established. Emitted so that every participant carrying a role has exactly one credential embodying it.",
1304
1304
  source: { entity: "Transaction", pointer: "/participants/{index}" },
1305
1305
  emitWhen:
1306
1306
  "/role is present and no other credential names this participant as its role-bearer",
package/src/utils/v4.js CHANGED
@@ -322,7 +322,7 @@ const decompose = (v3, { idFactory } = {}) => {
322
322
  const ROLE_IMPLIED_BY_CREDENTIAL = {
323
323
  SellerCapacity: "Seller",
324
324
  Offer: "Buyer",
325
- Gift: "Gift Donor",
325
+ Gift: "Giftor",
326
326
  };
327
327
 
328
328
  /**
@@ -615,7 +615,7 @@ const projectRelationships = (
615
615
 
616
616
  // Likewise a buyer's role is embodied by their offer. An offer that no
617
617
  // participant references stays transaction data: Offer requires a buyer.
618
- if (entry.giftDetails !== undefined || entry.role === "Gift Donor") {
618
+ if (entry.giftDetails !== undefined || entry.role === "Giftor") {
619
619
  Gift.push({
620
620
  id: ids.gift(entry.participant),
621
621
  donor: entry.participant,
@@ -637,7 +637,7 @@ const projectRelationships = (
637
637
 
638
638
  // Anyone left carrying a role that no specific credential embodies gets the
639
639
  // catch-all, so every participant with a role has exactly one credential
640
- // asserting it. That covers Lender, Landlord, Tenant, Gift Donor and Platform
640
+ // asserting it. That covers Lender, Landlord, Tenant, Giftor and Platform
641
641
  // Support, which V3 records as a role and nothing more, and also a party
642
642
  // whose specific relationship is not yet established.
643
643
  const hasSpecificCredential = new Set([