Skip to content
Staircase

LOS

The origination-system adapter, in its Adapters listing: the connective layer beneath every product that touches the loan file.

This is the same slot as LOS under Integration, carried in both categories because the source catalogue lists it in both. The Integration listing is the vendor-facing view; this one is the platform-facing view.

What sits here is the read and write path into the loan file: a product asks the adapter for the loan, works in canonical classes, and writes back through the same layer.

Dual listing

LOS is filed under two categories. The other listing is LOS under Integration, and the recorded specifications resolve there — its 10 operations render on that page.

Operations

Byte Service Application

POST /job/jobs/los-byte-VOI/executions

Income Service Application

byteIncomeAutomation

Invoke Income Verification

Income Service Application You can start an Income Verification for a loan in Byte using this endpoint. This endpoint takes file_data_id which is the file id in Byte.

Request
application/json
{
  "file_data_id": 1000032
}
Response
application/json

Income Verification Triggered Successfully

{
  "execution_id": "01FDYNKEP7DRV8HAE4X6J580NP"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
1 fields
FieldTypeDescription
file_data_idrequiredstringByte File ID
Response 201application/json
1 fields

Income Verification Triggered Successfully

FieldTypeDescription
execution_idstringExecution ID
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /job/jobs/los-byte-VOI/{execution_id}

Retrieve Execution Status

retrieveByteIncomeExecutionStatus

Retrieve Adapter Invocation Response

Retrieves Execution Status

Response
application/json

Successfully finished execution.

{
  "status": "SUCCEEDED",
  "start_time": "2021-08-11T17:06:47.000Z",
  "stop_time": "2021-08-11T17:07:40.000Z",
  "health_logs_url": "https://documentation.staircaseapi.com/code-health-checker/metric/01FDCEJT790J22PY13MCP0B90K"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
execution_id required string (ulid) path 01FEK8V6RT027SRAW903G97DPF Execution ID
Response 201application/json
7 fields

Successfully finished execution.

FieldTypeDescription
statusstringJob Execution StatusABORTEDFAILEDRUNNINGSUCCEEDEDTIMED_OUTWAIT_FOR_ACTION
start_timestringISO 8601 format with UTC
stop_timestringISO 8601 format with UTC
health_logs_urlstringHealth URL for execution
execution_outputobjectContains status, response_payload, request_payload.
execution_dataDescription
next_tokenstringIf next_token is returned, there are more results available.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Other responses

404

Setup

GET /partners

Get Partners

getPartners

Get list of all LOS partners

Retrieve Partners retrieves an object containing all active partners for LOS.

Response
application/json

Successfully returned the partner object

[
  {
    "partner": "partner_name_1",
    "active": true,
    "status": "active"
  },
  {
    "partner": "partner_name_2",
    "active": true,
    "status": "active"
  },
  {
    "partner": "partner_name_3",
    "active": false,
    "status": "upcoming"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Response 200application/json
3 fields

Successfully returned the partner object

FieldTypeDescription
activebooleanIf set to "True" partner can be used for verification. If set to "False" partner will be disabled for verification and excluded from the waterfall.
statusstringParameter for documentation. Can be set to "active" and "upcoming".
partnerstringPartner name.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /partners/{partner_name}/schema

Get Partner Schema

getPartnerSchema

Get list of all LOS partners

Retrieve Partner Credentials Schema retrieves the required partner schema for credentials.

Response
application/json

Successfully returned the partner schema object

{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "http://example.com/example.json",
  "type": "object",
  "title": "Partner root schema",
  "description": "Partner credentials schema for connector flows.",
  "webhook": false,
  "default": {},
  "examples": [
    {
      "key1": "value1",
      "key2": "value2"
    }
  ],
  "required": [
    "key1",
    "key2"
  ],
  "properties": {
    "key1": {
      "$id": "#/properties/key1",
      "type": "string",
      "title": "Partner key1 schema",
      "description": "Partner key1",
      "default": "",
      "examples": [
        "value1"
      ]
    },
    "key2": {
      "$id": "#/properties/key2",
      "type": "string",
      "title": "Partner key2 schema",
      "description": "Partner key2",
      "default": "",
      "examples": [
        "value2"
      ]
    }
  },
  "additionalProperties": true
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
partner_name required string path partner_name Name of the partner for which we wan't to retrieve schema
Response 200application/json
10 fields

Successfully returned the partner schema object

FieldTypeDescription
schemastringSchema URL
idstringSchema ID
typestringJSON type
titlestringSchema title
descriptionstringSchema description
webhookbooleanValue that indicates if partner requires webhook setup
defaultobjectDefault value for schema
examplesobject[]List of examples
key1stringExample 1
key2stringExample 2
requiredstring[]Required fields
propertiesobjectProperties of Schema
key1objectKey 1 Schema
idstringProperty ID
typestringProperty value type
titlestringTitle for property
descriptionstringDescription for property
defaultstringDefault value if exists
examplesstring[]List of examples for given property
key2objectKey 2 Schema
idstringProperty ID
typestringProperty value type
titlestringTitle for property
descriptionstringDescription for property
defaultstringDefault value if exists
examplesstring[]List of examples for given property
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /byte/credentials

Get Byte Credentials

getByteCredentials

Get Byte Credentials except the password

Response
application/json

Byte Credentials Response

{
  "site_name": "YOUR Byte Site Name",
  "username": "admin",
  "Authorization Key": "YOUR Authorization Key"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
credentials_type string query test Credentials type: production or test
Response 200application/json
4 fields

Byte Credentials Response

FieldTypeDescription
site_namerequiredstringThe Byte Site Name
usernamerequiredstringThe username
authorization_keyrequiredstringAuthorization Key
server_urlrequiredstringAuthorization Key
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

POST /byte/credentials

Set Byte Credentials

setByteCredentials

Request
application/json
{
  "site_name": "YOUR Byte Site Name",
  "username": "admin",
  "password": "------",
  "Authorization Key": "YOUR Authorization Key"
}
Response
application/json

Create Adapter API Triggered Successfully

{
  "message": "Credentials are saved and verified"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
6 fields
FieldTypeDescription
credentials_typestringCredentials Typeproductiontest
server_urlrequiredstringThe url of Byte site
site_namerequiredstringThe Byte Site Name
usernamerequiredstringThe username
passwordrequiredstringThe password
authorization_keyrequiredstringAuthorization Key
Response 200application/json
1 fields

Create Adapter API Triggered Successfully

FieldTypeDescription
messagestringMessage
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /encompass/credentials

Get Encompass Credentials

getEncompassCredentials

Get Encompass Credentials except the password

Response
application/json

Encompass Credentials Response

{
  "encompass_instance_id": "TEBE1234",
  "username": "admin",
  "client_id": "YOUR CLIENT ID",
  "client_secret": "<redacted>"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Response 200application/json
4 fields

Encompass Credentials Response

FieldTypeDescription
encompass_instance_idstringEncompass instance ID
usernamestringUsername
client_idstringThe unique identifier for the client application.
client_secretstringThe secret for the client application.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

POST /encompass/credentials

Set Encompass Credentials

setEncompassCredentials

Important: You do not need to use this endpoint to use Staircase Service integrations in Encompass Applications!

Set Encompass Credentials makes our services available by securely storing your credentials in staircase systems.

Credentials Table

Credential Description Services that need
Encompass Instance ID Used for setting up staircase service inside encompass Process Automations,Input Adapters,Output Adapters, Staircase Automatizations
Username Used for setting up staircase service inside encompass Process Automations,Input Adapters,Output Adapters, Staircase Automatizations
Password Used for setting up staircase service inside encompass Process Automations,Input Adapters,Output Adapters,Staircase Automatizations
Client ID Used for setting up staircase automations service inside encompass Input Adapters,Output Adapters, Staircase Automatizations
Client Secret Used for setting up staircase automations service inside encompass Input Adapters,Output Adapters, Staircase Automatizations

How to obtain Client ID and Client Secret?

You can obtain these credentials from the Encompass Developer Connect Console.

Show the rest

Setting up Staircase Services inside Encompass

After successfully registering your credentials, you can enable Staircase Services automatically by using Process Automations Service.

Request
application/json
{
  "encompass_instance_id": "TEBE1234",
  "username": "admin",
  "password": "------",
  "client_id": "YOUR CLIENT ID",
  "client_secret": "<redacted>"
}
Response
application/json

Create Adapter API Triggered Successfully

{
  "message": "Credentials are saved and verified"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
5 fields
FieldTypeDescription
encompass_instance_idstringThe Encompass instance ID
usernamestringThe username
passwordstringThe grant type must be "password" for resource owner password credentials
client_idstringThe unique identifier for the client application. Replace <client_id> with the API client ID portion of the API key available from your Encompass Super Administrator
client_secretstringThe secret for the client application. Replace <client_secret> with the API client secret portion of the API key available from your Encompass Super Administrator
Response 200application/json
1 fields

Create Adapter API Triggered Successfully

FieldTypeDescription
messagestringMessage
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /encompass-epc/credentials

Get Encompass (EPC) Credentials

getEncompassEPCCredentials

Response
application/json

Encompass EPC Credentials Response

{
  "client_id": "YOUR EPC CLIENT ID",
  "client_secret": "<redacted>"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Response 200application/json
2 fields

Encompass EPC Credentials Response

FieldTypeDescription
client_idstringThe unique identifier for the client application.
client_secretstringThe secret for the client application.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

POST /encompass-epc/credentials

Set Encompass (EPC) Credentials

setEncompassEPCCredentials

EPC uses the Client Credentials grant type to give Partner products secure access to lender-owned resources. With the Client Credentials grant type, a client application sends its own credentials (its Client ID and Client Secret) to an Ellie Mae oAuth2 Identity Service endpoint that generates an access token.

In order to be able to use Staircase Service Application component for processing your EPC transactions, you need to set your credentials.

Request
application/json
{
  "client_id": "YOUR EPC CLIENT ID",
  "client_secret": "<redacted>"
}
Response
application/json

Create Adapter API Triggered Successfully

{
  "message": "Credentials are saved and verified"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
2 fields
FieldTypeDescription
client_idstringThe unique identifier for the client application.
client_secretstringThe secret for the client application.
Response 200application/json
1 fields

Create Adapter API Triggered Successfully

FieldTypeDescription
messagestringMessage
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 422application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

Sales Boomerang Adapter

POST /products/los-sales-boomerang/invocations/

Invoke Sales Boomerang Adapter

salesBoomerang

Sales Boomerang Adapter

Usage

You can send a request in two different ways:

  • Using request_data: If you provide this parameter, flow invocation would use the data here as input. If you also provide a transaction_id in the request body, Response Collection would be created in the related Transaction object. If you don't provide a transaction_id we will automatically create a Transaction for you and Response Collection would be created in this new Transaction as well.
  • Using transaction_id and request_collection_id: If you already have a request collection, you can provide its details using these two parameters. Note that in this case Response Collection would be created in the provided Transaction.

Retrieving the Invocation Result

After invocation, endpoint returns an invocation_id which you can poll for its status using Retrieve Invocation Response endpoint. Once the invocation is completed, the Response Collection is populated with these search results.

Show the rest

If you would rather receive a callback once the invocation is completed instead of polling it, you can set callback_url parameter in the request body.


Supported Staircase Products Flows

  • create_loan
  • update_loan
  • list_loans
  • delete_loan

How to Use Sales Boomerang Adapter with any Staircase CRM Integration

The following diagram illustrates the general overview about integration

Request
application/json
{
  "transaction_id": "01FV0H1MPRMAF6JAHJ6BAPYF9X",
  "product_flow_name": "create_loan",
  "request_collection_id": "01FV0H1MWC9N5F71DG0W79V0H3",
  "options": {
    "credentials": {
      "api_key": "<redacted>"
    }
  }
}
Response
application/json

403 invalid error

{
  "message": "Please check the key you used to call this service",
  "url": "https://api.staircase.co/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 404application/json
1 fields

Resource is not found.

FieldTypeDescription
messagestringMessage
Other responses

200400422

GET /products/los-sales-boomerang/invocations/{invocation_id}

Get Invocation Status

RetrieveProductFlowInvocationStatus

Retrieves the status of running Product flow invocation.

Response
application/json

Successfully returned status of the Product flow Invocation.

{
  "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
  "invocation_status": "COMPLETED",
  "product_flow_name": "VOE",
  "service_invocation": {
    "Connector": {
      "connector_flow_name": "demo_flow",
      "invocation_id": "e75e8566-976d-4a15-b801-1e2301646f4e",
      "status": "COMPLETED"
    },
    "Translator": {
      "output": {
        "translation_id": "ad985392-1255-4dc0-8a26-bc166744c60c",
        "language_name": "argyle",
        "status": "COMPLETED"
      },
      "convert_output": {
        "translation_id": "5382d495-9ec9-4619-8e46-299879c1e92e",
        "language_name": "argyle",
        "status": "COMPLETED"
      },
      "input": {
        "translation_id": "0742bc3d-07ca-45fb-a4b7-e9bf627108d0",
        "language_name": "test",
        "status": "COMPLETED"
      },
      "convert_input": {
        "translation_id": "57082d7c-9964-49b6-945c-7c655768e56a",
        "language_name": "test",
        "status": "COMPLETED"
      }
    }
  },
  "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
  "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
  "convert_request_collection_id": "01F6NAQ4894HPMCBGB4P0G9KX5",
  "response_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
  "convert_response_collection_id": "01F6QF1QJF20DMSXH4SYXKBNS1",
  "connector_job_id": "3706b519-9426-4533-9868-14a7dec4fd97",
  "request_collection": {
    "collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
    "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
    "data": {},
    "metadata": {
      "created_at": "2021-08-12T04:58:15.331517-04:00",
      "validation": false
    }
  },
  "response_collection": {
    "collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
    "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
    "data": {},
    "metadata": {
      "created_at": "2021-08-12T04:58:15.331517-04:00",
      "validation": false,
      "report_download_urls": {
        "voe_template": {
          "download_url": "https://dev-data-manager-blobs-bucket-us-east-1-873429376159.s3.amazonaws.com/01FJYAHNJR",
          "blob_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
          "status": "Succeeded"
        }
      },
      "service_invocation": {
        "Connector": {
          "connector_flow_name": "demo_flow",
          "invocation_id": "e75e8566-976d-4a15-b801-1e2301646f4e",
          "status": "COMPLETED"
        },
        "Translator": {
          "output": {
            "translation_id": "ad985392-1255-4dc0-8a26-bc166744c60c",
            "language_name": "argyle",
            "status": "COMPLETED"
          },
          "convert_output": {
            "translation_id": "5382d495-9ec9-4619-8e46-299879c1e92e",
            "language_name": "argyle",
            "status": "COMPLETED"
          },
          "input": {
            "translation_id": "0742bc3d-07ca-45fb-a4b7-e9bf627108d0",
            "language_name": "test",
            "status": "COMPLETED"
          },
          "convert_input": {
            "translation_id": "57082d7c-9964-49b6-945c-7c655768e56a",
            "language_name": "test",
            "status": "COMPLETED"
          }
        }
      }
    }
  },
  "options": {
    "dry_run": false
  },
  "tags": [
    "manual verification"
  ]
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
invocation_id required string (ulid) path d7ccedb8-8889-4657-add4-bc1s4xs97637 Product flow invocation identifier
Response 200application/json
13 fields

Successfully returned status of the Product flow Invocation.

FieldTypeDescription
invocation_idrequiredstringInvocation ID.
invocation_statusrequiredstringInvocation Status.ACTION_REQUIREDCOMPLETEDFAILEDRUNNINGSTARTED
transaction_idrequiredstringTransaction ID used for invocation.
request_collection_idstringRequest Collection ID.
request_collectionobjectCollection.
transaction_idstring (ulid)Transaction ID.Example 01EZQ32PJQGKRA6HR8D72Q9FFF
collection_idstring (ulid)Collection ID.Example 01EZQ32PJQGKRA6HR8D72Q9FFF
dataobjectData in Staircase language schema.
metadataobjectMetadata about collection, f.e version of used Staircase schema.
response_collection_idstringResponse Collection ID.
response_collectionobjectCollection.
transaction_idstring (ulid)Transaction ID.Example 01EZQ32PJQGKRA6HR8D72Q9FFF
collection_idstring (ulid)Collection ID.Example 01EZQ32PJQGKRA6HR8D72Q9FFF
dataobjectData in Staircase language schema.
metadataobjectMetadata about collection, f.e version of used Staircase schema.
report_download_urlsrequiredobjectInformation about each generated report identified by template name.
callback_urlstringURL that was specified in flow invocation and will be used to send the callback when flow invocation will be finished.
widget_urlstring (uri)URL of the widget.
metadataobjectResponse Collection ID.
optionsOptions that were passed to the flow invocation.
connector_job_idstringConnector job ID.
service_invocationrequiredobjectIncludes underlying services invocation.
ConnectorobjectResponse from Connector service.
connector_flow_namestringVendor flow name.
invocation_idstring (uuid)Connector job ID.
statusstringConnector flow status.ACTION_REQUIREDCOMPLETEDFAILEDRUNNING
TranslatorobjectResponse from Translator service about input and output translation.
inputobjectInput translation status.
language_namestringInput translation language.
translation_idstring (uuid)Translation ID.
statusstringInput translation status.COMPLETEDFAILEDRUNNING
convert_inputobjectConvert input translation status.
language_namestringInput translation language.
translation_idstring (uuid)Translation ID.
statusstringInput translation status.COMPLETEDFAILEDRUNNING
outputobjectOutput translation status.
language_namestringOutput translation language.
translation_idstring (uuid)Translation ID.
statusstringOutput translation status.COMPLETEFAILEDRUNNING
convert_outputobjectConvert output translation status.
language_namestringOutput translation language.
translation_idstring (uuid)Translation ID.
statusstringOutput translation status.COMPLETEFAILEDRUNNING
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messageone ofMessage
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 404application/json
1 fields

Resource not found

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

Internal server error

FieldTypeDescription
messagestringError message.

Platform

POST /transactions

Create Transaction

createTransaction

Create Transaction creates a transaction in Staircase. Transactions in Staircase are containers for all the data related to an instance of a transaction type. They enable you to correlate the output of various products to a single transaction type, where the transaction type depends on your line of business.

Transactions are identified by a unique key called transaction_id. As you use different Staircase products to gather the data needed for a specific instance of your transaction type, and receive different sets of output from each product, use the same transaction_id to correlate all the outputs to the same transaction. A transaction_id, when used properly, gives you a holistic view of the data related to the transaction you’ve assembled.

To access all collections associated with a given transaction_id, try out /transactions/{transaction_id}/collections

Request
application/json
{
  "label": "first_transaction",
  "callback_url": "https://webhook.site/0c1c4e00-79d9-490b-a0f3-bab8b12a61d5"
}
Response
application/json

Transaction created successfully

{
  "transaction_id": "01F0KHK7DN3H5JZ4QJKMYAM6GB",
  "created_at": "03/04/2021, 1:04:05 PM EST"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
Request bodyapplication/json
2 fields
FieldTypeDescription
callback_urlstring (url)URL for receiving events about changes inside transaction
labelstringTransaction label
Response 201application/json
2 fields

Transaction created successfully

FieldTypeDescription
transaction_idstring (ulid)Staircase Transaction IdentifierExample 01F0KHK7DN3H5JZ4QJKMYAM6GB
created_atstringStaircase time string.Example 03/03/2021, 8:24:04 AM EST
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 500application/json
1 fields

Internal server error

FieldTypeDescription
messagestringError message.
Other responses

400

GET /transactions/{transaction_id}/collections

Retrieve Transaction Collections

RetrieveTransactionCollections

Retrieve Transaction Collections returns the content of a given collection_id associated with a specific transaction_id.

Response
application/json

Transaction collection retrieved successfully

{
  "deal_sets": {
    "deal_set": [
      {
        "deals": {
          "deal": [
            {
              "parties": {
                "party": [
                  {
                    "individual": {
                      "name": {
                        "first": "Thomas",
                        "last": "Alex"
                      }
                    },
                    "taxpayer_identifiers": {
                      "taxpayer_identifier": [
                        {
                          "value": "12345"
                        }
                      ]
                    },
                    "roles": {
                      "role": [
                        {
                          "borrower": {
                            "residences": {
                              "residence": [
                                {
                                  "address": {
                                    "line_text": "street 101",
                                    "city": "example city",
                                    "state": "state",
                                    "postal_code": "1234",
                                    "street_name": "street 23"
                                  }
                                }
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    ]
  }
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
transaction_id required string (ulid) path 01F0KHK7DN3H5JZ4QJKMYAM6GB Staircase Transaction Identifier
Response 200application/json
4 fields

Transaction collection retrieved successfully

FieldTypeDescription
transaction_idstring (ulid)Transaction idExample 01EZQ32PJQGKRA6HR8D72Q9FFF
collection_idstring (ulid)Collection idExample 01EZQ32PJQGKRA6HR8D72Q9FFF
dataarrayCollection data
metadataobjectMetadata about collection, f.e version of used Staircase schema
Response 400application/json
1 fields

Error

FieldTypeDescription
messageone ofEither message object with more properties.
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 404application/json
1 fields

Resource not found

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

Internal server error

FieldTypeDescription
messagestringError message.
POST /transactions/{transaction_id}/collections

Create Collection

createCollection

Create Collection creates a collection of data points required for product invocation. A collection contains a digital representation of the input or output data for the product and is identified by collection_id.

The Example below contains a sample collection that you can use to make the product invocation in /get-collection

Request
application/json
{
  "data": {
    "organizations": [
      {
        "has_organization_name": {
          "has_value": "Enterprise One"
        },
        "@type": "organization",
        "@id": "01FD6ZNGNFKY3B7CX0YN6NH56E"
      }
    ],
    "contact_information": [
      {
        "has_email_address": {
          "has_value": "test@test.com"
        },
        "@type": "contact_information",
        "@id": "01FD6ZNGJW9X96WGWX2BD37CFY"
      }
    ],
    "addresses": [
      {
        "has_address_line_1_text": {
          "has_value": "33 IRVING PLACE"
        },
        "has_state_code": {
          "has_value": "NY"
        },
        "@type": "address",
        "@id": "01FD6ZNGJADZ0RB1H96FSE8BAB",
        "has_country_name": {
          "has_value": "US"
        },
        "has_address_line_2_text": {
          "has_value": "a"
        },
        "has_postal_code": {
          "has_value": "10003"
        },
        "has_city_name": {
          "has_value": "NEW YORK"
        }
      }
    ],
    "people": [
      {
        "contact_at": [
          "01FD6ZNGJW9X96WGWX2BD37CFY"
        ],
        "has_taxpayer_identifier_value": {
          "has_value": "666234390"
        },
        "has_birth_date": {
          "has_value": "12/28/1958"
        },
        "with_address": [
          "01FD6ZNGJADZ0RB1H96FSE8BAB"
        ],
        "has_last_name": {
          "has_value": "Jackson"
        },
        "@id": "01FD6ZKZD7WGZXYFGJBVPVP2Q5",
        "works_for": [
          "01FD6ZNGNFKY3B7CX0YN6NH56E"
        ],
        "has_first_name": {
          "has_value": "John"
        }
      }
    ]
  }
}
Response
application/json

Collection created successfully

{
  "data": {},
  "metadata": {}
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
transaction_id required string (ulid) path 01F0KHK7DN3H5JZ4QJKMYAM6GB Staircase Transaction Identifier
Request bodyapplication/json
2 fields
FieldTypeDescription
dataobject
peopleobject[]
@idstring
has_first_nameobject
has_valuestring
has_last_nameobject
has_valuestring
has_birth_dateobject
has_valuestring
has_taxpayer_identifier_valueobject
has_valuestring
with_addressstring[]
contact_atstring[]
works_forstring[]
addressesobject[]
@idstring
@typestring
has_address_line_1_textobject
has_valuestring
has_address_line_2_textobject
has_valuestring
has_city_nameobject
has_valuestring
has_state_codeobject
has_valuestring
has_postal_codeobject
has_valuestring
has_country_nameobject
has_valuestring
contact_informationobject[]
@idstring
@typestring
has_email_addressobject
has_valuestring
organizationsobject[]
@idstring
@typestring
has_organization_nameobject
has_valuestring
metadataobjectMetadata of the collection
Response 201application/json
4 fields

Collection created successfully

FieldTypeDescription
transaction_idstring (ulid)Transaction idExample 01EZQ32PJQGKRA6HR8D72Q9FFF
collection_idstring (ulid)Collection idExample 01EZQ32PJQGKRA6HR8D72Q9FFF
dataarrayCollection data
metadataobjectMetadata about collection, f.e version of used Staircase schema
Response 400application/json
1 fields

Error

FieldTypeDescription
messageone ofEither message object with more properties.
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 404application/json
1 fields

Resource not found

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

Internal server error

FieldTypeDescription
messagestringError message.
Other responses

405

GET /transactions/{transaction_id}/collections/{collection_id}

Retrieve Collection

retrieveCollection

Retrieve Collection returns the content of a given collection_id associated with a transaction_id.

Response
application/json

Successfully Retrieved Collection

{
  "data": {
    "credit_information": [
      {
        "has_credit_report_identifier": {
          "has_value": "2-d0a38e38-1639-4493-8",
          "data_sourced_from": [
            "01FCZHG9EGC306GQ34ZNZ36A67"
          ]
        },
        "has_credit_request_data_credit_repository_included_equifax_indicator": {
          "has_value": "false"
        },
        "has_credit_frozen_status_experian_indicator": {
          "has_value": "false"
        },
        "has_credit_request_data_credit_repository_included_trans_union_indicator": {
          "has_value": "false"
        },
        "has_data_version_equifax_identifier": {
          "has_value": "4"
        },
        "@type": "credit_information",
        "has_credit_bureau_name": {
          "has_value": null
        },
        "has_credit_rating_code_type": {
          "has_value": "equifax"
        },
        "has_credit_report_merge_type": {
          "has_value": "list_and_stack"
        },
        "has_credit_frozen_status_trans_union_indicator": {
          "has_value": "false"
        },
        "has_credit_repository_included_experian_indicator": {
          "has_value": "false"
        },
        "has_credit_repository_included_equifax_indicator": {
          "has_value": "false"
        },
        "has_credit_request_data_credit_repository_included_experian_indicator": {
          "has_value": "false"
        },
        "has_requesting_party_name": {
          "has_value": null
        },
        "has_credit_repository_included_trans_union_indicator": {
          "has_value": "true"
        },
        "has_credit_report_first_issued_date": {
          "has_value": "2021-08-13"
        },
        "@id": "01FCZHG9ED6FP1B3853716DDBJ",
        "has_credit_frozen_status_equifax_indicator": {
          "has_value": "false"
        },
        "with_credit_score_information": [
          "01FCZHG9EVWB7XSMY2VAK0QAJ1"
        ],
        "has_data_version_credmo_identifier": {
          "has_value": "1.3"
        }
      }
    ],
    "credit_score_information": [
      {
        "has_credit_report_identifier": {
          "has_value": "2-d0a38e38-1639-4493-8",
          "data_sourced_from": [
            "01FCZHG9EGC306GQ34ZNZ36A67"
          ]
        },
        "has_credit_score_model_name_type_other_description": {
          "has_value": "TransUnionVantageScore3.0"
        },
        "has_credit_score": {
          "has_value": "677",
          "data_sourced_from": [
            "01FCZHG9EGC306GQ34ZNZ36A67"
          ]
        },
        "has_credit_score_model_name_type": {
          "has_value": "Other"
        },
        "with_credit_score_factor": [
          [
            "01FCZHG9G3Y586GW0QXYH9GEY1",
            "01FCZHG9G372Z31MSTBYD1RZRT",
            "01FCZHG9G3C36KNGA1WSY9KGSW",
            "01FCZHG9G30MEQG7RSHZTZD3RB",
            "01FCZHG9G30BENG7W0ERGN939G"
          ]
        ],
        "@type": "credit_score_information",
        "has_credit_score_facta_inquiries_indicator": {
          "has_value": "true"
        },
        "has_credit_repository_source_type": {
          "has_value": "trans_union"
        },
        "@id": "01FCZHG9EVWB7XSMY2VAK0QAJ1",
        "has_credit_score_date": {
          "has_value": "2015-06-09"
        }
      }
    ],
    "credit_score_factors": [
      {
        "has_credit_score_factor_code": {
          "has_value": "63"
        },
        "has_credit_score_factor_text": {
          "has_value": "Lack of sufficient relevant real estate account information"
        },
        "@id": "01FCZHG9G3Y586GW0QXYH9GEY1",
        "@type": "credit_score_factor"
      },
      {
        "has_credit_score_factor_code": {
          "has_value": "12"
        },
        "has_credit_score_factor_text": {
          "has_value": "The date that you opened your oldest account is too recent"
        },
        "@id": "01FCZHG9G372Z31MSTBYD1RZRT",
        "@type": "credit_score_factor"
      },
      {
        "has_credit_score_factor_code": {
          "has_value": "14"
        },
        "has_credit_score_factor_text": {
          "has_value": "Lack of sufficient credit history"
        },
        "@id": "01FCZHG9G3C36KNGA1WSY9KGSW",
        "@type": "credit_score_factor"
      },
      {
        "has_credit_score_factor_code": {
          "has_value": "30"
        },
        "has_credit_score_factor_text": {
          "has_value": "Too few of your bankcard or other revolving accounts have high limits"
        },
        "@id": "01FCZHG9G30MEQG7RSHZTZD3RB",
        "@type": "credit_score_factor"
      },
      {
        "has_credit_score_factor_code": {
          "has_value": "I"
        },
        "has_credit_score_factor_text": {
          "has_value": "Inquiries did impact the credit score"
        },
        "@id": "01FCZHG9G30BENG7W0ERGN939G",
        "@type": "credit_score_factor"
      }
    ]
  }
}
Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Environment API Key.
transaction_id required string (ulid) path 01F0KHK7DN3H5JZ4QJKMYAM6GB Staircase Transaction Identifier
collection_id required string (ulid) path 01F0KHKADN0HRFXMCQQXPA6AFZ Staircase collection_id
Response 200application/json
2 fields

Successfully Retrieved Collection

FieldTypeDescription
dataobject
peopleobject[]
@idstring
has_first_nameobject
has_valuestring
has_last_nameobject
has_valuestring
has_birth_dateobject
has_valuestring
has_taxpayer_identifier_valueobject
has_valuestring
with_addressstring[]
contact_atstring[]
works_forstring[]
addressesobject[]
@idstring
@typestring
has_address_line_1_textobject
has_valuestring
has_address_line_2_textobject
has_valuestring
has_city_nameobject
has_valuestring
has_state_codeobject
has_valuestring
has_postal_codeobject
has_valuestring
has_country_nameobject
has_valuestring
contact_informationobject[]
@idstring
@typestring
has_email_addressobject
has_valuestring
organizationsobject[]
@idstring
@typestring
has_organization_nameobject
has_valuestring
metadataobjectMetadata of the collection
Response 403application/json
2 fields

403 invalid error

FieldTypeDescription
messagestringError message.
urlstringError additional URL.
Response 404application/json
1 fields

Resource not found

FieldTypeDescription
messagestringMessage
Response 500application/json
1 fields

Internal server error

FieldTypeDescription
messagestringError message.
Other responses

400

Encompass Input Adapter

POST /products/los-encompass-input-adapter/invocations

Invoke Input Adapter

invokeEncompassInputAdapter

You can invoke byte input adapters by using this endpoint. This endpoint takes customer_transaction_id from the partner. This should be the unique parameter to identify the loans. For input adapters, invocation responses are always transaction_id and collection_id. With using these two parameters, you can invoke the Staircase products. Adapters guarantee that the same transaction_id is used for each customer transaction_id. For each invocation adapters create transaction_id, request_collection_id and response_collection_id. Supported Staircase Products Flows

  • employment
  • income
  • assets
  • credit
  • data extraction
  • document classification
  • fees
Request
application/json
{
  "product_flow_name": "employment",
  "transaction_id": "01FK0TWGPYFVYA81ACDQY651CE",
  "request_data": {
    "loans": [
      {
        "has_loan_identifier_value": {
          "has_value": "e8f84935-0384-4978-a5fb-aac7f3af987e"
        }
      }
    ]
  }
}
Response
application/json

Create Adapter API Triggered Successfully

{
  "invocation_id": "01FDYNKEP7DRV8HAE4X6J580NP"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
3 fields
FieldTypeDescription
transaction_idstringStaircase Transaction ID used for invocation
product_flow_namestringSupported Staircase Product Nameassetscreditdata-extractiondocument-classificationemploymentfeesincome
request_dataobjectEncompass Input Adapter Request Schema
loansobject[]Loans
@typestringLoan ID
has_loan_identifier_valueobjectEncompass Loan ID
has_valuestringEncompass Loan ID Value
foreign_objectobject[]Foreign Objects
@typestringAttachment
has_foreign_object_identifier_valueobjectEncompass Document Attachment ID. Only use in Document related products
has_valuestringEncompass Document Attachment ID Value
has_object_nameobjectEncompass Document Type (conveyance_deed or note). Required for Fees product
has_valuestringEncompass Document Type Value
Response 201application/json
1 fields

Create Adapter API Triggered Successfully

FieldTypeDescription
invocation_idstringInvocation ID
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /products/los-encompass-input-adapter/invocations/{invocation_id}

Retrieve Adapter Invocation Response

getEncompassInputAdapterInvocationResponse

Retrieve Encompass Adapter Invocation Response

Retrieves Invocation Response

Response
application/json

Successfully started flow invocation.

{
  "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
  "invocation_status": "STARTED",
  "product_flow_name": "credit",
  "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
  "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
invocation_id required string (ulid) path 01FEK8V6RT027SRAW903G97DPF Invocation ID
Response 201application/json
9 fields

Successfully started flow invocation.

FieldTypeDescription
invocation_idrequiredstringInvocation ID.
invocation_statusrequiredstringThe status of the invocation.COMPLETEDFAILEDRUNNINGSTARTED
transaction_idrequiredstringTransaction ID.
product_flow_namestringProduct flow name.
metadataobjectThe metadata of the invoked product flow.
callback_urlstringCallback URL.
request_dataobjectThe data for the request collection.
tagsstring[]List of tags.
optionsobjectAdditional information that should be passed to the connector but not be added to the request collection.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Other responses

404

Encompass Output Adapter

POST /products/los-encompass-output-adapter/invocations

Invoke Output Adapter

invokeEncompassOutputAdapter

Output adapters are used to receive output from a technology partner and return it to the LOS or POS. When the technology partner completes a request, it sends the response to Staircase APIs. Staircase APIs translate and persist the response, then forward it to the LOS/POS.


Prerequisite

Set up Encompass credentials

Call Setup Encompass Credentials to store your Encompass credentials for adapters use.

Show the rest

Usage

You can send a request in two different ways:

  • Using request_data: If you provide this parameter, flow invocation would use the data here as input. If you also provide a transaction_id in the request body, Response Collection would be created in the related Transaction object. If you don't provide a transaction_id we will automatically create a Transaction for you and Response Collection would be created in this new Transaction as well.
  • Using transaction_id and request_collection_id: If you already have a request collection, you can provide its details using these two parameters. Note that in this case Response Collection would be created in the provided Transaction.

Retrieving the Invocation Result

After invocation, endpoint returns an invocation_id which you can poll for its status using Retrieve Invocation Response endpoint. Once the invocation is completed, the Response Collection is populated with these search results.

If you would rather receive a callback once the invocation is completed instead of polling it, you can set callback_url parameter in the request body.


Supported Staircase Products Flows

  • preapproval
  • employment
  • document classification
  • fees

Encompass Preapproval Output Adapter

Encompass Preapproval Output Adapter takes staircase collection as an input and converts it to encompass loan object.

In examples, you can find sample data that you can use to create a loan. When the process is completed successfully, the adapter will create the loan under the "pipeline" loan folder.

In response collection data, you will find loan identifier and loan case number.

Request
application/json
{
  "product_flow_name": "preapproval",
  "transaction_id": "01FTG980NW4C0S8YX12Z7E3WZ6",
  "request_collection_id": "01FTG981VT214W97Y9NGSYA9JQ"
}
Response
application/json

Create Adapter API Triggered Successfully

{
  "invocation_id": "01FDYNKEP7DRV8HAE4X6J580NP"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
4 fields
FieldTypeDescription
transaction_idstringStaircase Transaction ID used for invocation
request_collection_idstringOutput collection of Staircase product
product_flow_namestringSupported Staircase Product Namedocument-classificationemploymentfeespreapproval
optionsobjectRequest Collection Data
customer_transaction_idstringEncompass Loan ID
customer_document_idstringEncompass Document ID. Only use in Document related products
customer_doc_typestringEncompass Document Type. Only use in Document related products
Response 201application/json
1 fields

Create Adapter API Triggered Successfully

FieldTypeDescription
invocation_idstringInvocation ID
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /products/los-encompass-output-adapter/invocations/{invocation_id}

Retrieve Invocation Response

getEncompassOutputAdapterInvocationResponse

Retrieves Invocation Response

Response
application/json

Successfully started flow invocation.

{
  "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
  "invocation_status": "STARTED",
  "product_flow_name": "credit",
  "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
  "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
invocation_id required string (ulid) path 01FEK8V6RT027SRAW903G97DPF Invocation ID
Response 201application/json
9 fields

Successfully started flow invocation.

FieldTypeDescription
invocation_idrequiredstringInvocation ID.
invocation_statusrequiredstringThe status of the invocation.COMPLETEDFAILEDRUNNINGSTARTED
transaction_idrequiredstringTransaction ID.
product_flow_namestringProduct flow name.
metadataobjectThe metadata of the invoked product flow.
callback_urlstringCallback URL.
request_dataobjectThe data for the request collection.
tagsstring[]List of tags.
optionsobjectAdditional information that should be passed to the connector but not be added to the request collection.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Other responses

404

Encompass Service Application

POST /products/los-encompass-service-application/invocations

Service Application

invokeEncompassServiceApplicationPP

This is a product component invocation endpoint. You can use service application features with this endpoint. What you need to do is provide an input to the invocation with request_data and specify the feature of the product component with product_flow_name that you want to use.

This product component has two different flows. You can get detailed information about the services provided by staircase in EPC with get_services, or with process_transaction, you can process your EPC transaction with the staircase product of your choice and inject your processed data into Encompass.

Show the rest

After you invoke product component, product will create transaction, and request-response collections from the request_data you provided.

Staircase Glossary

Transaction:

What is a transaction?

When do I create a transaction?

Collection:

What is a collection?

Retrieving the Invocation Result

After invocation, endpoint returns an invocation_id which you can poll for its status using Retrieve Invocation Response endpoint. Once the invocation is completed, the Response Collection is populated with these search results.

If you would rather receive a callback once the invocation is completed instead of polling it, you can set callback_url parameter in the request body.

How Callbacks are working?

callback_url is used by the product to send a callback, when the flow invocation status changes, including changes in status of underlying services invocation.

Invocation data is included throughout the invocation. Either response payload or failure reason is sent when invocation completed/failed.

How you can validate the callback messages?

Each work unit (invocation) is represented with three distinct ID.

  • Transaction
  • Request Collection ID
  • Response Collection ID

Combination of these three id can be used for validating callback messages related with invocation. You will retrieve these ids in the request body of callback payload.

You can find the callback sample messages response examples.

Process Transaction

! Prerequisite (Setup EPC Credentials): If you want to use Staircase credentials by default, you don't need to do anything. But if you want to use Staircase LOS Adapter as your EPC Integration backend, you need to set your EPC credentials

Process Transaction flow allows you to process Encompass EPC transactions. Flow is doing following items after during invocation:

  1. Extracts transaction data.
  2. Converts transaction data to Staircase Lexicon.
  3. Invokes the Staircase product
  4. After the invocation is completed, the results are sent to Encompass and the transaction is complete.
How to create EPC transaction with using Encompass Partner JS API

! When creating a transaction with the Encompass Partner JS API, you should add three important information to request.options.

  • applicationId: Application ID field
  • borrowerType: Type of borrower (borrower or coborrower)
  • employmentId: Employment ID field
  • updateLoan: Flag for service application to update the loan after verification
  • uploadStaircaseReport: Flag for service application to upload the verification report generated by Staircase
  • uploadPartnerReport: Flag for service application to upload the verification report generated by the partner (if exists)

Check EPC Transaction Management Developer Guide to create transaction

Check below code to create EPC Transaction with Encompass Partner JS API

import host from '@elliemae/em-ssf-guest'

...

let transactionRequest = {
 request: {
 type: 'NEW_REQUEST',
 options: {
 applicationId: "",
 borrowerType: "borrower",
 employmentId: "",
 updateLoan: true,
 uploadStaircaseReport: true,
 uploadPartnerReport: true
 }
 }
}

async function createTransaction(transactionRequest) {
 try {
 const transactionObject = await host.getObject('transaction')
 const transactionData = await transactionObject.create(transactionRequest)

 applicationState.transactionId = transactionData.id
 } catch (error) {
 console.log({error})
 }
}

createTransaction(transactionRequest)

! A single verification can be triggered with a single invocation.

Working with webhooks

If you are using the EPC webhook integration, you will get an event like below when you create the transaction. If you want to process the transaction in Staircase Service Application, you can find the epc transaction in the $.meta.resourceId path in the incoming message.

{
 "eventTime" : "2020-05-02T11:08:52Z",
 "eventType" : "created",
 "meta" : {
 "resourceType" : "urn:elli:epc:transaction",
 "resourceId" : "{{EPC_TRANSACTION_ID}}",
 "instanceId" : "{{PRODUCT_NAME}}",
 "resourceRef" : ""
 }
}
Map your EPC Transaction to request data
{
 "organizations": [
 {
 "@type": "customer",
 "@id": "01FD6ZNGJADZ0RB1H96FSE8ABC",
 "has_transaction_identifier": {
 "has_value": "{{EPC_TRANSACTION_ID}}"
 }
 }
 ],
 "staircase_products": [
 {
 "@type": "staircase_product",
 "@id": "AB2D6ZNGJADZ0RB1H96FSE8FTG",
 "has_product_name": {
 "has_value": "income"
 }
 }
 ]
}
Updated entitlements after successful application run
Verification of Employment
  • Start Date
  • End Date
  • Start Date
  • Position Description
Verification of Income
  • Base Pay Amount
  • Overtime Amount
  • Bonus Amount
  • Commissions Amount
Verification of Asset (VoD)
  • Holder Name
  • Type
  • Account Identifier
  • Cash Or Market Value Amount
  • Depository Account Name

Get Services

It provides the partner services and details that Staircase offers within the encompass system.


Please check the links below to get detailed information about Staircase Encompass EPC Integration

  • See how Staircase verification APIs can be embedded within Encompass to aggregate data from multiple best-in-class partners, to fully over all data needed to underwrite

Staircase APIs/Encompass Integration Use Case

  • How to configure and call Staircase services in Encompass

Staircase APIs/Encompass Integration Quick Start Guide

Request
application/json
{
  "product_flow_name": "get_services",
  "request_data": {}
}
Response
application/json

Create Invocation Triggered Successfully

{
  "invocation_id": "01FDYNKEP7DRV8HAE4X6J580NP"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
4 fields
FieldTypeDescription
request_dataobjectEmpty Object
organizationsobject[]Organizations Array
@typestringOrganization's Typecustomer
@idstringObject's ID
has_transaction_identifierobjectEPC Transaction ID
has_valuestringValue
staircase_productsobject[]Staircase Product Array. You can select only one target product for the process transaction flow. Transaction process allows only one transaction at a time. If you want to trigger another invocation, you can change the target product and invoke it again.
@typestringProduct Type
@idstringObject's ID
has_product_nameobjectThe business name of a product, which is a provider defined offering of goods or services, including mortgage loans.
has_valuestringValueemploymentincome
product_flow_namestringSelect product flowget_servicesprocess_transaction
transaction_idstringStaircase Transaction ID used for invocation
callback_urlstringThe callback url
Response 201application/json
1 fields

Create Invocation Triggered Successfully

FieldTypeDescription
invocation_idstringInvocation ID
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /products/los-encompass-service-application/invocations/{invocation_id}

Retrieve Invocation Response

getEncompassServiceAppInvocationResponse

Retrieves Invocation Response

Response
application/json

Successfully started flow invocation.

{
  "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
  "invocation_status": "STARTED",
  "product_flow_name": "credit",
  "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
  "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
invocation_id required string (ulid) path 01FEK8V6RT027SRAW903G97DPF Invocation ID
Response 201application/json
9 fields

Successfully started flow invocation.

FieldTypeDescription
invocation_idrequiredstringInvocation ID.
invocation_statusrequiredstringThe status of the invocation.COMPLETEDFAILEDRUNNINGSTARTED
transaction_idrequiredstringTransaction ID.
product_flow_namestringProduct flow name.
metadataobjectThe metadata of the invoked product flow.
callback_urlstringCallback URL.
request_dataobjectThe data for the request collection.
tagsstring[]List of tags.
optionsobjectAdditional information that should be passed to the connector but not be added to the request collection.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Other responses

404

Encompass Process Automation

POST /products/los-encompass-ui-process-automation/invocations

Process Automation

invokeEncompassProcessAutomationPP

Process Automation Adapters are RPA (Robotic Process Automation) system that emulate humans actions interacting with Encompass systems. Process Automation service can interact with system the same way people do


Prerequisite

Set up Encompass credentials

Call Setup Encompass Credentials to store your Encompass credentials for adapters use.


Staircase Encompass Services

The services we currently support are as follows. You can check the Service Application to get the collection of these services defined in the staircase lexicon.

Show the rest
  • Staircase Employment Verification
  • Staircase Income Verification
  • Staircase Asset Verification

How to Use

Setup Staircase Service

It creates requested Staircase service if it's not created before and changes service credentials so that it works with the current environment.

  1. RPA system goes under the menu Admin > Company/User Setup
  2. Opens Service Management
  3. If the service sent in the request is not in the list, it adds this service first.
  4. Then, it completes the installation process by injecting the credentials you added with the setup service.

Important notice: You can set up only one service at a time with this product flow!

Create Loan

It creates loan on the Encompass system with the provided information.

Order Verification

It orders a verification of a selected Staircase service for the given loan number. Setup Staircase Service must be called for the service before ordering a verification.

Request
application/json
{
  "product_flow_name": "create_loan",
  "request_data": {
    "people": [
      {
        "@type": "borrower",
        "has_first_name": {
          "has_value": "John"
        },
        "has_last_name": {
          "has_value": "Jackson"
        },
        "has_birth_date": {
          "has_value": "1993-11-01"
        },
        "has_taxpayer_identifier_value": {
          "has_value": 666234390
        },
        "with_address": [
          {
            "@type": "address",
            "has_address_line_1_text": {
              "has_value": "33 IRVING PLACE"
            },
            "has_city_name": {
              "has_value": "New York"
            },
            "has_state_code": {
              "has_value": "NY"
            },
            "has_postal_code": {
              "has_value": 10003
            },
            "has_country_name": {
              "has_value": "US"
            }
          }
        ],
        "contact_at": [
          {
            "@type": "contact_information",
            "has_email_address": {
              "has_value": "test@test.com"
            }
          },
          {
            "@type": "contact_information",
            "has_email_address": {
              "has_value": 1
            }
          }
        ],
        "works_for": [
          {
            "@type": "organization",
            "has_organization_name": {
              "has_value": "Amazon"
            }
          }
        ]
      }
    ]
  }
}
Response
application/json

Create Invocation Triggered Successfully

{
  "invocation_id": "01FDYNKEP7DRV8HAE4X6J580NP"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
Request bodyapplication/json
3 fields
FieldTypeDescription
transaction_idstringStaircase Transaction ID used for invocation
request_dataobjectEmpty Object
peopleobject[]Person Array
@typestringPerson's Typeborrower
has_first_nameobjectBorrower's First Name
has_valuestringValue
has_last_nameobjectBorrower's Last Name
has_valuestringValue
has_birth_dateobjectBorrower's Birthday
has_valuestringValue
has_taxpayer_identifier_valueobjectBorrower's Taxpayer Identifier Value (SSN)
has_valuestringValue
with_addressobject[]Borrower's Address Array
@typestringObject Typeaddress
has_address_line_1_textobjectAddress Line 1
has_city_nameobjectCity
has_state_codeobjectState Code
has_postal_codeobjectPostal Code
has_country_nameobjectCountry Name
contact_atobject[]Contact Information Array
@typestringObject Typecontact_information
has_email_addressobjectEmail Address
has_phone_numberobjectPhone Number
works_forobject[]Employment Information Array
@typestringObject Typeorganization
has_organization_nameobjectOrganization Name
servicesobject[]Services Array
has_service_nameobjectName of the service to be used in Encompass automation
has_valuestringService Name
mortgage_productsobject[]Mortgage Products Array
has_partner_nameobjectName of the partner to be used for verification
has_valuestringPartner Name
loansobject[]Loans Array
with_loan_identifierobject[]Loan Identifier Array
has_loan_identifierobjectLoan Identifier
product_flow_namestringSelect product flowcreate_loanorder_verificationsetup_staircase_service
Response 201application/json
1 fields

Create Invocation Triggered Successfully

FieldTypeDescription
invocation_idstringInvocation ID
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Response 500application/json
1 fields

The product has encountered an internal server error

FieldTypeDescription
messagestringError Message
Other responses

404

GET /products/los-encompass-ui-process-automation/invocations/{invocation_id}

Retrieve Invocation Response

getEncompassProcessAutomationInvocationResponse

Retrieves Invocation Response

Response
application/json

Successfully started flow invocation.

{
  "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
  "invocation_status": "STARTED",
  "product_flow_name": "create_loan",
  "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
  "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
invocation_id required string (ulid) path 01FEK8V6RT027SRAW903G97DPF Invocation ID
Response 201application/json
7 fields

Successfully started flow invocation.

FieldTypeDescription
invocation_idrequiredstringInvocation ID.
invocation_statusrequiredstringThe status of the invocation.COMPLETEDFAILEDRUNNINGSTARTED
transaction_idrequiredstringTransaction ID.
product_flow_namestringProduct flow name.
metadataobjectThe metadata of the invoked product flow.
callback_urlstringCallback URL.
request_dataobjectThe data for the request collection.
Response 400application/json
1 fields

Request data failed validation

FieldTypeDescription
messagestringMessage
Response 403application/json
2 fields

Invalid key for service

FieldTypeDescription
messagestring
urlstring
Other responses

404

Providers

Errors

400403404405422500

Type to search.