Skip to content
Staircase

Insurance

Which mortgage-insurance carriers a loan qualifies for, determined across the carrier roster in a committed order.

A caller sends the loan and borrower. The product works down the carrier ordering below and returns the carriers willing to insure the loan, with the terms each offered.

The carriers are the licensed mortgage-insurance writers; the ordering is the committed sequence in the product's own configuration.

How it works

Eligibility and pricing are separate steps here. A carrier can be eligible and uncompetitive, so the response carries every carrier that qualified rather than a single selection, and the choice is left to the caller.

The premium structures this feeds are modelled on the contract side, in Insurance, which carries the four premium types and their effect on closing costs.

Dual listing

Insurance is filed under two categories. The other listing is Insurance under Contract, and neither listing carries a recorded specification.

Operations

Setup

POST /{partner_name}/partners-configurations

Set Partners Configurations

setConfigurations

Set Partner Configurations

By using Set partners Configurations API we allow our customers to configure partners' connectivity data in customer environment.

If you want to use your own partner contract for Checking Eligibility Insurance, please check Request body Schema example for required values from partner side and run Set partner Configurations API.

You can check the partner status by calling the Retrieve Partners endpoint

Show the rest

Arch mapping

partner attribute mapped attribute description
"masterPolicyNumber" partners[0].with_partner_configuration.with_customer.has_organization_identifier.has_value Customer's Arch MI provided active master policy number
"email_id" partners[0].with_partner_configuration.with_customer.contact_at.has_email_address.has_value Customer email address
"loanProgram" partners[0].with_partner_configuration.with_customer.with_custom_field Customer's Special pricing value, optional
"quotename" partners[0].with_partner_configuration.with_customer.with_custom_field Customer's Arch MI quote name
"nmls_no" partners[0].with_partner_configuration.with_customer.with_license.has_license_identifier.has_value Customer's "NMLS" number of the user requesting the quote.
"OriginationChannel" partners[0].with_partner_configuration.with_customer.with_role.has_party_role_type.has_value Customer is Lender or Broker
"secondary_provider_identifier" partners[0].with_partner_configuration.with_secondary_provider.has_organization_identifier.has_value A unique number assigned by Arch MI to identify secondary service providers.
"environment type" partners[0].with_partner_configuration.with_partner_environment.has_partner_environment_type.has_value Test/Production

NationalMI mapping

partner attribute mapped attribute description
"email_id" partners[0].with_partner_configuration.with_customer.contact_at.has_email_address.has_value Customer's email address
"nmls_id" partners[0].with_partner_configuration.with_customer.with_license.has_license_identifier.has_value Customer's "NMLS" number
"LenderIdentifier" partners[0].with_partner_configuration.with_customer.has_organization_identifier.has_value Customer's unique number identifier.
"environment type" partners[0].with_partner_configuration.with_partner_environment.has_partner_environment_type.has_value Test/Production

Radian mapping

partner attribute mapped attribute description
"email_id" partners[0].with_partner_configuration.with_customer.contact_at.has_email_address.has_value Customer Email Address
"MILenderIdentifier" partners[0].with_partner_configuration.with_customer.has_organization_identifier.has_value Customer's unique number identifier.
"environment type" partners[0].with_partner_configuration.with_partner_environment.has_partner_environment_type.has_value Test/Production

Enact mapping

partner attribute mapped attribute description
"originator_postal_code" partners[0].with_partner_configuration.with_customer.with_address.has_postal_code.has_value Customer's postal code
"originator_state_code" partners[0].with_partner_configuration.with_customer.with_address.has_state_code.has_value Customer's state code
"originator_address" partners[0].with_partner_configuration.with_customer.with_address.has_address_line_1_text.has_value Customer's address
"MILenderIdentifier" partners[0].with_partner_configuration.with_customer.has_organization_identifier.has_value Customer's unique number identifier.
"environment type" partners[0].with_partner_configuration.with_partner_environment.has_partner_environment_type.has_value Test/Production

MGIC mapping

partner attribute mapped attribute description
"MILenderIdentifier" partners[0].with_partner_configuration.with_customer.has_organization_identifier.has_value Customer's unique number identifier.
"originator_channel" partners[0].with_partner_configuration.with_secondary_provider.has_organization_identifier.has_value Customer is Lender or Broker
"secondary_provider_identifier" partners[0].with_partner_configuration.with_secondary_provider.has_organization_identifier.has_value A unique number assigned by MGIC to identify secondary service providers.
"environment type" partners[0].with_partner_configuration.with_partner_environment.has_partner_environment_type.has_value Test/Production
Request
application/json
{
  "partners": [
    {
      "@type": "partner",
      "has_organization_name": {
        "has_value": "arch"
      },
      "with_partner_configuration": [
        {
          "@type": "partner_configuration",
          "with_customer": [
            {
              "@type": "customer",
              "has_organization_identifier": {
                "has_value": "lenderidentifier/policy_number"
              },
              "with_license": [
                {
                  "@type": "license",
                  "has_license_identifier": {
                    "has_value": "nmlsno"
                  }
                }
              ],
              "with_role": [
                {
                  "@type": "role",
                  "has_party_role_type": {
                    "has_value": "lender"
                  }
                }
              ],
              "contact_at": [
                {
                  "@type": "contact_information",
                  "has_email_address": {
                    "has_value": "emailId"
                  }
                }
              ]
            }
          ],
          "with_partner_environment": [
            {
              "@type": "partner_environment",
              "has_partner_environment_type": {
                "has_value": "test"
              }
            }
          ]
        }
      ]
    }
  ]
}
Response
application/json

Setup API Triggered Successfully

{
  "message": "Configurations are saved"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
partner_name required string path nationalmi Partner name
Response 200application/json
1 fields

Setup 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 /{partner_name}/partner-configuration-schema

Retrieve Partner Configurations Schema

getConfigurations

Get Partners Configurations Schema

Get Partner configurations schema for specific partner. You can use retrieved schema for updating the partner configurations.

Response
application/json

Request data failed validation

{
  "message": "{'data': ['Missing data for required field.']}"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Staircase Environment API Key
partner_name required string path nationalmi Partner 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

200404

Operations

POST /insurance

Create Insurance

post-insurance

Request
application/json
{
  "transaction_id": "uhz6t54e-9d74-g17e-99ca-a36b30vdfd35",
  "collection_id": "hg62e49f-9d74-g17e-99ca-a36b30vdfd35",
  "partner_name": "PartnerName"
}
Response
application/json

Insurance request created successfully.

{
  "collection_id": "e4502ed2-8df8-4b8f-84bd-a1097e999a77",
  "message": "When ready, data will be available under the following collection_id. Use this new collection_id to get the execution status."
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Request bodyapplication/json
3 fields
FieldTypeDescription
transaction_idrequiredstringTransaction ID
collection_idrequiredstringCollection ID
partner_namerequiredstring
Response 200application/json
2 fields

Insurance request created successfully.

FieldTypeDescription
collection_idstringCollection ID
messagestringMessage
GET /insurance/elements

Retrieve Elements

get-insurance-elements

Retrieve Elements provides a list of the elements needed to invoke a partner product.

Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Response 200application/json
1 fields

Elements needed for request.

FieldTypeDescription
elementsobjectList of elements
POST /insurance/elements/complete

Validate Collection

post-insurance-collection-complete

Validate Collection validates that a collection contains all of the elements needed to invoke a partner product.

Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Request bodyapplication/json
1 fields
FieldTypeDescription
collectionrequiredobject
Response 400application/json
2 fields

Collection is invalid.

FieldTypeDescription
messagestringError message
errorsobjectList of elements that are missing
Other responses

200

GET /insurance/status/{transaction_id}/{collection_id}

Retrieve Status

get-insurance-status

Retrieve Status checks status of your request. Possible statuses:

  • REQUEST_MADE
  • REQUEST_ACCEPTED
  • WAITING_FOR_RESPONSE
  • COMPLETED
Response
application/json

Statuses include: * REQUEST_MADE<p> * REQUEST_ACCEPTED<p> * WAITING_FOR_RESPONSE<p> * COMPLETED

{
  "status": "COMPLETED"
}
Parameters
3
ParameterTypeExampleDescription
transaction_id required string path 9u8z7t65-cb71-4f20-8e40-7a829b52e91e Transaction ID
collection_id required string path e4502ed2-8df8-4b8f-84bd-a1097e999a77 Collection ID
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Response 200application/json
1 fields

Statuses include: * REQUEST_MADE<p> * REQUEST_ACCEPTED<p> * WAITING_FOR_RESPONSE<p> * COMPLETED

FieldTypeDescription
statusobjectCurrent execution status
Response 400application/json
1 fields

Status is unavailable

FieldTypeDescription
errorstringError message
POST /insurance/transactions

Create Transaction

post-insurance-transaction

Create Transaction creates a transaction in Staircase. A transaction in Staircase is an acknowledgement that you want to call a Staircase product. It's a container for everything associated with that product invocation, and is correlated with a collection related to the product (e.g. a document). You need to create a new transaction every time you want to connect with a Staircase product. Staircase then associates everything, from a data and API execution standpoint, to that transaction.

Response
application/json

Transaction successfully created.

{
  "transaction_id": "a34c40a6-3c02-44f9-a696-cd7388f506d3"
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Response 200application/json
1 fields

Transaction successfully created.

FieldTypeDescription
transaction_idstringTransaction ID
POST /insurance/transactions/{transaction_id}/collections

Create Collection

post-insurance-collection

Create Collection creates a collection of elements . The elements within the collection are required.

Request
application/json
{
  "sets": {
    "set": [
      {
        "elements": {
          "element": [
            {
              "property_entry": {
                "property_entries": {
                  "datetime": "2020-08-25",
                  "description": "Description of property",
                  "event_type": "TestType"
                }
              },
              "property_class": {
                "property_clases": {
                  "type": "STATEMENT"
                },
                "name": "Test",
                "period_start_date": "2020-07-01",
                "period_end_date": "2020-07-31"
              },
              "content": {
                "foreign_object": "7e62ce76-d93d-4f31-92d3-45c2cb8255ea"
              }
            }
          ]
        }
      }
    ]
  }
}
Response
application/json

Collection successfully created.

{
  "collection_id": "hg62e49f-9d74-g17e-99ca-a36b30vdfd35",
  "data": {
    "sets": {
      "set": [
        {
          "elements": {
            "element": [
              {
                "property_entry": {
                  "property_entries": {
                    "datetime": "2020-08-25",
                    "description": "Description of property",
                    "event_type": "TestType"
                  }
                },
                "property_class": {
                  "property_clases": {
                    "type": "STATEMENT"
                  },
                  "name": "Test",
                  "period_start_date": "2020-07-01",
                  "period_end_date": "2020-07-31"
                },
                "content": {
                  "foreign_object": "7e62ce76-d93d-4f31-92d3-45c2cb8255ea"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "metadata": {},
  "transaction_id": "6t5r4wq1-9d74-g17e-99ca-a36b30vdfd35"
}
Parameters
2
ParameterTypeExampleDescription
transaction_id required string path 3wet53r4-cb71-8u74-8e40-7a829b52e91e Transaction ID
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Request bodyapplication/json
2 fields
FieldTypeDescription
datarequiredobject
metadataobject
Response 200application/json
4 fields

Collection successfully created.

FieldTypeDescription
transaction_idobjectTransaction ID
collection_idobjectCollection ID
dataobjectData object
metadataobjectMetadata object
PUT /insurance/transactions/{transaction_id}/collections/{collection_id}

Update Collection

put-insurance-collection

Update Collection updates a collection of elements by new elements.

Request
application/json
{
  "sets": {
    "set": [
      {
        "properties": {
          "property": [
            {
              "propety_entry": {
                "propety_entries": {
                  "datetime": "2020-05-05",
                  "description": "Test Description",
                  "event_type": "TestType"
                }
              },
              "propety_class": {
                "propety_classes": {
                  "type": "TestType"
                },
                "name": "TestName",
                "period_start_date": "2019-01-01",
                "period_end_date": "2019-12-31"
              },
              "content": {
                "foreign_object": "7z6t5r4e-d93d-4f31-92d3-45c2cb8255ea"
              }
            }
          ]
        }
      }
    ]
  }
}
Response
application/json

Collection successfully updated

{
  "collection_id": "hg62e49f-9d74-g17e-99ca-a36b30vdfd35",
  "data": {
    "sets": {
      "set": [
        {
          "properties": {
            "property": [
              {
                "property_data": {
                  "property_class": {
                    "datetime": "2020-05-05",
                    "description": "Info",
                    "event_type": "TestEvent"
                  }
                },
                "document_classification": {
                  "document_classes": {
                    "type": "TestType"
                  },
                  "name": "TestName",
                  "period_start_date": "2019-01-01",
                  "period_end_date": "2019-12-31"
                },
                "content": {
                  "foreign_object": "7z6t5r4e-d93d-4f31-92d3-45c2cb8255ea"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "metadata": {},
  "transaction_id": "6t5r4wq1-9d74-g17e-99ca-a36b30vdfd35"
}
Parameters
3
ParameterTypeExampleDescription
transaction_id required string path 3wet53r4-cb71-8u74-8e40-7a829b52e91e Transaction ID
collection_id required string path 9u8z7t65-cb71-8u74-8e40-7a829b52e91e Transaction ID
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Request bodyapplication/json
2 fields
FieldTypeDescription
datarequiredobject
metadataobject
Response 200application/json
4 fields

Collection successfully updated

FieldTypeDescription
transaction_idobjectTransaction ID
collection_idobjectCollection ID
dataobjectData object
metadataobjectMetadata object
POST /mortgage-insurance

Create Mortgage Insurance

post-mortgage-insurance

Create Mortgage Insurance creates views of rate finders, MI servicing and loss management services from your choice of products and partners.

Request
application/json
{
  "transaction_id": "uhz6t54e-9d74-g17e-99ca-a36b30vdfd35",
  "collection_id": "hg62e49f-9d74-g17e-99ca-a36b30vdfd35",
  "partner_name": "PartnerName"
}
Response
application/json

Mortgage Insurance request created successfully.

{
  "collection_id": "e4502ed2-8df8-4b8f-84bd-a1097e999a77",
  "message": "When ready, data will be available under the following collection_id. Use this new collection_id to get the execution status."
}
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Authorization key
Request bodyapplication/json
3 fields
FieldTypeDescription
transaction_idrequiredstringTransaction ID
collection_idrequiredstringCollection ID
partner_namerequiredstring
Response 200application/json
2 fields

Mortgage Insurance request created successfully.

FieldTypeDescription
collection_idstringCollection ID
messagestringMessage

Providers

Field mapping

ProviderFlowCanonical inVendor inVendor outCanonical out
Essent essent-insurance-flow staircase-graph essent-input essent-output staircase-graph

Errors

400403404422500

Type to search.