Cobranza
Diseñada para alimentar motores de alertas tempranas, agentes de IA y recordatorios automatizados.
Descripción General
La API de Cobranza es un endpoint analítico y de lectura masiva diseñado específicamente para flujos de trabajo de recuperación. En lugar de forzarte a descargar miles de cotizaciones y calcular fechas manualmente, Cord realiza el cálculo completo de antigüedad (Aging) y saldos en el backend.
Este endpoint es perfecto para ser consumido por un trabajo Cron (node-cron o Github Actions) para disparar recordatorios SMS, o para alimentar un dashboard de PowerBI.
Recuperar Estado de Cartera
El endpoint GET /api/v1/cobranza devuelve un resumen maestro de la salud financiera de la organización.
Requiere plan Scale o superior. Cobranza es una capacidad de pago (Regla 17). Sin el plan requerido, el endpoint responde 402 Payment Required con code: "subscription_required" en vez de datos — ver Manejo de Errores.
Petición:
curl -X GET "https://cordhq.app/api/v1/cobranza" \
-H "Authorization: Bearer sk_live_tU..."
Respuesta (Snapshot Analítico):
La respuesta está estructurada para uso inmediato, retirando el token público secreto de cada cuenta por seguridad — publicarlo en un listado convertiría cualquier llave de solo lectura en un repartidor de links de cobro. Los montos se expresan en la divisa contable de la organización.
{
"data": {
"resumen": {
"totalPorCobrar": 450000,
"totalVencido": 150000,
"totalVigente": 300000,
"nPorCobrar": 24,
"nVencidas": 12,
"nClientes": 9,
"nExcedidos": 1,
"interesTotal": 3200,
"interesPct": 3,
"avgDelay": 6,
"esperado7": 80000,
"esperado30": 220000
},
"aging": [
{ "key": "vigente", "label": "Por vencer", "monto": 300000, "n": 12, "color": "#3b82f6" },
{ "key": "d30", "label": "1–30 días", "monto": 50000, "n": 6, "color": "#f59e0b" },
{ "key": "d60", "label": "31–60 días", "monto": 20000, "n": 3, "color": "#f97316" },
{ "key": "d60p", "label": "+60 días", "monto": 80000, "n": 3, "color": "#ef4444" }
],
"items": [
{
"id": "qte_...",
"folio": "COT-00104",
"empresa": "Stark Industries",
"clienteId": "cus_...",
"status": "invoiced",
"total": 5000,
"overdue": true,
"diasVencido": 14,
"interes": 42
}
],
"clientes": [
{
"empresa": "Stark Industries",
"saldo": 55000,
"limite": 500000,
"n": 3,
"excede": false,
"uso": 11
}
]
}
}
aging es un arreglo de 4 cubetas fijas (vigente, d30, d60, d60p), no un objeto por rango de días. status en items es el estado real de la cotización/factura (approved, invoiced…); si está vencida, overdue viene en true y diasVencido cuenta los días.