WorkspaceDarkLight
Contents

Get started

Quickstart

A sandbox key, then a bank statement read and a loan tested against it. Four calls, on an invented statement.

  1. 1

    Get a sandbox key

    One call, no account. Put the key in CREDITCREST_KEY; the calls below send it.

    Request
    curl -s -X POST https://app.creditcresttechnologies.com.au/v1/keys/sandbox
    Response · 201trimmed
    {
      "key": "cc_test_eyJ2Ijox…",
      "id": "hcherg6u",
      "mode": "test",
      "expires": "2026-10-26"
    }
  2. 2

    Get a statement

    An invented one, as a bank’s CSV export. Any export this reads works the same way.

    RequestOpen ↗
    curl -s https://app.creditcresttechnologies.com.au/v1/statement/sample.csv -o statement.csv
    Response · 200
    Date,Description,Amount
    05/03/2026,DIRECT CREDIT 049211 ACME LOGISTICS PAYROLL,2200
    19/03/2026,DIRECT CREDIT 049211 ACME LOGISTICS PAYROLL,2320
    02/04/2026,DIRECT CREDIT 049211 ACME LOGISTICS PAYROLL,2440
    …
  3. 3

    Read it

    Income, commitments and expenses, each with the transactions behind it.

    Request
    curl -s -X POST https://app.creditcresttechnologies.com.au/v1/statement \
      -H "authorization: Bearer $CREDITCREST_KEY" \
      -H 'content-type: text/csv' \
      --data-binary @statement.csv
    Response · 200trimmed
    {
      "period": {
        "from": "2026-03-01",
        "to": "2026-08-28",
        "days": 181,
        "months": 5.95
      },
      "income": {
        "verifiedMonthly": 5026.67,
        "regular": [
          {
            "description": "DIRECT CREDIT 049211 ACME LOGISTICS PAYROLL",
            "period": "fortnightly",
            "monthly": 5026.67,
            "transactions": ["r1", "r2", "r3", …]
          }
        ]
      },
      "commitments": {
        "monthly": 2150
      },
      "expenses": {
        "monthly": {
          "essential": 3497.94,
          "discretionary": 162.68
        }
      },
      "signals": []
    }
  4. 4

    Ask what it can service

    The loan goes in the query; the statement stays in the body.

    Request
    curl -s -X POST 'https://app.creditcresttechnologies.com.au/v1/capacity?loan=15000&rate=12&years=5' \
      -H "authorization: Bearer $CREDITCREST_KEY" \
      -H 'content-type: text/csv' \
      --data-binary @statement.csv
    Response · 200trimmed
    {
      "service": {
        "assessmentRate": 0.15,
        "monthlySurplus": 1009.2,
        "netSurplusRatio": 0.2008,
        "debtServiceRatio": 0.4987
      },
      "capacity": {
        "principal": 57300,
        "binds": "serviceability"
      }
    }

Next