Recouvrement
Conçue pour alimenter des moteurs d’alerte précoce, des agents IA et des relances automatisées.
Vue d’ensemble
L’API de recouvrement est un endpoint analytique de lecture en masse, conçu spécifiquement pour les flux de récupération des créances. Au lieu de vous obliger à télécharger des milliers de devis et à calculer les dates à la main, Cord effectue côté backend le calcul complet de l’ancienneté (aging) et des soldes.
Cet endpoint est idéal pour être consommé par une tâche cron (node-cron ou GitHub Actions) afin de déclencher des relances par SMS, ou pour alimenter un tableau de bord Power BI.
Récupérer l’état du portefeuille
L’endpoint GET /api/v1/cobranza renvoie un résumé de référence de la santé financière de l’organisation.
Nécessite l’offre Professionnel ou supérieure. Le recouvrement est une fonctionnalité payante. Sans l’offre requise, l’endpoint répond 402 Payment Required avec code: "subscription_required" au lieu des données — voir Gestion des erreurs.
Requête :
curl -X GET "https://cordhq.app/api/v1/cobranza" \
-H "Authorization: Bearer sk_live_tU..."
Réponse (instantané analytique) :
La réponse est structurée pour un usage immédiat et retire, par sécurité, le token public secret de chaque créance — le publier dans une liste transformerait n’importe quelle clé en lecture seule en distributeur de liens de paiement. Chaque total est le total du devis dans sa propre devise de vente, sans conversion ; la réponse n’indique pas la devise de chaque créance. resumen, aging et clientes additionnent ces totaux tels quels : si votre entreprise établit des devis dans plusieurs devises, ces sommes mélangent les devises. Le portefeuille inclut les devis approuvés ou facturés (approved, invoiced) qui ne sont pas des forfaits mensuels récurrents ; les factures de Cord Invoicing se consultent avec l’API des factures.
{
"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 est un tableau de 4 tranches fixes, et non un objet indexé par plage de jours : vigente (pas encore échu), d30 (1 à 30 jours de retard), d60 (31 à 60) et d60p (plus de 60). Dans items, status est l’état réel du devis (approved ou invoiced) ; lorsqu’il est échu, overdue vaut true et diasVencido compte les jours.