Kita

SDK quickstart

Collect borrower documents with a server-created session and an in-app upload flow.

Use your Risk Score API key (kita_prod_ or kita_sbx_) from the dashboard, on your backend only. Your app gets a short-lived session token. The SDK uses the same base URLs and keys as the Scoring API: https://riskscore.kita.ai with kita_prod_ keys, and https://sandbox-api.kita.ai with kita_sbx_ keys.

Setup

On the dashboard’s SDK page, add your app’s allowed origins for each environment and upload your logo. Borrowers see your organization’s name and logo; there is nothing to deploy on Kita’s side.

Only photo and document uploads are available on iOS and Android.

1. Create a session

Call from your server with your applicant or loan ID as reference_id.

curl --fail-with-body -X POST "$KITA_BASE_URL/v1/risk/sessions" \
  -H "X-API-Key: $KITA_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: session:LOAN-2026-001' \
  -d '{"reference_id":"LOAN-2026-001","origin":"https://app.example.com","location":"disabled"}'

Pass only session_id and client_token to your app. Tokens last 30 minutes. origin must be one of your allowed origins. A native app without a website uses an HTTPS origin you own (for example https://app.example.com) as its app origin; nothing has to be served there.

2. Open inside your app

Present KitaRiskViewController on iOS. On Android, load the flow in your WebView with the capture module. A web embed is also available.

Borrowers take a photo or choose PDFs and images of statements, payslips, invoices or payment records, review them, and send. Password and retry screens appear only when needed.

3. Retrieve the outcome

onSubmitted means uploading finished; processing may still be running. Poll from your server or use a signed webhook.

curl --fail-with-body "$KITA_BASE_URL/v1/risk/sessions/$SESSION_ID" \
  -H "X-API-Key: $KITA_API_KEY"

On completed, partial, or failed, fetch /v1/risk/sessions/{session_id}/results and check per-file outcomes. Data-collection sessions return results without scores.

See the upload walkthrough and the SDK reference.

On this page