Planes
Un plan es un presupuesto en una moneda: una lista de partidas de ingreso y gasto que se repiten con cierta frecuencia.
El objeto plan
Campos
iduuid- Identificador del plan.
namestring- Nombre, hasta 100 caracteres.
currencystring- Moneda del plan. No cambia después de crearlo.
accountIduuid | null- Cuenta a la que caen los recordatorios de la agenda. Sin cuenta no hay recordatorios.
positioninteger- Orden en la lista.
itemsPlanItem[]- Solo en GET /plans/:id: las partidas del plan.
La partida
Campos de una partida
kindstring- INGRESO o GASTO.
namestring- Nombre, hasta 100 caracteres.
amountMinorinteger- Monto por ocurrencia en céntimos. 0 si la partida usa entries con montos propios.
frequencystring- MENSUAL, QUINCENAL, SEMANAL, PERSONALIZADO o ANUAL.
timesPerMonthinteger- Veces al mes, para PERSONALIZADO. Por defecto 1.
dayOfMonthinteger | null- Día del mes, 1 a 31.
dayOfMonth2integer | null- Segundo día, solo para QUINCENAL.
dayOfWeekinteger | null- Día de la semana para SEMANAL: 1 es lunes, 7 domingo.
startYearMonthinteger | null- Mes de inicio como AAAAMM, por ejemplo 202607.
endYearMonthinteger | null- Mes final como AAAAMM. null = no termina.
entriesobject[]- Montos y días distintos dentro del mes: { amountMinor, dayOfMonth }.
categoryIdstring | null- Categoría de la partida.
enabledboolean- Si cuenta en el plan.
remindboolean- Si genera recordatorios en la agenda.
Un gasto de una sola vez es una partida MENSUAL con el mismo startYearMonth y endYearMonth.
Listar planes
https://api.tuplatica.app/api/platica/plansPlan: ProPermiso de la key: Solo lectura o superior
Devuelve tus planes sin sus partidas, ordenados por posición.
curl "https://api.tuplatica.app/api/platica/plans" \
-H "Authorization: Bearer $PLATICA_API_KEY"Respuesta 200
[
{
"id": "8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f",
"name": "Mes normal",
"currency": "VES",
"position": 0,
"accountId": "6f1c2a9e-8b4d-4c1e-9a7f-2d5e8b3c1a40",
"createdAt": "2026-07-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
}
]Consultar un plan
https://api.tuplatica.app/api/platica/plans/:idPlan: ProPermiso de la key: Solo lectura o superior
Devuelve el plan con todas sus partidas en items.
curl "https://api.tuplatica.app/api/platica/plans/8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f" \
-H "Authorization: Bearer $PLATICA_API_KEY"Respuesta 200
{
"id": "8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f",
"name": "Mes normal",
"currency": "VES",
"position": 0,
"accountId": "6f1c2a9e-8b4d-4c1e-9a7f-2d5e8b3c1a40",
"createdAt": "2026-07-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z",
"items": [
{
"id": "5e7f9a1b-3c5d-4e7f-8a9b-1c3d5e7f9a2b",
"planId": "8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f",
"kind": "GASTO",
"name": "Alquiler",
"categoryId": "expense-housing",
"categorySource": "manual",
"amountMinor": 40000,
"frequency": "MENSUAL",
"timesPerMonth": 1,
"dayOfMonth": 5,
"dayOfMonth2": null,
"dayOfWeek": null,
"icon": "",
"startYearMonth": 202607,
"endYearMonth": null,
"enabled": true,
"remind": true,
"entries": [],
"installments": []
}
]
}Crear un plan
https://api.tuplatica.app/api/platica/plansPlan: ProPermiso de la key: Lectura y escritura
Cuerpo
namestringobligatorio- Hasta 100 caracteres.
currencystringobligatorio- VES, USD, USDT, EUR, BRL o COP.
accountIduuid | null- Cuenta tuya para los recordatorios.
positioninteger- Por defecto 0.
iduuid- Tu propio id. Reenviarlo devuelve el plan existente.
curl -X POST "https://api.tuplatica.app/api/platica/plans" \
-H "Authorization: Bearer $PLATICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mes normal",
"currency": "VES",
"accountId": "6f1c2a9e-8b4d-4c1e-9a7f-2d5e8b3c1a40"
}'Respuesta 201
{
"id": "8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f",
"name": "Mes normal",
"currency": "VES",
"position": 0,
"accountId": "6f1c2a9e-8b4d-4c1e-9a7f-2d5e8b3c1a40",
"createdAt": "2026-07-01T12:00:00.000Z",
"updatedAt": "2026-10-01T12:00:00.000Z"
}Editar o eliminar un plan
https://api.tuplatica.app/api/platica/plans/:idPlan: ProPermiso de la key: Lectura y escritura
Acepta name, position y accountId. Envía "accountId": null para desvincular la cuenta. La moneda no se puede cambiar.
curl -X PATCH "https://api.tuplatica.app/api/platica/plans/8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f" \
-H "Authorization: Bearer $PLATICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mes con vacaciones"
}'https://api.tuplatica.app/api/platica/plans/:idElimina el plan y deja de mostrarlo en la app. Responde 204 sin cuerpo.
Agregar una partida
https://api.tuplatica.app/api/platica/plans/:planId/itemsPlan: ProPermiso de la key: Lectura y escritura
Cuerpo
kindstringobligatorio- INGRESO o GASTO.
namestringobligatorio- Hasta 100 caracteres.
amountMinorintegerobligatorio- Céntimos por ocurrencia, o 0 si usas entries.
frequencystring- Por defecto MENSUAL.
dayOfMonth, dayOfMonth2, dayOfWeekinteger- Según la frecuencia.
timesPerMonthinteger- Para PERSONALIZADO, 1 a 31.
startYearMonth, endYearMonthinteger- Vigencia como AAAAMM.
entriesobject[]- Montos por día dentro del mes. Cada uno: amountMinor (o null) y dayOfMonth (o null).
categoryIdstring- Categoría que coincida con el tipo. Si la omites, se sugiere a partir del nombre.
enabledboolean- Por defecto true.
remindboolean- Por defecto false. Con true, aparece en la agenda.
iduuid- Tu propio id.
curl -X POST "https://api.tuplatica.app/api/platica/plans/8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f/items" \
-H "Authorization: Bearer $PLATICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "GASTO",
"name": "Alquiler",
"amountMinor": 40000,
"frequency": "MENSUAL",
"dayOfMonth": 5,
"startYearMonth": 202607,
"remind": true
}'Respuesta 201
{
"id": "5e7f9a1b-3c5d-4e7f-8a9b-1c3d5e7f9a2b",
"planId": "8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f",
"kind": "GASTO",
"name": "Alquiler",
"categoryId": "expense-housing",
"categorySource": "manual",
"amountMinor": 40000,
"frequency": "MENSUAL",
"timesPerMonth": 1,
"dayOfMonth": 5,
"dayOfMonth2": null,
"dayOfWeek": null,
"icon": "",
"startYearMonth": 202607,
"endYearMonth": null,
"enabled": true,
"remind": true,
"entries": [],
"installments": []
}Las cuotas ya no van en planes
Enviar installments responde 409 con código PLAN_INSTALLMENTS_DEPRECATED. Para compras a crédito, préstamos o ventas fiadas usa obligaciones.
Editar o eliminar una partida
https://api.tuplatica.app/api/platica/plan-items/:idPlan: ProPermiso de la key: Lectura y escritura
Mismos campos que al crear, todos opcionales. Si envías entries, reemplazan la lista completa. "categoryId": null vuelve a sugerir la categoría desde el nombre.
curl -X PATCH "https://api.tuplatica.app/api/platica/plan-items/5e7f9a1b-3c5d-4e7f-8a9b-1c3d5e7f9a2b" \
-H "Authorization: Bearer $PLATICA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amountMinor": 45000
}'https://api.tuplatica.app/api/platica/plan-items/:idElimina la partida. Responde 204 sin cuerpo.
Proyección mes a mes
https://api.tuplatica.app/api/platica/plans/:id/forecastPlan: ProPermiso de la key: Solo lectura o superior
Calcula el neto y el acumulado del plan para los próximos meses, con las mismas reglas que la app.
Parámetros de consulta
fromintegerobligatorio- Mes inicial como AAAAMM.
monthsintegerobligatorio- Cuántos meses proyectar, 1 a 60.
curl "https://api.tuplatica.app/api/platica/plans/8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f/forecast?from=202611&months=3" \
-H "Authorization: Bearer $PLATICA_API_KEY"Respuesta 200
[
{
"yearMonth": 202611,
"netMinor": 160000,
"cumulativeMinor": 160000,
"endingNames": []
},
{
"yearMonth": 202612,
"netMinor": 160000,
"cumulativeMinor": 320000,
"endingNames": [
"Curso de inglés"
]
},
{
"yearMonth": 202701,
"netMinor": 185000,
"cumulativeMinor": 505000,
"endingNames": []
}
]endingNames lista las partidas que terminan ese mes.
Flujo diario
https://api.tuplatica.app/api/platica/plans/:id/daily-flowPlan: ProPermiso de la key: Solo lectura o superior
Lista cada ocurrencia del mes con su fecha y el saldo que va quedando.
Parámetros de consulta
yearMonthintegerobligatorio- Mes como AAAAMM.
startBalanceMinorintegerobligatorio- Saldo con el que empieza el mes, en céntimos.
curl "https://api.tuplatica.app/api/platica/plans/8c2d4e6f-1a3b-4c5d-9e7f-0a2b4c6d8e1f/daily-flow?yearMonth=202611&startBalanceMinor=100000" \
-H "Authorization: Bearer $PLATICA_API_KEY"Respuesta 200
[
{
"occurrence": {
"date": "2026-11-01",
"amountMinor": 200000,
"itemName": "Salario",
"kind": "INGRESO"
},
"runningBalanceMinor": 300000
},
{
"occurrence": {
"date": "2026-11-05",
"amountMinor": 40000,
"itemName": "Alquiler",
"kind": "GASTO"
},
"runningBalanceMinor": 260000
}
]