> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sahlfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Console features

> What the Sahl console does, and for each feature whether the Partner API (API key) exposes it. Based on the API code, not on plans.

The console at `https://app.sahlfinancial.com` signs staff in with a session (email and password, or OAuth, optionally MFA) and calls the routes below with that session. A session is not an API key: **a key cannot call any route in this table.** The Partner API is the six `/v1/kyc` routes listed in the [API reference](/api-reference/introduction).

This page groups the console routes by feature.

<Note>
  Source: the Sahl API code, read on 2026-10-07. "Roles" are the roles the route checks. `tenant_viewer` is read-only everywhere.
</Note>

## Features and their API mapping

| Console feature | What it does | Routes (session) | Roles that can change data | Partner API (key) |
| - | - | - | - | - |
| Upload and Documents | Staff upload a file, follow its status, open the result and the original, reprocess. | `/v1/documents`, `/v1/jobs`, `/v1/pipelines`, `/v1/schemas` | admin, reviewer, API manager | Reading only: [`POST /v1/kyc/extract`](/guides/ocr-documents), a different route that returns the result in the same call. |
| KYC reader for staff | The same reader as `/v1/kyc/extract`, used from the Upload page with a session; files the checks on the client reference. | `/v1/kyc-dashboard/slots`, `/v1/kyc-dashboard/extract` | admin, reviewer | Same reader, by key: `POST /v1/kyc/extract`. |
| Cases | Create a case, attach documents, see fields, financials and metrics, score, export a report. | `/v1/cases` and children (12 routes) | admin, reviewer, API manager | Not exposed. The KYC calls take your `reference` and show up as cases in the console. |
| Review queue | Claim, approve, reject or correct a document that needs a human. | `/v1/reviews` (9 routes) | admin, reviewer | Not exposed. |
| Scoring policies | Weights and rules of the credit score, one active policy per country. | `/v1/scoring/policies` (5 routes) | admin | Not exposed. [`/v1/kyc/assess`](/guides/risk-assessment) is a different result. |
| KYC policies | The rules `/v1/kyc/*` applies to your calls, versioned, one per kind and environment. | `/v1/kyc-policies/{kind}/{environment}` (3 routes) | admin | The key calls **read** these rules. They cannot change them. |
| Flows | Build a KYC or lending flow, test and simulate it, publish it, use it as your Partner API policy. | `/v1/flows` (12 routes) | admin, reviewer, API manager | Not exposed. |
| Bank connections | Create a connection, refresh, see transactions and analysis. | `/v1/bank-connections` (7 routes) | admin, reviewer, API manager | Not exposed. See the note on production below. |
| API keys | Create, scope, rotate (with grace period), revoke. | `/v1/api-keys` (7 routes) | admin, API manager | Not exposed: a key cannot manage keys. |
| Webhooks | Register endpoints, choose events, test, read deliveries. | `/v1/webhooks` (9 routes) | admin, API manager | Not exposed. Deliveries are sent to you: see [Webhooks](/guides/webhooks). |
| Call log and spec | Your key calls, newest first; the partner OpenAPI for your workspace. | `/v1/developer/request-logs`, `/v1/developer/openapi.json` | admin, API manager | Not exposed. |
| Ask Sahl | A command bar that plans one action from a request in plain words (go to a page, search cases, propose a policy change, a key or a webhook). The server never writes what it plans; the console opens the page, prefilled. | `/v1/assistant/plan` | any signed-in role | Not exposed. |
| Analytics, Activity, Exports | Dashboard figures, KYC analytics, audit log, CSV exports of cases and documents. | `/v1/analytics`, `/v1/audit`, `/v1/export` | varies | Not exposed. |
| Team, Workspace, Billing, Usage | Invite and approve members, set roles, profile and privacy, MFA policy, plan and checkout, usage. | `/v1/team`, `/v1/tenants`, `/v1/billing`, `/v1/usage`, `/v1/auth` | admin | Not exposed. |
| Privacy requests | Export or erase one case's data. | `/v1/privacy/cases/{case_id}/export`, `.../erase` | admin | Not exposed. |

## Bank connections in production

In the code, creating a connection and reading transactions or analysis answer `409` with the code `bank_connect_unavailable` unless the request is for the sandbox. Sandbox gives simulated data. Treat real bank data in production as **not available** until Sahl tells you otherwise.

## Review queue

The review routes exist and are session-only. The console has no page that calls them, so do not plan on a console screen for them.

## What you can do with a key today

| Need | Call |
| - | - |
| Read a document | `POST /v1/kyc/extract` |
| Verify a client profile | `POST /v1/kyc/verify` |
| Verify and assess risk | `POST /v1/kyc/assess` |
| Start, poll and download an eID check | `POST /v1/kyc/eid`, `GET /v1/kyc/eid/{key}`, `GET /v1/kyc/eid/{key}/report` |

For anything in the table above marked "Not exposed", use the console. See [Coverage](/coverage) for the evidence behind each line.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.