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.
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=Accessaction=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
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API Key
Request bodyapplication/json
2 fields
Field
Type
Description
email
string (email)
Email of the user.Example johndoe@email.com
redirect_url
string
URL to redirect user on invitation acceptance.Example https://webhook.site/d9b8f770-38c2-4584-8944-0b7194d203e8?guid=123
Response 201application/json
2 fields
OK Response
Field
Type
Description
email
string (email)
Email of the user.Example johndoe@email.com
invitation_url
string
URL 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.
Field
Type
Description
error
string
Error message.
Response 409application/json
1 fields
Email already registered
Field
Type
Description
error
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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.
The expiration period of the authentication result in seconds.Example Bearer <redacted>
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
User not confirmed
Field
Type
Description
error
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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"
}
]
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
1
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Request bodyapplication/json
1 fields
Field
Type
Description
email
string (email)
Email of the user.Example johndoe@email.com
Response 200application/json
1 fields
OK response
Field
Type
Description
message
string
Resented successfully.Example Activation email is resented
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
User already confirmed
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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.
[
{
"message": "Password has been successfully changed"
}
]
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Authorizationrequired
stringheader
<redacted>
Authorization token, obtained login service.
Request bodyapplication/json
2 fields
Field
Type
Description
old_password
string
Current user password.Example 164f8UY=oj!
new_password
string
New user password.Example 164f8UY=oj!
Response 201application/json
1 fields
Password changed
Field
Type
Description
message
string
Password changedExample Password has been successfully changed
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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"
}
]
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Authorizationrequired
stringheader
<redacted>
Authorization token, obtained login service.
Response 201application/json
1 fields
Sign out
Field
Type
Description
message
string
Password changedExample Sign out succeeded
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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"
}
]
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
1
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Response 302application/json
1 fields
Sign out
Field
Type
Description
message
string
Password changedExample Sign out succeeded
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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"
}
]
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
1
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Request bodyapplication/json
1 fields
Field
Type
Description
email
string (email)
Email of the user.Example johndoe@email.com
Response 202application/json
1 fields
Forgot password
Field
Type
Description
message
string
Password changedExample Email sent
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
1 fields
Not Authorized
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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.
The expiration period of the authentication result in seconds.Example Bearer <redacted>
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
User not confirmed
Field
Type
Description
error
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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"
}
application/json
Bad request.
Bad request
text/html
Bad request.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
Authorizationrequired
stringheader
<redacted>
Access token, obtained by login service.
Response 200application/json
1 fields
OK response
Field
Type
Description
message
string
Message.Example Token is valid
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
User not confirmed
Field
Type
Description
error
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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.
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
2
Parameter
Type
Example
Description
application_namerequired
stringpath
access
Application name.
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API Key
Request bodyapplication/json
2 fields
Field
Type
Description
email
string (email)
Email of the user.Example johndoe@email.com
password
string (password)
Password for the new user.Example <redacted>
Response 201application/json
3 fields
OK Response
Field
Type
Description
id
string
User id.Example 64564689894561
email
string (email)
Email of the user.Example johndoe@email.com
status
string
Status of the user CONFIRMED or UNCONFIRMED.CONFIRMEDUNCONFIRMEDExample CONFIRMED
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
Email already registered
Field
Type
Description
error
string
Error message.
Response 422application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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.
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.
{
"message": "Configurations were created successfully."
}
application/json
400 response.
{
"message": "Invalid body JSON."
}
application/json
409 response.
{
"message": "This resource was already previously created. Please, use the update endpoint."
}
application/json
500 response.
{
"message": "Internal server error"
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
Request bodyapplication/json
3 fields
Field
Type
Description
environment
string
The environment hosts.Example account.staircaseapi.com
productrequired
string
The product to be configured.Example newProduct
configurations
object[]
The product configurations.
key
string
Key
value
string
Key
Response 201application/json
1 fields
201 response.
Field
Type
Description
message
string
Configurations were created successfully.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
Invalid body JSON.
Response 409application/json
1 fields
409 response.
Field
Type
Description
message
string
The resource was already previously created.
Response 500application/json
1 fields
500 response.
Field
Type
Description
message
string
The 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.
{
"message": "Configurations were updated successfully."
}
application/json
400 response.
{
"message": "Invalid body JSON."
}
application/json
404 response.
{
"message": "No one local resource was found."
}
application/json
500 response.
{
"message": "Internal server error"
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
Request bodyapplication/json
3 fields
Field
Type
Description
environment
string
The environment hosts.Example account.staircaseapi.com
productrequired
string
The product to be configured.Example newProduct
configurations
object[]
The product configurations.
key
string
Key
value
string
Value
Response 201application/json
1 fields
201 response.
Field
Type
Description
message
string
Configurations were updated successfully.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
Invalid body JSON.
Response 404application/json
1 fields
404 response.
Field
Type
Description
message
string
The error details.
Response 500application/json
1 fields
500 response.
Field
Type
Description
message
string
The 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."
}
application/json
400 response.
{
"message": "Invalid body JSON."
}
application/json
404 response.
{
"message": "No one configurations were found."
}
application/json
500 response
{
"message": "Internal server error"
}
Parameters
3
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
productrequired
stringquery
myProduct
Product
environment
stringquery
account.staircaseapi.com
Product
Response 200application/json
1 fields
201 response.
Field
Type
Description
message
string
Configurations were deleted successfully.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
Invalid body JSON.
Response 404application/json
1 fields
404 response.
Field
Type
Description
message
string
The error details.
Response 500application/json
1 fields
500 response
Field
Type
Description
message
string
The error details.
Customer
POST/create-customer
Create Customer
Parameters
1
Parameter
Type
Example
Description
Content-Typerequired
stringheader
application/json
Content Type
GET/retrieve-customer
Retrieve Customer
Parameters
3
Parameter
Type
Example
Description
Content-Typerequired
stringheader
application/json
Content Type
customer_id
stringquery
ba4e8f60-f259-11eb-9a03-0242ac130003
—
email
stringquery
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.
{
"message": "Credentials are encrypted and stored successfully."
}
application/json
400 response.
{
"message": "error in creating Credentials credentials is a required field and it must be an array"
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
Request bodyapplication/json
5 fields
Field
Type
Description
environment
string
The environment hostExample account.staircaseapi.com
partnerrequired
string
Partner Account.Example newService
product
string
Product account.Example newProduct
credentialsrequired
object
Partner that the credentials is used
type
string
Type can be production, test or emptyproductiontestExample production
Response 201application/json
1 fields
201 response.
Field
Type
Description
message
string
Credentials are encrypted and stored successfully.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
Error 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)
The environment hostExample account.staircaseapi.com
Response 200application/json
3 fields
200 response
Field
Type
Description
message
string
Pre-signed URL successfully generated.
host
string
host
presigned_url
string
Pre-signed URL to upload file.
Response 400application/json
1 fields
400 response
Field
Type
Description
message
string
Bad request.
Response 500application/json
1 fields
500 response
Field
Type
Description
message
string
The 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.
{
"message": "Credentials are encrypted and updated successfully"
}
application/json
400 response.
{
"message": "error in creating Credentials credentials is a required field and it must be an array"
}
application/json
404 response.
{
"message": "Credentials Not Found."
}
Parameters
2
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
Request bodyapplication/json
4 fields
Field
Type
Description
environment
string
The environment hostExample account.staircaseapi.com
partnerrequired
string
Partner that the credentials is usedExample newService
product
string
Product account credentials.Example newProduct
credentialsrequired
object
Partner that the credentials is used
Response 200application/json
1 fields
200 response.
Field
Type
Description
message
string
Credentials are encrypted and updated successfully.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
The error details.
Response 404application/json
1 fields
404 response.
Field
Type
Description
message
string
The 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
{
"message": "The partner path must exist. Please use /{partner}?host={host}"
}
application/json
404 response
{
"message": "Certificate not found."
}
application/json
500 response
{
"message": "Internal server error"
}
Parameters
4
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
partnerrequired
stringpath
my_partner_name
Partner Account.
hostrequired
stringquery
my_partner_host
The host of the partner that was used to upload the certificate.
should_use_only_local_env
booleanquery
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
Field
Type
Description
message
string
Success message.
presigned_url
string
The pre-signed URL used to retrieve the partner host certificate.
is_certificate_from_local_env
boolean
Informs if the pre-signed URL was retrieved from local environment or master environment.
Response 400application/json
1 fields
400 response
Field
Type
Description
message
string
Bad request.
Response 404application/json
1 fields
404 response
Field
Type
Description
message
string
Certificate not found.
Response 500application/json
1 fields
500 response
Field
Type
Description
message
string
The 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."
}
application/json
400 response
{
"message": "f\"error in retrieving Credentials environment is a required field in the queryString\""
}
application/json
403 response
{
"message": "error in retrieving Credentials Wrong Password"
}
application/json
404 response
{
"message": "Not Found"
}
Parameters
7
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
environment
stringquery
account.staircaseapi.com
Environment
product
stringquery
newService
Product to retrieve credentials.
partnerrequired
stringquery
newService
Partner Account.
type
stringquery
production
Type can be production, test or empty
password
stringquery
<redacted>
Password used to encrypt the Credentials
Response 200application/json
1 fields
200 response
Field
Type
Description
message
string
The message.
Response 400application/json
1 fields
400 response
Field
Type
Description
message
string
The error details.
Response 403application/json
1 fields
403 response
Field
Type
Description
message
string
The error details.
Response 404application/json
1 fields
404 response
Field
Type
Description
message
string
The 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.
URL 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
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.
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.
A 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.
Field
Type
Description
message
string
Email was already confirmed previously.
Response 201application/json
1 fields
Email confirmed successful.
Field
Type
Description
api_key
string
User 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
Delete policy store. A policy store is a container for policies.
Response
application/json
Request data invalid
{
"message": "Request body is invalid."
}
application/json
Requested resource not found
{
"message": "Resource not found"
}
Parameters
1
Parameter
Type
Example
Description
policy_store_idrequired
stringpath
Dc3v9eLa2UbfCrw6wrkcmK
ID of the policy store.
Response 400application/json
1 fields
Request data invalid
Field
Type
Description
message
string
Error message
Response 403application/json
1 fields
Missing API key
Field
Type
Description
message
string
Message
Response 404application/json
1 fields
Requested resource not found
Field
Type
Description
message
string
Message
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."
}
application/json
Request data invalid
{
"message": "Request body is invalid."
}
application/json
Requested resource not found
{
"message": "Resource not found"
}
Parameters
1
Parameter
Type
Example
Description
policy_store_idrequired
stringpath
Dc3v9eLa2UbfCrw6wrkcmK
ID of the policy store.
Response 200application/json
1 fields
Successfully updated policy store.
Field
Type
Description
messagerequired
string
Message
Response 400application/json
1 fields
Request data invalid
Field
Type
Description
message
string
Error message
Response 403application/json
1 fields
Missing API key
Field
Type
Description
message
string
Message
Response 404application/json
1 fields
Requested resource not found
Field
Type
Description
message
string
Message
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"
}
application/json
{
"definition": "permit(principal == ExampleCo::Loan::Borrower::\"John\", action in [ExampleCo::Loan::Action::\"GetPropertyInfo\"], resource) when {true};",
"description": "example"
}
application/json
{
"definition": "forbid(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"
}
application/json
Request data invalid
{
"message": "Request body is invalid."
}
application/json
Requested resource not found
{
"message": "Resource not found"
}
Parameters
1
Parameter
Type
Example
Description
policy_store_idrequired
stringpath
Dc3v9eLa2UbfCrw6wrkcmK
ID of the policy store.
Request bodyapplication/json
2 fields
Field
Type
Description
definitionrequired
string
Cedar policy definition.Example permit(principal,action,resource) when {principal.owner == resource.owner};"}}
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 .
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.
{
"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
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API key
Content-Typerequired
stringheader
application/json
Content Type
Request bodyapplication/json
2 fields
Field
Type
Description
environmentrequired
string
The environment hostExample test.staircaseapi.comm
api-keyrequired
string (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.
Field
Type
Description
message
string
The message.
Response 400application/json
1 fields
400 response.
Field
Type
Description
message
string
The error details.
Response 403application/json
2 fields
403 response
Field
Type
Description
url
string
The URL service address.
message
string
The 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."
}
<html>\r\n<head><title>400 Bad Request</title></head>\r\n<body>\r\n<center><h1>400 Bad Request</h1></center>\r\n</body>\r\n</html>\r\n
Parameters
1
Parameter
Type
Example
Description
x-api-keyrequired
stringheader
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
API-KEY
Response 400application/json
1 fields
Bad request.
Field
Type
Description
error
string
Error message.
Response 403application/json
2 fields
Not Authorized
Field
Type
Description
url
string
URL for getting access
message
string
Error message.
Response 409application/json
1 fields
User not confirmed
Field
Type
Description
error
string
Error message.
Response 429application/json
1 fields
To many requests
Field
Type
Description
error
string
Error 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
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
Field
Type
Description
tenant_name
string
—
api_mapping
array
—
Response 202application/json
2 fields
202 response
Field
Type
Description
start_time
string
—
status
string
—
Other responses
400
POST/tenants/{tenant_name}/keys
Generate API key
Generate API key for specified tenant and add it to tenant usage plan