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

# Upload attachment

> Upload files to Vercel Blob for transactions

## POST `/api/upload`

Uploads a file and returns a public blob URL. Requires a signed-in user session.

<ParamField query="transactionType" type="string">
  Optional type for attachments (e.g. `offramp`).
</ParamField>

<ParamField query="transactionId" type="string">
  Optional transaction ID for attachment scoping.
</ParamField>

### Request

```bash theme={null}
curl -X POST "https://0.finance/api/upload?transactionType=offramp&transactionId=uuid" \
  -H "Cookie: your-session-cookie" \
  -F "file=@invoice.pdf"
```

### Response

```json theme={null}
{
  "url": "https://.../invoice.pdf",
  "filename": "invoice.pdf",
  "contentType": "application/pdf",
  "fileSize": 83921
}
```

<Info>
  File size limit is 10MB. Allowed types: PDF, images, and text files.
</Info>
