Skip to content
Staircase

Access

Identity, single sign-on, API-key issuance and credential storage, with a stated boundary on who can reach a customer environment.

All product access control is by API key, and every environment has one. Access creates and manages the root identity that owns a company, the user identities belonging to its organisations, organisation parameters and credentials, the credentials a lender supplies for its own vendor accounts, and key rotation.

Rotating a key takes two factors: the organisation owner's identity and the current key.

How it works

Storage is split by what is being stored. API keys are held encrypted; user identities and their credentials sit in the managed identity service rather than in any product's own database. User identity is two-factor.

No API access is held into a customer's environment, with Health as the single exception, and nobody reaches an environment through the console. The boundary is stated in the design notes rather than implied.

Temporary maintenance access is possible and costs four independent factors: the environment's API key, a user identity, an approval from the security officer, and an approval from the organisation's own owner. The route runs through Comply, which issues the credential after the environment owner approves the request by email.

Product dependencies are expected to sit in the same environment, so a call does not cross an environment boundary to authenticate. Four products are the stated exceptions, because they are the ones that operate on environments rather than inside one.

Operations

Account Partner Schema

DELETE /

Delete Partner Schema

delete_partner_schema

This service manages the deletion of a partner schema.

Request
application/json

.

{
  "partner": "foopartner",
  "product": "barproduct",
  "schema": {
    "price": 32,
    "product_name": "apple"
  }
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
2 fields
FieldTypeDescription
partnerrequiredstringThe name of the partner.Example foopartner
productrequiredstringThe name of the product.Example barproduct
Response 200application/json
1 fields

201 response.

FieldTypeDescription
messagestringMessage with details.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringMessage with details.
Response 404application/json
1 fields

409 response.

FieldTypeDescription
messagestringMessage with details.
POST /

Create Partner Schema

create_partner_schema

This service manages the creation of a partner schema.

Request
application/json

.

{
  "partner": "foopartner",
  "product": "barproduct",
  "schema": {
    "price": 32,
    "product_name": "apple"
  }
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
3 fields
FieldTypeDescription
partnerrequiredstringThe name of the partner.Example foopartner
productrequiredstringThe name of the product.Example barproduct
schemarequiredobjectThe JSON schema.
Response 201application/json
1 fields

201 response.

FieldTypeDescription
messagestringMessage with details.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringMessage with details.
Response 409application/json
1 fields

409 response.

FieldTypeDescription
messagestringMessage with details.
PUT /

Update Partner Schema

update_partner_schema

This service manages the update of a partner schema.

Request
application/json

.

{
  "partner": "foopartner",
  "product": "barproduct",
  "schema": {
    "price": 32,
    "product_name": "apple"
  }
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
3 fields
FieldTypeDescription
partnerrequiredstringThe name of the partner.Example foopartner
productrequiredstringThe name of the product.Example barproduct
schemarequiredobjectThe JSON schema.
Response 200application/json
1 fields

201 response.

FieldTypeDescription
messagestringMessage with details.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringMessage with details.
Response 404application/json
1 fields

409 response.

FieldTypeDescription
messagestringMessage with details.

Company Organization

GET /

Retrieve Company Organization List

retrieve-company-organization-list

This service retrieves company organization list.

Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
company_name string query Amazon Company name
organization_name string query Amazon Web Services Organization name
Response 200application/json
1 fields

Successful Company Organization List Retrieve.

FieldTypeDescription
company_organization_listobject[]Company organization list
organization_idstringOrganization ID
company_namestringCompany name
organization_namestringOrganization name
Other responses

400403

GET /{organization_id}

Retrieve Company Organization

retrieve-company-organization

This service retrieves company organization.

Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
organization_id required string path fxfxfxfx-fxfx-fxfx-fxfx-fxfxfxfxfxfx Organization ID
Response 200application/json
1 fields

Successful Company Organization Retrieve.

FieldTypeDescription
company_organizationobjectCompany organization object
organization_idstringOrganization ID
company_namestringCompany name
organization_namestringOrganization name
Other responses

400403404

Access Invitations

POST /{application_name}/invitations

Invite User

inviteUser

Invites a new user.

Invitation will redirect user to the provided URL on acceptance. Upon acceptance, the user will be redirected to the provided URL with a fragment parameters:

staircase_product=Access action=ACCEPT_INVITATION and result containing on of the following values:

  • ACCEPTED,- User accepted the invitation
  • BAD_REQUEST,- Bad request, one of the required parameters is missing
  • UNKNOWN_ERROR,- Unknown error occurred
  • INVITATION_NOT_FOUND,- Invitation not found. Could be expired or invalid code
  • INVITATION_NOT_VALID,- Invitation not valid. Could be already accepted or expired
  • INTERNAL_SERVER_ERROR,- Internal server error occurred

The invitation URL will be valid for 1 month.

Request
application/json
{
  "email": "johndoe@email.com",
  "redirect_url": "https://webhook.site/d9b8f770-38c2-4584-8944-0b7194d203e8?guid=123"
}
Response
application/json

OK Response

[
  {
    "email": "johndoe@email.com",
    "invitation_url": "https://cerf-dev.staircaseapi.com/access/invitation-accept?code=c6d0b273-5dd1-4819-9dd0-00e109a31723&redirect_url=https%3A//webhook.site/d9b8f770-38c2-4584-8944-0b7194d203e8%3Fguid%3D123"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Request bodyapplication/json
2 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
redirect_urlstringURL to redirect user on invitation acceptance.Example https://webhook.site/d9b8f770-38c2-4584-8944-0b7194d203e8?guid=123
Response 201application/json
2 fields

OK Response

FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
invitation_urlstringURL to confirm the invitation.Example https://cerf-dev.staircaseapi.com/access/invitation-accept?code=c6d0b273-5dd1-4819-9dd0-00e109a31723&redirect_url=https%3A//webhook.site/d9b8f770-38c2-4584-8944-0b7194d203e8%3Fguid%3D123
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 409application/json
1 fields

Email already registered

FieldTypeDescription
errorstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

404

Access Authorization

POST /{application_name}/login

Access login

getUserToken

Access login enables you to use your credentials to retrieve a valid access_token, id_token, token_type, refresh_token. X-API-KEY is not required for this endpoint.

Request
application/json
{
  "email": "johndoe@email.com",
  "password": "<redacted>"
}
Response
application/json

OK response

[
  {
    "refresh_token": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "id_token": "<redacted>",
    "access_token": "<redacted>",
    "token_type": "Bearer",
    "expires_in": "86400"
  }
]
Parameters
1
ParameterTypeExampleDescription
application_name required string path access Application name.
Request bodyapplication/json
2 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
passwordstring (password)User password.Example <redacted>
Response 200application/json
5 fields

OK response

FieldTypeDescription
refresh_tokenstringThe refresh token.Example xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
id_tokenstringTemporary id token obtained.Example <redacted>
access_tokenstringTemporary access token obtained.Example <redacted>
token_typestringThe token type.Example Bearer
expires_instringThe expiration period of the authentication result in seconds.Example Bearer <redacted>
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

POST /{application_name}/resend-activation

Resend activation email

resendActivation

This endpoint enables you to resend email to activate your account in case you didn't receive it from the first time. X-API-KEY is not required for this endpoint.

Request
application/json
{
  "email": "johndoe@email.com"
}
Response
application/json

OK response

[
  {
    "message": "Activation email is resented"
  }
]
Parameters
1
ParameterTypeExampleDescription
application_name required string path access Application name.
Request bodyapplication/json
1 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringResented successfully.Example Activation email is resented
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User already confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

POST /{application_name}/change-password

Change password

changePassword

Change user password using access token. Access token can be received by this endpoint Access Login. Important Note, this endpoint does not work with SSO users.
X-API-KEY is not required for this endpoint.

Request
application/json
{
  "old_password": "164f8UY=oj!",
  "new_password": "154fFV0=091"
}
Response
application/json

Password changed

[
  {
    "message": "Password has been successfully changed"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
Authorization required string header <redacted> Authorization token, obtained login service.
Request bodyapplication/json
2 fields
FieldTypeDescription
old_passwordstringCurrent user password.Example 164f8UY=oj!
new_passwordstringNew user password.Example 164f8UY=oj!
Response 201application/json
1 fields

Password changed

FieldTypeDescription
messagestringPassword changedExample Password has been successfully changed
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

POST /{application_name}/sign-out

Sign out

signOut

Proceed user sign out using access token. Access token can be received by this endpoint Access Login. X-API-KEY is not required for this endpoint.

Response
application/json

Sign out

[
  {
    "message": "Sign out succeeded"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
Authorization required string header <redacted> Authorization token, obtained login service.
Response 201application/json
1 fields

Sign out

FieldTypeDescription
messagestringPassword changedExample Sign out succeeded
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

GET /{application_name}/sign-out-by-cookie

Sign out by cookie

signOutByCookie

This endpoint is meant to be visited by the user directly and should not be used with XHR requests. When accessed properly, the user will be correctly redirected, and all their tokens will be invalidated. This endpoint allows users to sign out using their access token stored in cookies.

Access Token Cookie: __sc.acact ID Token Cookie: __sc.acidt

Important Notes

Do Not Use with XHR Requests: This endpoint is designed for direct user interaction and should not be accessed through XHR requests. Token Invalidation: Upon successful logout, all user tokens will be invalidated. Redirection: If the logout is successful, the user will be redirected to the specified logout_uri. If the logout fails, the user will be redirected to the redirected_uri.

Usage

Ensure Cookies Are Set: The following cookies must be present: __sc.acact (Access Token) __sc.acidt (ID Token) Access Token: Can be received from the Access Login endpoint. No X-API-KEY Required: This endpoint does not require the X-API-KEY header.

Response
application/json

Sign out

[
  {
    "message": "Sign out succeeded"
  }
]
Parameters
1
ParameterTypeExampleDescription
application_name required string path access Application name.
Response 302application/json
1 fields

Sign out

FieldTypeDescription
messagestringPassword changedExample Sign out succeeded
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

POST /{application_name}/forgot-password

Forgot password

forgotPassword

Forgot password endpoint sends link on user's email address to reset password. Important Note, this endpoint does not work with SSO users.
X-API-KEY is not required for this endpoint.

Request
application/json
{
  "email": "johndoe@email.com"
}
Response
application/json

Forgot password

[
  {
    "message": "Email sent"
  }
]
Parameters
1
ParameterTypeExampleDescription
application_name required string path access Application name.
Request bodyapplication/json
1 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
Response 202application/json
1 fields

Forgot password

FieldTypeDescription
messagestringPassword changedExample Email sent
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
1 fields

Not Authorized

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

404

POST /{application_name}/confirm-code

Confirm forgot password

confirmForgotPassword

Confirm forgot password endpoint change user password using confirmation code retrieved by Forgot password. Important Note, this endpoint does not work with SSO users.
X-API-KEY is not required for this endpoint.

Request
application/json
{
  "email": "johndoe@email.com",
  "confirmation_code": "255252",
  "new_password": "P@ssword"
}
Response
application/json

Confirm forgot password

[
  {
    "message": "Password changed"
  }
]
Parameters
1
ParameterTypeExampleDescription
application_name required string path access Application name.
Request bodyapplication/json
3 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
confirmation_codestringCode retrieved by email.Example 255252
new_passwordstringNew user password.Example P@ssword
Response 200application/json
1 fields

Confirm forgot password

FieldTypeDescription
messagestringPassword changedExample Password changed
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
1 fields

Not Authorized

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

404

POST /{application_name}/refresh-token

Refresh Token

refreshToken

Refresh Token allows you to refresh access token. X-API-KEY is not required for this endpoint.

Response
application/json

OK response

[
  {
    "id_token": "<redacted>",
    "access_token": "<redacted>",
    "token_type": "Bearer",
    "expires_in": "86400"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
Authorization required string header <redacted> Refresh token, obtained by login service.
Response 200application/json
4 fields

OK response

FieldTypeDescription
id_tokenstringTemporary id token obtained.Example <redacted>
access_tokenstringTemporary access token obtained.Example <redacted>
token_typestringThe token type.Example Bearer
expires_instringThe expiration period of the authentication result in seconds.Example Bearer <redacted>
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

POST /{application_name}/validate-token

Validate Access Token

validateAccessToken

Validate Access Token endpoint. X-API-KEY is not required for this endpoint.

Response
application/json

OK response

{
  "message": "Token is valid"
}
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
Authorization required string header <redacted> Access token, obtained by login service.
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringMessage.Example Token is valid
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

Access User

POST /{application_name}/users

Create User

createUser

Creates a new user. X-API-KEY is not required for this endpoint.

This endpoint will create a new user and send a confirmation email to the user.

Before creating a new user, user can be invited using the invitation endpoint. If invitation was accepted, the user will be created and confirmed automatically.

Request
application/json
{
  "email": "johndoe@email.com",
  "password": "<redacted>"
}
Response
application/json

OK Response

[
  {
    "id": "978412689485",
    "email": "johndoe@email.com",
    "status": "CONFIRMED"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Request bodyapplication/json
2 fields
FieldTypeDescription
emailstring (email)Email of the user.Example johndoe@email.com
passwordstring (password)Password for the new user.Example <redacted>
Response 201application/json
3 fields

OK Response

FieldTypeDescription
idstringUser id.Example 64564689894561
emailstring (email)Email of the user.Example johndoe@email.com
statusstringStatus of the user CONFIRMED or UNCONFIRMED.CONFIRMEDUNCONFIRMEDExample CONFIRMED
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

Email already registered

FieldTypeDescription
errorstringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /users

List users

listUserInfo

List Users Info

List users information by email. In case query parameter has some special characters such '+' or '/' it must be encoded. X-API-KEY is not required for this endpoint.

Response
application/json

OK Response

[
  {
    "users": [
      {
        "id": "f5fa64a9-51b6-41c3-b22e-fd8d7b1dadb2",
        "email": "example@email.com",
        "user_creation_date": "2023-10-13T11:32:06.637000+00:00",
        "user_last_modified_date": "2023-10-13T11:57:36.835000+00:00",
        "person_identifier": "01H84EDXPD3PBH21DGDQFZP06Y",
        "company_identifier": "01HCHKS73ME9A9W7XGDTX9Z9PC",
        "status": "CONFIRMED"
      }
    ],
    "next_token": null
  }
]
Parameters
2
ParameterTypeExampleDescription
email string (email) query example@email.com User email to query.
next_token string query CAISqQIIARKCAggDEv0BAAzZDJsxrI3ydVKVDZyI4WtUDKZt1d0R6fu+3POnqFCKeyJAbiI6IlBhZ2luYXRpb25Db250aW51YXRpb25EVE8iLCJuZXh0S2V5IjoiQUFBQUFBQUFBcnhoQVFFQmNFZEVNcVZrUzFDV1ZtWTlyYjM4NEsxM0VnY2psRW5VdXhNL3hqbFR0dHRsYm1ZN05qSm1aV1ZoWm1ZdE0yUXdNUzAwTTJOa0xXSTBabVV0WlRoa04yRTFPRFF3TXpkbE93PT0iLCJwYWdpbmF0aW9uRGVwdGgiOjI1LCJwcmV2aW91c1JlcXVlc3RUaW1lIjoxNjk4MjE5OTIxNDE2fRogIRzi3AAH44NsO9VRPe6wxirYfEjiup4H6OAJ2P6ULL8= next_token.
Response 200application/json
2 fields

OK Response

FieldTypeDescription
usersobject[]Users data.
idstringUser id.Example 64564689894561
emailstring (email)Email of the user.Example johndoe@email.com
user_creation_datestringUser creation date.Example 2023-10-13T11:32:06.637000+00:00
user_last_modified_datestringUser last modified date.Example 2023-10-13T11:32:06.637000+00:00
person_identifierstringStaircase global person ID.Example 01GYCBKPSMTJYJR1PG9JS37FTE
company_identifierstringStaircase global company ID.Example 01GYCBKPSMTJYJR1PG9JS37FTE
statusstringStatus of the user.Example CONFIRMED
next_tokenstringnext_token.
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /{application_name}/users/{user_id}

Get User

getUser

Get user endpoint. X-API-KEY is not required for this endpoint.

Response
application/json

OK Response

[
  {
    "id": "978412689485",
    "email": "johndoe@email.com",
    "person_identifier": "01GYCBKPSMTJYJR1PG9JS37FTE",
    "company_identifier": null,
    "status": "CONFIRMED"
  }
]
Parameters
3
ParameterTypeExampleDescription
application_name required string path access Application name.
user_id required string path 856451298456123 User id to query.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Response 200application/json
5 fields

OK Response

FieldTypeDescription
idstringUser id.Example 64564689894561
emailstring (email)Email of the user.Example johndoe@email.com
person_identifierstringStaircase global person ID.Example 01GYCBKPSMTJYJR1PG9JS37FTE
company_identifierstringStaircase global company ID.Example 01GYCBKPSMTJYJR1PG9JS37FTE
statusstringStatus of the user.Example CONFIRMED
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

GET /user-info

Get User Info

getUserInfo

Get user information using access token. Access token can be received by this endpoint Access Login. X-API-KEY is not required for this endpoint.

Response
application/json

OK Response

[
  {
    "communications": [
      {
        "@id": "01GZP2AQ2JKPZXSXMJ1CA4TD3N",
        "@type": "person",
        "domain_name": "email.co",
        "website": "staircase.co"
      },
      {
        "@id": "01GZP2AQ2JKPZXSXMJ1CA4TD3N",
        "@type": "person",
        "email_address": "email@example.com"
      }
    ],
    "companies": [
      {
        "@id": "01H1XQHK0WWMX23XDX1GX3MCKR",
        "@type": "company",
        "company_identifier": "27374737",
        "has_communication_method": "01GZP2AQ2JKPZXSXMJ1CA4TD3N",
        "name": "Staircase Company"
      }
    ],
    "people": [
      {
        "@id": "01GZP2AQ2JKPZXSXMJ1CA4TD3N",
        "@type": "person",
        "has_communication_method": "01GZP2AQ2JKPZXSXMJ1CA4TD3N",
        "person_identifier": "112557303379029896330"
      }
    ]
  }
]
Parameters
1
ParameterTypeExampleDescription
Authorization required string header <redacted> Authorization token, obtained by login service.
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 422application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

200204401404

Access Applications

GET /applications

List applications

listApplications

List Applications

List applications endpoint.

Response
application/json

OK Response

{
  "result": [
    {
      "application_name": "test-user-pool-client-comply",
      "redirect_uri": "https://test.test.com/access/callback",
      "logout_uri": "https://test.test.com/access/callback"
    }
  ]
}
Response 200application/json
1 fields

OK Response

FieldTypeDescription
resultobject[]Array of applications
application_namestringApplication name.Example access
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
1 fields

Not Authorized

FieldTypeDescription
errorstringError message.
Response 404application/json
1 fields

Application not found

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
POST /applications

Create application

createApplication

Create Application

Creates a new application.

Request
application/json
{
  "application_name": "access",
  "redirect_uri": "https://test.test.com/access/callback"
}
Response
application/json

OK Response

[
  {
    "message": "Application access created successfully"
  }
]
Request bodyapplication/json
3 fields
FieldTypeDescription
application_namerequiredstringApplication name.Example access
redirect_urirequiredstringRedirect_uri.Example https://test.test.com/access/callback
logout_uristringLogout_uri.Example https://test.test.com/access/callback
Response 201application/json
1 fields

OK Response

FieldTypeDescription
messagestringSuccess message.Example Application access created successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
PUT /applications/{application_name}

Update application

updateApplication

Update Application

Updates existing application.

Request
application/json
{
  "application_name": "access",
  "redirect_uri": "https://test.test.com/access/callback"
}
Response
application/json

OK Response

[
  {
    "message": "Application access updated successfully"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name to delete.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Request bodyapplication/json
2 fields
FieldTypeDescription
redirect_urirequiredstringRedirect_uri.Example https://test.test.com/access/callback
logout_uristringLogout_uri.Example https://test.test.com/access/callback
Response 201application/json
1 fields

OK Response

FieldTypeDescription
messagestringSuccess message.Example Application access created successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 404application/json
1 fields

App not found

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
GET /applications/{application_name}

Get Application

getApplication

Get application endpoint.

Response
application/json

OK Response

[
  {
    "application_name": "access",
    "redirect_uri": "https://test.test.com/access/callback",
    "logout_uri": "https://test.test.com/access/callback"
  }
]
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name to get.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Response 200application/json
3 fields

OK Response

FieldTypeDescription
application_namestringApplication name.Example access
redirect_uristringRedirect_uri.Example https://test.test.com/access/callback
logout_uristringLogout_uri.Example https://test.test.com/access/callback
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 404application/json
1 fields

Application not found

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
DELETE /applications/{application_name}

Delete Application

deleteApplication

Delete application endpoint.

Response
application/json

Bad request.

Bad request
Parameters
2
ParameterTypeExampleDescription
application_name required string path access Application name to delete.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API Key
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 404application/json
1 fields

Application not found

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

204

Authorization

POST /authorize

Authorization

authorization

Makes an authorization decision about a service request described in the parameters. The decision is based on the policies stored in the policy store.

Request
application/json
{
  "policy_store_id": "DxK7hSQRzYWoCGSeumNvm",
  "principal": {
    "entityType": "ExampleCo::Loan::Borrower",
    "entityId": "Steve"
  },
  "action": {
    "actionType": "ExampleCo::Loan::Action",
    "actionId": "GetListingInfo"
  },
  "resource": {
    "entityType": "ExampleCo::Loan::Listing",
    "entityId": "12345"
  }
}
Response
application/json

Successfully authorized.

{
  "decision": "ALLOW",
  "determining_policies": [
    {
      "policyId": "WVKdXE7dNDJNRXYVAdCJmd"
    }
  ],
  "errors": []
}
Request bodyapplication/json
4 fields
FieldTypeDescription
policy_store_idrequiredstringID of the policy store.Example Dc3v9eLa2UbfCrw6wrkcmK
principalobjectPrincipal of the policy.
entityTyperequiredstringEntity type of the principal.Example loan::borrower
entityIdrequiredstringEntity ID of the principal.Example john
actionobjectAction of the policy.
actionTyperequiredstringType of the action.Example loan::Action
actionIdrequiredstringID of the action.Example GetListingInfo
resourceobjectResource of the policy.
entityTyperequiredstringEntity type of the resource.Example loan::preapprovallist
entityIdrequiredstringEntity ID of the resource.Example johnlist
Response 200application/json
3 fields

Successfully authorized.

FieldTypeDescription
decisionrequiredstringDecision of the authorization.ALLOWDENY
determining_policiesrequiredobject[]The list of determining policies used to make the authorization decision.
errorsrequiredstring[]Errors that occurred while making an authorization decision.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage

Site Logs Configurations

POST /configurations

Save Configuration

saveConfiguration

Request
application/json
{
  "configuration_id": "8237fc96-0d4a-484c-b2e3-ffd0f800eae1"
}
Response
application/json

Success response

{
  "foo": "bar"
}
Request bodyapplication/json
1 fields
FieldTypeDescription
configuration_idrequiredstringSimple Site Configuration IDExample 8237fc96-0d4a-484c-b2e3-ffd0f800eae1
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
Other responses

200

GET /configurations

List Configurations

listConfigurations

Response
application/json

List Configurations

{
  "domain_name": "abc.cloudfront.net",
  "configuration_id": "8237fc96-0d4a-484c-xx-xxx",
  "distribution_id": "E23M6IP4FJ0xxxx"
}
Response 200application/json
3 fields

List Configurations

FieldTypeDescription
domain_namestringDomain NameExample foo
configuration_idstringConfiguration IDExample configuration-id
distribution_idstringDistribution IDExample distribution-id
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage

Account configurations

POST /create-configurations

Create Configurations

store_new_environment_configurations

Configurations are used to change a product behavior for one or multiple customers' accounts, this will enable Staircase default configurations, and the customer can change as needed in his account.

The account data bundle enables the customer environment with Staircase default configurations for products like Suite.

Example of configurations:

  • Allow multiple registration = true|false

  • Borrower flow enabled = true|false

  • Data manager flow enabled = true|false

Request
application/json

.

{
  "environment": "account.staircaseapi.com",
  "product": "myProduct",
  "configurations": [
    {
      "key": "server_domain",
      "value": "myserver.com"
    },
    {
      "key": "server_key",
      "value": "fxfxfxfxfxfx"
    }
  ]
}
Response
application/json

201 response.

{
  "message": "Configurations were created successfully."
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
3 fields
FieldTypeDescription
environmentstringThe environment hosts.Example account.staircaseapi.com
productrequiredstringThe product to be configured.Example newProduct
configurationsobject[]The product configurations.
keystringKey
valuestringKey
Response 201application/json
1 fields

201 response.

FieldTypeDescription
messagestringConfigurations were created successfully.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringInvalid body JSON.
Response 409application/json
1 fields

409 response.

FieldTypeDescription
messagestringThe resource was already previously created.
Response 500application/json
1 fields

500 response.

FieldTypeDescription
messagestringThe error details.
GET /retrieve-configurations

Retrieve Configurations

retrieve_configurations

This service retrieves configurations from a product and/or environment. If no query string parameters are passed then the response should contain configurations that have been registered.

Configurations from master environment registered will be retrieved as well, all global and local credentials for the given inputs.

Response
application/json

200 response.

[
  {
    "environment": "account.staircaseapi.com",
    "product": "myProduct",
    "is_local": true,
    "created_at": "2011-10-05T14:48:00.000",
    "updated_at": "2011-10-05T14:48:00.000",
    "created_by_environment": "account.staircaseapi.com",
    "configurations": [
      {
        "key": "server_domain",
        "value": "myserver.com"
      },
      {
        "key": "server_key",
        "value": "fxfxfxfxfxfx"
      }
    ]
  },
  {
    "environment": "test.staircaseapi.com",
    "product": "myProduct",
    "is_local": false,
    "created_at": "2011-10-05T14:48:00.000",
    "updated_at": "2011-10-05T14:48:00.000",
    "created_by_environment": "test.staircaseapi.com",
    "configurations": [
      {
        "key": "ttl",
        "value": 20
      }
    ]
  }
]
Parameters
4
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
environment string query account.staircaseapi.com The environment host, configurations without environment will be retrieved if this filter is not input.
product string query newService Product to retrieve configurations.
Response 200application/json
7 fields

200 response.

FieldTypeDescription
environmentstringThe environment hosts.Example account.staircaseapi.com
productstringThe product to be configured.Example newProduct
created_atstringDate that it was created.Example 2011-10-05T14:48:00.000
updated_atstringDate that it was updated.Example 2011-10-05T14:48:00.000
created_by_environmentstringName of environment responsible to create it.Example 2011-10-05T14:48:00.000
is_localbooleanIndicates if the configuration was created by the local environment.Example true
configurationsobject[]The product configurations.
keystring
value
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringThe error details.
Response 404application/json
1 fields

404 response.

FieldTypeDescription
messagestringThe error details.
Response 500application/json
1 fields

500 response.

FieldTypeDescription
messagestringThe error details.
PUT /update-configurations

Update Configurations

update_environment_configurations

This service update product configurations. Configurations are used to change a product behavior.

Request
application/json

.

{
  "environment": "account.staircaseapi.com",
  "product": "myProduct",
  "configurations": [
    {
      "key": "server_domain",
      "value": "myserver.com"
    },
    {
      "key": "server_key",
      "value": "fxfxfxfxfxfx"
    }
  ]
}
Response
application/json

201 response.

{
  "message": "Configurations were updated successfully."
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
3 fields
FieldTypeDescription
environmentstringThe environment hosts.Example account.staircaseapi.com
productrequiredstringThe product to be configured.Example newProduct
configurationsobject[]The product configurations.
keystringKey
valuestringValue
Response 201application/json
1 fields

201 response.

FieldTypeDescription
messagestringConfigurations were updated successfully.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringInvalid body JSON.
Response 404application/json
1 fields

404 response.

FieldTypeDescription
messagestringThe error details.
Response 500application/json
1 fields

500 response.

FieldTypeDescription
messagestringThe error details.
DELETE /delete-configurations

Delete Configurations

delete_environment_configurations

This service delete product configurations. Configurations are used to change a product behavior.

Response
application/json

201 response.

{
  "message": "Configurations were deleted successfully."
}
Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
product required string query myProduct Product
environment string query account.staircaseapi.com Product
Response 200application/json
1 fields

201 response.

FieldTypeDescription
messagestringConfigurations were deleted successfully.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringInvalid body JSON.
Response 404application/json
1 fields

404 response.

FieldTypeDescription
messagestringThe error details.
Response 500application/json
1 fields

500 response

FieldTypeDescription
messagestringThe error details.

Customer

POST /create-customer

Create Customer

Parameters
1
ParameterTypeExampleDescription
Content-Type required string header application/json Content Type
GET /retrieve-customer

Retrieve Customer

Parameters
3
ParameterTypeExampleDescription
Content-Type required string header application/json Content Type
customer_id string query ba4e8f60-f259-11eb-9a03-0242ac130003
email string query customer@domain.com

Account Partner

POST /credentials

Register Credentials

store_new_environment_credentials

This service manages data Partner Account credentials. Data partner credentials enable Staircase Mortgage products to securely connect with specific data partners. They authorize Staircase to send data partners requests and receive their responses, both of which are persisted in the customer’s dedicated account.

The Account data bundle automatically registers the Marketplace environment which includes all needed configurations and credentials to start using Staircase products in the customer environment.

Request
application/json

.

{
  "environment": "account.staircaseapi.com",
  "partner": "atomic",
  "type": "production",
  "credentials": {
    "login": "username",
    "password": "myPass"
  }
}
Response
application/json

201 response.

{
  "message": "Credentials are encrypted and stored successfully."
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
5 fields
FieldTypeDescription
environmentstringThe environment hostExample account.staircaseapi.com
partnerrequiredstringPartner Account.Example newService
productstringProduct account.Example newProduct
credentialsrequiredobjectPartner that the credentials is used
typestringType can be production, test or emptyproductiontestExample production
Response 201application/json
1 fields

201 response.

FieldTypeDescription
messagestringCredentials are encrypted and stored successfully.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringError in creating credentials.
POST /upload-certificate/{partner}

Upload Certificate

upload_partner_certificate

This service is used to generate a pre-signed URL to upload the partner certificate to Staircase cloud environment. The certificate will be securely stored and can be retrieved by the /retrieve-certificate endpoint

Note: This will NOT upload your certificate.

To upload the certificate file, you will need to issue a PUT request to the URL returned by the response body. See example, code snippet below:

# Upload Certificate to the presigned url
import requests

# For example, the presigned_url might look like this:
upload_presigned_url = ""

# Set the path to the file you want to upload
filepath = "certificate.pfx"
# Set the headers appropriately
headers = {
 'Content-Type': 'application/x-pkcs12'
}
# Read the file data and make the PUT request
with open(filepath, 'rb') as file:
 payload = file.read
 response = requests.put(url=upload_presigned_url, headers=headers, data=payload)
Request
application/json

.

{
  "host": "account.staircaseapi.com"
}
Response
application/json

200 response

{
  "message": "Pre-signed url successfully generated",
  "host": "my_partner_host",
  "type": "production",
  "presigned_url": "https://my_partner-certificate-bucket.s3.amazonaws.com/"
}
Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
partner required string path my_partner_name Partner Account.
Request bodyapplication/json
1 fields
FieldTypeDescription
hostrequiredstringThe environment hostExample account.staircaseapi.com
Response 200application/json
3 fields

200 response

FieldTypeDescription
messagestringPre-signed URL successfully generated.
hoststringhost
presigned_urlstringPre-signed URL to upload file.
Response 400application/json
1 fields

400 response

FieldTypeDescription
messagestringBad request.
Response 500application/json
1 fields

500 response

FieldTypeDescription
messagestringThe error details.
PUT /credentials

Update Credentials

update_new_environment_credentials

This service updates existing data partner credentials. The password provided when creating the credentials must be supplied in the request body when calling this service.

Request
application/json

.

{
  "environment": "account.staircaseapi.com",
  "partner": "atomic",
  "product": "myProduct",
  "type": "production",
  "credentials": {
    "login": "username",
    "password": "<redacted>"
  }
}
Response
application/json

200 response.

{
  "message": "Credentials are encrypted and updated successfully"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
4 fields
FieldTypeDescription
environmentstringThe environment hostExample account.staircaseapi.com
partnerrequiredstringPartner that the credentials is usedExample newService
productstringProduct account credentials.Example newProduct
credentialsrequiredobjectPartner that the credentials is used
Response 200application/json
1 fields

200 response.

FieldTypeDescription
messagestringCredentials are encrypted and updated successfully.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringThe error details.
Response 404application/json
1 fields

404 response.

FieldTypeDescription
messagestringThe error details.
GET /retrieve-certificate/{partner}

Retrieve Certificate

retrieve_partner_certificate

This service is used to generate a pre-signed URL to download the partner certificate from Staircase cloud environment. The certificate is securely stored and can be uploaded by the /upload-certificate endpoint

Response
application/json

200 response

{
  "message": "Pre-signed URL successfully generated",
  "presigned_url": "https://bucket.s3.amazonaws.com/my_partner/my_partner_host.pfx?AWSAccessKeyId=<redacted>&Signature=<redacted>&x-amz-security-token=<redacted>&Expires=111111"
}
Parameters
4
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
partner required string path my_partner_name Partner Account.
host required string query my_partner_host The host of the partner that was used to upload the certificate.
should_use_only_local_env boolean query true Define if it should only retrieve certificate from local environment and not master environment. (in any case, local environment has preference)
Response 200application/json
3 fields

200 response

FieldTypeDescription
messagestringSuccess message.
presigned_urlstringThe pre-signed URL used to retrieve the partner host certificate.
is_certificate_from_local_envbooleanInforms if the pre-signed URL was retrieved from local environment or master environment.
Response 400application/json
1 fields

400 response

FieldTypeDescription
messagestringBad request.
Response 404application/json
1 fields

404 response

FieldTypeDescription
messagestringCertificate not found.
Response 500application/json
1 fields

500 response

FieldTypeDescription
messagestringThe error details.
DELETE /credentials

Delete Credentials

delete-delete-credentials

This service deletes all data partner and credentials that have been created for a specific environment or product locally.

Response
application/json

200 response

{
  "message": "Credentials are encrypted and stored successfully."
}
Parameters
7
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
environment string query account.staircaseapi.com Environment
product string query newService Product to retrieve credentials.
partner required string query newService Partner Account.
type string query production Type can be production, test or empty
password string query <redacted> Password used to encrypt the Credentials
Response 200application/json
1 fields

200 response

FieldTypeDescription
messagestringThe message.
Response 400application/json
1 fields

400 response

FieldTypeDescription
messagestringThe error details.
Response 403application/json
1 fields

403 response

FieldTypeDescription
messagestringThe error details.
Response 404application/json
1 fields

404 response

FieldTypeDescription
messagestringThe error details.

Account Customer

POST /customer-accounts

Create Customer Account

post-customer-accounts

Create Customer Account creates your account in Staircase. After successful account creation, an email containing an API key is sent to the email address you provided.

Company Organizations:

Organizations help you group your accounts and environments, as you grow and scale with Staircase. Define a Company organization by going to the Add Company Organization service, after is created you can retrieve the company organization.

To obtain access to Staircase APIs in the documentation environment "api.staircase.co", activate your API Key in this link. Use your activated API Key to send requests to any product in the documentation.

Request
application/json

Creates a customer account with required fields

{
  "first_name": "Vlad",
  "last_name": "Doe",
  "email": "vlad@example.com",
  "company_name": "DoeINC"
}
Response
application/json

Account creation successful.

{
  "first_name": "Vlad",
  "last_name": "Doe",
  "email": "vlad@example.com",
  "company_name": "DoeINC"
}
Request bodyapplication/json
6 fields
FieldTypeDescription
first_namerequiredstringCustomer first nameExample Alan
last_namerequiredstringCustomer last nameExample Turing
emailrequiredstringCustomer email addressExample Alan.Turing@example.com
company_namerequiredstringPublic company nameExample TuringINC
organization_idstringOrganization IDExample fxfxfxfx-fxfxfx-fxfxfx-fxfxfxfx
callback_urlstringURL address used to redirect the user to a webpage once its click on the confirmation button inside the welcome email. The confirmation_token used to confirm the email will be added on the query parameters in this URL.Example https://mydomain.com
Response 201application/json
6 fields

Account creation successful.

FieldTypeDescription
account_idrequiredstringAccount IDExample f2ee7908-daee-4da0-9cbe-f8dbcb9dab53
first_namerequiredstringCustomer first nameExample Alan
last_namerequiredstringCustomer last nameExample Turing
emailrequiredstringCustomer email addressExample Alan.Turing@example.com
company_namerequiredstringPublic company nameExample TuringINC
organization_idstringOrganization IDExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
Other responses

400500

PUT /customer-accounts

Update Customer Account

put-customer-accounts

Update Customer Account updates your account in Staircase.

An organization can be added to the user by updating the organization_id field.

Request
application/json

Updates a customer account

{
  "account_key": "92e23b69-643c-453c-811d-ec2bc20a35e0",
  "first_name": "Vlad",
  "last_name": "Doe",
  "email": "vlad@example.com",
  "company_name": "DoeINC"
}
Response
application/json

Account creation successful.

{
  "first_name": "Vlad",
  "last_name": "Doe",
  "email": "vlad@example.com",
  "company_name": "DoeINC"
}
Request bodyapplication/json
6 fields
FieldTypeDescription
account_keyrequiredstringAPI key associated to the userExample 92e23b69-643c-453c-811d-ec2bc20a35e0
first_namestringCustomer first nameExample Alan
last_namestringCustomer last nameExample Turing
emailstringCustomer email addressExample Alan.Turing@example.com
company_namestringPublic company nameExample TuringINC
organization_idstringOrganization IDExample fxfxfxfx-fxfxfx-fxfxfx-fxfxfxfx
Response 200application/json
6 fields

Account creation successful.

FieldTypeDescription
account_idrequiredstringAccount IDExample f2ee7908-daee-4da0-9cbe-f8dbcb9dab53
first_namerequiredstringCustomer first nameExample Alan
last_namerequiredstringCustomer last nameExample Turing
emailrequiredstringCustomer email addressExample Alan.Turing@example.com
company_namerequiredstringPublic company nameExample TuringINC
organization_idstringOrganization IDExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
Other responses

400

GET /organization-account

Retrieve Organization Account List

get-retrieve-organization-account-list

This service retrieves a list of customer accounts associated with a Company organization, organizations are defined in the Company product.

Company Organizations:

Organizations help you group your accounts and environments, as you grow and scale with Staircase. Define a Company organization by going to the Add Company Organization service, after is created you can retrieve the company organization in this service.

Parameters
3
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
organization_id required string query fxfxfxfx-fxfx-fxfx-fxfx-fxfxfxfxfx The organization ID.
Response 200application/json
6 fields

Account retrieved successful.

FieldTypeDescription
account_idrequiredstringAccount IDExample f2ee7908-daee-4da0-9cbe-f8dbcb9dab53
account_keyrequiredstringAccount KeyExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
organization_idrequiredstringOrganization IDExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
first_namerequiredstringCustomer first nameExample Alan
last_namerequiredstringCustomer last nameExample Turing
emailrequiredstringCustomer email addressExample Alan.Turing@example.com
Other responses

400401

POST /organization-account

Create Organization Account

post-create-organization-account

Create Organization Account creates organization account in Staircase.

Request
application/json

Create using required fields

{
  "organization_id": "fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx"
}
Response
application/json

Account creation successful.

{
  "first_name": "Vlad",
  "last_name": "Doe",
  "email": "vlad@example.com",
  "company_name": "DoeINC"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
4 fields
FieldTypeDescription
organization_idrequiredstringOrganization IDExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
first_namestringCustomer first nameExample Alan
last_namestringCustomer last nameExample Turing
emailstringCustomer email addressExample Alan.Turing@example.com
Response 201application/json
6 fields

Account creation successful.

FieldTypeDescription
account_idrequiredstringAccount IDExample f2ee7908-daee-4da0-9cbe-f8dbcb9dab53
account_keyrequiredstringAccount KeyExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
organization_idrequiredstringOrganization IDExample fxfxfxfx-fxfxfxfx-fxfxfxfx-fxfxfxfx
first_namerequiredstringCustomer first nameExample Alan
last_namerequiredstringCustomer last nameExample Turing
emailrequiredstringCustomer email addressExample Alan.Turing@example.com
Other responses

400

POST /confirm-email

Confirm Customer Email

post-confirm-email

This service confirms the customer email and return the user key.

A confirmation token must be provided. This confirmation token can be found on the query parameters of the confirmation button URL address on the email sent by Customer Creation service.

Once the customer email is confirmed, the service will continue to provide the user key in the response for 1 hour. After 1 hour, the user key will not be provided in the response anymore.

Request
application/json

Example of a successful email confirmation.

{
  "confirmation_token": "<redacted>"
}
Response
application/json

Email confirmed successful.

{
  "api_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Request bodyapplication/json
1 fields
FieldTypeDescription
confirmation_tokenstringA confirmation token. This confirmation token can be found on the query parameters of the confirmation button URL address on the email sent by Customer Creation service.Example <redacted>
Response 200application/json
1 fields

Email was already confirmed previously.

FieldTypeDescription
messagestringEmail was already confirmed previously.
Response 201application/json
1 fields

Email confirmed successful.

FieldTypeDescription
api_keystringUser API key.
Other responses

400

GET /retrieve-account

Retrieve Account

retrieve_account

This service is used to retrieve account details by API_key

When a customer account is created, the API_key is send to the customer by email. This can be used on this service to retrieve the customer account details

Response
application/json

200 response

{
  "account_id": "1f4bf452-1da2-8f6c-976c-8a779523156a",
  "company_name": "FoobarINC",
  "email": "example@email.com",
  "first_name": "John",
  "last_name": "Doe"
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
api_key required string query xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx The api_key that was send to the customer upon account creation.
Response 200application/json
5 fields

200 response

FieldTypeDescription
account_idstringAccount unique identifier.
company_namestringCustomer account company name.
emailstringCustomer account email.
first_namestringCustomer account first_name.
last_namestringCustomer account last_name.
Response 400application/json
1 fields

400 response

FieldTypeDescription
messagestringBad request.
Response 500application/json
1 fields

500 response

FieldTypeDescription
messagestringThe error details.

Site Logs

GET /marketing-logs

Get Site Logs

getMarketingLogs

Get Marketing Logs

Response
application/json

Successfully get Marketing Logs.

{
  "foo": "bar"
}
Parameters
1
ParameterTypeExampleDescription
site_configuration_id required string query some-configuration-id Site Configuration ID
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
Other responses

200

Policy Store

POST /policy-store

Create Policy Store

createPolicyStore

Creates a policy store. A policy store is a container for policies.

Request
application/json
{
  "description": "Example policy store"
}
Response
application/json

Successfully created policy store.

{
  "policy_store_id": "Dc3v9eLa2UbfCrw6wrkcmK"
}
Request bodyapplication/json
1 fields
FieldTypeDescription
descriptionrequiredstringDescription of the policy store.Example Example policy store
Response 201application/json
1 fields

Successfully created policy store.

FieldTypeDescription
policy_store_idrequiredstringID of the policy store.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
GET /policy-store

List Policy Stores

listPolicyStore

List Policy Store

List created policy stores. A policy store is a container for policies.

Response
application/json

Successfully get list of policy stores.

{
  "next_token": "AQICAHisuNZI1E/P3KXm5hmEqogC7wTB89VLTeJv4gbr",
  "policy_stores": [
    {
      "policy_store_id": "Dc3v9eLa2UbfCrw6wrkcmK",
      "description": "test",
      "created_at": "2024-04-23T20:35:36.300514+00:00",
      "updated_at": "2024-04-23T20:35:36.300514+00:00"
    }
  ]
}
Parameters
2
ParameterTypeExampleDescription
limit integer query 5 Number of policy stores to return.
next_token string query null Next token.
Response 200application/json
2 fields

Successfully get list of policy stores.

FieldTypeDescription
policy_storesrequiredobject[]Policy stores array.
policy_store_idrequiredstringID of the policy store.
descriptionrequiredstringDescription of the policy store.
created_atrequiredstring (date-time)Creation date of the policy store.
updated_atrequiredstring (date-time)Last update date of the policy store.
next_tokenrequiredstringNext token.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
DELETE /policy-store/{policy_store_id}

Delete Policy Store

deletePolicyStore

Delete policy store. A policy store is a container for policies.

Response
application/json

Request data invalid

{
  "message": "Request body is invalid."
}
Parameters
1
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
Other responses

204

PUT /policy-store/{policy_store_id}

Update Policy Store

updatePolicyStore

Update policy store. A policy store is a container for policies.

Response
application/json

Successfully updated policy store.

{
  "message": "Policy store updated successfully."
}
Parameters
1
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
Response 200application/json
1 fields

Successfully updated policy store.

FieldTypeDescription
messagerequiredstringMessage
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage

Policy

POST /policy-store/{policy_store_id}/policy

Create Policy

createPolicy

Creates a Cedar policy and saves it in the specified policy store.

A policy is a statement that either permits or forbids a principal to take one or more actions on a resource. Each policy is evaluated independently of any other policy. For more information about how Cedar policies are structured and evaluated, see

Example of Cedar policy that permits a borrower to get property information on a specific property:

Show the rest
permit(principal == ExampleCo::Loan::Borrower::\"John\",action in [ExampleCo::Loan::Action::\"GetPropertyInfo\"],resource == ExampleCo::Loan::Property::\"154 Road\") when {true};

Example of Cedar policy that permits a borrower to get property information on any property:

permit(principal == ExampleCo::Loan::Borrower::\"John\", action in [ExampleCo::Loan::Action::\"GetPropertyInfo\"], resource) when {true};

Example of Cedar policy that forbids a borrower to get property information on a specific property:

forbid(principal == ExampleCo::Loan::Borrower::\"John\", action in [ExampleCo::Loan::Action::\"GetPropertyInfo\"], resource == ExampleCo::Loan::Property::\"154 Road\") when {true};
Request
application/json
{
  "definition": "permit(principal == ExampleCo::Loan::Borrower::\"John\",action in  [ExampleCo::Loan::Action::\"GetPropertyInfo\"],resource == ExampleCo::Loan::Property::\"154 Road\") when {true};",
  "description": "example"
}
Response
application/json

Successfully created policy.

{
  "policy_id": "CR3KDTmvdYUGoPFeUapsFY"
}
Parameters
1
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
Request bodyapplication/json
2 fields
FieldTypeDescription
definitionrequiredstringCedar policy definition.Example permit(principal,action,resource) when {principal.owner == resource.owner};"}}
descriptionstringDescription of the policy.Example example
Response 201application/json
1 fields

Successfully created policy.

FieldTypeDescription
policy_idrequiredstringID of the policy.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
GET /policy-store/{policy_store_id}/policy

List Policies

listPolicies

List created policies.

Response
application/json

Successfully get list of policies.

{
  "next_token": null,
  "policies": [
    {
      "policy_id": "QYihkmqrnZTSvzQNhbpcjR",
      "description": "example",
      "principal": {
        "entityType": "loan::borrower",
        "entityId": "john"
      },
      "resource": {
        "entityType": "loan::preapprovallist",
        "entityId": "johnlist"
      },
      "created_at": "2024-04-22T16:50:10.977564+00:00",
      "updated_at": "2024-04-22T16:50:10.977564+00:00"
    }
  ]
}
Parameters
3
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
limit integer query 5 Number of policies to return.
next_token string query null Next token.
Response 200application/json
2 fields

Successfully get list of policies.

FieldTypeDescription
policiesrequiredobject[]Policies array.
policy_idrequiredstringID of the policy.
descriptionrequiredstringDescription of the policy.
principalrequiredobjectPrincipal of the policy.
resourcerequiredobjectResource of the policy.
created_atrequiredstring (date-time)Creation date of the policy.
updated_atrequiredstring (date-time)Last update date of the policy.
next_tokenrequiredstringNext token.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
DELETE /policy-store/{policy_store_id}/policy/{policy_id}

Delete Policy

deletePolicy

Delete policy.

Response
application/json

Request data invalid

{
  "message": "Request body is invalid."
}
Parameters
2
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
policy_id required string path CR3KDTmvdYUGoPFeUapsFY ID of the policy.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
Other responses

204

PUT /policy-store/{policy_store_id}/policy/{policy_id}

Update Policy

updatePolicy

Update policy.

Request
application/json
{
  "definition": "permit(principal == ExampleCo::Loan::Borrower::\"John\",action in  [ExampleCo::Loan::Action::\"GetPropertyInfo\"],resource == ExampleCo::Loan::Property::\"154 Road\") when {true};",
  "description": "example"
}
Response
application/json

Successfully updated policy store.

{
  "message": "Policy store updated successfully."
}
Parameters
2
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
policy_id required string path CR3KDTmvdYUGoPFeUapsFY ID of the policy.
Request bodyapplication/json
2 fields
FieldTypeDescription
definitionrequiredstringCedar policy definition.Example permit(principal,action,resource) when {principal.owner == resource.owner};"}}
descriptionstringDescription of the policy.Example example
Response 200application/json
1 fields

Successfully updated policy store.

FieldTypeDescription
messagerequiredstringMessage
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
GET /policy-store/{policy_store_id}/policy/{policy_id}

Get Policy

getPolicy

Delete Policy

Get policy.

Response
application/json

Successfully deleted policy.

{
  "principal": {
    "entityType": "loan::borrower",
    "entityId": "john"
  },
  "resource": {
    "entityType": "loan::preapprovallist",
    "entityId": "johnlist"
  },
  "definition": "permit(\n  principal == loan::borrower::\"john\",\n  action in [loan::Action::\"ReadPreapprovallist\",loan::Action::\"UpdatePreapprovallist\",loan::Action::\"DeletePreapprovallist\"],\n  resource == loan::preapprovallist::\"johnlist\"\n) when {\n  true\n};",
  "description": "example",
  "created_at": "2024-04-22T16:50:10.977564+00:00",
  "updated_at": "2024-04-22T16:50:10.977564+00:00"
}
Parameters
2
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
policy_id required string path CR3KDTmvdYUGoPFeUapsFY ID of the policy.
Response 200application/json
6 fields

Successfully deleted policy.

FieldTypeDescription
principalrequiredobjectPrincipal of the policy.
resourcerequiredobjectResource of the policy.
definitionrequiredstringDefinition of the policy.
descriptionrequiredstringDescription of the policy.
created_atrequiredstring (date-time)Creation date of the policy.
updated_atrequiredstring (date-time)Last update date of the policy.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage

Policy Store Schema

PUT /policy-store/{policy_store_id}/schema

Put Policy Store Schema

putPolicyStoreSchema

Creates or updates the policy Cedar json schema in the specified policy store. The schema is used to validate any policies submitted to the policy store. Existing policies and templates are not re-evaluated against the changed schema.

For more information and examples about Cedar schema format, see .

Example of Cedar schema:

{
 "ExampleCo::Mortgage": {
 "actions": {
 "GetPropertyInfo": {
 "appliesTo": {
 "principalTypes": [
 "Borrower"
 ],
 "resourceTypes": [
 "Property"
 ]
 }
 },
 "GetListingInfo": {
 "appliesTo": {
 "principalTypes": [
 "Borrower"
 ],
 "resourceTypes": [
 "Listing"
 ]
 }
 }
 },
 &Show the rest
quot;entityTypes": { "Property": { "shape": { "type": "Record", "attributes": { "address": { "type": "String" }, "property_identifier": { "type": "String" }, "loan_identifier": { "type": "String" } } } }, "Listing": { "shape": { "type": "Record", "attributes": { "total_price": { "type": "String" }, "listing_identifier": { "type": "String" } } } }, "Borrower": { "shape": { "attributes": { "first_name": { "type": "String" }, "last_name": { "type": "String" }, "person_identifier": { "type": "String" }, "loan_identifier": { "type": "String" } }, "type": "Record" } } } } }
Request
application/json
{
  "definition": {
    "ExampleCo::Loan": {
      "actions": {
        "GetPropertyInfo": {
          "appliesTo": {
            "principalTypes": [
              "Borrower"
            ],
            "resourceTypes": [
              "Property"
            ]
          }
        }
      },
      "entityTypes": {
        "Property": {
          "shape": {
            "type": "Record",
            "attributes": {}
          }
        },
        "Borrower": {
          "shape": {
            "attributes": {},
            "type": "Record"
          }
        }
      }
    }
  }
}
Response
application/json

Successfully created/updated policy store schema.

{
  "message": "Policy store updated successfully."
}
Parameters
1
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
Request bodyapplication/json
1 fields
FieldTypeDescription
definitionobjectCedar schema of the policy store.
Response 200application/json
1 fields

Successfully created/updated policy store schema.

FieldTypeDescription
messagerequiredstringMessage
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage
GET /policy-store/{policy_store_id}/schema

Get Policy Store Schema

getPolicyStoreSchema

Retrieve defined schema in the specified policy store.

Response
application/json

Successfully created/updated policy store schema.

{
  "schema": {
    "ExampleCo::Loan": {
      "entityTypes": {
        "Borrower": {
          "shape": {
            "attributes": {},
            "type": "Record"
          }
        },
        "Property": {
          "shape": {
            "attributes": {},
            "type": "Record"
          }
        }
      },
      "actions": {
        "GetPropertyInfo": {
          "appliesTo": {
            "principalTypes": [
              "Borrower"
            ],
            "resourceTypes": [
              "Property"
            ]
          }
        }
      }
    }
  },
  "namespaces": [
    "ExampleCo::Loan"
  ],
  "created_at": "2024-04-23T20:33:36.040403+00:00",
  "updated_at": "2024-04-24T11:19:28.118220+00:00"
}
Parameters
1
ParameterTypeExampleDescription
policy_store_id required string path Dc3v9eLa2UbfCrw6wrkcmK ID of the policy store.
Response 200application/json
4 fields

Successfully created/updated policy store schema.

FieldTypeDescription
schemarequiredobjectPolicy store schema.
namespacesrequiredstring[]Namespaces.
created_atrequiredstring (date-time)Creation date of the policy store schema.
updated_atrequiredstring (date-time)Last update date of the policy store schema.
Response 400application/json
1 fields

Request data invalid

FieldTypeDescription
messagestringError message
Response 403application/json
1 fields

Missing API key

FieldTypeDescription
messagestringMessage
Response 404application/json
1 fields

Requested resource not found

FieldTypeDescription
messagestringMessage

Account Data

POST /setup-master-data

Set up Master data

account_store_new_environment_access

Set up master Account data

Register the environment and API key, this configuration will set up the Account to retrieve data from the environment, allowing to set up the customer to start working with Staircase products.

The Account data bundle automatically registers the Marketplace environment which includes all needed configurations and credentials to start using Staircase products in the customer environment.

Request
application/json

.

{
  "environment": "test2.staircaseapi.com\"",
  "api-key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
Response
application/json

403 response

{
  "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post",
  "message": "This key is not valid for this service."
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Request bodyapplication/json
2 fields
FieldTypeDescription
environmentrequiredstringThe environment hostExample test.staircaseapi.comm
api-keyrequiredstring (api-key)The API key used in order to access APIs in the hostExample xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Response 201application/json
1 fields

Ok.

FieldTypeDescription
messagestringThe message.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringThe error details.
Response 403application/json
2 fields

403 response

FieldTypeDescription
urlstringThe URL service address.
messagestringThe error details.
DELETE /setup-master-data

Remove Master data

account_remove_environments_access

Remove Master Account Data

Removes the environment configuration and data so that it can stop retrieving credentials and configurations from another environment.

Response
application/json

403 response

{
  "url": "https://staircase.stoplight.io/docs/api-reference/customer-account-manager-service.yml/paths/~1products~1refresh/post",
  "message": "This key is not valid for this service."
}
Parameters
2
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API key
Content-Type required string header application/json Content Type
Response 200application/json
1 fields

Ok.

FieldTypeDescription
messagestringThe message.
Response 400application/json
1 fields

400 response.

FieldTypeDescription
messagestringThe error details.
Response 403application/json
2 fields

403 response

FieldTypeDescription
urlstringThe URL service address.
messagestringThe error details.
Response 404application/json
1 fields

404 response

FieldTypeDescription
messagestringThe error details.

Access Amazon SSO

POST /sso/amazon

Create SSO Configuration

createSSOConfigurationAmazon

Create SSO configuration on environment.

Request
application/json
{
  "client_id": "amzn1.application-oa2-client.1234567890abcdef1234567890abcdef",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Amazon set successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example amzn1.application-oa2-client.1234567890abcdef1234567890abcdef
Response 201application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Amazon set successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration existent

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

PUT /sso/amazon

Update SSO Configuration

updateSSOConfigurationAmazon

Update SSO configuration on environment.

Request
application/json
{
  "client_id": "amzn1.application-oa2-client.1234567890abcdef1234567890abcdef",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Google updated successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example amzn1.application-oa2-client.1234567890abcdef1234567890abcdef
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Google updated successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration Conflict

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /sso/amazon

Get SSO Configuration

getSSOConfigurationAmazon

Retrieve SSO configuration set on environment.

Response
application/json

OK response

[
  {
    "approved_js_origin": "https://auth.env.staircaseapi.com",
    "oauth_authorized_redirect": "https://auth.env.staircaseapi.com/oauth2/idpresponse"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 200application/json
2 fields

OK response

FieldTypeDescription
approved_js_originstringapproved_js_origin.Example https://auth.env.staircaseapi.com
oauth_authorized_redirectstringoauth_authorized_redirect.Example https://auth.env.staircaseapi.com/oauth2/idpresponse
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

DELETE /sso/amazon

Delete SSO Configuration

deleteSSOConfigurationsAmazon

Delete SSO configuration set on environment.

Response
application/json

Bad request.

Bad request
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

204401404

Access Apple SSO

POST /sso/apple

Create SSO Configuration

createSSOConfigurationApple

Create SSO configuration on environment.

Request
application/json
{
  "client_id": "com.example.app",
  "team_id": "ABCDEFGH12345678",
  "key_id": "XYZ1234567890",
  "private_key": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Apple set successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
4 fields
FieldTypeDescription
client_idrequiredstring (client_id)SSO provider client id.Example client_id
team_idrequiredstring (team_id)SSO provider team id.Example team_id
key_idrequiredstring (key_id)SSO provider key id.Example team_id
private_keyrequiredstring (private_key)SSO provider private key.Example <redacted>
Response 201application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Apple set successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration existent

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

PUT /sso/apple

Update SSO Configuration

updateSSOConfigurationApple

Update SSO configuration on environment. Providers Supported: Google.

Request
application/json
{
  "client_id": "com.example.app",
  "team_id": "ABCDEFGH12345678",
  "key_id": "XYZ1234567890",
  "private_key": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Apple updated successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
4 fields
FieldTypeDescription
client_idrequiredstring (client_id)SSO provider client id.Example client_id
team_idrequiredstring (team_id)SSO provider team id.Example team_id
key_idrequiredstring (key_id)SSO provider key id.Example team_id
private_keyrequiredstring (private_key)SSO provider private key.Example <redacted>
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Apple updated successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration Conflict

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /sso/apple

Get SSO Configuration

getSSOConfigurationApple

Retrieve SSO configuration set on environment.

Response
application/json

OK response

[
  {
    "approved_js_origin": "https://auth.env.staircaseapi.com",
    "oauth_authorized_redirect": "https://auth.env.staircaseapi.com/oauth2/idpresponse"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 200application/json
2 fields

OK response

FieldTypeDescription
approved_js_originstringapproved_js_origin.Example https://auth.env.staircaseapi.com
oauth_authorized_redirectstringoauth_authorized_redirect.Example https://auth.env.staircaseapi.com/oauth2/idpresponse
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

DELETE /sso/apple

Delete SSO Configuration

deleteSSOConfigurationsApple

Delete SSO configuration set on environment.

Response
application/json

Bad request.

Bad request
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

204401404

Access Facebook SSO

POST /sso/facebook

Create SSO Configuration

createSSOConfigurationFacebook

Create SSO configuration on environment.

Request
application/json
{
  "client_id": "1234567890123456",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Facebook set successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example client_id
Response 201application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Facebook set successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration existent

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

PUT /sso/facebook

Update SSO Configuration

updateSSOConfigurationFacebook

Update SSO configuration on environment.

Request
application/json
{
  "client_id": "1234567890123456",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Facebook updated successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example client_id
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Facebook updated successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration Conflict

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /sso/facebook

Get SSO Configuration

getSSOConfigurationFacebook

Retrieve SSO configuration set on environment.

Response
application/json

OK response

[
  {
    "approved_js_origin": "https://auth.env.staircaseapi.com",
    "oauth_authorized_redirect": "https://auth.env.staircaseapi.com/oauth2/idpresponse"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 200application/json
2 fields

OK response

FieldTypeDescription
approved_js_originstringapproved_js_origin.Example https://auth.env.staircaseapi.com
oauth_authorized_redirectstringoauth_authorized_redirect.Example https://auth.env.staircaseapi.com/oauth2/idpresponse
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

DELETE /sso/facebook

Delete SSO Configuration

deleteSSOConfigurationsFacebook

Delete SSO configuration set on environment.

Response
application/json

Bad request.

Bad request
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

204401404

Access Google SSO

POST /sso/google

Create SSO Configuration

createSSOConfiguration

Create SSO configuration on environment.

Request
application/json
{
  "client_id": "20581095937-l92gfggdj4tl5gn227g90.apps.googleusercontent.com",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Google set successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example GOCSPX-MUIzom5cbFWaJs4AOIJE8JNr
Response 201application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Google set successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration existent

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

PUT /sso/google

Update SSO Configuration

updateSSOConfiguration

Update SSO configuration on environment.

Request
application/json
{
  "client_id": "20581095937-l92gfggdj4tl5gn227g90.apps.googleusercontent.com",
  "client_secret": "<redacted>"
}
Response
application/json

OK response

[
  {
    "message": "SSO configuration Google updated successfully"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Request bodyapplication/json
2 fields
FieldTypeDescription
client_secretrequiredstring (client_secret)SSO provider client secret.Example <redacted>
client_idrequiredstring (client_id)SSO provider client id.Example GOCSPX-MUIzom5cbFWaJs4AOIJE8JNr
Response 200application/json
1 fields

OK response

FieldTypeDescription
messagestringConfiguration message.Example SSO configuration Google updated successfully
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

SSO Configuration Conflict

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401

GET /sso/google

Get SSO Configuration

getSSOConfiguration

Retrieve SSO configuration set on environment.

Response
application/json

OK response

[
  {
    "approved_js_origin": "https://auth.env.staircaseapi.com",
    "oauth_authorized_redirect": "https://auth.env.staircaseapi.com/oauth2/idpresponse"
  }
]
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 200application/json
2 fields

OK response

FieldTypeDescription
approved_js_originstringapproved_js_origin.Example https://auth.env.staircaseapi.com
oauth_authorized_redirectstringoauth_authorized_redirect.Example https://auth.env.staircaseapi.com/oauth2/idpresponse
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

DELETE /sso/google

Delete SSO Configuration

deleteSSOConfigurations

Delete SSO configuration set on environment.

Response
application/json

Bad request.

Bad request
Parameters
1
ParameterTypeExampleDescription
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 409application/json
1 fields

User not confirmed

FieldTypeDescription
errorstringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

204401404

Access SSO

GET /{application_name}/sso/{sso_provider}

Get SSO by Application

getSSOApp

Get SSO Links retrieves the sing-up/sing-in and logout links needed for managing SSO logged users. Providers Supported: Google,Facebook,SignInWithApple,LoginWithAmazon

There are two types of grants:

  • Authorization Code Grant
  • Implicit Grant

The Authorization Code Grant will return access_token and id_token as a URL fragments in the redirect_uri The Implicit Grant will return access_token and id_token AND refresh_token as a URL fragments in the redirect_uri

Response
application/json

OK response

[
  {
    "sso_provider": "Google",
    "sso_signin_link": "https://auth.cerf-dev.staircaseapi.com/oauth2/authorize?identity_provider=Google&redirect_uri=https://webhook.site/123&response_type=token&client_id=6066huk2cnnuln4f2ajg71jnmv&scope=email+openid+profile",
    "sso_logout_link": "https://auth.cerf-dev.staircaseapi.com/logout?logout_uri=https://webhook.site/123&response_type=token&client_id=6066huk2cnnuln4f2ajg71jnmv"
  }
]
Parameters
3
ParameterTypeExampleDescription
sso_provider required string path Google SSO provider.
application_name required string path access Application name.
x-api-key required string header xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx API-KEY
Response 200application/json
3 fields

OK response

FieldTypeDescription
sso_providerstringConfiguration message.Example Google, SSO configurations set
sso_signin_linkstringRedirect UI added.Example https://ui.redirect/logged/users
sso_logout_linkstringRedirect UI added.Example https://ui.redirect/logged/users
Response 400application/json
1 fields

Bad request.

FieldTypeDescription
errorstringError message.
Response 403application/json
2 fields

Not Authorized

FieldTypeDescription
urlstringURL for getting access
messagestringError message.
Response 429application/json
1 fields

To many requests

FieldTypeDescription
errorstringError message.
Other responses

401404

Operations

GET /smoke

Smoke endpoint

Endpoint to check service health

Other responses

200

POST /tenants

Create necessary AWS instances for new tenant

Tenant is client of staircase. When a new client registers we should create virtual infrastructure for him: create new domain in format {tenant_name}.api.stairacaseapi.com, map specified API to {tenant_name}.api.stairacaseapi.com/{base_path}, create new usage plan with {tenant_name} name for API's specified in api_mapping. That what this endpoint does.

Request bodyapplication/json
2 fields
FieldTypeDescription
tenant_namestring
api_mappingarray
Response 202application/json
2 fields

202 response

FieldTypeDescription
start_timestring
statusstring
Other responses

400

POST /tenants/{tenant_name}/keys

Generate API key

Generate API key for specified tenant and add it to tenant usage plan

Parameters
1
ParameterTypeDescription
tenant_name required string path Tenant name
Response 201application/json
1 fields

201 response

FieldTypeDescription
x-api-keystring

Errors

400401403404409422429500

Type to search.