Sign in to run requests with your own sandbox key. Sign in

Sandbox

Test identities

The synthetic applicants registered in the CRS sandbox, what test mode really does with them, and how to pick a mock outcome for a test run.

Cascades keeps a set of registered test subjects in the CRS sandbox test-case registry — synthetic applicants authored with a specific history (a borderline credit file, a misdemeanor, three eviction filings). What they do depends on the mode of the run:

  • In test mode a trigger (POST /workflows/{id}/trigger) whose applicant is a registered subject replays that subject's authored bureau responses, at no charge, when the subject is registered for every product node in the cascade. The execution's input_context.sandbox_replay is then true. Any other applicant, a subject that covers only some of the cascade's products, and every batch row get the schema mock for each product node: happy_path (clean file, no records) by default, or the decline mock when you add "scenario": "fail_path" to payload.
  • On a live-mode sandbox run (approved account, key minted at /api-keys, CRS sandbox host) the registry matches the applicant's name and SSN and replays the authored bureau response for that subject instead of billing a vendor, so the decision path is the one a live applicant with that history would take.

How do I get the subjects for my cascade?

Ask the API. GET /workflows/{id}/test_cases walks the cascade's product nodes, maps each product to its registry family, and returns every Cascades case registered for it (case_name starts with Cascades_) with a payload you can send straight to trigger:

cURL
curl "https://cascades.crscreditapi.com/api/v1/workflows/27/test_cases" \
  -H "Authorization: Bearer {{API_KEY}}"
JSON
{
  "data": {
    "object": "test_case_list",
    "workflow_id": 27,
    "test_cases": [
      {
        "id": 73,
        "case_name": "Cascades_XProduct_Approve_EFX",
        "product_code": "EQF1003",
        "payload": {
          "applicant": { "first_name": "AVERY", "last_name": "CLARKSON", "middle_name": "", "name": "AVERY CLARKSON", "email": "avery.clarkson@example.com", "phone": "", "ssn": "…", "dob": "1982-01-01" },
          "property":  { "address": "1803 Norma", "unit": "", "city": "Cottonwood", "state": "CA", "zip": "91502", "full_address": "1803 Norma, Cottonwood, CA 91502" }
        }
      }
    ]
  },
  "meta": { "request_id": "…" }
}

A credit case's own registry entry has only the name and SSN. The payload fills the date of birth and address from the same subject's other cases (here Avery's criminal case), as the table below does, because CRS refuses a credit order without them.

An unreachable registry returns an empty list, never an error, so discovery degrades to "no test cases" rather than failing your integration.

Choosing the outcome in test mode

For an applicant that is not a registered subject, test mode returns mocks, and scenario picks which ones. To walk a decline or adverse-action branch, add scenario to the trigger payload:

JSON
{ "payload": { "scenario": "fail_path", "applicant": { "first_name": "Raymond", "last_name": "Okafor" } }, "execution_mode": "test" }

happy_path (the default) returns a clean file from every product node; fail_path returns each node's decline mock (for example the eviction node reports two filings and recommendation: FAIL). A node whose config sets mock_scenario overrides the payload value. scenario is ignored in live mode, and on a test run that replays a registered subject: that run returns the subject's authored outcome.

Registered subjects

These are the Cascades cases in the registry right now, read live from it; GET /workflows/{id}/test_cases returns the registered subjects for your cascade's products. Each one replays its authored bureau response on a test-mode trigger (when it covers every product node in the cascade) and on a live sandbox run. Identity and watchlist products have no registry coverage today, so a cascade with one of them always gets mocks in test mode.

Product codes map to registry families by prefix: TUC* → TransUnion credit, EQF* → Equifax credit, EXP1* → Experian credit, CIC4002 → criminal, CIC4003 → eviction. A subject only replays for the family it was registered under — a live pull of a credit subject through a criminal node misses the registry and reaches the vendor.

Scores on the Equifax test files. Each registry Equifax credit file (EQF*) carries a FICO Score 9 (Equifax model 05206), a FICO Score 5 (02958) and a VantageScore 4.0. creditScore.fico9 reads only the FICO 9. Avery Clarkson's FICO 9 is 700, so the createWorkflow example (creditScore.fico9 >= 650) approves her; Blake Moreno and Carmen Delacruz are at 619 and take the fail branch.

Name Registry case Family SSN DOB Property address
Sandrx Bowkey
Cascades_Credit_660_Inq0 Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Selma Bowkey
Cascades_Credit_660_InqMany Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Teron Bowkey
Cascades_Credit_700_Inq0 Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Tilda Bowkey
Cascades_Credit_700_InqMany Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Umber Bowkey
Cascades_Credit_781_Inq0 Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Usher Bowkey
Cascades_Credit_781_InqMany Credit (TransUnion) 666221524 — 1268 BLOSSOM PT RD, WELCOME, MD, 20693
Avery Clarkson
Cascades_XProduct_Approve_Credit Credit (TransUnion) 666900001 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Blake Moreno
Cascades_XProduct_CriminalFail_Credit Credit (TransUnion) 666900002 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Carmen Delacruz
Cascades_XProduct_EvictionFail_Credit Credit (TransUnion) 666900003 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Avery Clarkson
Cascades_XProduct_Approve_EFX Credit (Equifax) 666900001 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Blake Moreno
Cascades_XProduct_CriminalFail_EFX Credit (Equifax) 666900002 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Carmen Delacruz
Cascades_XProduct_EvictionFail_EFX Credit (Equifax) 666900003 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Avery Clarkson
Cascades_XProduct_Approve_EXP Credit (Experian) 666900001 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Blake Moreno
Cascades_XProduct_CriminalFail_EXP Credit (Experian) 666900002 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Carmen Delacruz
Cascades_XProduct_EvictionFail_EXP Credit (Experian) 666900003 1982-01-01 1803 Norma, Cottonwood, CA, 91502
June Abara
Cascades_Criminal_California Criminal 666-51-2206 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Theo Lindgren
Cascades_Criminal_Clean Criminal 666-51-2204 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Omar Haddad
Cascades_Criminal_Misdemeanor Criminal 666-51-2205 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Avery Clarkson
Cascades_XProduct_Approve_Criminal Criminal 666-90-0001 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Blake Moreno
Cascades_XProduct_CriminalFail_Criminal Criminal 666-90-0002 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Carmen Delacruz
Cascades_XProduct_EvictionFail_Criminal Criminal 666-90-0003 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Delia Marquez
Cascades_Eviction_California Eviction 666-51-2203 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Priya Narayan
Cascades_Eviction_Clean Eviction 666-51-2202 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Raymond Okafor
Cascades_Eviction_Multi Eviction 666-51-2201 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Avery Clarkson
Cascades_XProduct_Approve_Eviction Eviction 666-90-0001 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Blake Moreno
Cascades_XProduct_CriminalFail_Eviction Eviction 666-90-0002 1982-01-01 1803 Norma, Cottonwood, CA, 91502
Carmen Delacruz
Cascades_XProduct_EvictionFail_Eviction Eviction 666-90-0003 1982-01-01 1803 Norma, Cottonwood, CA, 91502

Discover the subjects registered for your cascade programmatically — the response carries a payload shaped for triggerWorkflow:

cURL
curl "https://cascades.crscreditapi.com/api/v1/workflows/27/test_cases" \
  -H "Authorization: Bearer {{API_KEY}}"
# -> data.test_cases[].payload is ready to POST to /workflows/27/trigger

See GET /workflows/{id}/test_cases for the full response shape.

Payload shape that matches the registry

The registry matches on the applicant's name and SSN (names are upper-cased and the SSN digit-stripped before comparison), and the credit provider reads the date of birth from applicant.dob and the address from a separate property object — not from applicant.address. Send the payload from test_cases unchanged and you cannot miss.

Was this page helpful?