Pular para o conteúdo

Cobrança

Projetada para alimentar mecanismos de alerta precoce, agentes de IA e lembretes automatizados.

Visão geral

A API de Cobrança é um endpoint analítico e de leitura em massa projetado especificamente para fluxos de recuperação. Em vez de obrigar você a baixar milhares de orçamentos e calcular datas manualmente, o Cord faz no backend o cálculo completo de envelhecimento (aging) e de saldos.

Este endpoint é perfeito para ser consumido por um job Cron (node-cron ou Github Actions) que dispara lembretes por SMS, ou para alimentar um painel do PowerBI.

Recuperar o status da carteira

O endpoint GET /api/v1/cobranza devolve um resumo mestre da saúde financeira da organização.

Exige o plano Profissional ou superior. A cobrança é um recurso pago. Sem o plano exigido, o endpoint responde 402 Payment Required com code: "subscription_required" em vez de dados — veja Tratamento de erros.

Requisição:

curl -X GET "https://cordhq.app/api/v1/cobranza" \
     -H "Authorization: Bearer sk_live_tU..."

Resposta (snapshot analítico):

A resposta é estruturada para uso imediato e, por segurança, remove o token público secreto de cada conta — publicá-lo em uma listagem transformaria qualquer chave somente leitura em um distribuidor de links de pagamento. Cada total é o total do orçamento na sua própria moeda de venda, sem conversão; a resposta não inclui a moeda de cada conta. resumen, aging e clientes somam esses totais como estão, então, se o seu negócio cria orçamentos em mais de uma moeda, essas somas misturam moedas. A carteira inclui os orçamentos aprovados ou faturados (approved, invoiced) que não são mensalidades recorrentes; as faturas do Cord Invoicing são consultadas com a API de Faturas.

{
  "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": "Not yet due", "monto": 300000, "n": 12, "color": "#3b82f6" },
      { "key": "d30", "label": "1–30 days", "monto": 50000, "n": 6, "color": "#f59e0b" },
      { "key": "d60", "label": "31–60 days", "monto": 20000, "n": 3, "color": "#f97316" },
      { "key": "d60p", "label": "60+ days", "monto": 80000, "n": 3, "color": "#ef4444" }
    ],
    "items": [
      {
        "id": "2a9d8e4f-6b1c-4d7a-9e3f-5c8b1a2d4e6f",
        "folio": "COT-00104",
        "empresa": "Stark Industries",
        "clienteId": "8f7b2c1e-4d3a-4b9f-a6e2-1c5d7e9f0a3b",
        "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 é um array de 4 faixas fixas, não um objeto por intervalo de dias: vigente (ainda não venceu), d30 (de 1 a 30 dias de atraso), d60 (de 31 a 60) e d60p (mais de 60). status em items é o status real do orçamento (approved ou invoiced); se estiver vencido, overdue vem como true e diasVencido conta os dias.