Listado de objetivos del Business Plan frente a la realidad
accounting:cashflow.readhttps://api.holded.com/api/v2/business-plan/goalsDevuelve los objetivos del Business Plan de la cuenta autenticada, con una fila por cuenta contable desglosada por mes. Cada mes incluye tanto el objetivo (la meta que la cuenta se marcó) como el valor real (lo que realmente ocurrió, según el libro mayor) para el mismo periodo, de forma que se pueden comparar sin una segunda llamada. Úsalo cuando el usuario quiera comparar los objetivos del Business Plan de un cliente con lo que realmente ocurrió, por ejemplo para preparar una revisión mensual. Hoy solo se admite tree=profit_and_loss; los objetivos de Cashflow aún no están disponibles en este endpoint. Devuelve una lista vacía, no un error, cuando la cuenta no tiene Business Plan configurado o no hay objetivos en el rango solicitado.
Parámetros
Parámetros de consulta
string<date>obligatorioInicio del rango a consultar (inclusive, se ajusta al primer día de su mes)
string<date>obligatorioFin del rango a consultar (inclusive — cualquier día dentro del último mes deseado)
stringobligatorioÁrbol de objetivos a consultar. Hoy solo se admite profit_and_loss
"profit_and_loss"stringopcionalEscenario del Business Plan a consultar — ver GET /api/v2/business-plan/scenarios. Por defecto, el escenario principal de la cuenta
stringopcionalRestringe la respuesta a una única cuenta contable. Omítelo para devolver todas las cuentas del árbol
booleanopcional= falseSi es true, excluye las cuentas contables sin ningún objetivo en el rango solicitado. Sin él, un plan contable con pocos objetivos devuelve mayormente filas con goal: null — esto las filtra antes de paginar, para no gastar páginas en cuentas vacías
stringopcionalCursor opaco para paginación
integeropcional= 50Número máximo de cuentas contables a devolver por página. Por defecto 50, máximo 200
Petición
import requests
url = "https://api.holded.com/api/v2/business-plan/goals?start_date=2026-01-01&end_date=2026-12-31&tree=profit_and_loss"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
}
response = requests.get(url, headers=headers)
print(response.json())Respuestas
Respuesta
{
"items": [
{
"accounting_account_id": "507f1f77bcf86cd799439011",
"accounting_account_number": 70500001,
"accounting_account_name": "Ventas",
"months": [
{
"month": "...",
"goal": "...",
"actual": "..."
}
]
}
],
"cursor": "string",
"has_more": true
}Respuestas exitosas
200Listado de objetivos del Business Plan frente a la realidad, por cuenta contableapplication/jsonIdentifier of the accounting account
Chart of accounts number
Name of the accounting account
One entry per month in the requested range, always present even when both goal and actual are empty for that month
Opaque cursor pointing to the next page. Pass as `cursor` in the next request. Null when there is no next page.
Whether more pages are available after this one
Respuestas de error
400Árbol, rango de fechas o identificador inválidoapplication/json401API key inválida o no proporcionadaapplication/json403Permisos insuficientesapplication/json404Escenario no encontradoapplication/json429Límite de solicitudes excedidoapplication/json