---
title: "Get Inventory Costs"
method: GET
path: "/api/reports/inventory/costs"
tags: ["Reports"]
---

# Get Inventory Costs

`GET /api/reports/inventory/costs`

Inventário com custos: the vehicles in stock at the end of the period,
each with EVERY cost movement (purchase + expenses, one row per movement
with its own invoice reference) and a server-computed subtotal — the JSON
twin of the monthly email's "Custos" sheet
(inventory_report.flatten_inventory_costs is the shared core).

Single as-of period: the cutoff is end of max(mes) of `ano`. Do NOT fan
this out per year and merge client-side — movements carry only an UPPER
date bound, so responses for different years overlap and a merge
double-counts every euro. Totals come computed from here; the FE renders
them and must not re-sum floats in JS.
NOT cached — same reasoning as /detail (see the top of this file), and
this response is strictly larger.

## Query parameters

- `mes` integer[] — Month(s); uses max month as end-of-period cutoff
- `ano` integer, required
- `consignado` integer, required
- `ponto_venda_id` integer[]

## Headers

- `x-api-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/multigest/apis/multigest-protected-api.md) · [All operations](https://skmtc.dev/multigest/apis/multigest-protected-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/multigest/multigest-protected-api/revisions/4b44eb76b3ee/schema)
