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

# Client Types

> Type definitions for payment handlers and execers

# client

## Type Aliases

### PaymentExecer

> **PaymentExecer** = `object`

Defined in: [packages/types/src/client.ts:21](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L21)

Payment execer - the primary interface for payment execution.
Uses requirements with the `amount` field.

#### Properties

##### requirements

> **requirements**: [`x402PaymentRequirements`](/api/types.src.Namespace.x402v2#x402paymentrequirements)

Defined in: [packages/types/src/client.ts:22](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L22)

#### Methods

##### exec()

> **exec**(): `Promise`\<[`PaymentExecResult`](#paymentexecresult)>

Defined in: [packages/types/src/client.ts:23](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L23)

###### Returns

`Promise`\<[`PaymentExecResult`](#paymentexecresult)>

***

### ~~PaymentExecerV1~~

> **PaymentExecerV1** = `object`

Defined in: [packages/types/src/client.ts:46](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L46)

#### Deprecated

Use PaymentExecer instead

#### Properties

##### ~~requirements~~

> **requirements**: [`x402PaymentRequirements`](/api/types.src.Namespace.x402#x402paymentrequirements)

Defined in: [packages/types/src/client.ts:47](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L47)

#### Methods

##### ~~exec()~~

> **exec**(): `Promise`\<[`PaymentExecResult`](#paymentexecresult)>

Defined in: [packages/types/src/client.ts:48](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L48)

###### Returns

`Promise`\<[`PaymentExecResult`](#paymentexecresult)>

***

### PaymentExecResult

> **PaymentExecResult** = `object`

Defined in: [packages/types/src/client.ts:13](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L13)

#### Properties

##### payload

> **payload**: `object`

Defined in: [packages/types/src/client.ts:14](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L14)

***

### PaymentHandler()

> **PaymentHandler** = (`context`, `accepts`) => `Promise`\<[`PaymentExecer`](#paymentexecer)\[]>

Defined in: [packages/types/src/client.ts:30](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L30)

Payment handler - the primary interface for payment handlers.
Receives requirements and returns execers.

#### Parameters

##### context

[`RequestContext`](#requestcontext)

##### accepts

[`x402PaymentRequirements`](/api/types.src.Namespace.x402v2#x402paymentrequirements)\[]

#### Returns

`Promise`\<[`PaymentExecer`](#paymentexecer)\[]>

***

### ~~PaymentHandlerV1()~~

> **PaymentHandlerV1** = (`context`, `accepts`) => `Promise`\<[`PaymentExecerV1`](#paymentexecerv1)\[]>

Defined in: [packages/types/src/client.ts:63](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L63)

#### Parameters

##### context

[`RequestContext`](#requestcontext)

##### accepts

[`x402PaymentRequirements`](/api/types.src.Namespace.x402#x402paymentrequirements)\[]

#### Returns

`Promise`\<[`PaymentExecerV1`](#paymentexecerv1)\[]>

#### Deprecated

Use PaymentHandler instead

***

### RequestContext

> **RequestContext** = `object`

Defined in: [packages/types/src/client.ts:9](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L9)

#### Properties

##### request

> **request**: `RequestInfo` | `URL`

Defined in: [packages/types/src/client.ts:10](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L10)

## Functions

### adaptPaymentHandlerV1ToV2()

> **adaptPaymentHandlerV1ToV2**(`handler`, `translateNetwork`): [`PaymentHandler`](#paymenthandler)

Defined in: [packages/types/src/client.ts:91](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L91)

Adapt a v1 PaymentHandlerV1 to the PaymentHandler interface.

This allows existing v1 payment handlers to be used with v2 infrastructure.
Requirements are converted from v2 to v1 before being passed to the handler,
and the resulting execers are wrapped to convert requirements back to v2.

Accepts both spec-compliant handlers (with optional mimeType) and legacy
handlers (with required mimeType) for backwards compatibility.

#### Parameters

##### handler

The v1 payment handler to adapt

[`PaymentHandlerV1`](#paymenthandlerv1) | `PaymentHandlerV1Strict`

##### translateNetwork

[`NetworkTranslator`](/api/types.src.Namespace.x402Adapters#networktranslator)

Function to translate legacy network IDs to CAIP-2

#### Returns

[`PaymentHandler`](#paymenthandler)

***

### adaptPaymentHandlerV2ToV1()

> **adaptPaymentHandlerV2ToV1**(`handler`, `translateNetwork`): [`PaymentHandlerV1`](#paymenthandlerv1)

Defined in: [packages/types/src/client.ts:129](https://github.com/faremeter/faremeter/blob/main/packages/types/src/client.ts#L129)

Adapt a PaymentHandler to the v1 PaymentHandlerV1 interface.

This allows v2 payment handlers to be used with v1 infrastructure.

#### Parameters

##### handler

[`PaymentHandler`](#paymenthandler)

The v2 payment handler to adapt

##### translateNetwork

[`NetworkTranslator`](/api/types.src.Namespace.x402Adapters#networktranslator)

Function to translate legacy network IDs to CAIP-2

#### Returns

[`PaymentHandlerV1`](#paymenthandlerv1)
