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

# Introduction

> OpenFi is a hybrid Open Finance infrastructure connecting Open Banking and Web3 into a single programmable rail for humans and AI agents.

> [!NOTE]
>
> Preview docs. Endpoints and response shapes may be refined before public launch.

## What is OpenFi

OpenFi is the infrastructure layer that lets applications, and autonomous AI agents, move money and verify identity across both traditional banking rails and blockchain rails through one API.

## The four pillars

> **[1. Bi-Directional Direct Debits](https://docs.openfi.co/essentials/payments-vs-mandates.md)**
>
> Standardized pull transactions across Web2 and Web3, **live in V1**.

> **[2. Symmetrical Data Oracles](https://docs.openfi.co/api-reference/oracles/overview.md)**
>
> ZK-TLS financial data oracle. Coming in **V2**.

> **[3. Identity & Anti-Bot Verification](https://docs.openfi.co/essentials/identity-and-vcs.md)**
>
> W3C Verifiable Credentials for Sybil resistance, **live in V1**.

> **[4. Atomic Clearing & Escrows](https://docs.openfi.co/essentials/atomic-clearing.md)**
>
> Atomic settlement today. Programmatic Escrow coming in **V2**.

See [Use Cases](https://docs.openfi.co/use-cases.md) for how these combine in practice.

## Two kinds of money movement

> **[One-time payments](https://docs.openfi.co/api-reference/payments/create-payment.md)**
>
> A single push or pull payment. No standing authorization is created.

> **[Agentic recurring debits](https://docs.openfi.co/api-reference/agentic/create-mandate.md)**
>
> A mandate + session-key flow that lets a human or an AI agent pull funds repeatedly within strict, on-chain enforced limits.

## How the API is organized

The API is split at the route level to match how these two flows actually work under the hood:

| Flow | Route | Purpose |
| - | - | - |
| One-time payment | `POST /v1/payments` | Single push/pull, no standing authorization |
| Recurring agentic debit | `POST /v1/mandates` | Establishes the top-level authorization (amount, cadence, purpose) |
| Recurring agentic debit | `POST /v1/session-keys` | Issues a time-bound, velocity-bound cryptographic allowance scoped to a mandate |
| Recurring agentic debit | `POST /v1/debit-pulls` | Executes a single pull against an active session key |

This same split is reflected in the SDKs as two modules: `payments` and `agentic`.

```javascript Node.js theme={null}
import OpenFi from "@openfi/sdk";

const client = new OpenFi({ apiKey: process.env.OPENFI_API_KEY });

// One-time payment
await client.payments.create({ amount: 2500, currency: "USD" });

// Agentic recurring debit
const mandate = await client.agentic.mandates.create({ /* ... */ });
const sessionKey = await client.agentic.sessionKeys.create({ mandateId: mandate.id });
await client.agentic.debitPulls.create({ sessionKeyId: sessionKey.id, amount: 50 });
```

```python Python theme={null}
from openfi import OpenFi

client = OpenFi(api_key="OPENFI_API_KEY")

# One-time payment
client.payments.create(amount=2500, currency="USD")

# Agentic recurring debit
mandate = client.agentic.mandates.create(...)
session_key = client.agentic.session_keys.create(mandate_id=mandate.id)
client.agentic.debit_pulls.create(session_key_id=session_key.id, amount=50)
```

## Settlement chains

Every OpenFi call settles on **Stellar** or **Solana**. OpenFi routes internally. You never set the chain, and payment and debit pull responses report where each one settled.

> **[Quickstart](https://docs.openfi.co/quickstart.md)**
>
> Get a testnet key and make your first call.

> **[Authentication](https://docs.openfi.co/authentication.md)**
>
> How API keys and signing work.


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