---
title: "GET api/integration/v1/financial-reports/customer-billing/{customerId} Returns the FULL customer billing report including internal cost columns. Unlike BillingReportController (customer-facing; strips OVH + cost columns), this endpoint exposes the complete view: InternalCost, GrossProfit, GrossMarginPct. Mirrors BillingReportController.GetCustomerBillingReport() — same IBillingReportService call, same BillingReportRequest construction. startDate and endDate are required (not defaulted) to match the existing service contract. Requires: Finance role (or higher) + API key with AllowSensitiveData=true (if API-key auth). Columns: Customer, Project, Task, SubTask, BillingType, BillableHours, BillableAmount, EffectiveRate, InternalHours, InternalCost, GrossProfit, GrossMarginPct"
method: GET
path: "/api/integration/v1/financial-reports/customer-billing/{customerId}"
tags: ["Financial Reports"]
---

# GET api/integration/v1/financial-reports/customer-billing/{customerId} Returns the FULL customer billing report including internal cost columns. Unlike BillingReportController (customer-facing; strips OVH + cost columns), this endpoint exposes the complete view: InternalCost, GrossProfit, GrossMarginPct. Mirrors BillingReportController.GetCustomerBillingReport() — same IBillingReportService call, same BillingReportRequest construction. startDate and endDate are required (not defaulted) to match the existing service contract. Requires: Finance role (or higher) + API key with AllowSensitiveData=true (if API-key auth). Columns: Customer, Project, Task, SubTask, BillingType, BillableHours, BillableAmount, EffectiveRate, InternalHours, InternalCost, GrossProfit, GrossMarginPct

`GET /api/integration/v1/financial-reports/customer-billing/{customerId}`

## Request

- Base URL: `https://api.timix.ai`
- URL: `https://api.timix.ai/api/integration/v1/financial-reports/customer-billing/{customerId}`
- Auth: API key in header `X-Api-Key`

## Path parameters

- `customerId` string, required

## Query parameters

- `startDate` string, date
- `endDate` string, date
- `projectIds` string, nullable
- `billingType` string, nullable
- `includeTimeEntries` boolean

## Response `200`

- CustomerBillingReportView
  - `customerId` string
  - `customerName` string
  - `startDate` string, date
  - `endDate` string, date
  - `currency` string
  - `summary` BillingReportSummary
    - `totalBillableHours` number
    - `tmHours` number
    - `fixHours` number
    - `ovhHours` number
    - `tmRevenue` number
    - `fixedPriceRevenue` number
    - `totalRevenue` number
    - `invoicedRevenue` number
    - `previousPeriodRevenue` number, nullable
    - `percentChange` number, nullable
    - `timeEntryCount` integer
    - `activeProjectCount` integer
  - `projects` ReportProjectBillingView[]
    - `projectId` string
    - `projectName` string
    - `billingType` 'Unknown' | 'Fix' | 'TM' | 'OVH' | 'MIXED'
    - `totalHours` number
    - `totalAmount` number
    - `hourlyRate` number, nullable
    - `fixedPrice` number, nullable
    - `budgetAmount` number, nullable
    - `budgetUsedPercent` number
    - `budgetStatus` string
    - `currency` string
    - `tasks` ReportTaskBillingView[]
      - `taskId` string
      - `taskName` string
      - `totalHours` number
      - `totalAmount` number
      - `subTasks` ReportSubTaskBillingView[]
        - `subTaskId` string
        - `subTaskName` string
        - `billingType` 'Unknown' | 'Fix' | 'TM' | 'OVH' | 'MIXED'
        - `totalHours` number
        - `totalAmount` number
        - `hourlyRate` number, nullable
        - `timeEntries` ReportTimeEntryView[]
          - `id` string
          - `date` string, date
          - `userId` string
          - `userName` string
          - `hours` number
          - `rate` number, nullable
          - `amount` number
          - `notes` string
  - `budgetAlerts` ReportBudgetAlert[]
    - `projectId` string
    - `projectName` string
    - `alertType` string
    - `severity` string
    - `budgetAmount` number
    - `usedAmount` number
    - `usedPercent` number
    - `currency` string
    - `message` string
  - `generatedAt` string, date-time

---

[API](https://skmtc.dev/timix/apis/timix-ai-integration-api.md) · [All operations](https://skmtc.dev/timix/apis/timix-ai-integration-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timix/apis/timix-ai-integration-api/revisions/ff7f1b6d7479?raw)
