DARWIN API DOCUMENTATION
(last updated: 05-11-2021)
What is the Darwin API
The Darwin API is a RESTful API that allows third party vendors and customers to connect and consume data from the Darwin system in the same way the Darwin software does it.
At this moment the Darwin API allows just to consume data and not to submit/ write/ update data. We will allow that in future versions.
Connecting to the Darwin API
ClientID and clientSecret
In order to connect and consume data from the Darwin API, three things are needed:
- ClientID and clientSecret (issued for each 3rd party vendor / integrator)
- Company API Key (issued for each client database to pull data from)
- Username and password (issued for each client database to pull data from)
Please contact accountTECH team to get enroll as a 3rd party integrator vendor and get issued a clientID and a clientSecret.
Company API Key, username and password
These 3rd party credentials will get you signed up as an integrator but will not get you access to any customer database yet. In order to gain access to any customer database, please contact the customer and request the company API Key, which will be available in the Darwin software if logged in with admin access. You would need to request to be issued a username and password as well.
Pulling data from the Darwin API
Once all these values are obtained, you are ready to connect to the Darwin API. You need to do the following steps:
- First, invoke the authentication endpoint using the clientId, clientSecret, company API Key, username and password. If successfully done, and token value will be retrieved in response
- You need to save this token and use it to invoke any other endpoint in the Darwin API
- This token will have a duration of 24 hours and then it will expire and a new token needs to be generated
Long-lasting tokens
Regular generated tokens in Darwin API expire in 24 hours. However, AccountTECH can setup certain credentials to be able to generate long-lasting tokens, which will have a duration of 1 year. This is useful for 3rd party integrators. Contact AccountTECH team to get setup with long-lasting-token-generating credentials,
Be aware that all credentials have an expiration of 42 days (regular ones are long-lasting-token-generating ones). After that period of days, you need to create a new password by getting into Darwin software.
If you have been issued long-lasting-token-generating credentials and after 42 days, you have not yet generated a long-lasting token, then you will need to setup a new password by getting into Darwin software as well.
Available endpoints
Authentication login endpoint
Request:
Method:
POST
URL:
https://darwin.api.transactionplan.com/api/auth/login/{userName}
Headers:
Content-Type |
application/json |
Client_id |
This represents the ID of 3rd party client application accessing the darwin API. This will be provided by AccountTECH to the 3rd party client.
Client needs to be encoded with base64 for using in the Darwin API
|
Client_secret |
This represents the password of 3rd party client application accessing the darwin API. This will be provided by AccountTECH to the 3rd party client.
Client_secret needs to be encoded with base64 for using in the Darwin API
|
api_key |
This represents a secret GUID value provided by AccountTECH to the 3rd party client in order to access its data. This can be changed by the client from within the Darwin UI as needed.
API_key needs to be encoded with base64 for using in the Darwin API
|
Content-Type |
application/json
|
Client Device |
(optional) This is a value the 3rd party client creates as an extra security layer for authentication. On the first request we received, AccountTECH will store this value and ask the client to properly authorize it via an email to will get sent to the client’s owner email address on file. Once approved, authentication will be granted
Client device needs to be encoded with base64 for using in the Darwin API
|
Body:
{
"userName": "{type username here}",
"userPassword": "{type password here}",
}
Response:
A JSON Object will be retrieved. If authentication is successful, the following response will be retrieved:
{
"userId": 3139,
"fullName": null,
"firstName": "Administrator",
"lastName": "Mason",
"agentId": null,
"userName": "atMason",
"email": "[email protected]",
"databaseId": 4,
"token": "B59E189F-5040-4679-9B2E-33D3D85E6095",
"tokenExpiration": "8/1/2018 5:14:24 PM",
"createDate": null,
"createdBy": null,
"modifyDate": null,
"modifyBy": null,
"lastPasswordDate": "2018-07-18T15:24:40.18",
"expPasswordDate": null,
"firstLogin": false,
"passwordExpired": false,
"locked": false,
"lockedDate": null,
"userRoles": [
{
"userRoleId": 9,
"userId": 3139,
"roleId": 2,
"roleName": null,
"system": "1",
"createDate": null,
"createdBy": null,
"modifyDate": null,
"modifyBy": null
},
{
"userRoleId": 125,
"userId": 3139,
"roleId": 5,
"roleName": null,
"system": "1",
"createDate": null,
"createdBy": null,
"modifyDate": null,
"modifyBy": null
}
],
"userCompanies": null,
"userOffices": null,
"userGLAccounts": null
}
If Login does not succeed, a JSON object with one of the following errors will be retrieved:
Response type |
Description |
UnauthorizedException.reasonType.InvalidCredentials |
username and/or password invalid |
UnauthorizedException.reasonType.UserAccountLocked |
Account is locked |
UnauthorizedException.reasonType.PasswordExpired |
Password has expired |
UnauthorizedException.reasonType.ClientIDHeaderNotPresent |
No clientID header sent in the request |
UnauthorizedException.reasonType.ClientSecretHeaderNotPresent |
No client Secret sent in the request |
UnauthorizedException.reasonType.ClientCredentialsInvalid |
Invalid clientID and/or client Secret |
UnauthorizedException.reasonType.IPInvalid |
IP is not authorized |
UnauthorizedException.reasonType.NoCompanies |
No companies are authorized for this user |
UnauthorizedException.reasonType.FirstLogin |
Reset password is needed before login |
UnauthorizedException.reasonType.ApiKeyHeaderNotPresent |
Api Key has not been sent in the request |
UnauthorizedException.reasonType.ApiKeyNotFound |
Api key is invalid |
UnauthorizedException.reasonType.UnauthorizedDevice |
Client Device is invalid |
UnauthorizedException.reasonType.PendingAuthorization (for device) |
Device is pending to be authorized by the owner |
UnauthorizedException.reasonType.AuthorizationDenied (for device) |
Device has been rejected permissions |
The user account has been locked. Contact with your administrator. |
Samples:
Here are some implementation samples:
HTTP Request
POST /api/auth/login/TypeUserNameHere HTTP/1.1
Host: darwin.api.transactionplan.com
Client_id: insert client id here encoded in base64
Client_secret: insert client secret here encoded in base64
api_key: insert api key here encoded in base 64
Content-Type: application/json
Cache-Control: no-cache
{ "userName": "type user name here", "userPassword": "type password here" }
NodeJS (Request)
var request = require("request");
var options = { method: 'POST',
url: 'https://darwin.api.transactionplan.com/api/auth/login/type user name here',
headers:
{ 'cache-control': 'no-cache',
'content-type': 'application/json',
api_key: 'type api key here encoded in base 64',
client_secret: 'type client secret here encoded in base64',
client_id: 'type client id here encoded in base 64' },
body: { userName: 'type username here', userPassword: 'type password here' },
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
Jquery (AJAX)
var settings = {
"async": true,
"crossDomain": true,
"url": "https://darwin.api.transactionplan.com/api/auth/login/type username here",
"method": "POST",
"headers": {
"client_id": "type client id here encoded in base 64",
"client_secret": "type client secret here encoded in base 64",
"api_key": "type the api key here encoded in base 64",
"content-type": "application/json",
"cache-control": "no-cache"
},
"processData": false,
"data": "{ \"userName\": \"type username here\", \"userPassword\": \"type password here\" } "
}
$.ajax(settings).done(function (response) {
console.log(response);
});
JAVA
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{ \"userName\": \"type user name here\", \"userPassword\": \"type password here\" } ");
Request request = new Request.Builder()
.url("https://darwin.api.transactionplan.com/api/auth/login/type username here")
.post(body)
.addHeader("client_id", "type client id here encoded in base64")
.addHeader("client_secret", "type client secret here encoded in base64")
.addHeader("api_key", "type api key here encoded in base64")
.addHeader("content-type", "application/json")
.addHeader("cache-control", "no-cache")
.build();
Response response = client.newCall(request).execute();
C#
var client = new RestClient("https://darwin.api.transactionplan.com/api/auth/login/type username here");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("api_key", "type api key here encoded in base64");
request.AddHeader("client_secret", "type client secret here encoded in base64");
request.AddHeader("client_id", "type client id secret here encoded in base64");
request.AddParameter("application/json", "{ \"userName\": \"type username here\", \"userPassword\": \"type password here\" } ", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Property report endpoint
Request:
Method:
GET
URL:
https://darwin.api.transactionplan.com/api/propertyreport?{querystringParams}
Headers:
Authorization |
This is value generated with 2 components:
“Basic {userName:token}”
The Token will be issued to the user after a successful authentication (used can get it from the LOGIN endpoint response when this succeeds)
This 2-value string needs to be encoded to base64
|
Body:
None
Query string parameters:
Parameter |
Type |
Description |
propertyId |
Optional |
This is the unique identifier of the property |
showBasicInfo |
Optional |
Retrieves fields from the Darwin Property Basics section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showAgentNetList |
Optional |
Retrieves fields from the Darwin Property Agent Net List section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showAgentNetSell |
Optional |
Retrieves fields from the Darwin Property Agent Net Sell section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showSellerInfo |
Optional |
Retrieves fields from the Darwin Property Seller Info section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showBuyerInfo |
Optional |
Retrieves fields from the Darwin Property Buyer Info section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showFeatures |
Optional |
Retrieves fields from the Darwin Property Features section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showRemarks |
Optional |
Retrieves fields from the Darwin Property Remarks section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showrooms |
Optional |
Retrieves fields from the Darwin Property Rooms section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showMedia |
Optional |
Retrieves fields from the Darwin Property Media section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showOpenHouses |
Optional |
Retrieves fields from the Darwin Property Open Houses section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showShowings |
Optional |
Retrieves fields from the Darwin Property Showings section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showTasks |
Optional |
Retrieves fields from the Darwin Property Tasks section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showDocuments |
Optional |
Retrieves fields from the Darwin Property Documents section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
show3rdPartyPayments |
Optional |
Retrieves fields from the Darwin Property 3rd Party payments section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showReimbs |
Optional |
Retrieves fields from the Darwin Property Reimbursement section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showReferrals |
Optional |
Retrieves fields from the Darwin Property Referral section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section |
showExtraVouchers |
Optional |
Retrieves fields from the Darwin Property Extra vouchers section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showOverrides |
Optional |
Retrieves fields from the Darwin Property Overrides section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showAccounting |
Optional |
Retrieves the related accounting data generated when the property was posted (closed) in Darwin. Includes: invoice, vouchers, AP Payments, AR Payments and deposits
NOTE: see JSON response example for a complete list of fields in this section |
showPeople |
Optional |
Retrieves fields from the Darwin Property People section (attorneys, home inspectors, appraisers, ecc.).
Possible values are 1 or 0.
If this parameter is not provided, 0 will be assumed
|
showDeleted |
Optional |
Determines whether or not to retrieve properties that have been removed from Darwin (useful for incremental updates).
Possible values are 1 or 0.
If this parameter is not provided, 0 will be assumed
|
showFinancing |
Optional |
Retrieves the financing information of the property in a section called Property Financing Info section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section |
showCustomFields |
Optional |
Retrieves the custom fields information of the property in a section called Property Custom Field Info section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
statusToShow |
Optional |
Used to filter the results to only retrieve properties in certain statuses. It could be a list of status codes separated by commas
Example ‘AC, CL’
IF nothing is passed, it will retrieve all properties with no status filter.
|
providerType |
Optional |
Used to filter properties that were brought into the Darwin system by a specific provider (eRELO, dotLoop o skypeSlope)
eRELO, dotLoop and skyslope are the only ones supported so far.
|
personProviderType |
Optional |
Used to filter properties whose buyers or sellers have been brought into the Darwin system by a specific provider (eRELO dotLoop and skySlope)
eRelo, dotLoop and skySlope are the only ones supported so far.
|
dateType |
Optional |
Determines what date field to use to apply a date range filter on.
|
dateStart |
Optional |
Start date of the date range filter using the date Type stablish in the DateType parameter.
Required when dateType <>0
|
dateEnd |
End date of the date range filter using the date Type stablish in the DateType parameter.
Required when dateType <>0
|
|
pageSize |
Optional |
Determines the number of properties that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageIndex |
Optional |
Represents the page number that will be retrieved. Starts in zero.
If nothing is passed, it will assume page zero.
If -1 is passed, it will retrieve all records at once
|
officeID |
Optional |
Darwin internal ID of the office to filter on (you can find this ID logging into Darwin application).
If not passed, properties from all offices will be retrieved.
If an Id is passed, any property whose any of its agents belong to the given office will be retrieved
If used together with the companyID parameter, it will retrieve all properties within a given office within a given company
|
companyID |
Optional |
Darwin internal ID of the company (legal entity) to filter on.
If not passed, properties from all legal entities will be retrieved.
If used together with the officeID parameter, it will retrieve all properties within a given office within a given company
|
listOffice |
Optional |
The name of the list side office in any given property. This name must match the one in Darwin.
If used, it will filter the results to only show properties that has this value as the list office |
sellOffice |
Optional |
The name of the sell side office in any given property. This name must match the one in Darwin.
If used, it will filter the results to only show properties that has this value as the sell office |
listAgent |
Optional |
the full name of the list agent as it appears in Darwin.
If used, it will filter the results to only show properties that has this agent as the list agent
|
sellAgent |
Optional |
the full name of the sell agent as it appears in Darwin.
If used, it will filter the results to only show properties that has this agent as the sell agent |
sellerSendSurveyDelivery |
Optional |
Filters the results to only retrieve properties with sellers with the send survey flag enabled (1) or disabled (0).
If not used (when this parameters is empty), it will be used as a filter Possible values are 1 or 0.
|
buyerSendSurveyDelivery |
Optional |
Filters the results to only retrieve properties with buyers with the send survey flag enabled (1) or disabled (0).
If not used (when this parameters is empty), it will be used as a filter Possible values are 1 or 0.
|
Response:
JSON Object string:
[
{
"propertyId": 9924,
"propertyAddress": "0 Jewel Ln, Rifle, CO 81650",
"mlsNumber1": "152041",
"feedID": null,
"modifyDate": "2018-11-11 09:00.00",
"createDate": "2018-11-11 09:00.00",
"createdBy": "dwinner",
"deleteDate": "2018-12-11 09:00.00",
"deletedBy": "mark",
"propertyBasicInfo": [
{
"propertyId": 9924,
"company": "mason company 1 test",
"city": "Rifle",
"state": "CO",
"zip": "81650",
"trType": "IH",
"statusLocked": false,
"status": "Closed",
"mlsNumber2": "",
"commissionPrice": 1000000,
"sellingPrice": 1000000,
"listingPricePrior": null,
"listingPrice": 1120000,
"ourSell": true,
"ourList": true,
"alternateListOffice": null,
"alternateSellOffice": null,
"excludeFromSubmission": false,
"excludeDuplicate": false,
"hideListPriceOnWeb": false,
"showOnInternet": true,
"showPriceOnInternet": false,
"excludeList": false,
"excludeSell": false,
"forclosure": false,
"shortSale": false,
"listDate": "2017-12-30T00:00:00",
"expiredDate": "2018-12-31T00:00:00",
"withdrawnDate": null,
"pendingDate": "2018-03-02T00:00:00",
"estimatedClosingDate": "2018-06-30T00:00:00",
"cancelDate": null,
"closingDate": "2018-05-08T00:00:00",
"processedDate": "2018-06-15T12:04:49.143",
"modifyDate": "2018-07-30T11:22:32.077",
"qaControl1": "",
"qaControl2": "2-2018-1623",
"brokerReferenceNo": "",
"escrowNo": "",
"additionalincome": 0,
"cancelReason": null,
"financingType": null,
"classification": "RESIDENTIAL LAND",
"propertyType": "Land -Agricultural (Not Zoned)",
"propertyUse": "Owner Occupied",
"development": "Apple Glen Townhomes",
"neigborhoodName": "",
"propertyLocation": "",
"subDivision": "sub division",
"levelsCount": "",
"transportation": "",
"bedrooms": "",
"fullBaths": "",
"threeQuarterBathsTotal": "",
"halfBathsTotal": "",
"quarterBathsTotal": "",
"squareFeet": "0",
"numberOfAcres": "512",
"lotSize": "",
"lastSoldDate": null,
"yearBuilt": "0",
"taxYear": "2017",
"taxRollNumber": "",
"annualTaxes": "2977.76",
"transactionID": null,
"eRELOID": null,
"dotLoopID": null,
"mlsListingRID": null,
"skySlopeID": null,
"feedId": null,
“trans1”: 100,
“trans2”: 200
}
],
"propertyAgentListInfo": [
{
"propertyDeductionID": 6113,
"propertyId": 9924,
"OfficeID": 323,
"OfficeName": “Boston”,
"personID": 31,
"person": "James Bineau",
"personType": "Agent",
"personActive": true,
"side": "L",
"columnNumber": 1,
"feedId": null,
"grossPercent": 0,
"grossCommission": 0,
"deduct1Flat": false,
"deduct1Amount": 0,
"deduct2Flat": false,
"deduct2Amount": 300,
"deduct3Flat": false,
"deduct3Amount": 0,
"deduct4Flat": false,
"deduct4Amount": 0,
"deduct5Flat": false,
"deduct5Amount": 0,
"deduct6Flat": false,
"deduct6Amount": 0,
"deduct7Flat": false,
"deduct7Amount": 0,
"deduct8Flat": false,
"deduct8Amount": 0,
"deduct9Flat": false,
"deduct9Amount": 0,
"deduct10Flat": false,
"deduct10Amount": 0,
"deduct11Flat": false,
"deduct11Amount": 0,
"deduct12Flat": false,
"deduct12Amount": 0,
"regionalPercent": 40,
"netCommission": -300,
"billDeductFlat": false,
"billDeductAmount": 0,
"thirdPartyAmount": 0,
"finalSplitPercent": 0,
"ignoreOffset": null,
"companyDollar": 7430.3,
"createDate": "2018-04-27T19:30:58.283",
"createdBy": "sa",
"modifyDate": "2018-07-30T11:22:27.8",
"modifyBy": "atMason"
},
],
"propertyAgentSellInfo": [
{
"propertyDeductionID": 10199,
"propertyId": 9924,
"OfficeID": 323,
"OfficeName": “Boston”,
"personID": 31,
"person": "James Bineau",
"personType": "Agent",
"personActive": true,
"side": "S",
"columnNumber": 1,
"feedId": null,
"grossPercent": 1,
"grossCommission": 28500,
"deduct1Flat": false,
"deduct1Amount": 1710,
"deduct2Flat": false,
"deduct2Amount": 300,
"deduct3Flat": false,
"deduct3Amount": 0,
"deduct4Flat": false,
"deduct4Amount": 794.7,
"deduct5Flat": false,
"deduct5Amount": 0,
"deduct6Flat": false,
"deduct6Amount": 2565,
"deduct7Flat": false,
"deduct7Amount": 0,
"deduct8Flat": false,
"deduct8Amount": 0,
"deduct9Flat": false,
"deduct9Amount": 0,
"deduct10Flat": false,
"deduct10Amount": 0,
"deduct11Flat": false,
"deduct11Amount": 5700,
"deduct12Flat": false,
"deduct12Amount": 0,
"regionalPercent": 100,
"netCommission": 17430.3,
"billDeductFlat": null,
"billDeductAmount": 0,
"thirdPartyAmount": 0,
"finalSplitPercent": null,
"ignoreOffset": null,
"companyDollar": 7430.3,
"createDate": "2018-04-27T19:30:59.07",
"createdBy": "sa",
"modifyDate": "2018-07-06T18:50:20.21",
"modifyBy": "atMason"
}
],
"propertyBuyerInfo": [
{
"propertyPeopleId": 25183,
"propertyID": 9924,
"personType": "BUYER",
"personID": 8872,
"side": "S",
"personTypeID": 4,
"personName": "- Evans",
"emailAddress": null,
"mailingAddress": "",
"cityStateZip": "",
"phoneBusiness": null,
"leadGeneratedBy": null,
"leadSource": "Call in Listing",
"division": null
}
],
"propertySellerInfo": [
{
"propertyPeopleId": 25182,
"propertyID": 9924,
"personType": "SELLER",
"personID": 8931,
"side": "L",
"personTypeID": 4,
"personName": "340 Faas LLC",
"emailAddress": "",
"mailingAddress": "340 Faas Ranch Rd ",
"cityStateZip": "New Castle, CO 81647",
"phoneBusiness": null,
"leadGeneratedBy": null,
"leadSource": null,
"division": null
},
],
"propertyPeopleInfo": [
{
"propertyId": 25182,
"personId": 8197,
"personName": “Remax Boston Properties Inc.”,
"personType": "CoBroke Office",
"side": "L",
"address": "758 Main St. MA 02421",
"emailAddress": "[email protected]",
"phoneNumber": null
}
],
"propertyAcountingInfo": [
{
"propertyId": 25182,
"docType": “voucher:,
"docId": 23500,
"orderDate": "2015-10-14T00:00:00",
"amountTotal": 515.15,
"personId": 45,
"personName": "justin Goodman",
"sourcePost": null,
"description": “comission”
}
],
“propertyFinancingInfo”: [
{
“propertyId“:”25182”,
“financeType“:”Bank”,
“loanRate“:”12%”,
“loanAmount“:”250000”,
“checkNumber”: “101”
}
],
“propertyCustomFieldInfo”: [
{
“customFieldId“:”8”,
“propertyId“:”25182”,
“fieldId“:”68”,
“fieldLabel“:”sample prop custom 1”,
“fieldValue”: “test 1”,
“fieldName”: “PROPERTY_CUSTOM_FIELD1”
}
],
"propertyFeaturesInfo": [],
"propertyRemarksInfo": [],
"propertyRoomsInfo": [],
"propertyMediaInfo": [],
"propertyOpenHousesInfo": [],
"propertyShowingsInfo": [],
"propertyTasksInfo": [],
"propertyDocumentsInfo": [],
"propertyThirdPartyPaymentsInfo": [],
"propertyReimbsInfo": [],
"propertyReferralsInfo": []
}
]
Quickbooks endpoint
Request:
Method:
GET
URL:
https://darwin.api.transactionplan.com/api/quickbook?{date}
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Query string parameters:
Parameter |
Type |
Description |
companyID |
Optional |
Id of the company (legal entity) to filter the data by
If not passed, data from all companies will be retrieved |
Response:
JSON Array string
[
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "4-5010",
"accountDescription": "ACH Income",
"credit": 1200,
"debit": 0,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
},
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "4-7003",
"accountDescription": "Credit Card Fee Income",
"credit": 936,
"debit": 0,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
},
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "6-1001",
"accountDescription": "Agent Personal exp",
"credit": 52,
"debit": 0,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
},
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "6-8220",
"accountDescription": "Premier Bundle Credit Only",
"credit": 500,
"debit": 0,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
},
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "8-2500",
"accountDescription": "Misc Income",
"credit": 1170,
"debit": 0,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
},
{
"companID": 33,
"id": "SI43238",
"jounalDate": "2017-11-24T00:00:00",
"accountNumber": "1-1202",
"accountDescription": "AT Agent Receivable",
"credit": 0,
"debit": 3858,
"description": "Dana Mount",
"class": "Broad Avenue",
"type": "Agent",
"postedDate": "2017-11-24T16:46:02.66",
"modifyDate": "2017-11-24T16:46:02.863",
"deleteDate": "2017-11-24T16:42:04.043",
"action": "DELETE"
}
]
Person report endpoint
Request:
Method:
GET
URL:
https://darwin.api.transactionplan.com/api/personreport?{querystringParams}
Headers:
Authorization |
This is value generated with 2 components:
“Basic {userName:token}”
The Token will be issued to the user after a successful authentication (user can get it from the LOGIN endpoint response when this succeeds)
This 2-value string needs to be encoded to base64
|
Body:
None
Query string parameters:
Parameter |
Type |
Description |
showAddresses |
Optional |
Retrieves fields from the Darwin Person / People basics / addresses section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showPhones |
Optional |
Retrieves fields from the Darwin Person / People basics / phone numbers section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showPositions |
Optional |
Retrieves fields from the Darwin Person / Agent basics / positions section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showLicenses |
Optional |
Retrieves fields from the Darwin Person / Agent basics / licences section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showInsurances |
Optional |
Retrieves fields from the Darwin Person / Agent basics / insurances section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showWebProfiles |
Optional |
Retrieves fields from the Darwin Person / Web profile / web profiles section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showLanguages |
Optional |
Retrieves fields from the Darwin Person / Web profile / languages section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showDesignations |
Optional |
Retrieves fields from the Darwin Person / Web profile / designations section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showDeductions |
Optional |
Retrieves fields from the Darwin Person / Commission / deductions section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showTotals |
Optional |
Retrieves fields from the Darwin Person / Commission / totals section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showExpensesToRecover |
Optional |
Retrieves fields from the Darwin Darwin Person / Exp recovery / Expenses to recover section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showExpensesRecovered |
Optional |
Retrieves fields from the Darwin Person / Exp recovery / Expenses already recovered section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showOverrides |
Optional |
Retrieves fields from the Darwin Person / Overrides section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showCustomFields |
Optional |
Retrieves fields from the Darwin Person / Custom fields section. Possible values are 1 or 0.
NOTE: see JSON response example for a complete list of fields in this section
|
showDeleted |
Optional |
Determines whether or not to retrieve person records that have been removed from Darwin (useful for incremental updates).
Possible values are 1 or 0.
If this parameter is not provided, 0 will be assumed
|
personType |
Optional |
A text value that determines what type of person records will be retrieved (Ex. Agent, Payee, ecc.) |
active |
Optional |
Determines if only active people will be returned.
|
personID |
Optional |
Darwin ID of the person for which data will be retrieved. If not passed, it will not apply this filter
|
dateType |
Optional |
Determines what date field to use to apply a date range filter on. 9. createDate 10. modifyDate
|
dateStart |
Optional |
Start date of the date range filter using the date Type establish in the DateType parameter.
Required when dateType is present
|
dateEnd |
End date of the date range filter using the date Type stablish in the DateType parameter.
Required when dateType is present
|
|
pageSize |
Optional |
Determines the number of properties that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageIndex |
Optional |
Represents the page number that will be retrieved. Starts in zero.
If nothing is passed, it will assume page zero.
If -1 is passed, it will retrieve all records at once
|
Response:
JSON Array string
[
{
"addresses": [
{
"addressId": 2195,
"address": "720 Grand Avenue Glenwood Springs CO 81601",
"personId": 10990,
"addressTypeId": 226,
"addressType": "Mailing",
"streetNumber": null,
"streetDirection": null,
"streetName": "720 Grand Avenue",
"streetDesignation": null,
"streetSuffix": null,
"suiteAptNumber": null,
"buildingFloorNumber": null,
"city": "Glenwood Springs",
"state": "CO",
"zip": "81601",
"country": null,
"nextAddress": false,
"personAddress1": "720 Grand Avenue ",
"personAddress2": "Glenwood Springs, CO 81601",
"createDate": "2018-04-27T19:30:52.443",
"createdBy": "sa",
"modifyDate": "2018-04-29T07:19:02.923",
"modifyBy": "saMason"
}
],
"phones": [
{
"personPhoneId": 338,
"personId": 11,
"phoneTypeId": 110,
"phoneType": "Business",
"phoneTypeCode": "2",
"phoneNumber": "9709633300",
"phoneExtension": "",
"createDate": "2018-04-27T19:30:53.387",
"createdBy": "sa",
"modifyDate": null,
"modifyBy": null
}
],
"positions": [
{
"positionId": 602,
"personId": 22233,
"officeId": 2,
"officeName": "Basalt",
"companyId": 1,
"companyName": "Mason Morse Real Estate Legal",
"titleId": 423,
"titleName": "Sales Associate",
"positionGuid": "644f8dfd-e60b-46c9-94f4-8fe6753a3328",
"activeDate": "2019-06-06T18:33:19.68",
"deactivateDate": null,
"createDate": "2019-06-06T18:33:19.68",
"createdBy": "atMason",
"modifyDate": "2019-06-06T19:13:23.913",
"modifyBy": "DEV\\luis",
"isFulltime": false
}
],
"licenses": [
{
"personLicenseId": 2,
"personId": 11,
"licenseTypeId": 277,
"licenseTypeName": "Sales Associate",
"state": "CO",
"licenseNumber": "FA.100070912",
"issuedDate": "2016-09-28T00:00:00",
"expirationDate": "2019-09-28T00:00:00",
"createDate": "2018-04-27T19:30:53.68",
"createdBy": "sa",
"modifyDate": null,
"modifyBy": null
}
],
"insurances": [
{
"personInsuranceId": 1,
"personId": 22242,
"insuranceTypeId": 264,
"insuranceTypeName": "Errors & Omissions",
"expirationDate": "2016-12-31T00:00:00",
"createDate": "2018-04-27T19:30:53.59",
"createdBy": "sa",
"modifyDate": "2019-07-16T11:39:14.75",
"modifyBy": "DEV\\jose"
}
],
"webProfiles": [
{
"personWebProfileId": 207,
"personId": 22233,
"webCategoryId": 479,
"webCategoryName": "Awards",
"paragraphNumber": 1,
"profileText": "aaaa",
"createDate": "2019-06-06T18:50:28.843",
"createdBy": "atMason",
"modifyDate": null,
"modifyBy": null
}
],,
"languages": [
{
"personLanguageId": 6,
"personId": 19761,
"languageId": 7886,
"languageName": "!O!ung",
"createDate": "2019-07-15T18:51:16.37",
"createdBy": "saMason",
"modifyDate": null,
"modifyBy": null
}
],
"designations": [
{
"personDesignationId": 1,
"personId": 22242,
"designationId": 305,
"designationCode": "1",
"designationName": "Accredited Buyer Representative",
"createDate": "2018-04-27T19:30:53.94",
"createdBy": "sa",
"modifyDate": "2019-07-15T14:13:34.237",
"modifyBy": "DEV\\jose"
}
],
"deductions": [
{
"personDeductionId": 99,
"personId": 22233,
"deductionId": 1,
"deductionCode": "deduct1",
"deductionName": "Royalty",
"amount": 0.0,
"amountCAP": 0.0,
"percentage": 0.0,
"maxAmount": 0.0,
"maxPercentage": 0.0,
"percentageTerminatedDate": null,
"createDate": "2019-06-06T18:51:10.64",
"createdBy": "atMason",
"modifyDate": "2019-06-06T18:51:55.043",
"modifyBy": "atMason"
}
],
"totals": [
{
"personTotalId": 271,
"personId": 22242,
"totalId": 36,
"totalName": "Deduct 8 R4Q",
"balance": 0.0,
"isUpdated": false,
"isInCheckTemplate": false,
"createDate": "2019-03-18T12:18:29.48",
"createdBy": "saMason",
"modifyDate": "2019-07-16T11:39:16.05",
"modifyBy": "DEV\\jose"
}
],
"expensesToRecover": [
{
"type": "voucher",
"detailId": 12333,
"id": 10999,
"companyId": 1,
"companyName": "Mason Morse Real Estate Legal",
"amount": 5.0,
"description": "- Wark",
"date": "2018-11-16T00:00:00",
"orderTypeId": 196,
"accountId": 133,
"account": "6-1001 - Agent Personal exp",
"jobId": 178,
"divisionId": 7610,
"reimb": true,
"locked": false,
"deductType": null,
"side": null,
"columnNumber": null,
"propertyId": 0,
"personID": 95
}
],
"expensesRecovered": [
{
"type": "voucher",
"detailId": 12333,
"id": 10999,
"companyId": 1,
"companyName": "Mason Morse Real Estate Legal",
"amount": 5.0,
"description": "- Wark",
"date": "2018-11-16T00:00:00",
"orderTypeId": 196,
"accountId": 133,
"account": "6-1001 - Agent Personal exp",
"jobId": 178,
"divisionId": 7610,
"reimb": true,
"locked": false,
"deductType": null,
"side": null,
"columnNumber": null,
"propertyId": 0,
"personID": 95
}
],
"overrides": [
{
"personOverrideId": 14,
"personAgentId": 22233,
"personAgentName": "Marie Curie",
"overrideTypeId": 626,
"overrideType": "Manager",
"person3rdPartyId": 8017,
"person3rdPartyName": "Aime Marx",
"accountId": 11,
"accountNumber": "1-1145-Cash - Money Market",
"officeId": 2,
"officeName": "Basalt",
"percentage": 0.05,
"amount": 0.0,
"side": null,
"basedOn": " [Net Commission]",
"sortOrder": 0,
"limitAmount": 0.0,
"limitNumber": 0.0,
"limitDate": null,
"leadSourceIDs": null,
"createDate": "2019-06-06T18:53:24.73",
"createdBy": "atMason",
"modifyDate": null,
"modifyBy": null
}
],
"customFields": [
{
"customFieldId": 3,
"personId": 19761,
"fieldId": 78,
"fieldLabel": "custom1",
"fieldValue": "custom value 1"
}
],
"personId": 22233,
"personName": "Marie Curie",
"firstName": "Marie",
"lastName": "Curie",
"companyName": null,
"personTypeId": 1,
"personType": "Agent",
"personAddress": null,
"termId": null,
"emailAddress": null,
"expenseJobId": 716,
"incomeJobId": 717,
"officeId": 2,
"office": "Basalt",
"company": null,
"agentNumber": null,
"contractStartDate": null,
"startDate": null,
"terminatedDate": null,
"reStartDate": null,
"planId": null,
"active": true,
"leadSourceId": null,
"salutationId": null,
"entityTypeId": null,
"leadGeneratedById": null,
"entityName": null,
"sendSurveyFlag": false,
"callToShow": null,
"autoDeposit": null,
"birthDate": null,
"printedName": null,
"middleName": null,
"brandStartDate": null,
"priorOccupationId": null,
"educationLevelId": 282,
"genderType": "F",
"priorAffiliationId": null,
"recruitedByPersonId": null,
"recruitedByPerson": null,
"emergencyPersonId": null,
"emergencyPerson": null,
"coachedByPersonId": null,
"coachedByPerson": null,
"manageByPersonId": null,
"manageByPerson": null,
"employeeId": null,
"customerId": null,
"atPersonId": null,
"tfdId": null,
"anniversaryStartDate": null,
"anniversaryEndDate": null,
"cobrokeOfficePersonId": null,
"cobrokeOfficePerson": null,
"forteClientId": "",
"forteAchId": "",
"forteCcId": "",
"guid": "03e18e35-7d32-4fcd-8b9c-0b5547e7f88d",
"saGuid": "7ccd357e-c75d-45e0-948c-c731c87774c0",
"atguid": "1155C3CD-9414-438F-8F5C-3960925B800B",
"familiarName": null,
"mlsId": null,
"url": null,
"confirmed": null,
"balance": null,
"notes": null,
"referralNotes": null,
"commissionNotes": "",
"referralPercentage": null,
"referralId": null,
"referralBrandId": null,
"referralNetworkId": null,
"referral": null,
"assignedPersonId": null,
"assignedPerson": null,
"taxId": null,
"accountId": 133,
"useCorporate": false,
"is1099": false,
"is1099TypeId": 7609,
"divisionId": null,
"userId": null,
"title": null,
"accountNumber": null,
"dotLoopID": null,
"eRELOID": null,
"skySlopeID": null,
"crestID": null,
"feedID": 0,
"showOnInternet": false,
"isFullTime": false,
"companyStaffGUID": null,
"agentTeamId": null,
"exclude": false,
"priorProduction": 0.0,
"createDate": "2019-06-06T18:33:18.327",
"createdBy": "atMason",
"modifyDate": "2019-06-06T18:51:54.513",
"modifyBy": "atMason",
"deleteDate": null,
"deletedBy": null
}
]
Ledger report endpoint
Request:
Method:
GET
URL:
https://darwin.api.transactionplan.com/api/ledgerReport/{type}
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Query string parameters:
Parameter |
Type |
Description |
type |
Required |
This is part of the endpoint URL and could have 2 possible values:
|
dateStart |
Optional |
Start date to filter the ledger data |
dateEnd |
Optional |
End date to filter the ledger data |
transactionID |
Optional |
used to filter the ledger for a specific transaction (invoice, voucher, check, deposits, etc.) |
officeID |
Optional |
Used to filter the ledger for a specific office in the system |
companyID |
Optional |
Used to filter the ledger for a specific company in the system |
accountID |
Optional |
Used to filter the ledger for a specific GL account number |
code |
Optional |
Used to filter the ledger for a specific type of transaction (ex.: all invoices, all vouchers, etc.) |
ledgerType |
Optional |
USe this to determine the type of ledger data that needs to be retrieved. There are two possible values:
SUMMARY: This is the default value. So this value will be assumed if nothing is specified. This will make all income, expenses and Cost of sale ledger entries to be summarized DETAIL: With this value, every accounting transaction posted or unposted will be retrieved in the given date range. This is to be used in an incremental pull implementation is done with requirement to have detailed information on every transaction posted in Darwin.
|
pageSize |
Optional |
Determines the number of ledger entries that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageIndex |
Optional |
Represents the page number that will be retrieved. Starts in zero.
If nothing is passed, it will assume page zero.
If -1 is passed, it will retrieve all records at once
|
Response:
JSON Array string (if ledgerType=SUMMARY);
[
{
"rowNumber": 1,
"description": “invoice for agent XY”,
"credit": 3450,
"debit": 0,
"accountNumber": "1-1200",
"accountID": "15",
"headerAccountNumber": "1-0000",
"headerAccountID": "55",
"headerAccountDescription": "Current assets",
"transactionID": "SI43238",
"date": "2017-11-24T00:00:00",
"officeName": "Billerica",
"officeID": "5",
"reference": "Brian ref chk.",
"companyID": "7",
"source": "Invoice",
"jobID": "0",
"code": “SI”,
},
{
"rowNumber": 2,
"description": “commission income for agnt XY”,
"credit": 0,
"debit": 3450,
"accountNumber": "6-1001",
"accountID": "17",
"headerAccountNumber": "6-0000",
"headerAccountID": "44",
"headerAccountDescription": "-",
"transactionID": "SI43238",
"date": "2017-11-24T00:00:00",
"officeName": "Billerica",
"officeID": "5",
"reference": "Brian ref corp.",
"companyID": "7",
"source": "Invoice",
"jobID": "1",
"code": “SI”,
}
]
JSON Array string (if ledgerType=DETAIL);
[
{
"rowNumber": 1,
"companyID": 8,
"companyName": "Oregon",
"officeName": "McMinville- Corporate",
"officeID": 33,
"accountID": 52,
"accountNumber": "2-1200",
"accountDescription": "Accounts Payable",
"accountType": "Liability",
"date": "2019-01-02T12:25:20",
"transactionID": 11950,
"transactionType": "appayment",
"action": "posted",
"credit": 0.00,
"debit": 491.47
}
]
Property Payload endpoint
Request:
Method:
POST
Url:
https://darwin.api.transactionplan.com/api/property/payload
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Body:
Type: JSON Object
Schema:
{
propertyID: 0,
mlsNumber: '',
streetNumber: '',
streetDirection: '',
streetName: '',
streetDesignation: '',
streetSuffix: '',
streetAptNumber: '',
buildingFloorNumber: '',
city: '',
state: '',
zip: '',
statusCode: '',
companyName: '',
checkType: '',
amount: 0.0,
accountNumber: '',
payeeID: 0,
checkNumber: '',
checkDate: '',
checkMemo: '',
}
Field |
Optional |
Description |
propertyID |
Required |
When propertyID = 0, a new property is created When propertyID <> 0, payload is added to this property; if propertyID not exist an error is returned |
mlsNumber |
Optional |
MLS Number of an existing property. This field is used only when propertyID = 0. If property exists, payload is added to this property. If property does not exist, new property is created. |
streetNumber |
Optional |
Street number. This field is used only to create a new property. |
streetDirection |
Optional |
Street direction. This field is used only to create a new property. |
streetName |
Optional |
Street name. This field is used only to create a new property. |
streetDesignation |
Optional |
Street designation. This field is used only to create a new property. |
streetSuffix |
Optional |
Street suffix. This field is used only to create a new property. |
streetAptNumber |
Optional |
Street Apt Number. This field is used only to create a new property. |
buildingFloorNumber |
Optional |
Building Floor Number. This field is used only to create a new property. |
city |
Optional |
City. This field is used only to create a new property. |
state |
Optional |
State. This field is used only to create a new property. |
zip |
Optional |
Zip code. This field is used only to create a new property. |
statusCode |
Required* |
Status code. * This field is required only to create a new property. |
companyName |
Required* |
Company name. * This field is required only to create a new property. |
checkType |
Required |
Possible values: CHECK or DEPOSIT |
amount |
Required |
Check amount. |
accountNumber |
Required |
Escrow account number from the chart of accounts |
payeeID |
Required |
Person ID of the Payee (you can get the list of PersonIDs from the endpoint personReport |
checkNumber |
Required |
Check number. |
checkDate |
Required |
Check date. |
checkMemo |
Optional |
Check memo. |
listingAgentPersonId |
Optional |
Darwin PersonId of the listing agent of the property |
sellingAgentPersonId |
Optional |
Darwin PersonId of the selling agent of the property |
BuyerFirstName |
Optional |
First name of the buyer of the property |
BuyerLastName |
Optional |
Last name of the buyer of the property |
Example:
Create escrow deposit into property ID 64453:
{
propertyID: 64453,
checkType: 'DEPOSIT',
accountNumber: '1-9901',
checkNumber: '456022',
checkDate: '10/14/2020',
checkMemo: '',
amount: 2600,
payeeID: 172951,
}
Create property and escrow check:
{
propertyID: 0,
streetNumber: 5674,
streetName: Vestibulum,
statusCode: 'AC',
companyName: 'Mason',
checkType: 'CHECK',
accountNumber: '1-9901',
checkNumber: '456022',
checkDate: '10/14/2020',
checkMemo: '',
amount: 2600,
payeeID: 172951,
}
Response:
Type: JSON Object
Example:
{
"propertyID": 64453,
"propertyAddress": "5674 Vestibulum",
"statusID": 1678,
"statusCode": "AC",
"status": "Active",
"companyID": 1,
"companyName": "Mason",
"escrowID": 63028,
"checkType": "DEPOSIT",
"amount": 2500.00,
"accountNumber": "1-9901",
"accountDescription": "Escrow - Interest Bearing",
"payeeID": 172951,
"payee": "John Smith",
"checkNumber": "456021",
"checkDate": "2020-10-15T12:00:00",
"checkMemo": ""
}
Person add endpoint
Request:
Method:
POST
Url:
https://darwin.api.transactionplan.com/api/person
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Body:
Field |
Optional |
Description |
firstName |
Required |
First name of person |
lastName |
Required |
Last name of person |
personTypeId |
Required |
Darwin Id of the person type. |
emailAddress |
Required |
email address of person |
startDate |
Required |
start date of person |
active |
Required |
“1” if the person is active. “0” if person is inactive |
officeId |
Required* |
Darwin Id of the office where the person works Only required if an AGENT and EMPLOYEES is being added |
mlsID |
Optional |
MLS number of the person. Can be left blank |
middleName |
Optional |
middle name of the person. Can be left blank |
printedName |
Optional |
printed name of the person. Can be left blank |
familiarName |
Optional |
familiar name of the person. Can be left blank |
companyName |
Optional |
corporate name of the person. Can be left blank |
birthDate |
Optional |
birth date of the person. Can be left blank |
notes |
Optional |
any other notes. Can be left blank |
referralNotes |
Optional |
referral notes of the person. Can be left blank |
referralPercentage |
Optional |
Expects a number. Can be left with “0” |
agentNumber |
Optional |
Secondary ID of the person. Ca be left blank |
contractStartDate |
Optional |
start contract date of person. Can be left blank |
terminatedDate |
Optional |
Date in which person was terminated. Can be left blank |
reStartDate |
Optional |
Start in which person started in the Real estate business. Can be left blank |
entityName |
Optional |
Entity name of the person. Can be left blank |
sendSurveyFlag |
Optional |
“1” or “0” to determine whether or not surveys will be sent to this person |
callToShow |
Optional |
“1” or “0” to determine whether or not the agent requires a call to show a property |
autoDeposit |
Optional |
For internal use. Send always “0” |
brandStartDate |
Optional |
Date in which agent started with the brand. Can be left blank |
termId |
Optional |
Darwin ID representing the term in which the person is paid. Expects a number. Can be left as blank |
planId |
Optional |
Darwin ID representing the commission plan of the agent. Expects a number. Can be left as blank |
leadSourceId |
Optional |
Darwin ID representing the source of business for a buyer and seller. Expects a number. Can be left as blank |
salutationId |
Optional |
Darwin ID representing the salutation type to refer to the person. Expects a number. Can be left as blank |
entityTypeId |
Optional |
Darwin ID representing the type of entity of the person. Expects a number. Can be left as blank |
leadGeneratedById |
Optional |
Darwin ID representing the way the buyer/seller was generated as a lead. Expects a number. Can be left as blank |
priorOccupationId |
Optional |
Darwin ID representing the prior occupation of the agent. Expects a number. Can be left as blank |
educationLevelId |
Optional |
Darwin ID representing the education level of the agent. Expects a number. Can be left as blank |
genderType |
Optional |
“F” or “M” |
priorAffiliationId |
Optional |
Darwin ID representing the prior affiliation of the agent. Expects a number. Can be left as blank |
recruitedByPersonId |
Optional |
Darwin ID representing who the agent was recruited by. Expects a number. Can be left as blank |
emergencyPersonId |
Optional |
Darwin ID representing the emergency contact of the agent. Expects a number. Can be left as blank |
cobrokeOfficePersonId |
Optional |
Darwin ID representing co-broke office of a co-broke agent. Expects a number. Can be left as blank |
referralId |
Optional |
Darwin ID representing referral contact of the agent. Expects a number. Can be left as blank |
assignedPersonId |
Optional |
Darwin ID representing what agent was assigned to this lead. Expects a number. Can be left as blank |
taxId |
Optional |
Person tax ID. Can be left as blank |
accountId |
Optional |
Darwin ID representing the default GL expense account of the agent. Expects a number. Can be left as blank |
is1099TypeId |
Optional |
Darwin ID representing type of 1099 the agent will generate. Expects a number. Can be left as blank |
divisionId |
Optional |
Darwin ID representing the division in which the agent works. Expects a number. Can be left as blank |
userId |
Optional |
For internal use only. Expects a number. Can be left as blank |
agentTeamId |
Optional |
Darwin ID representing the team the agent belong to. Expects a number. Can be left as blank |
referralBrandId |
Optional |
Darwin ID representing the referral Brand of the agent. Expects a number. Can be left as blank |
referralNetworkId |
Optional |
Darwin ID representing referral network of the agent. Expects a number. Can be left as “0” |
url |
Optional |
Url to agent profile online. Can be left blank |
title |
Optional |
the title of the person. Can be left blank |
balance |
Optional |
initial balance of the agent. For production purposes. Expects a number. Can be left with “0” |
confirmed |
Optional |
For internal use only. Can be left as “1” |
useCorporate |
Optional |
“1” or “0” to determine whether the corporate name or the agent full name will be used when writing commission checks to this agents. Can be left as “0” |
is1099 |
Optional |
“1” or “0” to determine whether the agent will be subject to 1099 or not |
showOnInternet |
Optional |
“1” or “0” to determine whether or not the agent profile will show only in the brand web sites. Can be left as “1” |
isFullTime |
Optional |
“1” or “0” to determine whether or not the agent works full time or not. Can be left as “1” |
exclude |
Optional |
“1” or “0” to determine whether or not the agent will communicate its production to the franchise. Can be left as “0” |
isinterCompany |
Optional |
For internal use only. Can be left as “0” |
codeValueReport endpoint
Request:
Method:
POST
Url:
https://darwin.api.transactionplan.com/api/codeValueReport
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Body:
None
Query string parameters:
Parameter |
Type |
Description |
Id |
Optional |
Used to filter by a specific codeValue record ID in Darwin. By default it is “0”.
If left with “0”, this filter is not applied.
|
Name |
Optional |
Used to filter by a specific codeValue record name in Darwin. By default it is empty”.
If left blank, this filter is not applied.
|
category |
Optional |
Used to filter by a specific codeValue category in Darwin. By default it is “”.
If left blank, this filter is not applied. If used together with name, it will retrieve the record that matches the name within the given category
|
showDeleted |
Optional |
Retrieves deleted code value records from Darwin. Possible values are 1 or 0.
|
pageIndex |
Optional |
Determines the number of code values that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageSize |
Optional |
Represents the page number that will be retrieved. Starts in zero.
If nothing is passed, it will assume page zero. |
Response:
Type: JSON Object
Example:
[
{
"Id": 64453,
"name": "Agent",
"group": null,
"category": “person_type”,
"custom1": null,
"custom2": null,
"custom3": null,
"brandCode": “CB”,
"createDate": "2018-04-18 04:06",
"createdBy": “sa”,
"modifyDate": "2018-04-18 04_09",
"deleteDate": null,
"deletedBy": null
}
]
companyReport endpoint
Request:
Method:
POST
Url:
https://darwin.api.transactionplan.com/api/companyReport
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Body:
None
Query string parameters:
Parameter |
Type |
Description |
Id |
Optional |
Used to filter by a specific company record ID in Darwin. By default it is “0”.
If left with “0”, this filter is not applied.
|
Name |
Optional |
Used to filter by a specific company record name in Darwin. By default it is empty”.
If left blank, this filter is not applied.
|
dateType |
Optional |
Represents the type Of date to use for filtering in a given date range.
It is used together with dateStart and dateEnd parameters
Possible values:
|
dateStart |
the start date from which companies will be retrieved
|
|
dateEnd |
the end date until which companies will be retrieved
|
|
showDeleted |
Optional |
Retrieves deleted companies records from Darwin. Possible values are 1 or 0.
|
pageIndex |
Optional |
Determines the number of companies that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageSize |
Optional |
Represents the page number that will be retrieved. Starts in zero.
If nothing is passed, it will assume page zero. |
Response:
Type: JSON Object
Example:
[
{
"companyId": 64453,
"brandCode": "CB",
"name": “Acme real Estate”,
"legalName": “Acme Real estate LLC”,
"taxId": “1234567”,
"mailboxId": “50039300011”,
"city": “Aspen”,
"state": “CO”,
"zip": "11111",
"address": “123 Mountain view 1111”,
"stateTax": "78910012",
"companyGUID": “819188Ac-78DE-1212-5678-898765ACB321”,
"internalName": “ACME”,
“providerIdentifier”: “89818”,
“atGUID”: null,
“createDate”: “2018-04-06 06:04”,
“createdBy”: “sa”,
“modifyDate”: “2019-04-06 04-04”,
“modifiedBy”: “saMason”
}
]
officeReport endpoint
Request:
Method:
POST
Url:
https://darwin.api.transactionplan.com/api/officeReport
Headers:
Authorization |
This is value compound like this:
Header : Basic “{userName}:{token}”
This 2-value string needs to be coded to base64
|
Body:
None
Query string parameters:
Parameter |
Type |
Description |
Id |
Optional |
Used to filter by a specific office record ID in Darwin. By default it is “0”.
If left with “0”, this filter is not applied.
|
crestCode |
Optional |
Used to filter by a specific office crest code value in Darwin. By default it is empty”.
If left blank, this filter is not applied.
|
companyID |
Optional
|
Used to filter offices that belong to a specific companyID. It must match a companyId in Darwin.
If left with zero (0), then this filter is not used
|
dateType |
Optional |
Represents the type Of date to use for filtering in a given date range.
It is used together with dateStart and dateEnd parameters
Possible values:
|
dateStart |
the start date from which offices will be retrieved
|
|
dateEnd |
the end date until which offices will be retrieved
|
|
showDeleted |
Optional |
Retrieves deleted office records from Darwin. Possible values are 1 or 0.
|
pageIndex |
Optional |
Determines the number of offices that will be retrieved on every request. Could be any value from 1 to 100
Default value is 100, returns maximum of 100 records
|
pageSize |
Optional |
Represents the page number that will be retrieved. Starts at zero.
If nothing is passed, it will assume page zero. |
Response:
Type: JSON Object
Example:
[
{
"officeId": 7877,
"officeName": “Aspen”,
"crestCode": “8988”,
"officeGUID": null,
"officeJobcode": “a”,
"internalName": null,
"atGUID": null,
"jobId": 1,
"miscJobId": 464,
"emailAddress": “[email protected]”,
"webSiteURL": “”,
"phoneNumber": “789-987-7266”,
"faxNumber": "789-987-6227",
"streetAddress": “123 Mountain view 1111”,
"city": "Aspen",
"state": “CO”,
"zip": “81611”,
“mlsId”: “1”,
“isCorporate”: False,
“canDoCommercialBusiness”: False,
“companyId”: 1,
“companyName”: “ACME LLC”,
“createDate”: “2018-04-06 06:04”,
“createdBy”: “sa”,
“modifyDate”: “2019-04-06 04-04”,
“modifiedBy”: “saMason”,
“deleteDate”: null,
“deletedBy”: null,
“terminatedDate”: “2019-04-06 04-04”
}
]