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

# Overview

> Card-linking API for linking consumer payment cards to programs and offers, exposing cards, transactions, programs, brands, locations, offers, and webhooks operations.

Use **Fidel** through Corsair: one client, typed API calls.

The API key is your Fidel secret key (`sk_test_…` or `sk_live_…`). A test key only sees test data.

List operations return up to `limit` items (100 by default). When a response has a `last` cursor there is another page: pass `JSON.stringify(last)` as `start` on the next call. On `mid-insights.listMidInsights` the cursor is already a string, so pass it unchanged.

The plugin does not link cards. Cards are linked with Fidel's own SDKs, which keep card numbers off your servers, and the plugin works with cards once they are linked.

**What you get:**

* 55 typed API operations

## Setup

**1. Install**

```bash npm theme={null}
npm install corsair @corsair-dev/fidel better-sqlite3
npm install --save-dev @types/better-sqlite3
```

```bash yarn theme={null}
yarn add corsair @corsair-dev/fidel better-sqlite3
yarn add --dev @types/better-sqlite3
```

```bash pnpm theme={null}
pnpm install corsair @corsair-dev/fidel better-sqlite3
pnpm install --save-dev @types/better-sqlite3
```

```bash bun theme={null}
bun add corsair @corsair-dev/fidel better-sqlite3
bun add --dev @types/better-sqlite3
```

**2. Add the plugin**

```ts corsair.ts theme={null}
import Database from 'better-sqlite3';
import { createCorsair } from 'corsair';
import { fidel } from '@corsair-dev/fidel';

export const corsair = createCorsair({
	plugins: [
		fidel(),
	],
	database: new Database('corsair.db'),
	kek: process.env.CORSAIR_KEK!,
	multiTenancy: true,
	hub: {
		projectApiKey: process.env.CORSAIR_API_KEY!,
		signingSecret: process.env.CORSAIR_SIGNING_SECRET!,
	},
});
```

With `multiTenancy: true`, scope calls with `corsair.withTenant(id)`. See [Quick start](https://docs.corsair.dev/quick-start.md) for KEK + Hub keys, and [Multi-tenancy](https://docs.corsair.dev/concepts/multi-tenancy.md) for account isolation.

**3. Choose authentication**

> [tab] API Key (Recommended)
>
> No setup required yet. When you make your first request as a tenant, Corsair prompts for the API key.
>
> ```ts theme={null}
> fidel()
> ```
>
> More: [API Key](https://docs.corsair.dev/concepts/api-key)

**4. Connect a tenant**

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see [Connect / OAuth](https://docs.corsair.dev/management/connect).

```ts theme={null}
const { connectUrl } = await corsair.manage.connect.createLink({
	plugin: 'fidel',
	tenantId: 'acme',
});
// redirect the user's browser to connectUrl
```

## Example API calls

**List programs**

```ts theme={null}
const tenant = corsair.withTenant('acme');
await tenant.fidel.api.programs.listPrograms({});
```

**Create a brand**

```ts theme={null}
const tenant = corsair.withTenant('acme');
await tenant.fidel.api.brands.createBrand({ name: 'Acme Coffee' });
```

See the full list on the [API](https://docs.corsair.dev/plugins/fidel/api.md) page.

## What's next

> [card] [API reference](https://docs.corsair.dev/plugins/fidel/api.md)
>
> Every `fidel.api.*` operation with input and output types.

> [card] [Connect / OAuth](https://docs.corsair.dev/management/connect)
>
> createLink, Hub delivery, and tenant connect flows.

> [card] [Use with agents](https://docs.corsair.dev/mcp-adapters/mcp-adapters)
>
> Expose this plugin's operations as MCP tools.


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