Monitorizarea clienților existenți: cum îți construiești singur sistemul

Clienții vechi sunt cei pe care nu-i mai verifică nimeni. Un sistem simplu îi reverifică singur, fiecare sursă în ritmul ei, și îți arată doar ce s-a schimbat. Arhitectura, calendarul și costul.

Mihai Gabriel OanceaRedacția Bilanț API
Publicat
Timp de citire
6 min de citit
Cuvinte
1.029 cuvinte
O cameră de control cu mai multe monitoare și un operator.
O cameră de control cu mai multe monitoare și un operator. · Fotografie: ThisIsEngineering, Pexels
Cuprins
  1. Fiecare sursă cu ritmul ei
  2. Din ce e făcut sistemul
  3. Restanțele, în cod
  4. Dosarele
  5. Bilanțul, o dată pe an
  6. Cât costă, pe un exemplu
  7. Ce se întâmplă după alertă

Clientul pe care l-ai aprobat acum trei ani nu mai e aceeași firmă. Poate a intrat pe lista de restanțe, poate a încheiat anul pe pierdere, poate l-a dat în judecată un furnizor. Toate astea sunt publice cu luni înainte ca plățile către tine să înceapă să întârzie. Numai că la majoritatea firmelor verificarea se face o singură dată, la aprobare, iar apoi relația merge pe încredere.

Un sistem de monitorizare doar reverifică automat clienții și îți arată schimbările. N-ai nevoie de o platformă scumpă pentru asta. Îți trebuie un tabel, o sarcină programată și câteva reguli.

Manager de operațiuni care urmărește un tablou de bord pe un ecran mare
Fotografie: Fernando Narvaez, Pexels

Fiecare sursă cu ritmul ei

Cea mai scumpă greșeală pe care o văd e reverificarea zilnică a tuturor surselor pentru toți clienții. Plătești pentru date care nu s-au mișcat. Fiecare sursă se actualizează în ritmul ei, iar calendarul tău trebuie să-l urmeze:

SursăRutăSe actualizeazăRitm de reverificare
Profil fiscal/registru/firme/{cui}zilniclunar, plus înainte de facturi mari
Restanțe ANAF/fiscal/{cui}/restantetrimestrialdupă fiecare listă nouă
Bilanț și risc/bilant/{cui}/riscanualo dată pe an, după depunerea bilanțurilor
Dosare de instanță/dosare/{cui}periodictrimestrial, sau lunar pentru clienții mari

Rutele sunt relative la https://www.bilantapi.ro/api/v1.

Din ce e făcut sistemul

Totul pornește de la un tabel de portofoliu. Pentru fiecare client ții CUI-ul, expunerea curentă (cât îți datorează sau limita de credit) și, pentru fiecare sursă, ultimul rezultat salvat și data lui. Expunerea e importantă pentru că un client cu 5.000 de lei de încasat și unul cu 500.000 nu merită aceeași atenție.

Apoi ai câte o sarcină programată pentru fiecare sursă. Sarcina ia clienții a căror verificare e mai veche decât intervalul ales, cere datele noi și le compară cu cele salvate. API-ul nu trimite notificări, deci momentul reverificării îl alegi tu.

A treia piesă e detectorul de schimbări. Nu te interesează orice diferență, ci doar cele care mută riscul. Firma a devenit inactivă fiscal sau și-a schimbat situația juridică. A intrat pe lista de restanțe, sau restanța a crescut față de lista anterioară. Clasa de risc a coborât. A crescut numărul dosarelor în care e pârâtă.

Ultima piesă e raportul de excepții: o listă scurtă cu clienții la care s-a schimbat ceva important, cu motivul și expunerea. O trimiți echipei financiare o dată pe săptămână, pe email intern sau pe canalul de chat al echipei. Zece rânduri vor fi citite. Cinci sute, niciodată.

Restanțele, în cod

La restanțe, jumătate din muncă e deja făcută. Câmpul evolutie din dosar compară lista curentă cu cea anterioară și îți dă direcția, așa că detectorul iese foarte scurt. Exemplul e scris pentru sandbox, care cere o cheie API, deci un cont gratuit și fără card. Cererile de acolo nu consumă credite și primesc date fictive.

import os, requests

BAZA = "https://www.bilantapi.ro/api/sandbox/v1"
ANTETE = {"X-API-KEY": os.environ["BILANTAPI_KEY"]}

def verifica_restante(client):
    d = requests.get(f"{BAZA}/fiscal/{client['cui']}/restante",
                     headers=ANTETE, timeout=10).json()["data"]
    alerta = d["are_restante"] and (
        d["total_restant"] > client["restant_salvat"]
        or d["evolutie"]["directie"] in ("crestere", "noua"))
    client["restant_salvat"] = d["total_restant"]
    client["lista"] = d["publicare_curenta"]
    return alerta

Un truc care îți scade costul: compari publicare_curenta cu data salvată. Dacă sunt egale, n-a apărut listă nouă și nu mai are rost să reverifici restul portofoliului în trimestrul ăla.

Manager financiar care citește un raport scurt pe tabletă
Fotografie: https://kaboompics.com/, Pexels

Dosarele

Ruta de dosare îți dă totalurile gata calculate: sumar cu numărul de dosare (dosare) și câte sunt în curs (in_curs), apoi pe_calitate, pe_stadiu, pe_categorie și pe_ani. Pentru monitorizare mi-au ajuns întotdeauna două comparații: a crescut numărul dosarelor în curs și a crescut numărul dosarelor în care firma e pârâtă.

Totalurile acoperă toate dosarele firmei, nu doar pagina primită, deci poți cere pe_pagina=1. Costul rămâne 8 credite pe cerere. Când se declanșează una dintre comparații, un om deschide lista și hotărăște dacă merită citit vreun dosar întreg.

Bilanțul, o dată pe an

După ce firmele și-au depus situațiile financiare, rulezi ruta de risc pentru tot portofoliul. Compari clasa nouă cu cea de anul trecut și păstrezi factorii care au dus la schimbare. Un client care a coborât din B în D merită o discuție chiar dacă încă plătește la timp. Bilanțul arată ce s-a întâmplat anul trecut, iar efectele ajung în plăți de obicei mai târziu.

Salvează și câmpul an din răspuns, lângă scor și clasa. Îți spune pentru ce exercițiu s-a calculat scorul, deci știi dacă rezultatul include deja bilanțul anului încheiat sau dacă firma nu l-a depus încă. Și ține minte sensul scării: scor mare înseamnă risc mic, deci un scor care scade e vestea proastă.

Cât costă, pe un exemplu

Să zicem că ai 200 de clienți și aplici calendarul de mai sus, cu dosarele verificate trimestrial:

VerificareCalculCredite pe an
Profil fiscal, lunar200 × 1 × 122.400
Restanțe, trimestrial200 × 3 × 42.400
Scor de risc, anual200 × 3 × 1600
Dosare, trimestrial200 × 8 × 46.400
Total11.800

Se vede imediat că dosarele mănâncă mai mult de jumătate din buget. Eu aș segmenta portofoliul: clienții cu expunere mică primesc doar profilul și restanțele, iar dosarele le verifici doar pentru cei mari. Prețurile pachetelor de credite sunt pe pagina abonamente.

Ce se întâmplă după alertă

O alertă valorează exact cât decizia care urmează. Hotărăște dinainte, împreună cu vânzările și cu financiarul, ce faci la fiecare tip de semnal. Un semnal ușor, cum ar fi o clasă de risc coborâtă cu o treaptă, înseamnă reevaluare la următoarea comandă. Unul mediu, de exemplu intrarea pe lista de restanțe, înseamnă termen de plată redus și un telefon la client. Unul grav, cum sunt insolvența sau inactivitatea fiscală, înseamnă că oprești livrările pe credit până se lămurește situația.

Fără regulile astea, alertele se strâng necitite și sistemul devine încă un raport pe care nu-l deschide nimeni.

Nu trebuie să pornești cu toate sursele. Cel mai bun raport între cost și folos îl are de obicei monitorizarea restanțelor, descrisă pe pagina API Datorii ANAF. Dosarele le adaugi după aceea, din API Dosare de instanță. Primul modul îl poți testa pe o parte din portofoliu cu cele 250 de credite gratuite ale unui cont nou, fără card.

Întrebări frecvente

De ce să nu-mi reverific clienții în fiecare zi?

Pentru că majoritatea surselor nu se schimbă zilnic. Restanțele ANAF sunt trimestriale, bilanțurile anuale. Ai plăti pentru aceleași date de mai multe ori.

Primesc o notificare când se schimbă ceva la un client?

Nu, API-ul nu trimite notificări. Programezi tu reverificările și compari cu rezultatul salvat.

De unde știu că a apărut o listă ANAF nouă?

Compari publicare_curenta din răspuns cu data listei salvate la verificarea anterioară. Dacă diferă, a apărut una nouă.

Despre autor

Mihai Gabriel Oancea

Redacția Bilanț API

Scrie pentru BilantAPI despre bilanțurile firmelor din România și despre cum se lucrează cu datele financiare.