> ## 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.

# Create a debit pull

> Execute a single pull against an active session key.

This is the endpoint an autonomous agent calls to actually move money: a single execution against an active [session key](https://docs.openfi.co/api-reference/agentic/create-session-key.md), enforced against the on-chain Allowance State Machine rather than a static approval.

> [!NOTE]
>
> GBP: recurring pulls work with supported banks. For other banks, the call returns `422 recurring_unsupported_by_bank`. Use a one-time payment instead. See [Supported Rails](https://docs.openfi.co/essentials/supported-rails.md).

### Body Parameters

**session\_key\_id** `string` *required*

The session key authorizing this pull.

**amount** `number` *required*

Must be within the session key's remaining allowance for the current epoch.

**reference** `string`

Free-text reference, useful for reconciling against agent task logs.

### Response

**id** `string`

Debit pull ID, prefixed `dp_`.

**status** `string`

`pending`, `settled`, or `failed`.

**remaining\_allowance** `number`

Remaining allowance on the session key for the current epoch, after this pull.

**settlement** `object`

**properties**

**chain** `string`

`stellar` or `solana`. Set by OpenFi.

**tx\_hash** `string`

On-chain transaction hash, once settled.

```bash cURL theme={null}
curl https://api.openfi.co/v1/debit-pulls \
  -H "Authorization: Bearer $OPENFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session_key_id": "sk_01HZZ...",
    "amount": 12.50,
    "reference": "task-4471-api-lookup"
  }'
```

```json 200 theme={null}
{
  "id": "dp_01HA0...",
  "status": "settled",
  "amount": 12.50,
  "remaining_allowance": 37.50,
  "settlement": {
    "chain": "solana",
    "tx_hash": "5Kq9..."
  }
}
```

```json 403 over velocity limit theme={null}
{
  "error": {
    "type": "invalid_request_error",
    "code": "velocity_limit_exceeded",
    "message": "Requested amount exceeds remaining allowance (12.00) for the current epoch."
  }
}
```


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