Square Deal Network API
Share property listing information in a blockchain through a HTTP-based REST API.
Published: January 31, 2025
Copyright: ©2019-2025 Lesswing, LLC
Version: 0.9.7
Overview
The Square Deal Network is based on the principles of:
- Consumer Protection - Transparent transactions
- Corporate Regulation - Protecting digital ownership
- Conservationism - Complement existing business practices
The underlying blockchain (
Flow) is controlled by
Smart Contracts that provide business rules.
Smart Contracts are written in the
Cadence Programming Language and the cryptocurrency for the system is
Flow. The API obly supports the following
Smart Contracts:
- SquareDealNetworkDirectory00.1cdc
- SquareDealNetworkParticipant001.cdc
Payments are made with cryptocurrency stored in the Participant account.
Users are required to keep a sufficient balance of tokens in their account.
Integrating Square Deal into your website is made easier with this
API because it uses uses common mechanism like HTTP and JSON. Your website connects Square Deal through a server generously hosted by
BEI.RE. The server is a conduit to the network and does not store any information.
It is possible to build your own connection between a website and the blockchain using this API.
Access
Server Configuration
Host
https://square-deal.bei.re/
Typical RESTful methods found in many popular APIs.
Accessing Information with GET
Creating Information with POST
Structures
JSON-formatted collections of data elements.
Primitives
Single data elements.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
listingId
UUID
The unique identifier for the Advertisement
Returns
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType": "GetAdvertisement",
"system": "Square Deal Network",
"subjectType": "Advertisement",
"eventSubject": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"recorderType": "None",
"eventRecorder": "None",
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Square Deal Network",
"success":true,
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
},
"onMarket": true
}
]
}
]
HTTP Error Codes
Return a single-element array that contains a
Residential Listing for the requested Universal Property Identifier.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
listingId
UUID
The unique dentifier for the Listing
requestorAddress
Participant Address
The address requesting the information and is sent as an opaque to the Smart contract.
requestorRegistration
UUID
The SDN Registration number of the requestor of the information.
requestorKey
Key
The SDN key of the requestor of the information.
Returns
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType": "GetListing",
"system": "Square Deal Network",
"subjectType": "Listing",
"eventSubject": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"recorderType": "Owner Representative",
"eventRecorder": "0x41f87751e7dec89f",
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Square Deal Network",
"success":true,
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"PropertyRooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
},
],
},
"beneficiaryReserve": .0002,
"beneficiary":
[
{
"participant": "0x32f87751e3dec86b",
"firstName": "Carol",
"lastName": "Goodthought",
"organization": "Mid-Valley Abuse Shelter",
"mobile": "888.555.1212",
"email": "carol@nowhere.com",
"role": "Beneficiary",
"verifyTimestamp": "2023-12-10T19:22:02Z"
}
],
"onMarket": true
}
]
}
]
HTTP Error Codes
Return a single-element array that contains a
Network Participant for the requested participant.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
participant
Participant Address
The identifier of the participant being requested. If this is the same as the requestor field, it is a self-lookup.
requestor
Participant Address
The identifier of the entity requesting the information and is sent as an opaque to the Smart contract.
Returns
Content-Type: application/json
[
{
"eventType": "GetParticipant",
"system": "Square Deal Network",
"subjectType": "Participant",
"eventSubject": "0x41f87751e7dec89f",
"recorderType": "Square Deal Network",
"eventRecorder": [ WALLET ADDRESS ALREADY IN THE SYSTEM ],
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Square Deal Network",
"success":true,
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"participant": "0x41f87751e7dec89f",
"firstName": "Joe",
"lastName": "Schmoe",
"organization": "Scarab Properties",
"mobile": "888.555.1212",
"email": "joe@schmoe.com",
"role": "Owner Representative",
"verifyTimestamp": "2023-12-10T19:22:02Z"
}
}
]
}
]
HTTP Error Codes
Return a map of participant addresses to corresponding SDN Registrations.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
Returns
Content-Type: application/json
[
{
"eventType":"getDirectory",
"system":"Square Deal Network web3 Facility",
"subjectType":"Directory",
"eventSubject":"0xbaca14fc19d8e62a",
"recorderType":"System",
"eventRecorder":"Anonymous",
"timestamp":"2024-01-20T16:27:03Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
{
'0xfc14e95ae4a76291': '2e231237-f615-44de-8fbc-43ea2335ab87',
'0xa2215a1aaa18c0f8': '62aabaf8-b262-4170-8ec5-71cb22ae781d',
'0x1550bdd4d720e900': 'a2fb330b-ebfc-4460-aa6d-18f735fc4cf5',
'0x85675aca2cb33e07': '51b9fc32-a7a1-4569-ae3a-73762b06a5f2',
'0x4e3750526930d2d7': '31d20278-9726-4f18-a0c3-ef5cc6836053',
'0x4f52160150a6e871': '9b1e7d50-be1d-4e88-b2b6-4bf299b8dc22',
'0x50546e24eaccec74': 'cc564350-48a8-4bdb-9934-12122cc1a202',
'0x8c064baf4dd66994': '8c6096ba-7cf2-4e90-b765-2412d97a22a4',
'0x5b38b46dee63b46f': '647bb931-c9cc-4328-9a58-48d6afc50b5c'
}
}
]
HTTP Error Codes
Return an array that contains listings for a participant.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
Returns
[Array of
Network Response] with a context of an [Array of
UUID]. The values refer to Listing identifiers.
Content-Type: application/json
[
{
"eventType":"getListings",
"system":"Square Deal Network web3 Facility",
"subjectType":"Directory",
"eventSubject":"0xbaca14fc19d8e62a",
"recorderType":"System",
"eventRecorder":"Anonymous",
"timestamp":"2024-01-20T16:27:03Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
[
"e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"51b9fc32-a7a1-4569-ae3a-73762b06a5f2",
]
}
]
HTTP Error Codes
Return an array that contains addresses of participants.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
Returns
Content-Type: application/json
[
{
"eventType":"getParicipants",
"system":"Square Deal Network web3 Facility",
"subjectType":"Directory",
"eventSubject":"0xbaca14fc19d8e62a",
"recorderType":"System",
"eventRecorder":"Anonymous",
"timestamp":"2024-01-20T16:27:03Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
[
"0xfc14e95ae4a76291",
"0xa2215a1aaa18c0f8",
"0x1550bdd4d720e900",
"0x85675aca2cb33e07",
"0x4e3750526930d2d7",
"0x4f52160150a6e871",
"0x50546e24eaccec74",
"0x8c064baf4dd66994",
"0x5b38b46dee63b46f"
]
}
]
HTTP Error Codes
Return an array that contains the fileds that the participant has configured to be public.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
participant
Participant Address
The identifier of the participant being requested. If this is the same as the requestor field, it is a self-lookup.
Returns
Content-Type: application/json
[
{
"eventType": "GetPublicFields",
"system": "Square Deal Network",
"subjectType": "Participant",
"eventSubject": "0x6147d415c20233f4",
"recorderType": "System",
"eventRecorder": Anonymous,
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Square Deal Network",
"success":true,
"context":
[
"ListingId",
"BathroomsTotalInteger",
"BedroomsTotal",
"ListPrice",
"UnparsedAddress"
]
}
]
HTTP Error Codes
Return a HTML page to collect the requestor's purchasing key.
All query parameter values must be URLEncoded to allow them to be passed to the server as part of a valid URL.
Query parameters
listingId
UUID
The unique dentifier for the Listing
requestorAddress
Participant Address
The address requesting the information and is sent as an opaque to the Smart contract.
requestorRegistration
UUID
The SDN Registration number of the requestor of the information.
Returns
HTML page to collect the requestor's key.
Content-Type: text/html
HTTP Error Codes
A listing with the same Universal Property Identifier must already exists. The same result can be achieved by replacing the listing with
/addListing
and specifying the full list of benefactors.
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
Follow the documentation for
Add Beneficiary Request with the following notes:
-
context
[Array of Participant Address]
Each address is a beneficiary to add to the existing list of beneficiaries for the listing.
-
requestor
Participant Address
The address of the requestor submitting the information. Ownership is assigned based on the value. The value is sent as an opaque to the Smart contract and returned as eventRecorder in the response.
-
UniversalPropertyId
UPI
The RESO Universal Property Identifier for this listing must be part to the .
-
recorderType
String (optional)
The business function of the entity submitting the information. Default is "Anonymous Contributor".
-
system
String (optional)
The business function of the system used to create the information. Default is "Unidentified".
-
application
String (optional)
The name of the computer software used to create the information. Default is "Unidentified".
Content-Type: application/json
[
{
"eventType": "AddBeneficiary",
"system": "Broker Front Office",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:"
"recorderType": "Owner Representative",
"requestor": "0x41f87751e7dec89f",
"application": "Listing Creator Application",
"context":
[
"0x75f87751e3bca34f"
]
}
]
Returns
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType": "AddBeneficiary",
"system": "Broker Front Office",
"subjectType": "Listing",
"eventSubject": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"recorderType": "Owner Representative",
"eventRecorder": "0x41f87751e7dec89f",
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Listing Creator Application",
"success":true,
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"PropertyRooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
},
"beneficiaryReserve": .0002,
"beneficiary":
[
{
"participant": "0x32f87751e3dec86b",
"firstName": "Carol",
"lastName": "Goodthought",
"organization": "Mid-Valley Abuse Shelter",
"mobile": "888.555.1212",
"email": "carol@nowhere.com",
"role": "Beneficiary",
"verifyTimestamp": "2023-12-10T19:22:02Z"
},
{
"participant": "0x75f87751e3bca34f",
"firstName": "Jake",
"lastName": "Platinum",
"organization": "County Homes for Vets",
"mobile": "888.555.1212",
"email": "jake@nowhere.com"
"role": "Beneficiary",
"verifyTimestamp": "2023-12-10T19:22:02Z"
}
],
"onMarket": true
}
]
}
]
HTTP Error Codes
Receive PUSH events from the Square Deal Network
The URL to receive JSON-encoded events from the blockchain via HTTTP POST for
SDN_DirectoryParticipant,
SDN_ParticipantListing and
RESO RCP-027 Event events.
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
-
sdnAddress
Participant Address
The address of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned as eventRecorder field of the response.
-
sdnRegistration
UUID
The SDN Registration number of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned in the recorderType field of the response.
-
sdnKey
Key
The SDN key of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and not returned in the response.
-
context
[Array of Network Listener]
Each array entry is a listener configuration that is executed as an independent unit. If you have seperate webhooks listening or Public, Private and RESO events, the context would have three seperate configurations.
The configuration of a
Network Listener has the following fields:
-
scope
String
The options and the events they represent are:
-
url
URL
The URL to receive JSON-encoded events from the blockchain via HTTTP POST.
-
reference
String
An opaque string that will be included in each event. It can be used to identify multiple clients in a single shared webhook. Each client should be identified in a seperate configuration to allow the same event to sent with seperate references.
-
mode
String
The modes are:
If no mode is specified, all events will be sent to the webhook.
-
ids
[Array of String]
A specific Listing or Participant is identified by a
UUID. This array is a string representation of this identifier.
[
'2e3a3c5b-1488-4813-8c5b-9f932fbac8ac',
'2e3a3c5b-1488-4813-8c5b-9f932fbac8bc'
]
This is an example of a listener that has six hook configurations:
{
sdnAddress: '0x5ab98dd26e3d69b7',
sdnRegistration: '2bdd1200-7972-4874-9f82-5458aa35c1e6',
sdnKey: 'd98d08730b21bc76b1978760a8af55c5a0a622e87f66fa7a224a94e724d63467',
hookConfig: [
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #35',
subject: 'Listing'
},
{
scope: 'PRIVATE',
url: 'http://localhost:8083/captureEvent',
reference: 'Client Portfolio #33'
},
{
scope: 'PRIVATE',
url: 'http://localhost:8083/captureEvent',
reference: 'Client Portfolio #12'
},
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #14',
mode: 'ONLY-NEW'
},
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #8',
mode: 'SPECIFIC',
ids: [
'2e3a3c5b-1488-4813-8c5b-9f932fbac8ac',
'2e3a3c5b-1488-4813-8c5b-9f932fbac8bc'
]
},
{ scope: 'RESO', url: 'http://localhost:8081/captureEvent' }
]
}
Here is a breakdown of the six examples:
-
New and updated Listings with the reference "Client Portfolio #35"
-
Participant and Listing accesses with the reference "Client Portfolio #33"
-
Participant and Listing accesses with the reference "Client Portfolio #12"
-
New Listings with the reference "Client Portfolio #14"
-
Specific Listings with the reference "Client Portfolio #8"
-
RESO events
Returns
Content-Type: application/json
[
{
"eventType":"AddListener",
"system":"Square Deal Network web3 Facility",
"subjectType":"Listener",
"eventSubject":"0x6147d415c20233f4",
"recorderType":"Owner Representative",
"eventRecorder":"0x6147d415c20233f4",
"timestamp":"2024-01-27T15:34:28Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
[
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #35',
subject: 'Listing'
},
{
scope: 'PRIVATE',
url: 'http://localhost:8083/captureEvent',
reference: 'Client Portfolio #33'
},
{
scope: 'PRIVATE',
url: 'http://localhost:8083/captureEvent',
reference: 'Client Portfolio #12'
},
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #14',
mode: 'onlyNew'
},
{
scope: 'PUBLIC',
url: 'http://localhost:8081/captureEvent',
reference: 'Client Portfolio #8',
mode: 'specific',
ids: [
'2e3a3c5b-1488-4813-8c5b-9f932fbac8ac',
'2e3a3c5b-1488-4813-8c5b-9f932fbac8bc'
]
},
{ scope: 'RESO', url: 'http://localhost:8081/captureEvent' }
]
}
]
A JSON-encoded stucture for the event is sent to the URL as detailed in the `Event` sections below.
headers:
{
Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json',
'User-Agent': 'axios/0.22.0',
'Content-Length': 122
}
{
"EntityEventSequence":1706369090000,
"ResourceName":"Property",
"ResourceRecordKey":"2e3a3c5b-1488-4813-8c5b-9f932fbac8ec"
}
{
eventType: 'SDN-AddListing',
system: 'Square Deal Network',
subjectType: 'Listing',
eventSubject: '2e3a3c5b-1488-4813-8c5b-9f932fbac8ec',
recorderType: 'SDN Participant',
eventRecorder: '0x6147d415c20233f4',
timestamp: '2024-01-26T23:14:14Z',
sequence: 1706310854000,
version: '1.7',
application: 'SquareDealNetworkParticipant001',
context: {
remark: 'This is one to see',
onMarket: true,
ListingId: '2e3a3c5b-1488-4813-8c5b-9f932fbac8ec',
UniversalPropertyId: 'US-17089-66716-0920177002-R-N',
sdnParticipantAddress: '0x6147d415c20233f4',
sdnParticipantContract: 'SquareDealNetworkParticipant001',
sdnParticipantRegistration: 'cebbdd57-12f7-4879-bf6e-a2b60a8d66a1',
reference: 'Client Portfolio #14'
}
}
{
eventType: 'SDN-GetListing',
system: 'Square Deal Network',
subjectType: 'Listing',
eventSubject: '2e3a3c5b-1488-4813-8c5b-9f932fbac8ec',
recorderType: 'SDN Participant',
eventRecorder: '0x5ab98dd26e3d69b7',
timestamp: '2024-03-18T11:17:44Z',
sequence: 1710760664000,
version: '1.7',
application: 'SquareDealNetworkParticipant001',
context: {
ListingId: '2e3a3c5b-1488-4813-8c5b-9f932fbac8ec',
blockTimestamp: '2024-03-18T11:17:46Z',
requestorAddress: '0xa6357ae9cc074fba',
requestorRegistration: '487281fb-9d98-4b56-9921-d4a2961e8a76',
sdnParticipantAddress: '0x5ab98dd26e3d69b7',
sdnParticipantContract: 'SquareDealNetworkParticipant001',
sdnParticipantRegistration: '2bdd1200-7972-4874-9f82-5458aa35c1e6',
reference: 'Client Portfolio #33'
}
}
HTTP Error Codes
If a listing with the same ListingId already exists, it is replaced if it was created by the same requestor. To update the listing, run the
/addListing
with updated values.
Consumes
The unique identifier for the listing is the ListingId field in the
Residential Listing.
Follow the documentation for
Add Listing Request with the following notes:
-
context
[Array of Residential Listing]
The onMarket
Boolean fields must be populated and is required within the payload. This allows a listing to be made available to the market upon entry. If the value is false, then the listing can be activated later.
The following fields must be populated and are required within the payload because they are used to authenticate the payload by recreating the UniversalPropertyId when the listing is submitted:
-
UniversalPropertyId
UPI
The RESO Universal Property Identifier to associate with this listing.
-
ListingId
UUID
The owner-assigned identifier for this listing. The value is returned as eventSubject in the envelope for use in future requests and is used by the
getAdvertisement
and
/getListing
methods.
-
ParcelNumber
String
The government-assigned identifier to associate with this listing.
-
UnparsedAddress
String
The postal identifier to associate with this listing.
-
PropertyType
String
The property classification for listing.
The following fields are optional parts of the payload:
-
beneficiary
[Array of Participant Address] (optional)
The address of the beneficiary for fee sharing. Ownership is assigned based on the value. The value(s) is sent as an opaque to the Smart contract. If no beneficiaries are specified then the beneficiaryReserve is ignored.
-
beneficiaryReserve
Network Units (optional)
The number of units to reserve for beneficiaries that is divided equally if more than one beneficiaries are attached to the listing. The value is sent as an opaque to the Smart contract. Default is 0.
-
sdnAddress
Participant Address
The address of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned as eventRecorder field of the response.
-
sdnRegistration
UUID
The SDN Registration number of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned in the recorderType field of the response.
-
sdnKey
Key
The SDN key of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and not returned in the response.
-
system
String (optional)
The business function of the system used to create the information. Default is "Unidentified".
-
application
String (optional)
The name of the computer software used to create the information. Default is "Unidentified".
Content-Type: application/json
{
"eventType": "AddListing",
"system": "Broker Front Office",
"sdnAddress": "0x41f87751e7dec89f",
"sdnRegistration": "cb8e4cf2-112e-4a68-89d2-e4248597c732",
"sdnKey": "f8e188e8af0b8b414be59c4a1a15cc666c898fb34d94156e9b51e18bfde754a5",
"application": "Listing Creator Application",
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"PropertyRooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view"
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen"
}
]
},
"beneficiaryReserve": .0002,
"beneficiary":
[
"0x32f87751e3dec86b"
],
"onMarket": true
}
]
}
Returns
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType": "AddListing",
"system": "Broker Front Office",
"subjectType": "Listing",
"eventSubject": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"recorderType": "Owner Representative",
"eventRecorder": "0x41f87751e7dec89f",
"timestamp": "2023-12-10T19:22:02Z",
"version": "0.9.5",
"application": "Listing Creator Application",
"success":true,
"context":
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"PropertyRooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
},
"beneficiaryReserve": .0002,
"beneficiary":
[
{
"participant": "0x32f87751e3dec86b",
"firstName": "Carol",
"lastName": "Goodthought",
"organization": "Mid-Valley Abuse Shelter",
"mobile": "888.555.1212",
"email": "carol@nowhere.com",
"role": "Beneficiary",
"verifyTimestamp": "2023-12-10T19:22:02Z",
"weight": 1
}
],
"onMarket": true
}
]
}
]
HTTP Error Codes
Generate a RESO Universal Property Identifier.
The Square Deal Network requires that listings include a field called UniversalPropertyIdentifer (UPI). It is often the case that the UPI needs to be created.
Consumes
Follow the documentation for
Add Listing Request with the following notes:
-
parcelNumber
String
The government-assigned identifier to associate with this listing.
-
propertyType
String
The property classification for listing.
-
fullAddress
String
The postal identifier to associate with this listing.
-
ListingId
UUID
The owner-assigned identifier for this listing. The value is returned as eventSubject in the envelope for use in future requests and is used by the
getAdvertisement
and
/getListing
methods.
Content-Type: application/json
Returns
[Array of
Network Response] with a context that identifies UPI version 1, UPI version 2 (latest proposal) and UPI for experimental purposes.
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType":"generateUPI",
"system":"Square Deal Network UPI Facility",
"subjectType":"System",
"eventSubject":"ABC123",
"recorderType":"Administrator",
"eventRecorder":"System",
"timestamp":"2024-01-24T20:55:44Z",
"version": "0.9.5",
"application":"Square Deal Network UPI Facility",
"success":true,
"context":
[
{
"address":"4N639 Knollcreek Drive, Saint Charles, IL 60175",
"ListingId":"ABC123",
"UniversalPropertyId1":"US-17089-66716-0920177002-R-N",
"UniversalPropertyId2":\
"urn:reso:upi:2.0:country:US:subcountry:1708966716:propertytype:residential:subpropertytype::parcelnumber:09-20-177-002:subparcelnumber:",
"UniversalPropertyIdEx":\
"urn:reso:upi:2.X:country:US:stateorprovince:IL:county:089:subcounty:66716:propertytype::residential:subpropertytype:parcelnumber:09-20-177-002:subparcelnumber:"
}
]
}
]
HTTP Error Codes
Add a group of elements to the Square Deal Network return a single-element array that contains a
Batch Result for the requested participant.
This method is an alternative to multiple single-record additions.
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
Follow the documentation for
Batch Request with the following notes:
-
requestor
Participant Address
The address of the entity requesting access to the blockchain. The value is sent as an opaque to the Smart contract and returned as eventRecorder in the response.
The value cannot be the same as context field "participant" value. You must ask someone with access to the API to grant you access.
-
sdnRegistration
UUID
The Square Deal Network Registration number of the entity requesting access to the blockchain. The value is sent as an opaque to the Smart contract so that permission can be checked.
-
sdnKey
Key
The key of the entity requesting access to the blockchain. The value is used to submit transactions.
-
importFile
String
The name of the csv-formatted file to read.
-
jobName
String
The name of the job to use to package batch documentation.
Content-Type: application/json
[
{
"requestor": [ PARTICIPANT ADDRESS ALREADY IN THE SYSTEM ],
"sdnRegistration": [ PARTICIPANT SDN REGISTRATION ALREADY IN THE SYSTEM ],
"sdnKey": [ PARTICIPANT SDN KEY ALREADY IN THE SYSTEM ],
"importFile": "tiny.csv",
"jobName:: "TEST001",
"batchSize": 4,
}
]
Returns
Content-Type: application/json
[
{
"eventType":"FileImport",
"system":"Square Deal Network Import Facility",
"subjectType":"System",
"eventSubject":"Import Facility",
"recorderType":"Administrator",
"eventRecorder":"System",
"timestamp":"2023-12-18T06:17:34Z",
"version": "0.9.5",
"application":"Square Deal Network Import Facility",
"success":true,
"context":
[
{
"batchCount": 3,
"recordsRead": 12,
"recordsFiltered": 2,
"recordsEvaluated": 10,
"recordsSubmitted": 9,
"recordsRejected": 1,
"filteredRecords": [6,13],
"timestamp":"2023-12-18T06:17:34Z",
"filePath":"./imports/clean.csv",
"maxBatchSize": 4
}
]
}
]
HTTP Error Codes
Remove Listener from the Square Deal Network
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
-
-
sdnRegistration
UUID
The SDN Registration number of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned in the recorderType field of the response.
-
sdnKey
Key
The SDN key of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and not returned in the response.
Returns
Content-Type: application/json
[
{
"eventType":"removeListener",
"system":"Square Deal Network web3 Facility",
"subjectType":"Listener",
"eventSubject":"0x69c25b8dc9ea98ce",
"recorderType":"Owner Representative",
"eventRecorder":"0x69c25b8dc9ea98ce",
"timestamp":"2024-02-12T21:51:52Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
[
{
"message":"SDN Participant removed"
}
]
}
]
HTTP Error Codes
Remove a Listing from the Square Deal Network
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
-
-
sdnRegistration
UUID
The SDN Registration number of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and returned in the recorderType field of the response.
-
sdnKey
Key
The SDN key of the requestor submitting the information. Ownership is assigned based on the value and the requestor should be registered with the system before trying to add a listing to the network. The value is sent as an opaque to the Smart contract and not returned in the response.
-
listingId
UUID
The unique identifier of the listing to be removed.
Returns
Content-Type: application/json
[
{
"eventType":"RemoveListing",
"system":"Square Deal Network web3 Facility",
"subjectType":"Listing",
"eventSubject":"2e3a3c5b-1488-4813-8c5b-9f932fba17eb",
"recorderType":"Owner Representative",
"eventRecorder":"0x5ab98dd26e3d69b7",
"timestamp":"2024-04-12T11:31:31Z",
"version": "0.9.5",
"application": "Square Deal Network",
"success":true,
"context":""
[
{
"message":"SDN Listing removed"
}
]
}
]
HTTP Error Codes
Up
post /removeParticipant
Remove Participant from the Square Deal Network
Consumes
The payload must be URLEncoded to allow it to be passed to the server over HTTP.
-
-
Returns
Content-Type: application/json
[
{
"eventType":"removeListener",
"system":"Square Deal Network web3 Facility",
"subjectType":"Listener",
"eventSubject":"0x69c25b8dc9ea98ce",
"recorderType":"Owner Representative",
"eventRecorder":"0x69c25b8dc9ea98ce",
"timestamp":"2024-02-12T21:51:52Z",
"version": "0.9.5",
"application":"Square Deal Network",
"success":true,
"context":
[
{
"message":"SDN Participant removed"
}
]
}
]
HTTP Error Codes
Generate a RESO Universal Property Identifier.
The Square Deal Network requires that a listing iclude a field called UniversalPropertyIdentifer that my need to be created. This is a convenience function.
Consumes
Follow the documentation for
Add Listing Request with the following notes:
-
fullAddress
String
The postal identifier to associate with this listing.
-
ListingId
UUID
The owner-assigned identifier for this listing. The value is returned as eventSubject in the envelope for use in future requests and is used by the
getAdvertisement
and
/getListing
methods.
Content-Type: application/json
Returns
[Array of
Network Response] with a context that identifies UPI version 1 and UPI version 2.
Field names in the response context conform to the RESO Data Dictionary whenever possible.
Content-Type: application/json
[
{
"eventType":"EnhanceAddress",
"system":"Square Deal Network Address Facility",
"subjectType":"System",
"eventSubject":"ABC123",
"recorderType":"Administrator",
"eventRecorder":"System",
"timestamp":"2024-01-24T21:32:38Z",
"version": "0.9.5",
"application":"Square Deal Network Address Facility",
"success":true,
"context":
[
{
"address":"4N639 Knollcreek Drive, Saint Charles, IL 60175",
"payload":
{
"searchAddress":"4N639 Knollcreek Drive, Saint Charles, IL 60175",
"matchedAddress":"4N639 KNOLLCREEK DRIVES, SAINT CHARLES, IL, 60175",
"country":"US",
"state_code":"17",
"state_name":"Illinois",
"state_abbreviation":"IL",
"state_division":"3",
"state_region":"2",
"county_code":"089",
"county_basename":"Kane",
"county_name":"Kane County",
"city_name":"SAINT CHARLES",
"subcounty_code":"66716",
"subcounty_basename":"St. Charles",
"subcounty_name":"St. Charles township",
"csa_code":"176",
"csa_basename": "Chicago-Naperville, IL-IN-WI",
"csa_name":"Chicago-Naperville, IL-IN-WI CSA",
"latitude":41.93628299595236,
"longitude":-88.3521970104557,
"place":"Rural"
}
}
]
}
]
HTTP Error Codes
UpAdd Beneficiary Request
system
Example: Broker Front Office
UniversalPropertyId
Example: urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:
role
Example: Owner Representative
requestor
Example: 0x41f87751e7dec89f
application
Example: Listing Creator Application
context
Represents an array even if there is only a single element.
[
"0x75f87751e3bca34f"
]
system
Example: Broker Front Office
sdnAddress
Example: 0x41f87751e7dec89f
sdnRegistration
Example: cb8e4cf2-112e-4a68-89d2-e4248597c732
sdnKey
Example: f8e188e8af0b8b414be59c4a1a15cc666c898fb34d94156e9b51e18bfde754a5
application
Example: Listing Creator Application
context
Represents an array even if there is only a single element.
Example:
[
{
"copyright":"©2019-2024 Lesswing, LLC",
"payload":
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"PropertyRooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
},
],
},
"beneficiaryReserve": .0002,
"beneficiary":
[
"0x32f87751e3dec86b"
],
"onMarket": true
}
]
UpAdd Participant Request
requestor
Example: 0x41f87751e7dec89f
sdnRegistration
Example: b5e30392-492c-4f43-ad65-78880c7eac42
sdnKey
Example: b5e30392-492c-4f43-ad65-78880c7eac42
context
Represents an array even if there is only a single element.
Example:
[
{
"participant": "0x41f87751e7dec89f",
"firstName" : "Joe",
"lastName" : "Schmoe",
"organization" : "Scarab Properties",
"mobile" : "888.555.1212",
"email" : "joe@schmoe.com",
"role" : "Owner Representative",
"verifyTimestamp": "2023-12-10T19:22:02Z"
}
]
requestor
Example: 0x41f87751e7dec89f
sdnRegistration
Example: cb8e4cf2-112e-4a68-89d2-e4248597c732
sdnKey
Example: f8e188e8af0b8b414be59c4a1a15cc666c898fb34d94156e9b51e18bfde754a5
importFile
The name of the csv-formatted file to read.
jobName
The name of the job to use to package batch documentation.
batchCount
The number of batches submitted.
recordsRead
The number raw records read from the batch.
recordsFiltered
The number raw records that were rejected before applying Data Assurance procedures.
recordsEvaluated
The number records that will be evaluated with Data Assurance procedures. This value whould be equal to the records read minus the warning count.
recordsSubmitted
The number that passed Data Assurance procedures.
recordsRejected
The number that were rejected for failing Data Assurance procedures.
filteredRecords
An Array of record identifiers (row numbers from the input file) that were filtered.
timestamp
Example: "2023-12-10T19:22:02Z"
filePath
The path to the input file. Example: ./imports/tiny.csv"
maxBatchSize
The maximum number of items in a batch.
@reso.context
Example: "urn:reso:metadata:2.0:resource:property"
UniversalPropertyId
Example: urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:
ListingId
Example: 2e3a3c5b-1488-4813-8c5b-9f932fbac8ec
BathroomsTotalInteger
Example: "2"
BedroomsTotal
Example: "3"
ListPrice
Example: "$340,000"
LivingArea
Example: "3,100"
SyndicationRemarks
Example: "Rural retreat with access to services."
Country
Example: "CA"
StateOrProvince
Example: "YT"
City
Example: "Dawson City"
PostalCode
Example: "Y0B 1G0"
StreetName
Example: "Bayshore Rd."
StreetNumber
Example: "1803"
UnparsedAddress
Example: "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA"
ShowingInstructions
Example: "Dog in the backyard is territorial"
AccessCodes
Example: "678678678"
OccupantType
Example: "Vacant"
Appliances
Example: ["Refrigerator", "Dish Washer", "Gas Cooktop", "Double Oven", "Water Softener", "Wine Cooler"]
InteriorFeatures
Example: ["Beamed Ceilings", "Granite Counters", "Open Floorplan"]
Concessions
Example: "Y"
ConcessionsComments
Example: "$1,000 towards new roof"
Furnished
Example: "Negotiable"
PreviousListPrice
Example: "$349,500"
Inclusions
Example: "Yard Tractor"
Fencing
Example: ["Invisible", "Chain Link"]
LaundryFeatures
Example: ["Main Level", "Gas Dryer Hookup", "Washer Hookup"]
ParkingFeatures
Example: ["Garage", "Workshop in Garage"]
AttachedGarageYN
Example: "Y"
GarageSpaces
Example: "3"
HomeWarrantyYN
Example: "Y"
StandardStatus
Example: "Active"
PropertyType
Example: "Residential"
Heating
Example: ["Forced Air", "Radiant Floor"]
HeatingYN
Example: "Y"
Levels
Example: "Two"
ExteriorFeatures
Example: ["Garden", "Gas Grill", "RainGutters"]
PropertyRooms
Example:
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
]
Media
Example:
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
participant
Example: 0x41f87751e7dec89f
host
Example: www.lesswing.com
port
Example: 8080
method
Example: /callback
useTLS
Example: true
MediaUrl
Example: "©2024 Scarab Properties" Default: "©2019-2024 Lesswing, LLC"
MediaType
Example: "png"
ShortDescription
Example: "Street view"
participant
Example: 0x41f87751e7dec89f
firstName
Example: Joe
lastName
Example: Schmoe
organization
Example: Scarab Properties
mobile
Example: 888.555.1212
email
Example: joe@schmoe.com
role
Example: Owner Representative
verifyTimestamp
Example: 2016-08-29T09:12:33.001Z
RoomType
Example: "Kitchen"
RoomDimensions
Example: "20x30"
RoomFeatures
Example: [ "Kitchen Island","Pantry","Granite Counters" ]
scope
Example: "http://localhost:8081/captureEvent"
url
Example: "http://localhost:8083/captureEvent"
reference
Example: "http://localhost:8081/captureEvent"
mode
Example: "http://localhost:8081/captureEvent"
ids
Example:
[
'2e3a3c5b-1488-4813-8c5b-9f932fbac8ac',
'2e3a3c5b-1488-4813-8c5b-9f932fbac8bc'
]
copyright (optional)
Example: "©2024 Scarab Properties" Default: "©2019-2024 Lesswing, LLC"
sdnRegistration (optional)
Example: "b5e30392-492c-4f43-ad65-78880c7eac42"
payload
Example:
{
"participant": "0x41f87751e7dec89f",
"firstName" : "Joe",
"lastName" : "Schmoe",
"organization" : "Scarab Properties",
"mobile" : "888.555.1212",
"email" : "joe@schmoe.com",
"role": "Owner Representative",
verifyTimestamp: "2023-12-10T19:22:02Z"
}
eventTyoe
Example: AddProperty
system (optional)
Example: Broker Front Office
subjectType
Example: Listing
eventSubject
entity
Example: Listing Agent
eventRecorder
Example: 0x41f87751e7dec89f
timestamp
Example: 2023-12-10T19:22:02Z
version
Example: 0.9.5
application (optional)
Example: Listing Creator Application
context
[Array of String] format: JSON string
success
Example: true
UpResidential Advertisment
copyright
Example: "©2024 Scarab Properties" Default: "©2019-2024 Lesswing, LLC"
payload
Example:
{
"@reso.context": "urn:reso:metadata:2.0:resource:property",
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
}
onMarket
Example: true
copyright
Example: "©2024 Scarab Properties" Default: "©2019-2024 Lesswing, LLC"
payload
Example:
{
"UniversalPropertyId": "urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:",
"ListingId": "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec",
"BathroomsTotalInteger": "2",
"BedroomsTotal": "3",
"ListPrice": "$340,000",
"LivingArea": "3,100",
"SyndicationRemarks": "Rural retreat with access to services.",
"Country": "CA",
"StateOrProvince": "YT",
"City": "Dawson City",
"PostalCode": "Y0B 1G0",
"StreetName": "Bayshore Rd",
"StreetNumber": "1803",
"UnparsedAddress": "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA",
"ShowingInstructions": "Dog in the backyard is territorial.",
"AccessCodes": "678678678",
"OccupantType": "Vacant",
"Appliances":
[
"Refrigerator",
"Dish Washer",
"Gas Cooktop",
"Double Oven",
"Water Softener",
"Wine Cooler"
],
"Interior Features":
[
"Beamed Ceilings",
"Granite Counters",
"Open Floorplan"
],
"Consessions": "Y",
"ConsessionsComments": "$1,000 towards new roof",
"Furnished": "Negotiable",
"PreviousListPrice": "$349,500",
"Inclusions": "Yard Tractor",
"Fencing":
[
"Invisible",
"Chain Link"
],
"LaundryFeatures":
[
"Main Level",
"Gas Dryer Hookup",
"Washer Hookup"
],
"ParkingFeatures":
[
"Garage",
"Workshop in Garage"
],
"AttachedGarageYN": "Y",
"GarageSpaces": "3",
"HomeWarrantyYN": "Y",
"StandardStatus": "Active",
"PropertyType": "Residential",
"Heating":
[
"Forced Air",
"Radiant Floor"
],
"HeatingYN": "Y",
"Levels": "Two",
"ExteriorFeatures":
[
"Garden",
"Gas Grill",
"RainGutters"
],
"Rooms":
[
{
"RoomType": "Master Bedroom",
"RoomDimensions": "20x20",
"RoomFeatures":
[
"Walk-in Closet(s)",
"Crown Moulding"
]
},
{
"RoomType":"Kitchen",
"RoomDimensions":"20x30",
"RoomFeatures":
[
"Kitchen Island",
"Pantry",
"Granite Counters"
]
}
],
"Media":
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
}
beneficiaryReserve
Example: .0002
beneficiary
Example:
[
"0x32f87751e3dec86b",
"0x56887751e3acg72a"
}
]
onMarket
Example: true
EntityEventSequence
Example: "1706369090000"
ResourceName
Example: "Property"
ResourceRecordKey
Example: "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec"
eventType
Example: "SDN-AddListing"
system
Example: "Square Deal Network"
subjectType
Example: "Listing"
eventSubject
Example: "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec"
recorderType
Example: "SDN Provider"
eventRecorder
Example: "0x6147d415c20233f4"
timestamp
Example: "2024-01-26T23:14:14Z"
sequence
Example: "1706369090000"
version
Example: "1.7"
application
Example: "SquareDealNetworkParticipant001"
context
UpSDN_DirectoryParticipant
sdnDirectoryAddress
Example: 0x74bc0c279c6bec86
sdnDirectoryContract
Example: "SquareDealNetworkDirectory001"
sdnParticipantAddress
Example: 0xa6357ae9cc074fba
ListingId
Example: "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec"
blockTimestamp
Example: 2016-08-29T09:12:33.001Z
requestorAddress
Example: 0xa6357ae9cc074fba
requestorRegistration
Example: 0xa6357ae9cc074fba
sdnParticipantAddress
Example: 0xa6357ae9cc074fba
sdnParticipantContract
Example: "SquareDealNetworkParticipant001"
sdnParticipantRegistration
Example: 0xa6357ae9cc074fba
ListingId
Example: "2e3a3c5b-1488-4813-8c5b-9f932fbac8ec"
onMarket
Example: "True"
reference
Example: "Client Portfolio #14"
remark
Example: "You should see this!"
sdnParticipantAddress
Example: 0xa6357ae9cc074fba
sdnParticipantContract
Example: "SquareDealNetworkParticipant001"
sdnParticipantRegistration
Example: 0xa6357ae9cc074fba
UniversalPropertyId
Example: US-17089-66716-0920177002-R-N
@reso.context
Example: "urn:reso:metadata:2.0:resource:property"
UniversalPropertyId
Example: urn:reso:upi:2.0:country:US:stateorprovince:CA:county:06037:subcounty::propertytype:Residential:subpropertytype::parcelnumber: [abc] 1-2 :: 3:456 :subparcelnumber:
ListingId
Example: 2e3a3c5b-1488-4813-8c5b-9f932fbac8ec
BathroomsTotalInteger
Example: "2"
BedroomsTotal
Example: "3"
ListPrice
Example: "$340,000"
LivingArea
Example: "3,100"
SyndicationRemarks
Example: "Rural retreat with access to services."
UnparsedAddress
Example: "1803 Bayshore Rd, Dawson City, YT Y0B 1G0 CA"
Media
Example:
[
{
"MediaUrl": "https://tinyurl.com/4fs4bewd",
"MediaType": "png",
"ShortDescription" : "Street view",
},
{
"MediaUrl": "https://tinyurl.com/5n9xxzs6",
"MediaType": "png",
"ShortDescription" : "Kitchen",
}
]
Can be either the "true" or "false" string.
A string-formatted ISO 8601 date and time.
Numeric value of the number of seconds since epoch..
A 64 character (4096-bit) string such as "f8e188e8af0b8b414be59c4a1a15cc666c898fb34d94156e9b51e18bfde754a5".
Number of units of cryptocurrency.
The RESO Universal Property Identifier.
A Uniform Resource Locator conforming to RFC 3986.
A 128-bit primitive generated with UUID Version 4 such as "cb8e4cf2-112e-4a68-89d2-e4248597c732".
A 16 character hexidecimal primitive string.