Darwin Cloud

Darwin API Documentation

Updated on

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the deleted properties will be included
  • 0 means the deleted properties will be excluded

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  1. Means no date filter will be applied. ALL DATES
  2. listDate
  3. pendingDate
  4. expireDate
  5. cancelDate
  6. expectClosingDate
  7. ProcessedDate
  8. closingDate  
  9. createDate
  10. dtmLastModifiedDate

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the fields of this section will be retrieved
  • 0 means the fields of this section will not be retrieved

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.

  • 1 means the deleted person records will be included
  • 0 means the deleted person records will be excluded

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.

  • 1 means only active
  • 0 means only no active
  • if you do not send this parameter, API will return active and no active

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:

  • PL, to retrieve the profit and loss general ledger
  • GL, to retrieve the full general ledger, including assets, liability, etc.

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.

  • 1 means the deleted code values will be retrieved
  • 0 means the deleted code values will not be retrieved

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:

  • 0 means no date type will be used
  • 1 means createDate will be used to filter by date range
  • 2 means modifyDate will be used to filter by date range
  • 3 means deleteDate will be used to filter by date range

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.

  • 1 means the deleted code values will be retrieved
  • 0 means the deleted code values will not be retrieved

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:

  • 0 means no date type will be used
  • 1 means createDate will be used to filter by date range
  • 2 means modifyDate will be used to filter by date range
  • 3 means deleteDate will be used to filter by date range
  • 4 means terminatedDate will be used to filter by date range

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.

  • 1 means the deleted code values will be retrieved
  • 0 means the deleted code values will not be retrieved

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”

}

    ]

Previous Article Spotlight: Introducing darwin.Chat
Next Article Admin Notification for Payment Method Added/Updated