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

# Getting Started

> Beltic is a verification platform for humans, businesses, and AI agents. Configure a workflow once, trigger it with a single API call.

## What Beltic Does

Beltic provides programmable infrastructure for verifying the entities that matter to your business — people, companies, and AI agents.

Everything in Beltic is built around the **Workflow API**. A workflow is a pipeline of blocks — discrete verification steps like document checks, liveness, sanctions screening, and business lookups — that you configure once in the Console and trigger with a single API call. Beltic runs the blocks, handles retries and parallel execution, and returns the full block-by-block output.

**Credentialing is one of those blocks.** When you add a `credential_issue` block to your workflow, Beltic takes the verified output of the preceding blocks and mints a signed JWT-VC from it — a cryptographic artifact that encodes what was verified, who was verified, and when. That credential can be stored, forwarded to partners, and verified at every future transaction point without re-running the workflow.

Not every customer needs the full workflow. If you already have your own verification process — your own KYC provider, your own document stack, your own risk engine — you can skip the workflow entirely and call the **Credentials API** directly. Send Beltic the data you've already collected, and Beltic wraps it in a signed, portable credential. You get the cryptographic trust layer without changing your existing pipeline.

Two patterns, same result:

| Pattern                         | When to use                                                                                 |
| ------------------------------- | ------------------------------------------------------------------------------------------- |
| **Workflow + credential block** | You want Beltic to run the verification and issue the credential in one call                |
| **Direct credential issuance**  | You have your own verification process and want to attach the result to a Beltic credential |

## Quickstart

### 1. Get an API key

Create an account at [console.beltic.com](https://console.beltic.com), navigate to **Settings → API Keys**, and create a key with `workflows:execute` scope. Use a `sk_staging_...` key while testing.

### 2. Execute a workflow

<Note>
  `wf_kyc_standard` is a placeholder — replace it with the ID of your own workflow. When setting up a workflow in the Console, you choose its name; that name becomes the `workflowId` you pass here.
</Note>

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.beltic.com/v1/workflows/execute \
    -H "X-Api-Key: $BELTIC_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "workflowId": "wf_kyc_standard",
      "options": {
        "input": {
          "subject_id": "user_jane_doe_001",
          "document_type": "passport",
          "document_front_url": "https://your-storage.com/passport_front.jpg",
          "jurisdiction": "US"
        }
      }
    }'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch('https://api.beltic.com/v1/workflows/execute', {
    method: 'POST',
    headers: {
      'X-Api-Key': process.env.BELTIC_API_KEY!,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      workflowId: 'wf_kyc_standard',
      options: {
        input: {
          subject_id: 'user_jane_doe_001',
          document_type: 'passport',
          document_front_url: 'https://your-storage.com/passport_front.jpg',
          jurisdiction: 'US',
        },
      },
    }),
  });

  const result = await response.json();
  ```
</CodeGroup>

### 3. Handle the result

A `200` response means the workflow reached a terminal state — check `result.status` for `completed` or `failed`. A `202` means the workflow paused and is waiting on external input (e.g. a manual compliance review) before it can continue.

That's the core loop. From here, you can read the output directly, trigger downstream logic, or optionally use the Credentials API to package the result into a portable signed JWT for future use.

<Note>
  **TypeScript SDK — coming soon.** A first-class TypeScript SDK with generated types, automatic retries, and environment handling is in active development. The REST API is stable and production-ready today. [Sign up for early access →](https://beltic.com)
</Note>

***

## Core APIs

<CardGroup cols={3}>
  <Card title="Workflow API" icon="diagram-project" href="/guides/workflows/overview">
    The execution plane. Configure verification pipelines once and trigger them with a single call. Built-in pause/resume for human-in-the-loop steps.
  </Card>

  <Card title="Credentials API" icon="certificate" href="/guides/credentials/overview">
    Package a verification result into a portable, cryptographically signed JWT. Present it at future checkpoints without re-running the workflow.
  </Card>

  <Card title="Document API" icon="file-lines" href="/guides/managing-templates">
    Extract structured data from documents with AI-powered processing and fraud detection.
  </Card>

  <Card title="Business API" icon="building" href="/api-reference/endpoint/businesses-create">
    Create and manage business entities. Look up registered companies and track their verification state across your platform.
  </Card>

  <Card title="Screening API" icon="shield-halved" href="/api-reference/endpoint/screenings-create">
    Run sanctions, PEP, and adverse media checks against individuals and entities. Integrates directly into workflows or as a standalone call.
  </Card>

  <Card title="Website Check API" icon="globe" href="/api-reference/endpoint/website-checks-create">
    Analyse a business's web presence — category classification, risk signals, and policy compliance — in a single request.
  </Card>
</CardGroup>

***

## Examples

<CardGroup cols={2}>
  <Card title="Fintech Company Using Beltic" icon="credit-card" href="/use-cases/fintech-onboarding">
    End-to-end walkthrough: user signup, sponsor bank queue, and transaction authorization — with exactly what your backend calls and what your user sees at every step.
  </Card>

  <Card title="Agent Authorization" icon="robot" href="/use-cases/agent-authorization">
    Cryptographic proof that a verified human authorized an agentic transaction — with scoped permissions any endpoint can verify.
  </Card>
</CardGroup>

***

## Authentication

All requests require an API key in the `X-Api-Key` header:

```http theme={null}
X-Api-Key: sk_production_...
```

Use `sk_staging_...` keys in development. Keys are created in the [Console](https://console.beltic.com) and scoped per permission. See [Authentication](/guides/authentication) for rate limits, retry guidance, and idempotency.
