<!-- https://staircase.co/products/verification/employment -->
# Employment

# Employment

Employment verification across a roster of vendors, tried in a committed order until one returns a record.

A caller sends the borrower and employer. The product works down the ordering below, stopping at the first vendor that returns a verified record, and returns one canonical employment response regardless of which vendor answered.

Vendor selection is its own service. Separating routing from the product's own logic is what allowed the ordering to be retuned without touching the product.

## How it works

A vendor not covering an employer is an expected outcome, not a fault. The integration returns a completed response carrying a coverage code, which is what lets the next vendor be tried automatically rather than paging an on-call engineer for a miss.

The ordering is not alphabetical and not arbitrary — it is the committed sequence in the product's own configuration file, reproduced below exactly as recorded.

## Operations

<!--source:api-specifications-->

### Setup
<!--/source-->

`POST` `/partner/activate`

<!--source:api-specifications-->

#### Request to Activate Partner
<!--/source-->

`activatePartner`

<!--source:api-specifications-->
If you wish to use Staircase contract to activate a partner, please execute this endpoint.

By executing this API Staircase will be informed that you as our customer want to use requested partner for verification process.

The request body should contain which partner needs to be activated and for which environment. Once the request is received it will take between 1-3 working days to activate a partner. Once the partner is set up the partner will be active and ready to be used. You can check the partner status by calling the Retrieve Partners endpoint. If response for specific partner is "active": true, partner is ready to be used for verification.

List of partners available for activation: Argyle, Atomic, Equifax, Finicity, Meridian, Pinwheel, Truework and Truework-instant.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "partner": "partner_name",
 "environment": "my-domain.staircaseapi.com"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Request to Activate API Triggered Successfully

```
{
 "message": "We have started with enabling Partner, Partner will be activated automatically after process is finished within X working days."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partner`required | `string` | <!--source:api-specifications-->Partner name that needs to be activated<!--/source--> |
| `environment`required | `string` | <!--source:api-specifications-->Environment for which the partner needs to be activated.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request to Activate API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/partner/widget`

<!--source:api-specifications-->

#### Partner Widget Token
<!--/source-->

`partnerWidgetToken`

<!--source:api-specifications-->
Partner Widget Token endpoint allows you to request a widget token which you can use together with our Staircase Partner Credentials NPM package to create a UI for partner credentials set up.

The endpoint will return a `widget_token` which should be used with the NPM package to display a UI to enter the required credentials based on the partner that needs to be set up.

Show the rest `partner` name should be one of the valid partners available for Employment product

You can provide your own CSS `styles` which will customize a widget. Below is a complete example of the `styles` you can use:

```
{
 "submitButton": {
 "fontSize": "14px",
 "fontWeight": "bold",
 "margin": "20px 0px 10px 0px",
 "height": "40px",
 "width": "100%",
 "color": "#fff",
 "backgroundColor": "#b79833"
 },
 "submitButton:hover": {
 "color": "#fff",
 "backgroundColor": "#337ab7"
 },
 "input": {
 "color": "red"
 },
 "input:active": {
 "background": "yellow"
 },
 "input:focus": {
 "background": "orange"
 },
 "input:focusWithin": {
 "background": "gray"
 },
 "input:hover": {
 "background": "purple"
 },
 "input:visited": {
 "background": "teal"
 },
 "inputLabel": {
 "fontSize": "18px"
 },
 "title": {
 "fontSize": "23px"
 },
 "root": {
 "background": "#e6cccc"
 }
}
```

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "partner": "partner_name",
 "styles": {
 "submitButton": {
 "fontSize": "14px",
 "fontWeight": "bold",
 "margin": "20px 0px 10px 0px",
 "height": "40px",
 "width": "100%",
 "color": "#fff",
 "backgroundColor": "#1d2236"
 },
 "root": {
 "background": "#d8e6cc"
 }
 },
 "callback_url": "www.callback.url/example"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Request to Partner Widget Token API Triggered Successfully

```
{
 "widget_token": "<redacted>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partner`required | `string` | <!--source:api-specifications-->Partner name which credentials need to be set<!--/source--> |
| `styles`required | `object` | <!--source:api-specifications-->Styles object for widget<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->Callback URL for callback when widget status changes.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request to Partner Widget Token API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `widget_token` | `string` | <!--source:api-specifications-->Widget Token for staircase NPM package.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/argyle/credentials`

<!--source:api-specifications-->

#### Set Argyle Credentials
<!--/source-->

`setArgyleCredentials`

<!--source:api-specifications-->
By using Set Argyle Credentials API we allow our customers to configure Argyle in customer environment.

If you don't have Argyle contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Argyle contract for verification, please check Request body Schema example for required values from partner side and run Set Argyle Credentials API.

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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "client_id": "--------",
 "client_secret": "<redacted>",
 "link_key": "--------",
 "contract": "BYOC",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `client_id`required | `string` | <!--source:api-specifications-->Argyle client ID value<!--/source--> |
| `client_secret`required | `string` | <!--source:api-specifications-->Argyle client secret value<!--/source--> |
| `link_key`required | `string` | <!--source:api-specifications-->Argyle link key<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/atomic/credentials`

<!--source:api-specifications-->

#### Set Atomic Credentials
<!--/source-->

`setAtomicCredentials`

<!--source:api-specifications-->
By using Set Atomic Credentials API we allow our customers to configure Atomic partner in customer environment.

If you don't have Atomic contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Atomic contract for verification , please check Request body Schema example for required values from partner side and run Set Atomic Credentials API

Show the rest Below is a step-by-step guide on how to add the webhook on partner dashboard.

If you don't add webhook on partner dashboard, verification will be triggered, but response of the verification will not be available, and you can be charged for verification.

Adding webhook workflow:

1. Login to your Atomic Dashboard using your username and password.
1. In the navigation menu browse to Settings.
1. Under Webhooks, click the Add endpoint button.
1. Add the following URL to the Endpoint URL input field:

NOTE: Change SUBDOMAIN value with your actual domain name

1. Add Task status updates to the Events input field.
1. Click on Add endpoint.

Please check Request body Schema example for required values from partner side.

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

You are now ready to use the partner integration.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "client_key": "--------",
 "client_secret": "<redacted>",
 "username": "test@test.com",
 "password": "<redacted>",
 "contract": "SC",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
6 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `client_key` | `string` | <!--source:api-specifications-->Atomic client key<!--/source--> |
| `client_secret`required | `string` | <!--source:api-specifications-->Atomic client secret<!--/source--> |
| `username`required | `string` | <!--source:api-specifications-->Atomic username<!--/source--> |
| `password`required | `string` | <!--source:api-specifications-->Atomic password<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/truework/credentials`

<!--source:api-specifications-->

#### Set Truework Credentials
<!--/source-->

`setTrueworkCredentials`

<!--source:api-specifications-->
By using Set Truework Credentials API we allow our customers to configure Truework partner in customer environment.

If you don't have Truework contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Truework contract for verification , please check Request body Schema example for required values from partner side and run Set Truework Credentials API

Show the rest Below is a step-by-step guide on how to add the webhook on partner dashboard:

If you don't add webhook on partner dashboard, verification will be triggered, but response of the verification will not be available, and you can be charged for verification.

1. Login to your Truework Dashboard using your username and password.
1. In the navigation menu browse to Developer.
1. Under API Settings, Production Webhooks click the Edit button.
1. Under the Add Production Webhook section click the Event input and select "Verification Request Status Changed"
1. Select the Target input and add the following URL:

NOTE: Change SUBDOMAIN value with your actual domain name

1. Click on Create.

Please check Request body Schema example for required values from partner side.

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

You are now ready to use the partner integration.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "token": "<redacted>",
 "username": "test@test.com",
 "password": "<redacted>",
 "contract": "BYOC",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `token`required | `string` | <!--source:api-specifications-->Truework token for API<!--/source--> |
| `username`required | `string` | <!--source:api-specifications-->Truework username<!--/source--> |
| `password`required | `string` | <!--source:api-specifications-->Truework password<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/truework-instant/credentials`

<!--source:api-specifications-->

#### Set Truework Instant Credentials
<!--/source-->

`setTrueworkInstantCredentials`

<!--source:api-specifications-->
Set Truework-Instant Credentials
<!--/source-->

<!--source:api-specifications-->
By using Set Truework-Instant Credentials API we allow our customers to configure Truework partner in customer environment for instant verification.

If you don't have Truework contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Truework contract for verification , please check Request body Schema example for required values from partner side and run Set Truework Credentials API

Show the rest Below is a step-by-step guide on how to add the webhook on partner dashboard:

If you don't add webhook on partner dashboard, verification will be triggered, but response of the verification will not be available, and you can be charged for verification.

1. Login to your Truework Dashboard using your username and password.
1. In the navigation menu browse to Developer.
1. Under API Settings, Production Webhooks click the Edit button.
1. Under the Add Production Webhook section click the Event input and select "Verification Request Status Changed"
1. Select the Target input and add the following URL:

NOTE: Change SUBDOMAIN value with your actual domain name

1. Click on Create.

Please check Request body Schema example for required values from partner side.

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

You are now ready to use the partner integration.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "token": "<redacted>",
 "username": "test@test.com",
 "password": "<redacted>",
 "contract": "SC",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `token`required | `string` | <!--source:api-specifications-->Truework-Instant token for API<!--/source--> |
| `username`required | `string` | <!--source:api-specifications-->Truework-Instant username<!--/source--> |
| `password`required | `string` | <!--source:api-specifications-->Truework-Instant password<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/pinwheel/credentials`

<!--source:api-specifications-->

#### Set Pinwheel Credentials
<!--/source-->

`setPinwheelCredentials`

<!--source:api-specifications-->
By using Set Pinwheel Credentials API we allow our customers to configure Pinwheel partner in customer environment.

If you don't have Pinwheel contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Pinwheel contract for verification , please check Request body Schema example for required values from partner side and run Set Pinwheel Credentials API.

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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "x_api_secret": "--------",
 "contract": "BYOC",
 "type": "production"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `x_api_secret`required | `string` | <!--source:api-specifications-->Pinwheel API secret<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/meridian/credentials`

<!--source:api-specifications-->

#### Set Meridian Credentials
<!--/source-->

`setMeridianCredentials`

<!--source:api-specifications-->
By using Set Meridian Credentials API we allow our customers to configure Meridian in customer environment.

If you want to use your own Meridian contract for verification , please check Request body Schema example for required values from partner side and run Set Meridian Credentials API.

We currently can't provide Staircase contract for Meridian.

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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "client_id": "--------",
 "client_secret": "<redacted>",
 "mcl": "--------",
 "domain": "example.domain.com",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
6 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `client_id`required | `string` | <!--source:api-specifications-->Meridian client ID<!--/source--> |
| `client_secret`required | `string` | <!--source:api-specifications-->Meridian client secret<!--/source--> |
| `domain`required | `string` | <!--source:api-specifications-->Meridian domain<!--/source--> |
| `mcl`required | `string` | <!--source:api-specifications-->Meridian MCL schema<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/finicity/credentials`

<!--source:api-specifications-->

#### Set Finicity Credentials
<!--/source-->

`setFinicityCredentials`

<!--source:api-specifications-->
By using Set Finicity Credentials API we allow our customers to configure Finicity partner in customer environment.

If you don't have Finicity contract, please use our Request to Activate Partner API. Partner will be activated within next business day.

If you want to use your own Finicity contract for verification , please check Request body Schema example for required values from partner side and run Set Finicity Credentials API.

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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "partnerId": "--------",
 "partnerSecret": "--------",
 "apiKey": "<redacted>",
 "contract": "BYOC",
 "type": "test"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partnerId`required | `string` | <!--source:api-specifications-->Finicity partner ID<!--/source--> |
| `partnerSecret`required | `string` | <!--source:api-specifications-->Finicity partner secret<!--/source--> |
| `apiKey`required | `string` | <!--source:api-specifications-->Finicity API key<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type`required | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/equifax/credentials`

<!--source:api-specifications-->

#### Set Equifax Credentials
<!--/source-->

`setEquifaxCredentials`

<!--source:api-specifications-->
Set Equifax Credentials

By using Set Equifax Credentials API we allow our customers to configure Equifax partner in customer environment. You can add your own existing Equifax contract, or you can request to use Staircase contract to activate a partner in your environment by executing Request to activate partner API.

To enable partner Equifax for verification you need to:

Show the rest Setting credentials

Add all key values for your Equifax, TheWorkNumber Account : "twn_username", "twn_password" , "pfx_certificate_password" and "type" in request body. Please check request body schema example.

PFX certificate

In addition to setting credentials for Equifax you need to upload a PFX certificate. Use Upload Equifax Certificate API to upload certificate to your environment. PFX Certificate needs to be provided by Equifax. If you don't have it, you will not be able to use Equifax as partner for verification. If this is the case please contact your Equifax Account Manager, and get PFX certificate and password for certificate.

Public IP address

Public IP address of your environment needs to be added to Equifax firewall. To enable public IP address for your environment you need to enable static IP feature using APIs Enable static IP feature and Get IP Allocation Status. If public IP address is not allowed through Equifax firewall, you will not be able to use Equifax as partner for verification.

When you get public IP address please contact your Equifax Account Manager, so they allow public IP address of your environment through Equifax firewall

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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "twn_username": "UserNameIntgTEST@5005",
 "twn_password": "I_9087POK",
 "pfx_certificate_password": "9huoiqhiokopj9iu",
 "contract": "BYOC",
 "type": "production"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Credentials are saved and verified"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "Invalid request body",
 "error": "[object has missing required properties ([\"client_secret\"])]"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `twn_username`required | `string` | <!--source:api-specifications-->Equifax The Work Number username<!--/source--> |
| `twn_password`required | `string` | <!--source:api-specifications-->Equifax The Work Number password<!--/source--> |
| `pfx_certificate_password` | `string` | <!--source:api-specifications-->Equifax PFX Certificate password<!--/source--> |
| `contract` | `string` | <!--source:api-specifications-->Partner contract type, Staircase contract (SC) or bring your own contract (BYOC) - if not set default value is BYOC<!--/source--> |
| `type` | `string` | <!--source:api-specifications-->Type of credentials, can be either test or production<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `422``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |
| `error` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

`POST` `/equifax/certificate`

<!--source:api-specifications-->

#### Upload Equifax Certificate
<!--/source-->

`uploadEquifaxCertificate`

<!--source:api-specifications-->
Upload Equifax Certificate

For uploading Equifax PFX Certificate you will need to issue a POST request to this endpoint. Upload Equifax Certificate uploads a .pfx document to our services. You can upload the certificate using HTML Request Maker Try It Out. Place your api_key in the request header, please make sure Content-Type is set to application/x-pkcs12. Set the request body to binary and browse to your PFX Certificate. Click Send to upload your certificate.

To upload a certificate programmatically, use the upload example below. After you get a successful response, you can start using the Equifax integration.

```
import requests
url = ""
payload = open("certificate.pfx", "rb")
headers = {
 'x-api-key': 'API_KEY',
 'Content-Type': 'application/x-pkcs12'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
Select option 'binary' in order to upload file
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Setup API Triggered Successfully

```
{
 "message": "Certificate uploaded and saved successfully"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error

```
{
 "message": "The product has encountered an internal server error"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Setup API Triggered Successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message<!--/source--> |

##### Other responses

`404`

<!--source:api-specifications-->

### Blobs
<!--/source-->

`POST` `/blobs/upload`

<!--source:api-specifications-->

#### Update Blob
<!--/source-->

`uploadBlob`

<!--source:api-specifications-->
Upload Blob
<!--/source-->

<!--source:api-specifications-->
Upload Blob allows a customer to upload a document in .pdf form. Upload Blob uploads a .pdf document (blob) to Persistence product.

You can upload PDF using HTML Request Maker Try It Out. Place your api_key in the request header, set the request body to binary and browse to your document. Click Send to upload your document. To upload a document programmatically, use the programmatic upload example below. After the approval document is successfully uploaded, a blob_id value is provided. Example: 'blob_id': '01EZYHKY4EXFW4Z8RKWHDP1KHB' After you got successful response, you need to use the blob_id in collection with the following path.

Show the rest
```
$.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].staircase_blob_id
```

To upload a document within code, you can to use a below example.

```
import requests

with open("document.pdf", "rb") as document:
 payload = document.read

url = ""
headers = {
 "x-api-key": ...,
 "Content-Type": "application/pdf"
}
response = requests.post(url, headers=headers, data=payload)
if response.ok:
 blob_id = response.json["blob_id"]
```

<!--/source-->

##### Request

<!--source:api-specifications-->
application/octet-stream Copy
```
Select option 'binary' in order to upload file
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Blob uploaded

```
{
 "blob_id": "01EZY9J8SEFM2JKDJ1Q3YX65HS"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Blob uploaded
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `blob_id` | `string` | <!--source:api-specifications-->Created blob ID<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400``405``422`

`GET` `/blobs/{blob_id}`

<!--source:api-specifications-->

#### Retrieve Blob
<!--/source-->

`retrieveBlob`

<!--source:api-specifications-->
Retrieve Blob retrieves, for a given blob_id, extension and presigned URLs for uploading and downloading the blob to and from Staircase.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Blob retrieved successfully.

```
{
 "blob_id": "01EZY9ENJGRMTW4S9CS4V1Y6XH",
 "extension": ".pdf",
 "message": "Blob retrieved successfully.",
 "presigned_urls": {
 "upload": {
 "url": "https://dev-data-manager-blobs-bucket-us-east-1-867210375911.s3.amazonaws.com/01EZY9ENJGRMTW4S9CS4V1Y6XH"
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `blob_id` required | `string` path | `01EZY9J8SEFM2JKDJ1Q3YX65HS` | <!--source:api-specifications-->Blob identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Blob retrieved successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `blob_id` | `string` | <!--source:api-specifications-->Blob ID<!--/source--> |
| `extension` | `string` | <!--source:api-specifications-->File extension<!--/source--> |
| `message` | `string` | <!--source:api-specifications-->Blob retrieved successfully.<!--/source--> |
| `presigned_urls` | `object` | <!--source:api-specifications-->Presigned URL<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400``404``405`

`PUT` `/blobs/{blob_id}/presigned-urls/{action}`

<!--source:api-specifications-->

#### Create Presigned URL
<!--/source-->

`createPresignedUrl`

<!--source:api-specifications-->
Create Presigned URL creates a presigned URL in Staircase. The presigned URL is used to upload or download a blob (document). It expires one hour after creation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Presigned URL created successfully.

```
{
 "presigned_urls": {
 "upload": {
 "url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
 },
 "download": {
 "url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `blob_id` required | `string` path | `01EZY9J8SEFM2JKDJ1Q3YX65HS` | <!--source:api-specifications-->Blob identifier<!--/source--> |
| `action` required | `string` path | `upload` | <!--source:api-specifications-->Action, one of one of ['upload', 'donwload']<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Presigned URL created successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `presigned_urls` | `object` | <!--source:api-specifications-->Presigned URLs<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Other responses

`400``404`

`GET` `/blobs/{blob_id}/presigned-urls/{action}`

<!--source:api-specifications-->

#### Retrieve Presigned URL for Action
<!--/source-->

`retrievePresignedUrl`

<!--source:api-specifications-->
Retrieve Presigned URL for Action retrieves a presigned URL for a specific action. An action can be download or upload.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Presigned URL retrieved successfully.

```
{
 "url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `blob_id` required | `string` path | `01EZY9J8SEFM2JKDJ1Q3YX65HS` | <!--source:api-specifications-->Blob identifier<!--/source--> |
| `action` required | `string` path | `upload` | <!--source:api-specifications-->Possible actions: - upload - download<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Presigned URL retrieved successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `url` | `string` | <!--source:api-specifications-->Presigned url<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400``404`

`GET` `/blobs/{blob_id}/presigned-urls`

<!--source:api-specifications-->

#### Retrieve Presigned URLs
<!--/source-->

`retrievePresignedUrls`

<!--source:api-specifications-->
Retrieve Presigned URLs retrieves, for a given blob_id, presigned URLs for uploading and downloading the blob to and from Staircase.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Presigned URLs retrieved successfully.

```
{
 "upload": {
 "url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `blob_id` required | `string` path | `01EZY9J8SEFM2JKDJ1Q3YX65HS` | <!--source:api-specifications-->Blob identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Presigned URLs retrieved successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `presigned_urls` | `object` | <!--source:api-specifications-->Presigned URLs<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Other responses

`400``404`

`POST` `/create_blob_from_content`

<!--source:api-specifications-->

#### Create Blob from Partner content
<!--/source-->

`createBlobFromContent`

<!--source:api-specifications-->
Create Blob from Partner content will create a blob from the content that a partner has returned. The payload will be the extension path of the blob to be created in the vendor response object, content_path is the path of the content element in the vendor response object.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
Blob content from partner
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201400 UnableToRetrieveURL400 UnableToExtractValues403422500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Presigned URLs retrieved successfully.

```
{
 "blob_id": "01F739J4XDSNCZMMJSJCB83PCQ"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid body request.

```
{
 "message": "Unable to retrieve url"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid body request.

```
{
 "message": "Unable to extract data from URL"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Unprocessable entity error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `extension_path` | `string` | <!--source:api-specifications-->JSON path where the extension is in the response object. If it is not specified, extension will be "pdf".<!--/source-->Example `$.DocumentExension` |
| `content_path`required | `string` | <!--source:api-specifications-->JSON path where the actual content is in the response object.<!--/source-->Example `$.DocumentData` |
| `decode_from_base64` | `boolean` | <!--source:api-specifications-->Need to decode a content from base64.<!--/source--> |
| `encode_to_base64` | `boolean` | <!--source:api-specifications-->Need to encode a content to base64.<!--/source--> |
| `url`required | `string` | <!--source:api-specifications-->URL with the partner response.<!--/source-->Example `https://google.com` |

##### Response `201``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Presigned URLs retrieved successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `blob_id` | `string` | <!--source:api-specifications-->ID of the returned blob.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Invalid body request.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `422``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Unprocessable entity error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Partners
<!--/source-->

`GET` `/partners`

<!--source:api-specifications-->

#### Retrieve Partners
<!--/source-->

`getVendors`

<!--source:api-specifications-->
Retrieve Partners retrieves an object containing all available employment verification partners. Use the `partner_name` to invoke the partner when calling Verify Employment.

<!--/source-->

##### Response

<!--source:api-specifications-->
200 Example1200 Example2400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully retrieved product partners.

```
{
 "partners": [
 {
 "Partner": "partner_name",
 "order": 1,
 "active": true,
 "status": "active",
 "verification_type": "borrower",
 "byoc": true
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully retrieved product partners.

```
{
 "partners": [
 {
 "Partner": "partner_name",
 "order": 1,
 "active": false,
 "status": "upcoming",
 "verification_type": "borrower",
 "byoc": true
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `active` | `boolean` query | `false` | <!--source:api-specifications-->Include vendors with active product flows<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully retrieved product partners.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partners` | `object[]` | <!--source:api-specifications-->List of vendors.<!--/source--> |
| `partner` | `string` | <!--source:api-specifications-->Partner name<!--/source--> |
| `order` | `number` | <!--source:api-specifications-->Order of the product flows associated with this partner<!--/source--> |
| `active` | `boolean` | <!--source:api-specifications-->Partner has active flows<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Status of the partner<!--/source--> |
| `verification_type` | `string` | <!--source:api-specifications-->Type of verification<!--/source--> |
| `byoc` | `boolean` | <!--source:api-specifications-->Specify whether customer should add its own partner credentials or not<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/partners/ordering`

<!--source:api-specifications-->

#### Retrieve Partners Ordering
<!--/source-->

`getPartnersOrdering`

<!--source:api-specifications-->
Retrieve Partners Ordering retrieves the partners' order for the product waterfall invocation according to the configured Product Waterfall Settings. If there is no waterfall for the product configured, partners will be retrieved with the default of the order inside Product Flows.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully retrieved partners ordering.

```
[
 {
 "partner": "partner1",
 "order": 1
 },
 {
 "partner": "partner2",
 "order": 2
 }
]
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully retrieved partners ordering.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partner_order` | `object` | <!--source:api-specifications-->Partner and order<!--/source--> |
| `partner` | `string` | Example `partner1` |
| `order` | `number` | Example `1` |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`PATCH` `/partners/{partner}/status`

<!--source:api-specifications-->

#### Update Partner Status
<!--/source-->

`updatePartnerStatus`

<!--source:api-specifications-->
Update Partner Status updates the active value of a specific partner to value true or false. This shall activate or deactivate the flows configured for this partner in Product Flows.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "active": true
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 application/json400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully updated active parameter for the partner.

```
{
 "message": "Partner status updated."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Failed to update the partner from one of the reasons.

```
{
 "message": "Partner doesn't exist in database."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Failed to update the partner from one of the reasons.

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `partner` required | `string` path | `partner_name` | <!--source:api-specifications-->Name of the partner for which we wan't to update status.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `active`required | `boolean` | Example `true` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully updated active parameter for the partner.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner status updated.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Failed to update the partner from one of the reasons.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner doesn't exist in database.<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`PUT` `/partners/{partner}/status`

<!--source:api-specifications-->

#### Update Partner Status
<!--/source-->

`updatePartnerStatus`

<!--source:api-specifications-->
Update partner status
<!--/source-->

<!--source:api-specifications-->
Update Partner Status updates the active parameter of a partner to either true or false. Set partner name that you want to enable/disable.

If partner has active set to false you won't be able to use this partner when doing employment verification or while using Company Search.

If partner has active set to true you will be able to use this partner when doing employment verification and for Company Search.

Please note that a given partner can only be activated if credentials are set, please use the Setup endpoints to set credentials.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "active": true
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully updated active parameter for the partner

```
{
 "message": "Partner status updated!"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Failed to update the partner from one of the reasons

```
{
 "message": "Partner doesn't exist in database"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `partner` required | `string` path | `partner_name` | <!--source:api-specifications-->Name of the partner for which we wan't to update status<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `active`required | `boolean` | Example `true` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully updated active parameter for the partner
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner status updated!<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Failed to update the partner from one of the reasons
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner doesn't exist in database<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

`PUT` `/partners/ordering`

<!--source:api-specifications-->

#### Update Partners Ordering
<!--/source-->

`UpdatePartnersOrdering`

<!--source:api-specifications-->
Update Partners Order updates the order of execution of the product flows associated with the partner by updating their order in the product waterfall settings.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "ordering": [
 {
 "partner": "partner1",
 "order": 1
 },
 {
 "partner": "partner2",
 "order": 10
 }
 ]
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 application/json400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully updated partners ordering.

```
[
 {
 "partner": "partner1",
 "order": 1
 },
 {
 "partner": "partner2",
 "order": 10
 }
]
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Failed to update the partner from one of the reasons

```
{
 "message": "Partner doesn't exist in database"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Failed to update the partner from one of the reasons

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `ordering` | `object[]` | — |
| `partner` | `string` | <!--source:api-specifications-->Partner name<!--/source-->Example `wage` |
| `order` | `number` | <!--source:api-specifications-->Partner order<!--/source-->Example `1` |

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Successfully updated partners ordering.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `partner` | `string` | <!--source:api-specifications-->Partner name<!--/source-->Example `wage` |
| `order` | `number` | <!--source:api-specifications-->Partner order<!--/source-->Example `1` |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Failed to update the partner from one of the reasons
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner doesn't exist in database<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/partners/{partner}/schema`

<!--source:api-specifications-->

#### Retrieve Partner Credentials Schema
<!--/source-->

`getPartnerSchema`

<!--source:api-specifications-->
Retrieve Partner Schema retrieves the required partner schema for credentials.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy 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
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Partner not found"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `partner` required | `string` path | `partner_name` | <!--source:api-specifications-->Name of the partner for which we wan't to retrieve schema<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
10 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the partner schema object
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `schema` | `string` | <!--source:api-specifications-->Schema URL<!--/source--> |
| `id` | `string` | <!--source:api-specifications-->Schema ID<!--/source--> |
| `type` | `string` | <!--source:api-specifications-->JSON type<!--/source--> |
| `title` | `string` | <!--source:api-specifications-->Schema title<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Schema description<!--/source--> |
| `webhook` | `boolean` | <!--source:api-specifications-->Value that indicates if partner requires webhook setup<!--/source--> |
| `default` | `object` | <!--source:api-specifications-->Default value for schema<!--/source--> |
| `examples` | `object[]` | <!--source:api-specifications-->List of examples<!--/source--> |
| `key1` | `string` | <!--source:api-specifications-->Example 1<!--/source--> |
| `key2` | `string` | <!--source:api-specifications-->Example 2<!--/source--> |
| `required` | `string[]` | <!--source:api-specifications-->Required fields<!--/source--> |
| `properties` | `object` | <!--source:api-specifications-->Properties of Schema<!--/source--> |
| `key1` | `object` | <!--source:api-specifications-->Key 1 Schema<!--/source--> |
| `id` | `string` | <!--source:api-specifications-->Property ID<!--/source--> |
| `type` | `string` | <!--source:api-specifications-->Property value type<!--/source--> |
| `title` | `string` | <!--source:api-specifications-->Title for property<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Description for property<!--/source--> |
| `default` | `string` | <!--source:api-specifications-->Default value if exists<!--/source--> |
| `examples` | `string[]` | <!--source:api-specifications-->List of examples for given property<!--/source--> |
| `key2` | `object` | <!--source:api-specifications-->Key 2 Schema<!--/source--> |
| `id` | `string` | <!--source:api-specifications-->Property ID<!--/source--> |
| `type` | `string` | <!--source:api-specifications-->Property value type<!--/source--> |
| `title` | `string` | <!--source:api-specifications-->Title for property<!--/source--> |
| `description` | `string` | <!--source:api-specifications-->Description for property<!--/source--> |
| `default` | `string` | <!--source:api-specifications-->Default value if exists<!--/source--> |
| `examples` | `string[]` | <!--source:api-specifications-->List of examples for given property<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner not found<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

<!--source:api-specifications-->

### Product Invocation
<!--/source-->

`POST` `/products/employment/invocations`

<!--source:api-specifications-->

#### Invoke Product Flow
<!--/source-->

`invokeProductFlow`

<!--source:api-specifications-->
Invoke Product Flow helps you to invoke product flow.

There are two options for using transactions and collections while invoking a product:

- Any of the `transaction_id`, `request_collection_id`, `response_collection_id` was pre-created, in this case the product shall validate them.

- Customer provide only request data, in this case product shall:

Show the rest
- Create transaction.

- Create input collection with the provided `request_data`.

- Create empty output collection.

Optional Parameters:

- `product_flow_name` : to invoke specific product flow by name,if not provided `default_product_flow` will be invoked.
- `vendor_name`: `default_vendor_flow` will be invoked. Otherwise, first flow for this vendor will be invoked.
- `tags`: when tags are provided product shall filter the product flows associated with these tags before picking the product flow to invoke.
- `options`: key/value pairs passed to the products called by Product during invocation.
- `callback_url` : will be used by the product to send a callback, when the flow execution will be finished.

The callback request body is a JSON with the following schema:

```
{
"type": "object",
"$schema": "",
"required": [
"invocation_id",
"invocation_status"
],
"properties": {
"invocation_id": {
"type": "string",
"format": "uuid"
},
"invocation_status": {
"type": "string",
"enum": [
"COMPLETED",
"FAILED"
]
},
"response_data": {
"type": "object",
"additionalProperties": true
},
"failure_reason": {
"type": "string"
}
}
}
```

Product flow invocation shall:

- Validate the input data.
- Create customer transaction, request and response collections if they are not provided.
- Pick a product flow to invoke:
- Exclude the inactive flows.
- If 'product_flow_name' was provided, then use it.
- Else, If 'vendor_name' was provided then use the `default_vendor_flow` if not found, use the first flow for this vendor.
- If 'tags' are provided, then:
- Filter the product flows according to the tags if provided.
- Pick the default_product_flow if defined, otherwise, use the first flow in the list.
- Translate input using the configured input translation language.
- Invoke the connector flow.
- Translate the output using the configured output translation language.
- Generate the reports if configured on the product.

<!--/source-->

##### Request

<!--source:api-specifications-->
InvokeByFlowNameInvokeByTagsInvokeWithRequestDataInvokeWithFlowOptionsCollectionsInvokeWithFlowOptionsRequestDataInvokeByFlowNameOptionsInvokeByVendorNameOptions
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "Wage",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "get-document-from-byte",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "get-document-from-byte",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "vendor_name": "argyle",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully started flow invocation.

```
{
 "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
 "status": "STARTED",
 "output_language_name": "staircase",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "response_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "tags": [
 "manual verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `product_flow_name` | `string` | <!--source:api-specifications-->Product flow name. If it is not specified, the default product flow will be invoked. If the product has no default product flow, the first created flow will be invoked. Cannot be specified together with vendor_name.<!--/source--> |
| `vendor_name` | `string` | <!--source:api-specifications-->Vendor name. Cannot be specified together with product_flow_name.<!--/source--> |
| `transaction_id` | `string` | <!--source:api-specifications-->Transaction ID used for invocation.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `response_collection_id` | `string` | <!--source:api-specifications-->Response Collection ID.<!--/source--> |
| `callback_url` | `string (uri)` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->Request JSON body.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->List of tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection.<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
10 fields
<!--/source-->
<!--source:api-specifications-->
Successfully started flow invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `invocation_id`required | `string` | <!--source:api-specifications-->Invocation ID.<!--/source--> |
| `invocation_status`required | `string` | <!--source:api-specifications-->The status of the invocation.<!--/source-->`STARTED` |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID.<!--/source--> |
| `product_flow_name` | `string` | <!--source:api-specifications-->Product flow name.<!--/source--> |
| `metadata` | `object` | <!--source:api-specifications-->The metadata of the invoked product flow.<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->The data for the request collection.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->List of tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection.<!--/source--> |
| `connector_job_id` | `string` | <!--source:api-specifications-->Connector job ID.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/invocations/{invocation_id}`

<!--source:api-specifications-->

#### Retrieve Product Flow Invocation Status
<!--/source-->

`RetrieveProductFlowInvocationStatus`

<!--source:api-specifications-->
Retrieves the status of running Product flow invocation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned status of the Product flow Invocation.

```
{
 "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
 "status": "STARTED",
 "output_language_name": "staircase",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "response_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "tags": [
 "manual verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `invocation_id` required | `string (ulid)` path | `d7ccedb8-8889-4657-add4-bc1s4xs97637` | <!--source:api-specifications-->Product flow invocation identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
12 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned status of the Product flow Invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `invocation_id`required | `string` | <!--source:api-specifications-->Invocation ID.<!--/source--> |
| `invocation_status`required | `string` | <!--source:api-specifications-->Invocation Status.<!--/source-->`ACTION_REQUIRED``COMPLETED``FAILED``RUNNING``STARTED` |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID used for invocation.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `request_collection` | `object` | <!--source:api-specifications-->Collection.<!--/source--> |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Transaction ID.<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `collection_id` | `string (ulid)` | <!--source:api-specifications-->Collection ID.<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `data` | `object` | <!--source:api-specifications-->Data in Staircase language schema.<!--/source--> |
| `metadata` | `object` | <!--source:api-specifications-->Metadata about collection, f.e version of used Staircase schema.<!--/source--> |
| `response_collection_id` | `string` | <!--source:api-specifications-->Response Collection ID.<!--/source--> |
| `response_collection` | `object` | <!--source:api-specifications-->Collection.<!--/source--> |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Transaction ID.<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `collection_id` | `string (ulid)` | <!--source:api-specifications-->Collection ID.<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `data` | `object` | <!--source:api-specifications-->Data in Staircase language schema.<!--/source--> |
| `metadata` | `object` | <!--source:api-specifications-->Metadata about collection, f.e version of used Staircase schema.<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->URL that was specified in flow invocation and will be used to send the callback when flow invocation will be finished.<!--/source--> |
| `widget_url` | `string (uri)` | <!--source:api-specifications-->URL of the widget.<!--/source--> |
| `metadata` | `object` | <!--source:api-specifications-->Response Collection ID.<!--/source--> |
| `options` | `—` | <!--source:api-specifications-->Options that were passed to the flow invocation.<!--/source--> |
| `connector_job_id` | `string` | <!--source:api-specifications-->Connector job ID.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Product Reports
<!--/source-->

`GET` `/products/employment/report-templates`

<!--source:api-specifications-->

#### Retrieve Report Templates
<!--/source-->

`retrieveReportTemplates`

<!--source:api-specifications-->
Retrieve Report Templates retrieves product report templates.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the report templates.

```
{
 "name": "voe_template",
 "template_type": "jinja",
 "product_name": "employment",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the report templates.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type` | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body` | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`POST` `/products/employment/report-templates`

<!--source:api-specifications-->

#### Create Report Template
<!--/source-->

`createReportTemplate`

<!--source:api-specifications-->
Create Report Template helps you to create templates for report generation.

The template shall be in multiple formats, currently supported is Jinja HTML templates powered by the Jinja template engine.

Below is example markup written in Jinja logic as HTML.

```
<!DOCTYPE html>
<html lang="en">
<head>
 <title>Staircase</title>
</head>
<body>
 <h1 style="align-content: center; color: red">Staircase</h1>

 <h3>First Name</h3>
 {{ collection["deal_sets"]["deal_set"][0]["deals"]["deal"][0]["parties"]["party"][0]["individual"]["name"]["first"] }}

 <h3>Last Name</h3>
 {{ collection["deal_sets"]["deal_set"][0]["deals"]["deal"][0]["parties"]["party"][0]["individual"]["name"]["last"] }}

 <h3>List</h3>
 <ul>
 {% for item in collection.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.contact_points.contact_point %}
 <li>Email: {{ item.email }}</li>
 <li>Phone: {{ item.contact_point_telephone.value }}</li>
 

 {% endfor %}
 </ul>

 <h3>Table</h3>
 <table style="border: 1px solid black;">
 <tr>
 {%- for header in ["Name", "Email", "Phone"] %}
 <th style="border: 1px solid black;">{{ header }} </th>
 {%- endfor %}
 </tr>
 {%- for row in collection.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.contact_points.contact_point %}
 <tr>
 <td style="border: 1px solid black;">{{ collection["deal_sets"]["deal_set"][0]["deals"]["deal"][0]["parties"]["party"][0]["individual"]["name"]["first"] }} </td>
 <td style="border: 1px solid black;">{{row.email}}</td>
 <td style="border: 1px solid black;">{{row.contact_point_telephone.value}}</td>
 </tr>
 {%- endfor %}
 </table>
</body>
</html>
```

Refer to Jinja documentation for more information on the logic used.

Show the rest

#### Example Reports

Please refer to the example reports and style guidelines in the request examples below.

Notes:

- Report header and footer are implicit and will automatically wrap your content. You only need to create a template for your content.
- The below example reports HTML is minified for display. Please unminify to convert back to normal HTML file and update with your logic.
- You may use the style guidelines if a table, bulleted-list, etc. are needed.

<!--/source-->

##### Request

<!--source:api-specifications-->
Example Jinja LogicVOE Report 1VOE Report 2Report Styles
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "voe_template",
 "template_type": "jinja",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "report1_example",
 "template_type": "jinja",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><meta charset=\\\"UTF-8\\\"><meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\"><meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"ie=edge\\\"><title>Content</title><style>@font-face{font-family:\\\"Everett Regular\\\";src:url(\\\"https://staircase.co/static/fonts/Everett-Regular-web.woff2\\\") format(\\\"woff2\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Regular-web.woff\\\") format(\\\"woff\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Regular.otf\\\") format(\\\"opentype\\\")}@font-face{font-family:\\\"Everett Medium\\\";src:url(\\\"https://staircase.co/static/fonts/Everett-Medium-web.woff2\\\") format(\\\"woff2\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Medium-web.woff\\\") format(\\\"woff\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Medium.otf\\\") format(\\\"opentype\\\")}html{background-color:#fff}body{max-width:700px;margin:0 auto;background-color:#fff;font-family:\\\"Everett Regular\\\",Arial,Helvetica,sans-serif}.wrapper{padding:32px}.verification-title{font-size:24px;line-height:34px;color:#000;font-weight:400;margin-bottom:15px;margin-top:30px}.logo-header{height:40px}.loan-wrap{display:flex;align-items:center}.loan-column{padding-right:60px;position:relative}.loan-column h5{font-size:12px;line-height:14px;color:#979797;margin:0;padding-bottom:5px;font-weight:400}.loan-column span{font-size:14px;line-height:18px;color:#2c2c2c;font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}.loan-column:after{content:\\\"\\\";position:absolute;right:30px;top:0;bottom:0;width:1px;background:#ededee}.loan-column:last-child:after{display:none}.main-title{font-weight:400;color:#271a69;font-size:16px;line-height:22px;padding-bottom:5px;border-bottom:1px solid #271a69;margin-bottom:18px}.main-field{font-size:12px;line-height:14px;color:#2c2c2c;font-weight:400}.main-field p{font-size:14px;line-height:18px;font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif;;margin:0;padding-top:3px}.data-source-wrap{margin:30px 0}.borrower-wrap,.employer-wrap{margin-bottom:30px}.columns-2{display:grid;grid-template-columns:1fr 1fr;margin-bottom:17px}.columns-3{display:grid;grid-template-columns:1fr 1fr 1fr;margin-bottom:20px}.columns-5{display:grid;grid-template-columns: .9fr 1fr 1fr 1fr 1fr;margin-bottom:17px}.divider{width:100%;height:1px;background-color:#ededee}.last-text{font-size:12px;line-height:14px;color:#2c2c2c;margin-top:35px}.last-text span{font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}footer{background-color:#f9f9f9;text-align:center;margin-top:35px;margin-bottom:-10px}footer p{font-size:12px;line-height:14px;padding:12px 0}footer span{font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}.wrapper-2{padding:0}.header-2{background-color:#271a69;padding:15px 20px}.header-2 table{width:100%}.header-2 .title-header-2{text-align:right}.header-2 h3{font-size:13px;color:#fff;margin:0;font-weight:400;display:inline-block;vertical-align:middle}.logo-2{height:27px;display:inline-block;vertical-align:middle}.main-content-2{padding:0 20px}.verification-items{padding:20px 0 2px 0}.verification-items span{display:block;font-size:12px;line-height:14px;margin-bottom:2px}.section-2{margin-bottom:30px}.main-title-bg{background-color:#f3f3f3;border-top-left-radius:10px;border-top-right-radius:10px}.main-title-bg h3{font-size:15px;padding:10px 20px}.fields-wrap{padding:12px 20px 12px}.grid{display:grid;grid-template-columns:1fr 1fr}.table-grid{display:table;width:100%}.fields-wrap span{font-size:12px;line-height:14px}.section-2.borrower-2{padding-bottom:0}.section-2.employer-2{padding-bottom:30px}.up-footer{margin:0 20px;padding-bottom:20px}.sub-footer-2{background-color:#271a69;display:flex;justify-content:space-between;align-items:center;padding:5px 20px}.sub-footer-2 h5{margin:0;color:#fff;font-size:11px;line-height:14px;text-align:right}.footer-2 p{font-size:12px;line-height:14px}.footer-2 table{width:100%}</style></head><body><div class=\\\"main-content-2\\\"><div class=\\\"verification-items\\\"><span>Verification Requested:</span> <span>Verification Acquired:</span> <span>Loan Number:</span></div><div class=\\\"section-2\\\"><div class=\\\"main-title-bg\\\"><h3>Data Source</h3></div><div class=\\\"fields-wrap\\\"> <span>Provided by:</span></div></div><div class=\\\"section-2 borrower-2\\\"><div class=\\\"main-title-bg\\\"><h3>Borrower Information</h3></div><table class=\\\"table-grid\\\"><tr><td><div class=\\\"fields-wrap\\\"> <span>First Name:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Last Name:</span></div></td></tr><tr><td><div class=\\\"fields-wrap\\\"> <span>Phone Number:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Email:</span></div></td></tr><tr><td><div class=\\\"fields-wrap\\\"> <span>SSN:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Street:</span></div></td></tr><tr><td><div class=\\\"fields-wrap\\\"> <span>City:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>State:</span></div></td></tr><tr><td><div class=\\\"fields-wrap\\\"> <span>Postal Code:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Country:</span></div></td></tr></table></div><div class=\\\"section-2 employer-2\\\"><div class=\\\"main-title-bg\\\"><h3>Employer Name</h3></div><table class=\\\"table-grid\\\"><tr><td><div class=\\\"fields-wrap\\\"> <span>Company Name:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Position Description:</span></div></td></tr><tr><td><div class=\\\"fields-wrap\\\"> <span>Start Date:</span></div></td><td><div class=\\\"fields-wrap\\\"> <span>Status:</span></div></td></tr></table></div></div><div class=\\\"footer-2\\\"><div class=\\\"up-footer\\\"><div class=\\\"divider\\\"></div><p>Information accurate as of:</p></div></div></body></html>\n"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "report2_example",
 "template_type": "jinja",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><meta charset=\\\"UTF-8\\\" /><meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\" /><meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"ie=edge\\\" /><title>Content</title><style>@font-face{font-family:\\\"Everett Regular\\\";src:url(\\\"https://staircase.co/static/fonts/Everett-Regular-web.woff2\\\") format(\\\"woff2\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Regular-web.woff\\\") format(\\\"woff\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Regular.otf\\\") format(\\\"opentype\\\")}@font-face{font-family:\\\"Everett Medium\\\";src:url(\\\"https://staircase.co/static/fonts/Everett-Medium-web.woff2\\\") format(\\\"woff2\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Medium-web.woff\\\") format(\\\"woff\\\"), url(\\\"https://staircase.co/static/fonts/Everett-Medium.otf\\\") format(\\\"opentype\\\")}html{background-color:#fff}body{max-width:700px;margin:0 auto;background-color:#fff;font-family:\\\"Everett Regular\\\",Arial,Helvetica,sans-serif}.wrapper{padding:32px}.verification-title{font-size:24px;line-height:34px;color:#000;font-weight:400;margin-bottom:15px;margin-top:30px}.logo-header{height:40px}.loan-column{padding-right:60px;position:relative}.loan-column h5{font-size:12px;line-height:14px;color:#979797;margin:0;padding-bottom:5px;font-weight:400}.loan-column span{font-size:14px;line-height:18px;color:#2c2c2c;font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}.loan-column:after{content:\\\"\\\";position:absolute;right:30px;top:0;bottom:0;width:1px;background:#ededee}.loan-column:last-child:after{display:none}.main-title{font-weight:400;color:#271a69;font-size:16px;line-height:22px;padding-bottom:5px;border-bottom:1px solid #271a69;margin-bottom:18px}.main-field{font-size:12px;line-height:14px;color:#2c2c2c;font-weight:400}.main-field p{font-size:14px;line-height:18px;font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif;margin:0;padding-top:3px}.data-source-wrap{margin:30px 0}.employer-wrap,.borrower-wrap{margin-bottom:30px}.columns-2{margin-bottom:17px}.columns-2 table, .columns-3 table, .columns-5 table{width:100%}.columns-3 table tr td:nth-child(2){width:28%}.columns-3{margin-bottom:20px}.columns-5{margin-bottom:17px}.w-45{width:45%}.divider{width:100%;height:1px;background-color:#ededee}.last-text{font-size:12px;line-height:14px;color:#2c2c2c;margin-top:35px}.last-text span{font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}footer{background-color:#f9f9f9;text-align:center;margin-top:35px;margin-bottom:-10px}footer p{font-size:12px;line-height:14px;padding:12px 0}footer span{font-family:\\\"Everett Medium\\\",Arial,Helvetica,sans-serif}.wrapper-2{padding:0}.header-2{background-color:#271a69;display:flex;align-items:center;justify-content:space-between;padding:15px 20px}.header-2 h3{font-size:13px;color:#fff;margin:0;font-weight:400}.logo-2{height:27px}.main-content-2{padding:0 20px}.verification-items{padding:20px 0 2px 0}.verification-items span{display:block;font-size:12px;line-height:14px;margin-bottom:2px}.section-2{margin-bottom:30px}.main-title-bg{background-color:#f3f3f3;border-top-left-radius:10px;border-top-right-radius:10px}.main-title-bg h3{font-size:15px;padding:10px 20px}.fields-wrap{padding:12px 20px 12px}.grid{display:grid;grid-template-columns:1fr 1fr}.fields-wrap span{font-size:12px;line-height:14px}.section-2.borrower-2{padding-bottom:0}.section-2.employer-2{padding-bottom:30px}.up-footer{margin:0 20px;padding-bottom:20px}.sub-footer-2{background-color:#271a69;display:flex;justify-content:space-between;align-items:center;padding:5px 20px}.sub-footer-2 h5{margin:0;color:#fff;font-size:11px;line-height:14px}.footer-2 p{font-size:12px;line-height:14px}</style></head><body><div class=\\\"wrapper\\\"><h3 class=\\\"verification-title\\\">Verification Employment</h3><div class=\\\"loan-wrap\\\"><table><tr><td><div class=\\\"loan-column\\\"><h5>Loan Number:</h5> <span> 548712 </span></div></td><td><div class=\\\"loan-column\\\"><h5>Verification Requested:</h5> <span> 10/08/2020 </span></div></td><td><div class=\\\"loan-column\\\"><h5>Verification Acquired:</h5> <span> 10/27/2020 </span></div></td></tr></table></div><div class=\\\"data-source-wrap\\\"><h2 class=\\\"main-title\\\">Data Source</h2><div class=\\\"main-field\\\"> <span>Provided by:</span><p>Jason Barrera</p></div></div><div class=\\\"borrower-wrap\\\"><h2 class=\\\"main-title\\\">Borrower Information</h2><div class=\\\"columns-2\\\"><table><tr><td><div class=\\\"main-field\\\"> <span>First Name:</span><p>Richard</p></div></td><td><div class=\\\"main-field\\\"> <span>Last Name:</span><p>Grant</p></div></td></tr></table></div><div class=\\\"columns-3\\\"><table><tr><td><div class=\\\"main-field\\\"> <span>Phone Number:</span><p>+1 808 3722 9914</p></div></td><td><div class=\\\"main-field\\\"> <span>SSN:</span><p>34923832</p></div></td><td><div class=\\\"main-field\\\"> <span>Email:</span><p>richardgrant@gmail.com</p></div></td></tr></table></div><div class=\\\"columns-5\\\"><table><tr><td><div class=\\\"main-field\\\"> <span>State:</span><p>NY</p></div></td><td><div class=\\\"main-field\\\"> <span>City:</span><p>New York</p></div></td><td><div class=\\\"main-field\\\"> <span>Neighbourhood:</span><p>Brooklyn</p></div></td><td><div class=\\\"main-field\\\"> <span>Postal Code:</span><p>10001</p></div></td><td><div class=\\\"main-field\\\"> <span>Country:</span><p>United States</p></div></td></tr></table></div></div><div class=\\\"employer-wrap\\\"><h2 class=\\\"main-title\\\">Employer Name</h2><div class=\\\"columns-2\\\"><table><tr><td><div class=\\\"main-field\\\"> <span>Company Name:</span><p>Acme</p></div></td><td><div class=\\\"main-field\\\"> <span>Position Description:</span><p>Web Designer</p></div></td></tr></table></div><div class=\\\"columns-2\\\"><table><tr><td class=\\\"w-45\\\"><div class=\\\"main-field\\\"> <span>Start Date:</span><p>11/08/2016</p></div></td><td><div class=\\\"main-field\\\"> <span>SSN:</span><p>80018422</p></div></td></tr></table></div></div></div></body></html>\n"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "report_styles_example",
 "template_type": "jinja",
 "body": "<body><div class=\\\"wrapper\\\"><div class=\\\"titles-wrap\\\"><h3 class=\\\"styles-title\\\">Title</h3><h1 class=\\\"title\\\">h1 - Report Title</h1><h2 class=\\\"title\\\">h2 - Report Title</h2><h3 class=\\\"title\\\">h3 - Report Title</h3><h3 class=\\\"title blue\\\">h3 - Report Title</h3></div><div class=\\\"letter-styles\\\"><h3 class=\\\"styles-title\\\">BODY normal / bold / italic</h3><p class=\\\"text-styles\\\"> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna <b>aliqua</b>. Ut enim ad minim veniam, <i>quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</i> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non <b>proident</b>, sunt in culpa qui officia <i>deserunt mollit anim id est laborum.</i></p></div><div class=\\\"columns-fields\\\"><div class=\\\"column-wrap\\\"><h3 class=\\\"styles-title\\\">2 columns</h3><div class=\\\"columns-2\\\"><table class=\\\"default-table\\\"><tr><td><div class=\\\"main-field\\\"> <span>First Name:</span><p>Richard</p></div></td><td><div class=\\\"main-field\\\"> <span>Last Name:</span><p>Grant</p></div></td></tr></table></div></div><div class=\\\"column-wrap\\\"><h3 class=\\\"styles-title\\\">3 columns</h3><div class=\\\"columns-3\\\"><table class=\\\"default-table\\\"><tr><td><div class=\\\"main-field\\\"> <span>Phone Number:</span><p>+1 808 3722 9914</p></div></td><td><div class=\\\"main-field\\\"> <span>SSN:</span><p>34923832</p></div></td><td><div class=\\\"main-field\\\"> <span>Email:</span><p>richardgrant@gmail.com</p></div></td></tr></table></div></div><div class=\\\"column-wrap\\\"><h3 class=\\\"styles-title\\\">5 columns</h3><div class=\\\"columns-5\\\"><table class=\\\"default-table\\\"><tr><td><div class=\\\"main-field\\\"> <span>State:</span><p>NY</p></div></td><td><div class=\\\"main-field\\\"> <span>City:</span><p>New York</p></div></td><td><div class=\\\"main-field\\\"> <span>Neighbourhood:</span><p>Brooklyn</p></div></td><td><div class=\\\"main-field\\\"> <span>Postal Code:</span><p>10001</p></div></td><td><div class=\\\"main-field\\\"> <span>Country:</span><p>United States</p></div></td></tr></table></div></div></div><p class=\\\"info-acc\\\"> <b> Information as accurate as of: </b> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p><div class=\\\"bulleted-list\\\"><h3 class=\\\"styles-title\\\">Bulleted list</h3><ul><li> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li></ul></div><div class=\\\"number-list\\\"><h3 class=\\\"styles-title\\\">Number list</h3><ul><li> <span class=\\\"list-number\\\">1.</span> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> <span class=\\\"list-number\\\">2.</span> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> <span class=\\\"list-number\\\">3.</span> Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li></ul></div><div class=\\\"checklist-list\\\"><h3 class=\\\"styles-title\\\">Check list</h3><ul><li> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAMAAADTAfSvAAAAOVBMVEUAAAAoGGgnGWknGmknGmknGWkgEHAmGmooG2goGGgnGmknGWklG2cqG2UmGmonG2knGWYmGWknGmnimifOAAAAEnRSTlMAIN+A778Qn2BAr3AwMM+PcFDFj4syAAAAeUlEQVQY042RSQ6AIAxFpYACgkPvf1h/w0JpWUjCgpf+IWX5f1aLXCxsYA7MpGEDDE7LiZmbjhGYtP4E9Bp6wM10AiTTlXq81e9GPzUtMP3oa5RXwmh+4SV26D82laG4eLWTyoJx7yEngNh836kzRWdLEVOafcox6h8gEAZf0A2yYAAAAABJRU5ErkJggg==\\\" alt=\\\"check\\\">Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAMAAADTAfSvAAAAOVBMVEUAAAAoGGgnGWknGmknGmknGWkgEHAmGmooG2goGGgnGmknGWklG2cqG2UmGmonG2knGWYmGWknGmnimifOAAAAEnRSTlMAIN+A778Qn2BAr3AwMM+PcFDFj4syAAAAeUlEQVQY042RSQ6AIAxFpYACgkPvf1h/w0JpWUjCgpf+IWX5f1aLXCxsYA7MpGEDDE7LiZmbjhGYtP4E9Bp6wM10AiTTlXq81e9GPzUtMP3oa5RXwmh+4SV26D82laG4eLWTyoJx7yEngNh836kzRWdLEVOafcox6h8gEAZf0A2yYAAAAABJRU5ErkJggg==\\\" alt=\\\"check\\\">Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li><li> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAXCAMAAADTAfSvAAAAOVBMVEUAAAAoGGgnGWknGmknGmknGWkgEHAmGmooG2goGGgnGmknGWklG2cqG2UmGmonG2knGWYmGWknGmnimifOAAAAEnRSTlMAIN+A778Qn2BAr3AwMM+PcFDFj4syAAAAeUlEQVQY042RSQ6AIAxFpYACgkPvf1h/w0JpWUjCgpf+IWX5f1aLXCxsYA7MpGEDDE7LiZmbjhGYtP4E9Bp6wM10AiTTlXq81e9GPzUtMP3oa5RXwmh+4SV26D82laG4eLWTyoJx7yEngNh836kzRWdLEVOafcox6h8gEAZf0A2yYAAAAABJRU5ErkJggg==\\\" alt=\\\"check\\\">Employment randomly chooses between Atomic and Argyle and checks to see if the data partner is able to provide a VOE response for the given company.</li></ul></div><div class=\\\"tags-wrap\\\"><h3 class=\\\"styles-title\\\">Tags</h3><div class=\\\"tags\\\"><table><tr><td><div class=\\\"tag tag-1\\\">TAG 1</div></td><td><div class=\\\"tag tag-2\\\">TAG 2</div></td></tr></table></div></div><div class=\\\"breadcrums-wrap\\\"><h3 class=\\\"styles-title\\\">Breadcrums</h3><ul><li> <a href=\\\"#\\\">Level 1</a> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAQBAMAAADdUfNzAAAAHlBMVEUAAAC+vr6+vr6/v7+8vLy+vr69vb28vLy6urq+vr4suSPSAAAACXRSTlMAz98QIO9wUDAJ8cTPAAAAMUlEQVQI12NgaDdgAAJNYRApORHEcZoJ4rBoonIYwBwICRGByEJUwhRCNEWCTXMDMgFNFAxgyg4mqQAAAABJRU5ErkJggg==\\\" alt=\\\">\\\"></li><li> <a href=\\\"#\\\">Level 2</a> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAQBAMAAADdUfNzAAAAHlBMVEUAAAC+vr6+vr6/v7+8vLy+vr69vb28vLy6urq+vr4suSPSAAAACXRSTlMAz98QIO9wUDAJ8cTPAAAAMUlEQVQI12NgaDdgAAJNYRApORHEcZoJ4rBoonIYwBwICRGByEJUwhRCNEWCTXMDMgFNFAxgyg4mqQAAAABJRU5ErkJggg==\\\" alt=\\\">\\\"></li><li> <a href=\\\"#\\\">Level 3</a> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAQBAMAAADdUfNzAAAAHlBMVEUAAAC+vr6+vr6/v7+8vLy+vr69vb28vLy6urq+vr4suSPSAAAACXRSTlMAz98QIO9wUDAJ8cTPAAAAMUlEQVQI12NgaDdgAAJNYRApORHEcZoJ4rBoonIYwBwICRGByEJUwhRCNEWCTXMDMgFNFAxgyg4mqQAAAABJRU5ErkJggg==\\\" alt=\\\">\\\"></li><li> <a href=\\\"#\\\">Level 4</a> <img src=\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAQBAMAAADdUfNzAAAAHlBMVEUAAAC+vr6+vr6/v7+8vLy+vr69vb28vLy6urq+vr4suSPSAAAACXRSTlMAz98QIO9wUDAJ8cTPAAAAMUlEQVQI12NgaDdgAAJNYRApORHEcZoJ4rBoonIYwBwICRGByEJUwhRCNEWCTXMDMgFNFAxgyg4mqQAAAABJRU5ErkJggg==\\\" alt=\\\">\\\"></li></ul></div><div class=\\\"divider-wrap\\\"><h3 class=\\\"styles-title\\\">Divider</h3><div class=\\\"divider\\\"></div></div><div class=\\\"notes-wrap\\\"><h3 class=\\\"styles-title\\\">Notes</h3><div class=\\\"note\\\"><div class=\\\"inner-note\\\"><h4>NOTE</h4><p> Do not activate the API key for the documentation environment. If you have activated your API Key for the documentation environment, it cannot be used for any other environment.</p></div></div></div><div class=\\\"table-wrap\\\"><h3 class=\\\"styles-title\\\">2 columns</h3><div class=\\\"table-columns\\\"><div class=\\\"columns-table columns-2-table\\\"><table class=\\\"default-table table-grid\\\"><tr><th><div>column 1</div></th><th><div>column 2</div></th></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td></tr></table></div></div></div><div class=\\\"table-wrap\\\"><h3 class=\\\"styles-title\\\">3 columns</h3><div class=\\\"table-columns\\\"><div class=\\\"columns-table columns-3-table\\\"><table class=\\\"default-table table-grid\\\"><tr><th><div>column 1</div></th><th><div>column 2</div></th><th><div>column 3</div></th></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td><td><div class=\\\"text-column\\\">Text column 3</div></td></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td><td><div class=\\\"text-column\\\">Text column 3</div></td></tr><tr><td><div class=\\\"text-column\\\">Text column 1</div></td><td><div class=\\\"text-column\\\">Text column 2</div></td><td><div class=\\\"text-column\\\">Text column 3</div></td></tr></table></div></div></div></div></body>\n"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Report template successfully added.

```
{
 "name": "voe_template",
 "template_type": "jinja",
 "product_name": "employment",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name`required | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type`required | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body`required | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Report template successfully added.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type` | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body` | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/report-templates/{template_name}`

<!--source:api-specifications-->

#### Retrieve Report Template
<!--/source-->

`retrieveReportTemplate`

<!--source:api-specifications-->
Retrieve Report Template retrieves a specific report template.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the report template.

```
{
 "name": "voe_template",
 "template_type": "jinja",
 "product_name": "employment",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `template_name` required | `string` path | `demo_template` | <!--source:api-specifications-->Report Template Name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the report template.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type` | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body` | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`PATCH` `/products/employment/report-templates/{template_name}`

<!--source:api-specifications-->

#### Update Report Template
<!--/source-->

`updateReportTemplate`

<!--source:api-specifications-->
Update report template

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "name": "voe_template",
 "template_type": "jinja",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Report template successfully updated.

```
{
 "name": "voe_template",
 "template_type": "jinja",
 "product_name": "employment",
 "body": "<!DOCTYPE html><html lang=\\\"en\\\"><head><title>Staircase</title></head><body><h3>First Name</h3>{{ collection[\\\"deal_sets\\\"][\\\"deal_set\\\"][0][\\\"deals\\\"][\\\"deal\\\"][0][\\\"parties\\\"][\\\"party\\\"][0][\\\"individual\\\"][\\\"name\\\"][\\\"first\\\"] }}</body></html>"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `template_name` required | `string` path | `demo_template` | <!--source:api-specifications-->Report Template Name<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
3 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name`required | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type`required | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body`required | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Report template successfully updated.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `name` | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `template_type` | `string` | <!--source:api-specifications-->Template type<!--/source-->`jinja` |
| `body` | `string` | <!--source:api-specifications-->Template HTML string body<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`DELETE` `/products/employment/report-templates/{template_name}`

<!--source:api-specifications-->

#### Delete Report Template
<!--/source-->

`deleteReportTemplate`

<!--source:api-specifications-->
Delete Report Template deletes a report template.

<!--/source-->

##### Response

<!--source:api-specifications-->
400 Example400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Request data failed validation

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `template_name` required | `string` path | `demo_template` | <!--source:api-specifications-->Report Template Name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`204`

`POST` `/products/employment/reports`

<!--source:api-specifications-->

#### Generate Report
<!--/source-->

`generateTemplate`

<!--source:api-specifications-->
Generate report for a product

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "product_name": "employment",
 "template_name": "voe_template",
 "transaction_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "collection_id": "01FCWK741N7GWYBVG4Z3N74V16"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Report successfully generated.

```
{
 "product_name": "employment",
 "template_name": "voe_template",
 "transaction_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "collection_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "blob_id": "01EZYHKY4EXFW4Z8RKWHDP1KHB",
 "download_url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `template_name`required | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID<!--/source--> |
| `collection_id`required | `string` | <!--source:api-specifications-->Collection ID<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
6 fields
<!--/source-->
<!--source:api-specifications-->
Report successfully generated.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `template_name` | `string` | <!--source:api-specifications-->Name of template<!--/source--> |
| `product_name` | `string` | <!--source:api-specifications-->Product name<!--/source--> |
| `transaction_id` | `string` | <!--source:api-specifications-->Transaction ID<!--/source--> |
| `collection_id` | `string` | <!--source:api-specifications-->Collection ID<!--/source--> |
| `blob_id` | `string` | <!--source:api-specifications-->Blob ID of generated report<!--/source--> |
| `download_url` | `string` | <!--source:api-specifications-->Presigned URL to view/download generated report<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Product Specifications
<!--/source-->

`GET` `/products/employment/request-schema`

<!--source:api-specifications-->

#### Retrieve Request Schema
<!--/source-->

`retrieveRequestSchema`

<!--source:api-specifications-->
Retrieve Request Schema retrieves a JSON schema for the request to the product waterfall. It also has the option of returning an example for the request object expected through the return_example attribute.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 InvalidReturnExamplesValue400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the list of elements needed for product waterfall.

```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Please provide one of valid return examples values: true, false"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Error

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `return_examples` | `boolean` query | `false` | <!--source:api-specifications-->If included and set to `true`, returns one or more pre-filled examples that conform to the schema. Default to `false`<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the list of elements needed for product waterfall.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `schema` | `object` | <!--source:api-specifications-->Element key / value<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/response-schema`

<!--source:api-specifications-->

#### Retrieve Response Schema
<!--/source-->

`retrieveResponseSchema`

<!--source:api-specifications-->
Retrieve Schema retrieves a JSON schema for the response returned by the product. It can also return an example for the response output object through return_example attribute.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 InvalidReturnExamplesValue400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the list of elements of response of the product waterfall.

```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Please provide one of valid return examples values: true, false"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Error

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `return_examples` | `boolean` query | `false` | <!--source:api-specifications-->If included and set to `true`, returns one or more pre-filled examples that conform to the schema. Default to `false`<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the list of elements of response of the product waterfall.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `schema` | `object` | <!--source:api-specifications-->Element key / value element<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/request-elements`

<!--source:api-specifications-->

#### Retrieve Request Elements
<!--/source-->

`requestElements`

<!--source:api-specifications-->
Retrieve Request Elements retrieves a list of elements needed to invoke a data partner for product function invocation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Example for the Product Invocation Request Elements object

```
{
 "elements": [
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].customer_transaction_ID",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].contact_point_telephone.value",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].contact_point_email.value",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.first",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.last",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.birth_date",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.employers.employer[*].legal_entity.full_name",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.additional_line_text",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.city",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.country",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.line_text",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.postal_code",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.state_code",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.state",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].taxpayer_identifiers.taxpayer_identifier[*].value",
 "$.document_sets.document_set[*].documents.document[*].document_classification.document_classes.document_class[*].staircase_type",
 "$.document_sets.document_set[*].documents.document[*].document_classification.document_classes.document_class[*].type",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].description",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].mime_type_identifier",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].name",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].staircase_blob_id"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Elements were retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `elements`required | `string[]` | <!--source:api-specifications-->List of elements.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/response-elements`

<!--source:api-specifications-->

#### Retrieve Response Elements
<!--/source-->

`responseElements`

<!--source:api-specifications-->
Retrieve Response Elements provides a list of elements that will be returned by a data partner after invoking the product.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Example for the Product Invocation Request Elements object

```
{
 "elements": [
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].email",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.first",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.last",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.birth_date",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].taxpayer_identifiers.taxpayer_identifier[*].value"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Elements were retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `elements`required | `string[]` | <!--source:api-specifications-->List of elements.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`POST` `/products/employment/request-elements/validate`

<!--source:api-specifications-->

#### Validate Collection
<!--/source-->

`validateCollection`

<!--source:api-specifications-->
Validate Collection allows you to validate an input collection prior to submitting to our partners for a specific product. This endpoint will give messages with all the corrections you need to make to your collection in order for it to be accepted by our partner call.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Collection is valid

```
{
 "message": "Collection is valid."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `deal_sets` | `object` | <!--source:api-specifications-->Deal sets object.<!--/source--> |
| `deal_set` | `object[]` | <!--source:api-specifications-->Deal set object.<!--/source--> |
| `deals` | `object` | <!--source:api-specifications-->Deals object.<!--/source--> |
| `deal` | `object[]` | <!--source:api-specifications-->Deal array.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Collection is valid
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Product Waterfalls
<!--/source-->

`GET` `/products/employment/waterfall`

<!--source:api-specifications-->

#### Retrieve Product Waterfall
<!--/source-->

`retrieveProductWaterfall`

<!--source:api-specifications-->
Retrieve Product Waterfall retrieves a specific product waterfall.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the product waterfall.

```
{
 "waterfall": [
 {
 "priority": 1,
 "flow_name": "VOE"
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the product waterfall.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `waterfall`required | `object[]` | <!--source:api-specifications-->Product waterfall steps.<!--/source--> |
| `priority`required | `integer` | <!--source:api-specifications-->Priority of waterfall step.<!--/source--> |
| `flow_name` | `string` | <!--source:api-specifications-->Flow name<!--/source--> |
| `vendor_name` | `string` | <!--source:api-specifications-->Vendor name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`PUT` `/products/employment/waterfall`

<!--source:api-specifications-->

#### Create Product Waterfall
<!--/source-->

`addProductFlow`

<!--source:api-specifications-->
Create Product waterfall
<!--/source-->

<!--source:api-specifications-->
Add custom settings for product waterfall

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "waterfall": [
 {
 "priority": 1,
 "flow_name": "VOE"
 }
 ]
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Product waterfall successfully added.

```
{
 "waterfall": [
 {
 "priority": 1,
 "flow_name": "VOE"
 }
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `waterfall`required | `object[]` | <!--source:api-specifications-->Product waterfall steps.<!--/source--> |
| `priority`required | `integer` | <!--source:api-specifications-->Priority of waterfall step.<!--/source--> |
| `flow_name` | `string` | <!--source:api-specifications-->Flow name<!--/source--> |
| `vendor_name` | `string` | <!--source:api-specifications-->Vendor name<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Product waterfall successfully added.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `waterfall`required | `object[]` | <!--source:api-specifications-->Product waterfall steps.<!--/source--> |
| `priority`required | `integer` | <!--source:api-specifications-->Priority of waterfall step.<!--/source--> |
| `flow_name` | `string` | <!--source:api-specifications-->Flow name<!--/source--> |
| `vendor_name` | `string` | <!--source:api-specifications-->Vendor name<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`DELETE` `/products/employment/waterfall`

<!--source:api-specifications-->

#### Delete Product Waterfall
<!--/source-->

`deleteProductWaterfall`

<!--source:api-specifications-->
Delete Product Waterfall deletes a product waterfall.

<!--/source-->

##### Response

<!--source:api-specifications-->
400 Example400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Request data failed validation

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`204`

`POST` `/products/employment/waterfall/invocations`

<!--source:api-specifications-->

#### Invoke Product Waterfall
<!--/source-->

`invokeProductWaterfall`

<!--source:api-specifications-->
Invoke Product Waterfall helps you to invoke product waterfall. Product waterfall invocation shall invoke the product flows as per the order of the waterfall settings or using the default order of the flows. The invocation endpoint shall try to invoke the flows one by one till one of them succeed and return the needed outcome.

There are two options for using transactions and collections while invoking a waterfall product:

Show the rest
- Any of the `transaction_id`, `request_collection_id`, `response_collection_id` was pre-created, in this case the product shall validate them.

- Customer provide only request data, in this case product shall:

- Create transaction.

- Create input collection with the provided `request_data`.

- Create empty output collection.

Optional Parameters:

- `tags`: when tags are provided product shall filter the product flows associated with these tags before invoking the waterfall.
- `options`: key/value pairs passed to the products called by Product during invocation.
- `callback_url` : will be used by the product to send a callback, when the flow execution will be finished.

The callback request body is a JSON with the following schema:

```
{
"type": "object",
"$schema": "",
"required": [
"invocation_id",
"invocation_status"
],
"properties": {
"invocation_id": {
"type": "string",
"format": "uuid"
},
"invocation_status": {
"type": "string",
"enum": [
"COMPLETED",
"FAILED"
]
},
"response_data": {
"type": "object",
"additionalProperties": true
},
"failure_reason": {
"type": "string"
}
}
}
```

<!--/source-->

##### Request

<!--source:api-specifications-->
InvokeWithCollectionsInvokeWithTagsInvokeWithRequestDataInvokeWithOptionsCollectionsInvokeWithOptionsRequestData
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully started flow invocation.

```
{
 "invocation_id": "68a4aa6a-bf18-4f7d-be7d-bc26503adeb1",
 "invocation_status": "STARTED",
 "transaction_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "request_data": {
 "foo": "bar",
 "biz": "baz"
 },
 "callback_url": "https://webhook.site/68a4aa6a-bf18-4f7d-be7d-bc26503adeb2",
 "tags": [
 "manual verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
6 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id` | `string` | <!--source:api-specifications-->Transaction ID used for flow_invocations.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `callback_url` | `string (uri)` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->Request JSON body for product flows.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->Flow tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection. Will be passed to every product flow invocation.<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
9 fields
<!--/source-->
<!--source:api-specifications-->
Successfully started flow invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `invocation_id`required | `string` | <!--source:api-specifications-->Invocation ID.<!--/source--> |
| `invocation_status`required | `string` | <!--source:api-specifications-->The status of the invocation.<!--/source-->`STARTED` |
| `transaction_id` | `string` | <!--source:api-specifications-->Transaction ID.<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->The data for the request collection.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->Flow tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection. Will be passed to every product flow invocation.<!--/source--> |
| `connector_job_id` | `string` | <!--source:api-specifications-->Connector job ID.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/products/employment/waterfall/invocations/{invocation_id}`

<!--source:api-specifications-->

#### Retrieve Product Waterfall Invocation Status
<!--/source-->

`RetrieveProductWaterfallInvocationStatus`

<!--source:api-specifications-->
Retrieves the status of running Product waterfall invocation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200 Completed200 Failed400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned status of the Product Waterfall Invocation.

```
{
 "invocation_id": "fbc19f9b-1d37-4ced-9f1d-d2769b018b0a",
 "invocation_status": "COMPLETED",
 "request_collection_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "callback_url": "https://webhook.site/68a4aa6a-bf18-4f7d-be7d-bc26503adeb2",
 "transaction_id": "01FCWK72GC1MFM5003SXJHMWNG",
 "request_collection": {
 "data": {
 "foo": "bar",
 "biz": "baz"
 },
 "metadata": {
 "created_at": "2021-08-12T03:11:25.749933-04:00",
 "validation": false
 },
 "transaction_id": "01FCWK72GC1MFM5003SXJHMWNG",
 "collection_id": "01FCWK741N7GWYBVG4Z3N74V16"
 },
 "flows_responses": {
 "flow1": {
 "response_collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
 "invocation_id": "7a8980a1-73ac-4313-ada5-e0e976c38ebb",
 "invocation_status": "FAILED",
 "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
 "product_flow_name": "demo_product_flow_422",
 "failure_reason": "Service Connector failed. Connector flow failed. Response payload: {'Error': 'CallVendorError', 'Cause': {'errorMessage': '', 'errorType': 'CallVendorError'}}",
 "response_collection": {
 "collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
 "data": {},
 "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
 "metadata": {
 "created_at": "2021-08-12T04:58:15.331517-04:00",
 "validation": false
 }
 }
 },
 "flow2": {
 "response_collection_id": "01FCWSMVWW7192SZXR9MP52B4A",
 "invocation_id": "c861def5-5e5d-4690-9313-2f25427029a8",
 "invocation_status": "COMPLETED",
 "transaction_id": "01FCWSMNZM271WVQY6FDS2CB6M",
 "product_flow_name": "demo_product_flow",
 "response_collection": {
 "data": {},
 "collection_id": "01FCWSMVWW7192SZXR9MP52B4A",
 "transaction_id": "01FCWSMNZM271WVQY6FDS2CB6M",
 "metadata": {
 "created_at": "2021-08-12T05:03:47.612771-04:00",
 "validation": false
 }
 }
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned status of the Product Waterfall Invocation.

```
{
 "invocation_id": "fbc19f9b-1d37-4ced-9f1d-d2769b018b0a",
 "invocation_status": "FAILED",
 "request_collection_id": "01FCWK741N7GWYBVG4Z3N74V16",
 "callback_url": "https://webhook.site/68a4aa6a-bf18-4f7d-be7d-bc26503adeb2",
 "transaction_id": "01FCWK72GC1MFM5003SXJHMWNG",
 "failure_reason": "All product flows were failed.",
 "request_collection": {
 "data": {
 "foo": "bar",
 "biz": "baz"
 },
 "metadata": {
 "created_at": "2021-08-12T03:11:25.749933-04:00",
 "validation": false
 },
 "transaction_id": "01FCWK72GC1MFM5003SXJHMWNG",
 "collection_id": "01FCWK741N7GWYBVG4Z3N74V16"
 },
 "flows_responses": {
 "flow1": {
 "response_collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
 "invocation_id": "7a8980a1-73ac-4313-ada5-e0e976c38ebb",
 "invocation_status": "FAILED",
 "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
 "product_flow_name": "demo_product_flow_422",
 "failure_reason": "Service Connector failed. Connector flow failed. Response payload: {'Error': 'CallVendorError', 'Cause': {'errorMessage': '', 'errorType': 'CallVendorError'}}",
 "response_collection": {
 "collection_id": "01FCWSAQD3QDKEW91K7CPXN4Y2",
 "data": {},
 "transaction_id": "01FCWSAH1RVMC0DH6GRQ9JSAE7",
 "metadata": {
 "created_at": "2021-08-12T04:58:15.331517-04:00",
 "validation": false
 }
 }
 }
 },
 "metadata": {
 "actual_flow_name": "flow1"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `invocation_id` required | `string (ulid)` path | `d7ccedb8-8889-4657-add4-bc1s4xs97637` | <!--source:api-specifications-->Product flow invocation identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
11 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned status of the Product Waterfall Invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `invocation_id`required | `string` | <!--source:api-specifications-->Invocation ID.<!--/source--> |
| `invocation_status`required | `string` | <!--source:api-specifications-->The status of the invocation.<!--/source-->`ACTION_REQUIRED``COMPLETED``FAILED``RUNNING``STARTED` |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID.<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->The data for the request collection.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `request_collection` | `object` | <!--source:api-specifications-->Request Collection.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->Flow tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Options that were passed to the waterfall invocation.<!--/source--> |
| `flows_responses`required | `object` | <!--source:api-specifications-->Responses for each flow invocation.<!--/source--> |
| `metadata`required | `object` | <!--source:api-specifications-->Metadata of waterfall.<!--/source--> |
| `actual_flow_name` | `string` | <!--source:api-specifications-->Actual flow name invoked.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Platform
<!--/source-->

`GET` `/response-elements`

<!--source:api-specifications-->

#### Retrieve Response Elements
<!--/source-->

`responseElements`

<!--source:api-specifications-->
Retrieve Response Elements provides a list of elements that will be returned by a data partner after invoking the product.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Example for the Product Invocation Request Elements object

```
{
 "elements": [
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].email",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.first",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.last",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.birth_date",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].taxpayer_identifiers.taxpayer_identifier[*].value"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Elements were retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `elements`required | `string[]` | <!--source:api-specifications-->List of elements.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/schema/{data_object}`

<!--source:api-specifications-->

#### Retrieve Example Schema
<!--/source-->

`retrieveSchema`

<!--source:api-specifications-->
Retrieve Schema retrieves a JSON schema for the request and the response returned by the product. It can also return an example of a json object defined with schema.

#### Testing Employment:

If you want an example collection:

- To path parameter `data_object` add `request`
- In the query parameters set `return_examples` to `true`

You can directly pass an example returned by the `/schema` endpoint into the Create Collection endpoint as a request body.

<!--/source-->

##### Response

<!--source:api-specifications-->
application/json Copy Successfully returned the list of elements needed for Employment.

```
{
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1-nesto",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
4
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `data_object` required | `string` path | `request` | <!--source:api-specifications-->Describes the particular data object you are getting a schema for.<!--/source--> |
| `version` | `string` query | `v0` | <!--source:api-specifications-->Defines the version of the Staircase language you want the JSON to return in.<!--/source--> |
| `return_examples` | `boolean` query | `false` | <!--source:api-specifications-->If included and set to `true`, returns one or more pre-filled examples that conform to the schema.<!--/source--> |

##### Other responses

`200``400``403`

`GET` `/request-schema`

<!--source:api-specifications-->

#### Retrieve Request Schema
<!--/source-->

`retrieveRequestSchema`

<!--source:api-specifications-->
Retrieve Request Schema retrieves a JSON schema for the request to the product waterfall. It also has the option of returning an example for the request object expected through the return_example attribute.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 InvalidReturnExamplesValue400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the list of elements needed for product waterfall.

```
{
 "data": {},
 "metadata": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Please provide one of valid return examples values: true, false"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Error

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `return_examples` | `boolean` query | `false` | <!--source:api-specifications-->If included and set to `true`, returns one or more pre-filled examples that conform to the schema. Default to `false`<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the list of elements needed for product waterfall.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `schema` | `object` | <!--source:api-specifications-->Element key / value<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `/company/{company_name}`

<!--source:api-specifications-->

#### Search Company
<!--/source-->

`searchCompany`

<!--source:api-specifications-->
Search Company verifies a company's existence by querying all partners and returns the name of the partner that can provide employment verification for that company.

Please check list of active partners in your environment with Retrieve Partners.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Company found

```
{
 "Partner 1": [
 "The Home Depot"
 ],
 "Partner 2": [
 "The Home Depot"
 ],
 "Partner 3": [
 "Home Depot"
 ],
 "Partner 4": [
 "Home depot"
 ],
 "Partner 5": [
 "Home Depot 401k"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
4
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `company_name` required | `string` path | `Uber, Amazon` | <!--source:api-specifications-->Use Employer name (Company name) to check coverage.<!--/source--> |
| `exclude_borrower` | `boolean` query | `false` | <!--source:api-specifications-->The exclude_borrower option enables you to filter partners that require borrower interaction during verification process.When exclude_borrower=true, **Search Company** excludes partners that need borrower authorization in order to successfully finish the verification process.<!--/source--> |
| `manual_verification` | `boolean` query | `true` | <!--source:api-specifications-->The manual_verification option enables you to filter partners that perform manual employment verifications. When manual_verification=false, **Search Company** excludes, from the search response, all partners that perform manual VOE. This limits the coverage response for partners performing VOE, and also reduces the time it takes to complete a VOE.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
5 fields
<!--/source-->
<!--source:api-specifications-->
Company found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `Partner 1` | `string[]` | — |
| `Partner 2` | `string[]` | — |
| `Partner 3` | `string[]` | — |
| `Partner 4` | `string[]` | — |
| `Partner 5` | `string[]` | — |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

##### Other responses

`400``404`

`PUT` `/transactions/{transaction_id}/collections/{collection_id}`

<!--source:api-specifications-->

#### Update Collection
<!--/source-->

`updateCollection`

<!--source:api-specifications-->
Update Collection allows you to update the content of a given collection_id associated with a transaction_id.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1-nesto",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Collection updated successfully

```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 }
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": 123456789
 }
 ]
 }
 }
 ]
 },
 "loans": {
 "loan": [
 {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {
 "validation": false,
 "created_at": "03/04/2021, 1:18:35 PM EST"
 },
 "collection_id": "01F0KHKADN0HRFXMCQQXPA6AFZ",
 "transaction_id": "01F0KHK7DN3H5JZ4QJKMYAM6GB"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Unable to update collection. Please check the collection data"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "message": "Unable to update collection. Please check the given ids"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `transaction_id` required | `string (ulid)` path | `01F0KHK7DN3H5JZ4QJKMYAM6GB` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source--> |
| `collection_id` required | `string (ulid)` path | `01F0KHKADN0HRFXMCQQXPA6AFZ` | <!--source:api-specifications-->Staircase collection_id<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Collection updated successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `data` | `object` | — |
| `deal_sets`required | `object` | — |
| `deal_set`required | `object[]` | — |
| `deals`required | `object` | — |
| `document_sets` | `object` | — |
| `document_set` | `object[]` | — |
| `documents` | `object` | — |
| `metadata` | `object` | <!--source:api-specifications-->The metadata object describes properties that a Staircase collection has<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->ISO 8601 format with EST timezone<!--/source-->Example `03/03/2021, 8:24:04 AM EST` |
| `updated_at` | `string` | <!--source:api-specifications-->ISO 8601 format with EST timezone<!--/source-->Example `03/03/2021, 8:24:04 AM EST` |
| `validation` | `boolean` | <!--source:api-specifications-->Describes whether the collection has been validated against Staircase language schema<!--/source-->Example `false` |
| `partner_name` | `string` | <!--source:api-specifications-->Staircase partner name that was used to generate the collection<!--/source--> |
| `exclude_borrower` | `boolean` | <!--source:api-specifications-->Some of our partners include borrowers in the loop while executing the verification. Employment is verified by requesting information from borrower. If you want to exclude the borrower from the process, you must select *exclude_borrower* = *true* in options.<!--/source--> |
| `manual_verification` | `boolean` | <!--source:api-specifications-->This option allows us to add partners that perform manual verification to your search list while finding the most suitable partner for you. This option takes a longer time and gives you a broader search.<!--/source--> |
| `send_sms` | `boolean` | <!--source:api-specifications-->This option allows us to send SMS to the borrower when an authorization for the verification is needed. The SMS text is "Lender has provided verification link to your E-mail address, please open link in browser, and finish verify process"<!--/source--> |
| `verification_state` | `string` | <!--source:api-specifications-->Describes the state of the operation that generated the collection<!--/source-->`CANCELLED``COMPLETED``FAILED``IN_PROGRESS``TIME_OUT` |
| `results` | `object` | <!--source:api-specifications-->Contains the results of an operation that generated the collection<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Describes the state of the operation that generated the collection<!--/source-->`COMPLETED``ERROR``REQUEST_MADE``TIMED_OUT`Example `COMPLETED` |
| `product` | `string` | <!--source:api-specifications-->Name of the Staircase product that generated the collection<!--/source-->Example `Employments` |
| `info` | `string` | <!--source:api-specifications-->Additional info about the status<!--/source--> |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source-->Example `01F0KHK7DN3H5JZ4QJKMYAM6GB` |
| `collection_id` | `string (ulid)` | <!--source:api-specifications-->Staircase Collection Identifier<!--/source-->Example `01F0KHKADN0HRFXMCQQXPA6AFZ` |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | — |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

`POST` `/request-elements/complete`

<!--source:api-specifications-->

#### Validate Collection
<!--/source-->

`validateCollection`

<!--source:api-specifications-->
Validate Collection verifies that a collection contains all the elements needed to invoke a partner for employment verification.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1-nesto",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Collection is valid

```
{
 "message": "Collection is valid."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_id']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `deal_sets`required | `object` | — |
| `deal_set`required | `object[]` | — |
| `deals`required | `object` | — |
| `deal`required | `object[]` | — |
| `document_sets` | `object` | — |
| `document_set` | `object[]` | — |
| `documents` | `object` | — |
| `document` | `object[]` | — |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Collection is valid
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

##### Other responses

`400`

`GET` `/response-schema`

<!--source:api-specifications-->

#### Retrieve Response Schema
<!--/source-->

`retrieveResponseSchema`

<!--source:api-specifications-->
Retrieve Schema retrieves a JSON schema for the response returned by the product. It can also return an example for the response output object through return_example attribute.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 InvalidReturnExamplesValue400 text/html403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned the list of elements of response of the product waterfall.

```
{
 "data": {},
 "metadata": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Please provide one of valid return examples values: true, false"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Error

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `return_examples` | `boolean` query | `false` | <!--source:api-specifications-->If included and set to `true`, returns one or more pre-filled examples that conform to the schema. Default to `false`<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned the list of elements of response of the product waterfall.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `schema` | `object` | <!--source:api-specifications-->Element key / value element<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

<!--source:api-specifications-->

### Workflow
<!--/source-->

`POST` `/transactions`

<!--source:api-specifications-->

#### Create Transaction
<!--/source-->

`createTransaction`

<!--source:api-specifications-->
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

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "label": "first_transaction",
 "callback_url": "https://webhook.site/0c1c4e00-79d9-490b-a0f3-bab8b12a61d5"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Transaction created successfully

```
{
 "transaction_id": "01F0KHK7DN3H5JZ4QJKMYAM6GB",
 "created_at": "03/04/2021, 1:04:05 PM EST"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `callback_url` | `string (url)` | <!--source:api-specifications-->URL for receiving events about changes inside transaction<!--/source--> |
| `label` | `string` | <!--source:api-specifications-->Transaction label<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Transaction created successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source-->Example `01F0KHK7DN3H5JZ4QJKMYAM6GB` |
| `created_at` | `string` | <!--source:api-specifications-->Staircase time string.<!--/source-->Example `03/03/2021, 8:24:04 AM EST` |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400`

`GET` `/request-elements`

<!--source:api-specifications-->

#### Retrieve Request Elements
<!--/source-->

`requestElements`

<!--source:api-specifications-->
Retrieve Request Elements retrieves a list of elements needed to invoke a data partner for product function invocation.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Example for the Product Invocation Request Elements object

```
{
 "elements": [
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].customer_transaction_ID",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].contact_point_telephone.value",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.contact_points.contact_point[*].contact_point_email.value",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.first",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].individual.name.last",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.birth_date",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.employers.employer[*].legal_entity.full_name",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.additional_line_text",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.city",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.country",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.line_text",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.postal_code",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.state_code",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].roles.role[*].borrower.residences.residence[*].address.state",
 "$.deal_sets.deal_set[*].deals.deal[*].parties.party[*].taxpayer_identifiers.taxpayer_identifier[*].value",
 "$.document_sets.document_set[*].documents.document[*].document_classification.document_classes.document_class[*].staircase_type",
 "$.document_sets.document_set[*].documents.document[*].document_classification.document_classes.document_class[*].type",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].description",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].mime_type_identifier",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].name",
 "$.document_sets.document_set[*].documents.document[*].foreign_objects.foreign_object[*].staircase_blob_id"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Elements were retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `elements`required | `string[]` | <!--source:api-specifications-->List of elements.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`POST` `/build-payload`

<!--source:api-specifications-->

#### Build JSON Payload
<!--/source-->

`buildPayload`

<!--source:api-specifications-->
Build JSON Payload retrieves a JSON schema for either:

- a request for employment verification, or
- a response containing employment verification details. To retrieve the employment verification request schema:

1. Invoke Retrieve Request Elements to get an array of employment verification request elements.
1. Place the output from Retrieve Request Elements into the Build JSON Payload request body.
1. Place your api_key into the Build JSON Payload header.
1. Send the request to Build JSON Payload. You will receive a JSON schema in response, with null values that must be replaced with your own. To retrieve theShow the rest employment verification response schema:
1. Invoke Retrieve Response Elements to get an array of employment verification response elements.
1. Place the output from Retrieve Response Elements into the Build JSON Payload request body.
1. Place your api_key into the Build JSON Payload header.
1. Send the request to Build JSON Payload. You will receive a JSON schema in response, with null values that will be replaced by the partner upon return of employment verification details.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].customer_transaction_id": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.name.first": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.name.last": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.contact_points.contact_point[0].contact_point_email.value": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].individual.contact_points.contact_point[0].contact_point_telephone.value": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.birth_date": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.employers.employer[0].legal_entity.full_name": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.country": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.city": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.state_code": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.postal_code": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.line_text": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].roles.role[0].borrower.residences.residence[0].address.additional_line_text": null,
 "$.data.deal_sets.deal_set[0].deals.deal[0].parties.party[0].taxpayer_identifiers.taxpayer_identifier[0].value": null,
 "$.data.document_sets.document_set[0].documents.document[0].document_classification.document_classes.document_class[0].staircase_type": null,
 "$.data.document_sets.document_set[0].documents.document[0].document_classification.document_classes.document_class[0].type": null,
 "$.data.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].description": null,
 "$.data.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].mime_type_identifier": null,
 "$.data.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].name": null,
 "$.data.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].staircase_blob_id": null
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Employment Verification Payload.

```
{
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1-nesto",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `path` | `string` | <!--source:api-specifications-->Contains the path in Staircase language<!--/source--> |
| `value` | `string` | <!--source:api-specifications-->Enter your own values here<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Employment Verification Payload.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `deal_sets` | `object` | — |
| `deal_set` | `object[]` | — |
| `deals` | `object` | — |
| `deal` | `object[]` | — |
| `document_sets` | `object` | — |
| `document_set` | `object[]` | — |
| `documents` | `object` | — |
| `document` | `object[]` | — |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

`POST` `/approval`

<!--source:api-specifications-->

#### Upload Approval Document
<!--/source-->

`uploadBlob`

<!--source:api-specifications-->
Upload Approval Document allows a Lender to upload a Borrower-signed approval document in .pdf form, to increase the employment verification success rate.

Upload Approval Document uploads a .pdf document (blob) to Persistence.

You can upload PDF using HTML Request Maker Try It Out. Place your api_key in the request header, set the request body to binary and browse to your signed approval document. Click Send to upload your document.

Show the rest To upload a document programmatically, use the programmatic upload example below. After the approval document is successfully uploaded, a blob_id value is provided. Example: 'blob_id': '01EZYHKY4EXFW4Z8RKWHDP1KHB'

After you got successful response, you need to use the blob_id in collection with the following path.

```
$.document_sets.document_set[0].documents.document[0].foreign_objects.foreign_object[0].staircase_blob_id
```

To upload a document within code, you can to use a below example.

```
import requests
url = ""
payload = open("borrower_approval_document.pdf", "rb")
headers = {
 'x-api-key': 'API_KEY',
 'Content-Type': 'application/pdf'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
```

<!--/source-->

##### Request

<!--source:api-specifications-->
application/octet-stream Copy
```
Select option 'binary' in order to upload file
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Blob uploaded

```
{
 "blob_id": "01EZY9J8SEFM2JKDJ1Q3YX65HS"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Blob uploaded
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `blob_id` | `string` | <!--source:api-specifications-->Created blob ID<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400``405``422`

`POST` `/transactions/{transaction_id}/collections`

<!--source:api-specifications-->

#### Create Collection
<!--/source-->

`createCollection`

<!--source:api-specifications-->
Create Collection creates a collection of elements required for employment verification. A collection contains a digital representation of employment verification and is identified by collection_id. A collection_id is passed to the partner when requesting employment verification. To create an employment verification collection:

1. Create a Transaction and receive a transaction_id in the response.
1. Create the request collection adding the borrowers details to it:

- Copy one of the example schemas given below for the request body, and replace the example values in schema with your values.
- Invoke Retrieve Example JSON to get an example schema or an example collection (change the values with your own).

1. Pass the transaction_id as a path parameter, and place the collection with your values in the request body.
1. The endpoint returns a collection_id representing the collection you just created associated with the transaction_id that was passed in the path parameter.

Once you have created a collection, you can send it, along with your api_key and transaction_id, to any of the employment verification partners as many times as you want.

Show the rest

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ],
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 }
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Collection created successfully

```
{
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_id": "e171ec31-75b4-4fd6-ada1-nesto",
 "individual": {
 "name": {
 "first": "Jane",
 "last": "Consumer"
 },
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 }
 },
 {
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01T00:00:00.000Z",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Uber"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "000000001"
 }
 ]
 }
 }
 ]
 }
 },
 {
 "loans": {
 "loan": {
 "loan_identifiers": {
 "loan_identifier": [
 {
 "identifier": "6f039329-3fd6-44c1-a460-9af546e798de"
 }
 ]
 }
 }
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Error

```
{
 "message": "Unable to create collection. Please check the collection data"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "message": "Unable to create collection. Please check the transaction Id"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `transaction_id` required | `string (ulid)` path | `01F0KHK7DN3H5JZ4QJKMYAM6GB` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Collection created successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `data` | `object` | — |
| `deal_sets`required | `object` | — |
| `deal_set`required | `object[]` | — |
| `deals`required | `object` | — |
| `document_sets` | `object` | — |
| `document_set` | `object[]` | — |
| `documents` | `object` | — |
| `metadata` | `object` | <!--source:api-specifications-->The metadata object describes properties that a Staircase collection has<!--/source--> |
| `created_at` | `string` | <!--source:api-specifications-->ISO 8601 format with EST timezone<!--/source-->Example `03/03/2021, 8:24:04 AM EST` |
| `updated_at` | `string` | <!--source:api-specifications-->ISO 8601 format with EST timezone<!--/source-->Example `03/03/2021, 8:24:04 AM EST` |
| `validation` | `boolean` | <!--source:api-specifications-->Describes whether the collection has been validated against Staircase language schema<!--/source-->Example `false` |
| `partner_name` | `string` | <!--source:api-specifications-->Staircase partner name that was used to generate the collection<!--/source--> |
| `exclude_borrower` | `boolean` | <!--source:api-specifications-->Some of our partners include borrowers in the loop while executing the verification. Employment is verified by requesting information from borrower. If you want to exclude the borrower from the process, you must select *exclude_borrower* = *true* in options.<!--/source--> |
| `manual_verification` | `boolean` | <!--source:api-specifications-->This option allows us to add partners that perform manual verification to your search list while finding the most suitable partner for you. This option takes a longer time and gives you a broader search.<!--/source--> |
| `send_sms` | `boolean` | <!--source:api-specifications-->This option allows us to send SMS to the borrower when an authorization for the verification is needed. The SMS text is "Lender has provided verification link to your E-mail address, please open link in browser, and finish verify process"<!--/source--> |
| `verification_state` | `string` | <!--source:api-specifications-->Describes the state of the operation that generated the collection<!--/source-->`CANCELLED``COMPLETED``FAILED``IN_PROGRESS``TIME_OUT` |
| `results` | `object` | <!--source:api-specifications-->Contains the results of an operation that generated the collection<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Describes the state of the operation that generated the collection<!--/source-->`COMPLETED``ERROR``REQUEST_MADE``TIMED_OUT`Example `COMPLETED` |
| `product` | `string` | <!--source:api-specifications-->Name of the Staircase product that generated the collection<!--/source-->Example `Employments` |
| `info` | `string` | <!--source:api-specifications-->Additional info about the status<!--/source--> |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source-->Example `01F0KHK7DN3H5JZ4QJKMYAM6GB` |
| `collection_id` | `string (ulid)` | <!--source:api-specifications-->Staircase Collection Identifier<!--/source-->Example `01F0KHKADN0HRFXMCQQXPA6AFZ` |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | — |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

`POST` `/`

<!--source:api-specifications-->

#### Verify Employment
<!--/source-->

`invokeProductFlow`

<!--source:api-specifications-->
Verify Employment creates an employment verification request for the provided transaction, collection and selected partner. To create an employment verification request:

1. Make sure you have an api_key, received via email when you signed up for Staircase.
1. Create a Transaction and receive a transaction_id in the response.
1. Create a Collection and receive a collection_id in the response.
1. Place the api_key in the request header, and place the transaction_id, collection_id and partner_name in the request body. Choose verification options and add them to the request body.
1. Call Verify Employment and receive the response.
1. If the response contains status with value ACTION_NEEDED, it will also contain a url which represents the link by which the borrower can authorize the verification. The url should be sent to the borrower for authorization.
1. Check the status of the verification by calling Retrieve Status.
1. After the response from Retrieve Status contains the status COMPLETED, retrieve the output collection by calling Retrieve Collection.
1. The output collection contains blob_id with which you can retrieve the generated report.

#### Verification options

Manual Verification parameter

Show the rest The manual_verification option enables you to add or remove partners that perform manual employment verifications. When manual_verification=false, Employment will exclude all partners performing manual `VOE`. This limits the search for partners performing `VOE`, and also reduces the time it takes to complete a `VOE`.

Exclude Borrower parameter

The exclude_borrower option enables you to remove the borrower from the `VOE` loop. When exclude_borrower=false, the borrower will be asked to provide credentials needed for employment verification prior to the partner performing the `VOE`. This increases borrower interaction, and also increases the chance that the `VOE` will be successfully completed. The borrower needs to authorize the verification by clicking on the url (link) that is provided in the verification response and entering a payroll provider or bank credentials. Test credentials for partners that offer the "borrower in the loop" option can be found in Retrieve Partners.

Partner name parameter

The partner_name option enables you to select preferred partner, or you can use "default" as value. If you use partner_name=default, Employment will find the best match and use that partner for the verification process. If you want to use a specific partner, call Retrieve Partners to determine what employment verification partners are available.

Send SMS parameter

The `*send_SMS*` option enables you to send an SMS when an authorization for the verification is needed. The default SMS text is "Lender has provided verification link to your E-mail address, please open link in browser, and finish verification process", if you wish to change the default SMS text you can send an optional SMS_text parameter with your custom text message.

Send Email parameter

The send_email option enables you to email the borrower when an authorization for the verification is needed. The Email will be sent to the email address specified in the input collection. The Email uses the standard email template `*voe_email_template*`, if you wish to update the template please refer to the Update Email Template documentation. Please note that the template takes in two passed variables, which are the applet URL and employer name, and those are required variables and should not be altered, for more info check the Email Product section.

Redirect URL parameter

Providing the redirect_url is optional and allows you to redirect the borrower to a URL of your choosing after linking the borrower's employment verification. If left empty or no options parameter is passed, this URL defaults to the Staircase homepage.

##### Test scenarios

To execute test scenarios please use 000000001 as your taxpayer identifier in the input collection. To variate between different data partners please change the legal entity full name field in the input collection to the one of the following values:

1. "Fox Subacute" for Argyle data partner
1. "Uber" for Atomic data partner
1. "Amazon" for Equifax and Meridian data partners (if "waterfall" feature is enabled, partner is selected based on the partner ordering)
1. "Fair port Little League Inc." for Pinwheel data partner
1. "True work - DEMO" for True work and True work Instant data partners (if "waterfall" feature is enabled, partner is selected based on the partner ordering)

To use "waterfall" feature set the partner name to "default". This way verification will be executed following the ordering (can be set previously) for all available data partners. For example if two data partners share the same legal entity full name verification will be done based on the ordering of data partners.

Verify Employment returns, as a synchronous acknowledgement, a new collection_id. The new collection_id represents an empty container which will hold the partner's response once processing has completed. Call Retrieve Collection with the transaction_id and new collection_id to retrieve the verification result.

<!--/source-->

##### Request

<!--source:api-specifications-->
InvokeByFlowNameInvokeByTagsInvokeWithRequestDataInvokeWithFlowOptionsCollectionsInvokeWithFlowOptionsRequestDataInvokeByFlowNameOptionsInvokeByVendorNameOptionsInvokeWaterfall
<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "Argyle",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "get-document-from-byte",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "request_data": {
 "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"
 }
 }
 ]
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "tags": [
 "manual_verification"
 ],
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "product_flow_name": "get-document-from-byte",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "vendor_name": "argyle",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "options": {
 "option1": "test_option"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6QF1QJF20DMSXH4SYXKB1SN",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "callback_url": "https://webhook.site/3706b519-9426-4533-9868-14a7dec4fd97",
 "invocation_mode": "waterfall"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
201400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully started flow invocation.

```
{
 "invocation_id": "9aefb465-90fb-4d50-8ae6-2df2b58373f4",
 "invocation_status": "STARTED",
 "product_flow_name": "VOE",
 "transaction_id": "01F6NAMXWN2XVBD1YJ92A6S6R4",
 "request_collection_id": "01F6NAQ4894HPMCBGB4P0G95XK",
 "response_collection_id": "01F6NAQ4894HPMCBGB4P0G78HG",
 "options": {
 "dry_run": false
 },
 "tags": [
 "manual verification"
 ]
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
10 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `product_flow_name` | `string` | <!--source:api-specifications-->Product flow name. If it is not specified, the default product flow will be invoked. If the product has no default product flow, the first created flow will be invoked. Cannot be specified together with vendor_name.<!--/source--> |
| `vendor_name` | `string` | <!--source:api-specifications-->Vendor name. Cannot be specified together with product_flow_name.<!--/source--> |
| `transaction_id` | `string` | <!--source:api-specifications-->Transaction ID used for invocation.<!--/source--> |
| `request_collection_id` | `string` | <!--source:api-specifications-->Request Collection ID.<!--/source--> |
| `response_collection_id` | `string` | <!--source:api-specifications-->Response Collection ID.<!--/source--> |
| `callback_url` | `string (uri)` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->Request JSON body.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->List of tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection.<!--/source--> |
| `invocation_mode` | `string` | <!--source:api-specifications-->The invocation mode of a product flow single_flow or waterfall, default value single_flow<!--/source--> |

##### Response `201``application/json`

<!--source:api-specifications-->
11 fields
<!--/source-->
<!--source:api-specifications-->
Successfully started flow invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `invocation_id`required | `string` | <!--source:api-specifications-->Invocation ID.<!--/source--> |
| `invocation_status`required | `string` | <!--source:api-specifications-->The status of the invocation.<!--/source-->`STARTED` |
| `transaction_id`required | `string` | <!--source:api-specifications-->Transaction ID.<!--/source--> |
| `reuest_collection_id`required | `string` | <!--source:api-specifications-->Request collection ID.<!--/source--> |
| `response_collection_id`required | `string` | <!--source:api-specifications-->Response collection ID.<!--/source--> |
| `product_flow_name` | `string` | <!--source:api-specifications-->Product flow name.<!--/source--> |
| `metadata` | `object` | <!--source:api-specifications-->The metadata of the invoked product flow.<!--/source--> |
| `callback_url` | `string` | <!--source:api-specifications-->Callback URL.<!--/source--> |
| `request_data` | `object` | <!--source:api-specifications-->The data for the request collection.<!--/source--> |
| `tags` | `string[]` | <!--source:api-specifications-->List of tags.<!--/source--> |
| `options` | `object` | <!--source:api-specifications-->Additional information that should be passed to the connector but not be added to the request collection.<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`POST` `/request-elements/validate`

<!--source:api-specifications-->

#### Validate Collection
<!--/source-->

`validateCollection`

<!--source:api-specifications-->
Validate Collection allows you to validate an input collection prior to submitting to our partners for a specific product. This endpoint will give messages with all the corrections you need to make to your collection in order for it to be accepted by our partner call.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "data": {},
 "metadata": {}
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404 GetProduct404 text/html500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Collection is valid

```
{
 "message": "Collection is valid."
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Validation Error

```
{
 "message": "3 is not of type 'string'. Failed validating 'type' in schema['properties']['deal_sets']['items'][0]['properties']['parties']['items'][0]['properties']['customer_transaction_ID']:"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "type": "string",
 "description": "Error Message."
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `deal_sets` | `object` | <!--source:api-specifications-->Deal sets object.<!--/source--> |
| `deal_set` | `object[]` | <!--source:api-specifications-->Deal set object.<!--/source--> |
| `deals` | `object` | <!--source:api-specifications-->Deals object.<!--/source--> |
| `deal` | `object[]` | <!--source:api-specifications-->Deal array.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Collection is valid
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Validation Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`POST` `/cancel-verification`

<!--source:api-specifications-->

#### Cancel Employment Verification
<!--/source-->

`cancelVerification`

<!--source:api-specifications-->
Cancel Employment Verification invokes a partner to cancel an employment verification that has already started. This feature is currently available using the partner Truework.

<!--/source-->

##### Request

<!--source:api-specifications-->
application/json Copy
```
{
 "transaction_id": "42u3784-324123-41234-21234",
 "collection_id": "42u3784-324123-41234-21234"
}
```

<!--/source-->

##### Response

<!--source:api-specifications-->
200403500502
<!--/source-->

<!--source:api-specifications-->
application/json Copy Cancel employment verification triggered

```
{
 "message": "Cancel employment verification request is succesfully taken"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad gateway.

```
{
 "message": "Internal server error."
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
1
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |

##### Request body`application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id`required | `string (ulid)` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source-->Example `01F0KHK7DN3H5JZ4QJKMYAM6GB` |
| `collection_id`required | `string (ulid)` | <!--source:api-specifications-->Staircase Collection Identifier<!--/source-->Example `01F0KHKADN0HRFXMCQQXPA6AFZ` |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Cancel employment verification triggered
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | Example `Cancel employment verification request is successfully taken` |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

##### Response `502``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad gateway.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error Message.<!--/source--> |

##### Other responses

`400``404`

`GET` `/status/{transaction_id}/{collection_id}`

<!--source:api-specifications-->

#### Retrieve Status
<!--/source-->

`RetrieveStatus`

<!--source:api-specifications-->
'Retrieve Status determines if a partner has completed employment verification.'

Status Descriptions:

- REQUEST_MADE: Indicates that execution is started
- WAITING_FOR_RESPONSE: Indicates that execution is being processed
- COMPLETED: Indicates execution has been successfully finished, and response collection can be retrieved
- TIME_OUT: Indicates execution has timed out.
- CANCELLED: Indicates execution has cancelled
- FAILED: Indicates execution has failed

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully returned status of the Product Waterfall Invocation.

```
{
 "status": "SUCCEEDED",
 "message": "Invocation completed successfully",
 "created_at": "2022-01-22T04:54:13.507355-05:00",
 "invocation_status": "COMPLETED",
 "last_updated_at": "2022-01-22T04:55:31.399320-05:00",
 "partner_language": "test-convert-v2-output_language",
 "service_invocation": {
 "Connector": {
 "connector_flow_name": "test-convert_flow",
 "debug_config": {
 "dry_run": true
 },
 "status": "COMPLETED",
 "invocation_id": "08589dde-d0ab-48d2-8912-6060f7413c52"
 },
 "Translator": {
 "output": {
 "status": "COMPLETED",
 "invocation_id": "f70d76d8-c57f-42c5-8685-ea64fcc64d16",
 "language_name": "staircase"
 },
 "input": {
 "status": "COMPLETED",
 "invocation_id": "b38f8b65-e5de-4acd-b2f3-7a372f922fc2",
 "language_name": "test-convert-v2-input_language"
 },
 "convert_output": {
 "status": "COMPLETED",
 "invocation_id": "f70d76d8-c57f-42c5-8685-ea64fcc64d16",
 "language_name": "staircase"
 },
 "convert_input": {
 "status": "COMPLETED",
 "invocation_id": "850d7d39-b90d-4ee5-a903-b3ad6d06ec4a",
 "language_name": "staircase"
 }
 }
 },
 "staircase_language_version": 2,
 "staircase_output_version": 0,
 "validation": false,
 "version": 2
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Request data failed validation

```
{
 "message": "{'data': ['Missing data for required field.']}"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Resource not found

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `transaction_id` required | `string (ulid)` path | `01F0KHK7DN3H5JZ4QJKMYAM6GB` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source--> |
| `collection_id` required | `string (ulid)` path | `01F0KHKADN0HRFXMCQQXPA6AFZ` | <!--source:api-specifications-->Staircase collection_id<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
6 fields
<!--/source-->
<!--source:api-specifications-->
Successfully returned status of the Product Waterfall Invocation.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `status` | `string` | <!--source:api-specifications-->Mapped status of the invocation.<!--/source-->Example `STARTED` |
| `message` | `string` | <!--source:api-specifications-->Message.<!--/source-->Example `Verification is completed, please check response collection to see verification data.` |
| `created_at` | `string` | <!--source:api-specifications-->Time of creation<!--/source--> |
| `invocation_status` | `string` | <!--source:api-specifications-->Status of the product invocation before mapping<!--/source--> |
| `last_updated_at` | `string` | <!--source:api-specifications-->Last time the collection was updated<!--/source--> |
| `service_invocation` | `object` | <!--source:api-specifications-->Includes underlying services invocation.<!--/source--> |
| `Connector` | `object` | <!--source:api-specifications-->Response from Connector service.<!--/source--> |
| `connector_flow_name` | `string` | <!--source:api-specifications-->Vendor flow name.<!--/source--> |
| `invocation_id` | `string (uuid)` | <!--source:api-specifications-->Connector job ID.<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Connector flow status.<!--/source-->`ACTION_REQUIRED``COMPLETED``FAILED``RUNNING` |
| `Translator` | `object` | <!--source:api-specifications-->Response from Translator service about input and output translation.<!--/source--> |
| `input` | `object` | <!--source:api-specifications-->Input translation status.<!--/source--> |
| `language_name` | `string` | <!--source:api-specifications-->Input translation language.<!--/source--> |
| `translation_id` | `string (uuid)` | <!--source:api-specifications-->Translation ID.<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Input translation status.<!--/source-->`COMPLETED``FAILED``RUNNING` |
| `convert_input` | `object` | <!--source:api-specifications-->Convert input translation status.<!--/source--> |
| `language_name` | `string` | <!--source:api-specifications-->Input translation language.<!--/source--> |
| `translation_id` | `string (uuid)` | <!--source:api-specifications-->Translation ID.<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Input translation status.<!--/source-->`COMPLETED``FAILED``RUNNING` |
| `output` | `object` | <!--source:api-specifications-->Output translation status.<!--/source--> |
| `language_name` | `string` | <!--source:api-specifications-->Output translation language.<!--/source--> |
| `translation_id` | `string (uuid)` | <!--source:api-specifications-->Translation ID.<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Output translation status.<!--/source-->`COMPLETE``FAILED``RUNNING` |
| `convert_output` | `object` | <!--source:api-specifications-->Convert output translation status.<!--/source--> |
| `language_name` | `string` | <!--source:api-specifications-->Output translation language.<!--/source--> |
| `translation_id` | `string (uuid)` | <!--source:api-specifications-->Translation ID.<!--/source--> |
| `status` | `string` | <!--source:api-specifications-->Output translation status.<!--/source-->`COMPLETE``FAILED``RUNNING` |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Request data failed validation
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

`GET` `//report/{blob_id}`

<!--source:api-specifications-->

#### Retrieve Report
<!--/source-->

`retrievePresignedUrls`

<!--source:api-specifications-->
Retrieve Report retrieves a PDF report from a successful verification. This endpoint takes in one path parameter, the blob ID, which can be found in the response collection of a successful verification.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403
<!--/source-->

<!--source:api-specifications-->
application/json Copy Presigned URLs retrieved successfully.

```
{
 "upload": {
 "url": "https://dev-data-manager-blobs-bucket.s3.amazonaws.com/01EZY9J8SEFM2JKDJ1Q3YX65HS"
 }
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 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"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `blob_id` required | `string` path | `01EZY9J8SEFM2JKDJ1Q3YX65HS` | <!--source:api-specifications-->Blob identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Presigned URLs retrieved successfully.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `presigned_urls` | `object` | <!--source:api-specifications-->Presigned URLs<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Other responses

`400``404`

`GET` `/report/{blob_id}`

<!--source:api-specifications-->

#### Retrieve Report
<!--/source-->

`retrieveReport`

<!--source:api-specifications-->
Retrieve Report retrieves a PDF report from a successful verification. This endpoint takes in one path parameter, the blob ID, which can be found in the response collection of a successful verification.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400 BadRequestResp400 NoReportFound403500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Report URL retrieved successfully

```
{
 "url": "www.domain.com/reportURL"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "Blod ID is not valid or not provided"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Bad Request

```
{
 "message": "No report found for this blob_id"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Invalid key for service

```
{
 "message": "Your API key is not valid, please refresh it.",
 "url": "https://api.staircase.co/docs/Console/Console/Account/post-customer-account"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Staircase Environment API Key<!--/source--> |
| `blob_id` required | `string` path | `01FVFBXHVD5WT2MJAGG96CPBJD` | <!--source:api-specifications-->Blob ID for report that needs to retrieved.<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Report URL retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `url` | `string` | <!--source:api-specifications-->Report URL<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Bad Request
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Partner not found<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Invalid key for service
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |
| `url` | `string` | — |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
The product has encountered an internal server error. If possible, please contact Staircase support with the transaction_id you used.
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | — |

<!--source:api-specifications-->

### Proxying
<!--/source-->

`GET` `/transactions/{transaction_id}/collections`

<!--source:api-specifications-->

#### Retrieve Transaction Collections
<!--/source-->

`RetrieveTransactionCollections`

<!--source:api-specifications-->
Retrieve Transaction Collections returns the content of a given `collection_id` associated with a specific `transaction_id`.

<!--/source-->

##### Response

<!--source:api-specifications-->
200400403404500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Transaction collection retrieved successfully

```
[
 {
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
 },
 {
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "roles": {
 "role": [
 {
 "borrower": {
 "employers": {
 "employer": [
 {
 "employment": {
 "end_date": "2020-09-10",
 "position_description": "Developer",
 "start_date": "2016-09-10",
 "status_type": "Current"
 },
 "legal_entity": {
 "full_name": "Amazing Community Pharmacy LLC"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 },
 "services": {
 "service": [
 {
 "verification_of_employment": {
 "verification_of_employment_response": {
 "partner": "Wage",
 "partner_data_source_date": "2021-07-19"
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
 }
]
```

<!--/source-->

<!--source:api-specifications-->
text/html Copy Error

```
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "message": "Unable to get collections of given transaction. Please check the transaction id"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
2
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `transaction_id` required | `string (ulid)` path | `01F0KHK7DN3H5JZ4QJKMYAM6GB` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
4 fields
<!--/source-->
<!--source:api-specifications-->
Transaction collection retrieved successfully
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `transaction_id` | `string (ulid)` | <!--source:api-specifications-->Transaction id<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `collection_id` | `string (ulid)` | <!--source:api-specifications-->Collection id<!--/source-->Example `01EZQ32PJQGKRA6HR8D72Q9FFF` |
| `data` | `array` | — |
| `metadata` | `object` | <!--source:api-specifications-->Metadata about collection, f.e version of used Staircase schema<!--/source--> |

##### Response `400``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `one of` | <!--source:api-specifications-->Either message object with more properties.<!--/source--> |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

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

<!--source:api-specifications-->

#### Retrieve Collection
<!--/source-->

`retrieveCollection`

<!--source:api-specifications-->
Retrieve Collection returns the content of a given `collection_id` associated with a `transaction_id`.

<!--/source-->

##### Response

<!--source:api-specifications-->
200403404 GetCollectionError404 GetCollectionsError500
<!--/source-->

<!--source:api-specifications-->
application/json Copy Successfully Retrieved Collection

```
{
 "data": {
 "deal_sets": {
 "deal_set": [
 {
 "deals": {
 "deal": [
 {
 "parties": {
 "party": [
 {
 "customer_transaction_ID": "e171ec31-75b4-4fd6-ada1-a0c48373c079",
 "individual": {
 "contact_points": {
 "contact_point": [
 {
 "contact_point_telephone": {
 "value": "+1234567890"
 },
 "contact_point_email": {
 "value": "test@test.com"
 }
 }
 ]
 },
 "name": {
 "first": "John",
 "last": "Jackson"
 }
 },
 "roles": {
 "role": [
 {
 "borrower": {
 "birth_date": "1984-01-01",
 "employers": {
 "employer": [
 {
 "legal_entity": {
 "full_name": "Amazon"
 }
 }
 ]
 },
 "residences": {
 "residence": [
 {
 "address": {
 "additional_line_text": "None",
 "city": "NEW YORK",
 "country": "US",
 "line_text": "33 IRVING PLACE",
 "postal_code": "10003",
 "state_code": "NY",
 "state": "NY"
 }
 }
 ]
 }
 }
 }
 ]
 },
 "taxpayer_identifiers": {
 "taxpayer_identifier": [
 {
 "value": "317210001"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 },
 "document_sets": {
 "document_set": [
 {
 "documents": {
 "document": [
 {
 "document_classification": {
 "document_classes": {
 "document_class": [
 {
 "staircase_type": "Staircase",
 "type": "BorrowerApproval"
 }
 ]
 }
 },
 "foreign_objects": {
 "foreign_object": [
 {
 "description": "BorrowerApproval",
 "mime_type_identifier": "application/pdf",
 "name": "01F1Z5KG9E3CPD78P7GYB3TYC1.pdf",
 "staircase_blob_id": "01F1Z5KG9E3CPD78P7GYB3TYC1"
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 },
 "metadata": {}
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy 403 invalid error

```
{
 "message": "Please check the key you used to call this service",
 "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "message": "Unable to get collection. Please check the given ids"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Resource not found

```
{
 "message": "Unable to get collections of given transaction. Please check the transaction id"
}
```

<!--/source-->

<!--source:api-specifications-->
application/json Copy Internal server error

```
{
 "message": "The product has encountered an internal server error. If you have used a transaction_id to call our services, please submit it to Staircase support"
}
```

<!--/source-->

##### Parameters

<!--source:api-specifications-->
3
<!--/source-->

| Parameter | Type | Example | Description |
| --- | --- | --- | --- |
| `x-api-key` required | `string` header | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` | <!--source:api-specifications-->Environment API Key.<!--/source--> |
| `transaction_id` required | `string (ulid)` path | `01F0KHK7DN3H5JZ4QJKMYAM6GB` | <!--source:api-specifications-->Staircase Transaction Identifier<!--/source--> |
| `collection_id` required | `string (ulid)` path | `01F0KHKADN0HRFXMCQQXPA6AFZ` | <!--source:api-specifications-->Staircase collection_id<!--/source--> |

##### Response `200``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
Successfully Retrieved Collection
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `data` | `object` | — |
| `deal_sets` | `object` | — |
| `deal_set` | `object[]` | — |
| `deals` | `object` | — |
| `document_sets` | `object` | — |
| `document_set` | `object[]` | — |
| `documents` | `object` | — |
| `metadata` | `—` | — |

##### Response `403``application/json`

<!--source:api-specifications-->
2 fields
<!--/source-->
<!--source:api-specifications-->
403 invalid error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |
| `url` | `string` | <!--source:api-specifications-->Error additional URL.<!--/source--> |

##### Response `404``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Resource not found
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Message<!--/source--> |

##### Response `500``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
Internal server error
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `message` | `string` | <!--source:api-specifications-->Error message.<!--/source--> |

##### Other responses

`400`

<!--source:api-specifications-->

### Operations
<!--/source-->

`POST` `/employment/webhook`

<!--source:api-specifications-->

#### Webhook to accept callback from TrueWork
<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
200 response
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `values` | `object` | — |
| `code` | `number` | — |
| `payload` | `object` | — |

##### Other responses

`403`

`POST` `/extractor/webhook`

<!--source:api-specifications-->

#### Webhook to accept callback from Ocrolus
<!--/source-->

##### Response `200``application/json`

<!--source:api-specifications-->
1 fields
<!--/source-->
<!--source:api-specifications-->
200 response
<!--/source-->

| Field | Type | Description |
| --- | --- | --- |
| `values` | `object` | — |
| `code` | `number` | — |
| `payload` | `object` | — |

##### Other responses

`403`

## Providers

The order below is the committed sequence. The roster underneath it is every vendor with integration evidence for this product, which is the larger set: a vendor can be integrated and absent from the committed ordering.

1. MeridianLink
1. Argyle
1. Atomic
1. Wage
1. Finicity
1. Experian
1. Pinwheel
1. Citadel
1. Equifax
1. Truework
1. Truework

Also integrated for this product, outside the committed ordering:

- Truv

## Field mapping

| Provider | Flow | Canonical in | Vendor in | Vendor out | Canonical out |
| --- | --- | --- | --- | --- | --- |
| Argyle | `income` | `staircase-graph` | `income-input` | `income-argyle-output` | `staircase-graph` |

## Errors

`400``403``404``405``422``500``502`

## More in Verification

- Previous product: Credit
- Next product: Identity
