Budget versus actual
Módulo Reports
GET/reports/budget-vs-actualreports.budgetVsActual
Revised budget (working budget plus approved change orders) against actual spend, grouped by one dimension. Unpriced lines stay out of each sum and are counted in `unpriced_count`. A rule that refuses the request returns 422 with `refusal` and `reason`.
- Requiere la capacidad finance.budget.read.
- Alcances de OAuth: finance.
- Estados de error: 400, 401, 422, 429. Los errores son detalles de problema RFC 9457.
Parámetros de ruta y de consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| project_id | string (uuid) | No | Only this project; every visible project when omitted. |
| dimension | "account" | "costCenter" | "department" | "urid" | "project" | No | Grouping dimension; defaults to account. |
Respuesta 200: ReportRowPage
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| data | array of ReportRow | Sí | Items on this page, in the documented default order. |
| next_cursor | string | null | Sí | Opaque cursor for the next page; null on the last page. |
{
"data": [
{
"dimension": "5400",
"budget": {
"total_minor": 1250000,
"currency": "USD",
"unpriced_count": 2
},
"actual": {
"total_minor": 1250000,
"currency": "USD",
"unpriced_count": 2
}
}
],
"next_cursor": null
}Ejemplos de código
curl -X GET "$XOS_BASE_URL/reports/budget-vs-actual" \
-H "Authorization: Bearer $XOS_API_KEY"const { data } = await xos.reports.budgetVsActual();response = xos.reports.budget_vs_actual()xos reports budget-vs-actual