Point Pricing and Eligibility API (2.0.0)

Download OpenAPI specification:Download

This API allows clients to check the eligibility of properties for a Home Equity Investment (HEI) from Point, to estimate the maximum investment amount the homeowner may be eligible for, and to create pricing estimates that homeowners can use to understand whether a Point HEI is a good fit for them. The pricing estimates contain links to start the full application process.

Resources in this API are designed to be flexible about the information they require and will attempt to resolve missing values from Point's proprietary and third-party data sources. Endpoints typically require the caller to provide the candidate property address and will retrieve information about that property such as its value and outstanding mortgage balances when possible.

If known, the client may supply specific property information in order to obtain a more accurate estimate. Supplied values will take precedence over inferred values.

Point's property information database is extensive, but we do not have records on all properties. If a record for a property cannot be found, this will return results based on the provided data, if sufficient, or will return an error. The matched property field of the response provides information about the property that this request was matched including the level of detail in the information retrieved about the property.

Authentication

BEARER-TOKEN

(Preferred)

Using Bearer tokens to make API requests is the preferred authentication method. Bearer tokens may be sent either via the Authorization HTTP header or as a URL query string parameter.

Bearer tokens should be kept secret and not included in source files, HTML pages or otherwise exposed. If you believe that your Bearer token has been exposed, please contact your Point representative and we will issue you a new token.

Below are examples of both kinds of requests using JavaScript & Axios. These examples make a call to calculate pricing for a property.

Using Authorization Header

async function requestUsingAuthHeader(secretBearerToken) {
  const url = `https://api.point.com/api/v2/eligibility/pricing`;

  const body = {
    address: {
      streetAddress: "76 Radish Ct",
      city: "Aptos",
      state: "CA",
      zip: "95003",
    },
  };

  const config = {
    headers: { Authorization: `Bearer ${secretBearerToken}` },
  };

  try {
    const response = await axios.post(url, body, config);
    return response.data;
  } catch (error) {
    console.log(error);
  }
}

Using Query String Parameter

async function requestUsingQueryString(secretBearerToken) {
  const url = `https://api.point.com/api/v2/eligibility/pricing?bearer=${secretBearerToken}`;

  const body = {
    address: {
      streetAddress: "76 Radish Ct",
      city: "Aptos",
      state: "CA",
      zip: "95003",
    },
  };

  try {
    const response = await axios.post(url, body);
    return response.data;
  } catch (error) {
    console.log(error);
  }
}
Security Scheme Type HTTP
HTTP Authorization Scheme Bearer

HMAC-SHA256

Consider using bearer tokens for authorization as they require less developer overhead when targeting the Point API.

When using HMAC authentication, any request to the API must include a Authorization header with a valid HMAC signature in the following format:

Authorization: HMAC-SHA256 ClientId=G0uZjwHGei0C;Timestamp=1596128186;Signature=e6b0269c10a15d0714255cd80a85a4fc671fd85d330b5138aa3878656774b500

Signature is the hash-based message authentication code produced by HMAC(secretKey, payload, 'sha256') where payload is the concatenation of method;URI;timestamp;body. The body clause should be omitted for requests that do not include a body.

  • method is the HTTP request verb GET, PUT, etc.
  • URI is the full URI of the request including any query parameters.
  • timestamp is the unix timestamp in seconds.
  • body is the JSON body of the request or an empty string.

For example, to sign a request in Javascript

function signRequest(requestParams, credentials) {
  const { clientSecret, clientId } = credentials;
  const { uri, method, body, headers } = requestParams;
  const timestamp = Math.round(new Date().getTime() / 1000);

  // construct the payload
  const payload = [method, uri, timestamp, body].filter(Boolean).join(';');

  // generate signature
  const hmac = crypto.createHmac('sha256', clientSecret);
  hmac.update(payload);
  const signature = hmac.digest('hex');

  // set authorization header
  headers.set('Authorization', `HMAC-SHA256 ClientId=${clientId};Timestamp=${timestamp};Signature=${signature}`);
}

Consult documentation online for how to produce a SHA256 encoded HMAC in your language.

You should have received authentication credentials from Point including a ClientId and ClientSecret. Please note that the ClientSecret is used to create a signature but is not included directly in API requests. This secret MUST be kept secure and should not be included in HTML pages or otherwise exposed. If you believe that your ClientSecret has been exposed, please contact your Point representative and we will issue you a new secret.

Security Scheme Type HTTP
HTTP Authorization Scheme digest

None

Security Scheme Type HTTP
HTTP Authorization Scheme Bearer

eligibility

List defined FICO ranges

Several API endpoints accept a ficoRange parameter that is used to to provide a general estimate of an applicant's FICO score rather than a specific value. This returns a structured representation of the currently defined FICO ranges that will be accepted by this parameter.

Responses

Response samples

Content type
application/json
{
  • "ficoRanges": [
    ]
}

Calculate Pricing for a Property

Provides estimated pricing for a Home Equity Investment (HEI) from Point. This includes the risk adjusted home value, homeowner protection cap, option percentage and basic fee information. See Point's pricing calculator for additional information about how Point's HEI's are priced.

Point's HEI pricing varies based on the requested amount. If a requested amount is not supplied, pricing will be provided based on the maximum eligible amount.

Authorizations:
Request Body schema: application/json
requestedAmount
integer

The requested amount. This will be used to generate pricing information for a specific option investment amount. If not supplied, the maximum eligible amount for the given inputs will be used. This field is ignored for requests that do not generate specific pricing information (e.g. /eligibility).

required
Property address (Structured) (object) or Property address (String) (string) (Property address)

A fully qualified USA address with street address, city, state, zip, and unit number if applicable. This may be supplied as an unparsed string or as a object.

firstMortgageBalance
integer

The remaining balance on the first mortgage, in USD.

secondMortgageBalance
integer

The remaining balance on the second mortgage, in USD.

homeValue
integer

The current estimated home value, in USD

ficoScore
integer

The FICO score used to calculate eligibility and pricing

ficoRange
string

A FICO range as an alternative to a specific FICO score. See the API endpoint to list defined FICO ranges for details on how to obtain valid values for this field. If both the ficoScore and ficoRange are supplied, the more specific ficoScore will take precedence.

clientId
string (clientId) Nullable
Deprecated

An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account within the caller's systems.

clientId has been deprecated due to naming collision. Please use the new field referenceId, which is a functional equivalent. clientId will continue to be supported until a major version change.

referenceId
string (referenceId) Nullable

An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account or lead id within the caller's systems.

Functionally replaces clientId, which has been deprecated.

Responses

Request samples

Content type
application/json
Example
{
  • "address": {
    }
}

Response samples

Content type
application/json
Example

Pricing response for 76 Radish Ct, Aptos, CA 95003 showing a detailed property record but no mortgage balance.

{
  • "eligible": true,
  • "message": "Eligible for an HEI from Point for the given inputs",
  • "minimumOfferAmount": 25000,
  • "maximumOfferAmount": 142000,
  • "pricing": {
    },
  • "pricingInputs": {
    },
  • "matchedProperty": {
    }
}

estimates

Create a Pricing Estimate

Creates a pricing estimate that allows a homeowner to view a details about a Point Home Equity Investment (HEI). After reviewing the details of their HEI pricing, applicants may elect to start a full application or schedule a call with a Point representative.

Estimates may be created either with or without named applicants. For estimates created without applicant details, the homeowner will be asked to save their estimate by supplying their name and contact information before being able to proceed to a full application.

The intended use case for this API is for the client to first query the eligibility/pricing pricing and present the homeowner with preliminary pricing information. Once the homeowner chooses to view the details of that pricing option, the client should create an Estimate using the POST /estimates endpoint and redirect the customer to the returned URL.

Estimates created through this API will be associated with a Partner's account and will allow the partner to track the homeowner's progress through the application process using Point's Partner Portal.

Authorizations:
Request Body schema: application/json
object

The applicant for whom the estimate should be created.

If supplied, the applicant will receive an email with details about how to access their estimate and will be able to create a full application. If not supplied, the estimate detail page linked to in this response will allow the applicant to save their estimate by entering their name and contact information. The estimate must be saved before the applicant will be able to proceed with a full application.

requestedAmount
integer

The requested amount. If supplied, this will be used to generate pricing information for a specific option investment amount. If not supplied, the maximum eligible amount for the given inputs will be used.

required
Property address (Structured) (object) or Property address (String) (string) (Property address)

A fully qualified USA address with street address, city, state, zip, and unit number if applicable. This may be supplied as an unparsed string or as a object.

firstMortgageBalance
integer

The remaining balance on the first mortgage, in USD.

secondMortgageBalance
integer

The remaining balance on the second mortgage, in USD.

homeValue
integer

The current estimated home value, in USD

ficoScore
integer

The FICO score used to calculate eligibility and pricing

ficoRange
string

A FICO range as an alternative to a specific FICO score. See the API endpoint to list defined FICO ranges for details on how to obtain valid values for this field. If both the ficoScore and ficoRange are supplied, the more specific ficoScore will take precedence.

clientId
string (clientId) Nullable
Deprecated

An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account within the caller's systems.

clientId has been deprecated due to naming collision. Please use the new field referenceId, which is a functional equivalent. clientId will continue to be supported until a major version change.

referenceId
string (referenceId) Nullable

An optional ID provided the user of the API that will be echoed to the response data. This is intended to allow the caller to associate a given request with a specific account or lead id within the caller's systems.

Functionally replaces clientId, which has been deprecated.

partnerAccountId
string

The Point partner account id to be associated with this request. Please contact your Point Account Manager for additional detail if needed.

Responses

Request samples

Content type
application/json
Example
{
  • "address": {
    }
}

Response samples

Content type
application/json
Example

Estimate creation response for a property that is not eligible.

{
  • "eligible": false,
  • "key": null,
  • "url": null,
  • "minimumOfferAmount": 25000,
  • "maximumOfferAmount": 0,
  • "pricingInputs": {
    },
  • "matchedProperty": {
    },
  • "referenceId": null,
  • "message": "Unable to create estimate: ineligible for supplied inputs"
}

Retrieves a Pricing Estimate

Authorizations:
path Parameters
estimateKey
required
integer

A unique identifier for the estimate

Responses

Response samples

Content type
application/json
{
  • "key": "string",
  • "expires": "2017-07-21T17:32:28Z",
  • "canSave": true,
  • "links": {},
  • "requestedOptionAmount": 0,
  • "minOptionAmount": 0,
  • "maxOptionAmount": 0,
  • "applicant": {
    },
  • "property": {
    },
  • "pricingInputs": {
    },
  • "pricing": {
    },
  • "source": {
    }
}