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

# Files

The file service handles file uploads and management. Use it to upload documents (identity verification, dispute evidence, etc.), list uploaded files, retrieve file details, and delete files. File uploads use multipart form data via the SDK's `postMultipart()` HTTP method.

```typescript theme={null}
import { createOakClient, createFileService } from '@oaknetwork/payments-sdk';

const client = createOakClient({ ... });
const files = createFileService(client);
```

## Methods

| Method           | Description         |
| ---------------- | ------------------- |
| `upload(file)`   | Upload a file       |
| `list(query?)`   | List uploaded files |
| `get(fileId)`    | Get a file by ID    |
| `delete(fileId)` | Delete a file       |

## Upload a file

```typescript theme={null}
const result = await files.upload(formData);

if (result.ok) {
  console.log('File ID:', result.value.data.id);
  console.log('URL:', result.value.data.url);
}
```

> The `upload()` method uses multipart form data. Pass a `FormData` object containing the file.

## List files

```typescript theme={null}
const result = await files.list({
  limit: 20,
  offset: 0,
});

if (result.ok) {
  for (const file of result.value.data) {
    console.log(`${file.id} — ${file.name} — ${file.size}`);
  }
}
```

## Get a file

```typescript theme={null}
const result = await files.get('file_abc123');

if (result.ok) {
  const file = result.value.data;
  console.log('Name:', file.name);
  console.log('Size:', file.size);
  console.log('URL:', file.url);
}
```

## Delete a file

```typescript theme={null}
const result = await files.delete('file_abc123');

if (result.ok) {
  console.log('File deleted');
}
```

## Response types

### UploadResponse

| Field        | Type     | Description        |
| ------------ | -------- | ------------------ |
| `id`         | `string` | File ID            |
| `name`       | `string` | File name          |
| `size`       | `number` | File size in bytes |
| `url`        | `string` | File URL           |
| `created_at` | `string` | ISO timestamp      |

### ListResponse

An array of file objects with `id`, `name`, `size`, `url`, and `created_at` fields.

### GetResponse

Same shape as `UploadResponse`.

### DeleteResponse

Confirmation of file deletion.
