---
title: "Case proforma (binary CSV/PDF) · 0 credits"
method: GET
path: "/api/v1/billing/proforma/{caseId}"
tags: ["Billing"]
---

# Case proforma (binary CSV/PDF) · 0 credits

`GET /api/v1/billing/proforma/{caseId}`

## Request

- Base URL: `https://legal.nexusquantum.legal`
- URL: `https://legal.nexusquantum.legal/api/v1/billing/proforma/{caseId}`
- Auth: HTTP bearer

Generates the hours proforma for one of your own cases (`cases.eq(user_id, userId)` → 404 if not yours; the case's `time_entries`). Binary `text/csv` or `application/pdf` with `Content-Disposition` (body-stream passthrough). Thin loopback to `/api/billing/proforma/{caseId}` (which adopts `requireUser`, a session+Bearer superset). Client access to THEIR OWN data (GDPR Art. 15), 0 credits. Scope: mcp | *. Not exposed as an MCP tool (binary).

## Path parameters

- `caseId` string, uuid, required

## Query parameters

- `format` 'csv' | 'pdf'
- `onlyUnbilled` string
- `locale` string

## Response `200`

Binary document (CSV or PDF).

## Other responses

- `404`: NOT_FOUND — case not found, not yours, or with no hours.

---

[API](https://skmtc.dev/nexusquantum/apis/nexus-legal-api.md) · [All operations](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nexusquantum/apis/nexus-legal-api/revisions/4084d8d4eb0b?raw)
