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

# Introduction

> The Kira API for users, KYC/KYB verification, virtual accounts, payouts, recipients, and webhooks.

The Kira API is a REST platform for moving money. You create users and run them through KYC/KYB verification, open virtual accounts, send payouts, manage recipients, and receive webhook events for every state change. This site documents the integration end to end — start with the [Quickstart](/quickstart), then explore the guides and the interactive [API reference](/api-reference).

## Base URLs

Kira serves two environments. The `/sandbox` prefix applies to **every** path in the sandbox environment.

| Environment | Base URL                           |
| ----------- | ---------------------------------- |
| Production  | `https://api.balampay.com`         |
| Sandbox     | `https://api.balampay.com/sandbox` |

For example, the users endpoint is `https://api.balampay.com/v1/users` in production and `https://api.balampay.com/sandbox/v1/users` in sandbox.

## Authentication

Every authenticated call carries **two credentials**:

* `x-api-key: <api_key>` — your API key, on every request.
* `Authorization: Bearer <access_token>` — a bearer token from `POST /auth`, valid for 3600 seconds.

`POST /auth` itself needs only the `x-api-key` header. Use the returned `access_token` as your bearer token on all other requests. See the [Authentication guide](/guides/authentication) for the full flow.

## Response envelopes

Successful responses are wrapped in a consistent envelope:

```json theme={null}
{
  "message": "...",
  "data": { }
}
```

Webhook events use a parallel shape, with `event` instead of `message`:

```json theme={null}
{
  "event": "...",
  "data": { }
}
```

In prose: success responses use `{ message, data }` and webhook payloads use `{ event, data }`. See the [Webhooks guide](/guides/webhooks) for delivery details and the event catalog.

## Versioning

<Warning>
  Send the `X-Api-Version: 2026-04-14` header on **every** request — it always selects the documented schema, regardless of your account's stored default. If your account default is `2026-04-14` or older, you can additionally pin once with `POST /v1/versioning/upgrade` `{ "target_version": "2026-04-14" }` to make the header optional. Pins are **forward-only**: accounts already defaulting to a newer version keep using the header instead. See the [Versioning guide](/guides/versioning).
</Warning>

## Before you debug

The sandbox has documented gotchas — casing inconsistencies, field renames between request and response, tenant-scoped seed IDs, and more. Read the [Known limitations & quirks guide](/guides/known-limitations) before you spend an hour debugging.

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Authenticate, pin a version, and make your first call.
  </Card>

  <Card title="Authentication" icon="key" href="/guides/authentication">
    The two-credential model and the token flow in depth.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/guides/webhooks">
    Register an endpoint and handle event payloads.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference">
    Browse every endpoint interactively.
  </Card>
</CardGroup>
