Bram

Bram, de assistent in BTW Vriend

Bram is de assistent in BTW Vriend. Stel een vraag over je eigen cijfers, een bon of een regel van de Belastingdienst en je krijgt een antwoord met de bron erbij. Bram doet voorstellen, jij beslist. Bram werkt alleen als jij daar toestemming voor geeft, en je zet hem uit wanneer je wilt.

1. Wat Bram doet

  • Vragen beantwoorden over je eigen boekhouding: btw-stand van het kwartaal, winst year-to-date, openstaande facturen, uitgaven zonder bon, bankregels die nog gekoppeld moeten worden.
  • Categorie voorstellen voor nog-niet-gecategoriseerde transacties. Jij geeft in de app akkoord; Bram boekt niets zelf.
  • Bonnen lezen: leverancier, datum, bedrag, btw-tarief en een categorie-voorstel. Een foto, PDF of HEIC-bestand komt binnen in je schoenendoos; jij kijkt mee en kiest.

Bram draait op OpenAI GPT-4o. In elke call staat store: false expliciet aan, zodat OpenAI je vraag niet bewaart.

2. Welke gegevens Bram leest

Om je vraag te kunnen beantwoorden kijkt Bram standaard mee in je boekhouding:

  • Je profiel: naam, IB-instellingen
  • Je bedrijfsnaam en btw-instelling
  • Je omzet per factuur in het huidige jaar, inclusief klantnaam
  • Je uitgaven per bon in het huidige jaar
  • Je bankregels van de afgelopen 365 dagen: datum, bedrag, omschrijving, tegenpartij, match-status, categorie

Een laag dieper gaat alleen als jij er in de chat expliciet om vraagt:

  • Specifieke transacties met tegenpartij en bedrag
  • Een diepere btw- of IB-samenvatting met regels onder de totalen
  • Categorie-voorstellen die jij in de UI goedkeurt

Deze dingen gaan nooit mee, ook niet als je er expliciet om vraagt:

  • Rekeningnummers (IBAN's)
  • E-mailadressen van je klanten
  • User-id's en message-body-clones

In het chat-paneel zie je bovenaan een regel die laat zien op welke pagina en welke periode Bram meekijkt, zodat je nooit hoeft te raden wat hij ziet.

3. Toestemming geven en intrekken

Voordat Bram ook maar één keer OpenAI benadert, moet jij hebben toegestemd. Dat gaat zo:

  • Geven: de eerste keer dat je Bram opent zie je het toestemmingsvenster. Daarin staat welke gegevens Bram leest en wat hij doet. Weiger je, dan werkt Bram niet.
  • Intrekken: ga naar Instellingen → Toegang en privacy. Daar trek je je toestemming in. Vanaf dat moment zet Bram geen stap meer.
  • Verplichting server-side: zonder jouw toestemming weigert de edge-functie elk Bram-verzoek. Dat is geen UI-check die je kunt omzeilen.

4. De AI-uit-schakelaar

Naast toestemming heb je een harde schakelaar per bedrijf. Hij staat in Instellingen → Toegang en privacy:

  • Standaard staat de schakelaar uit voor nieuwe bedrijven.
  • Zet je hem aan, dan werken Bram-chat, bonnen-scan en categorie-voorstel.
  • Zet je hem uit, dan weigeren alle drie de AI-functies serverside hun verzoek, ook als een gebruiker met toestemming op de knop drukt.

5. Hoe antwoorden tot stand komen

Bij elke vraag gebeurt dit in deze volgorde:

  1. Je vraag gaat van je browser naar onze edge-functie, samen met een whitelist aan context (route, periode, status-tellingen). Alles buiten die whitelist wordt in de edge weggegooid.
  2. De edge haalt je boekhoud-context op uit de database (zie §2) en combineert hem met je vraag.
  3. De edge roept OpenAI GPT-4o aan met store: false. OpenAI stuurt een antwoord terug.
  4. Het antwoord landt in je chat-paneel, samen met de bron: welke facturen, welke bonnen, welke regel van de Belastingdienst.

Bram geeft suggesties, geen belastingadvies. Hij laat zien hoe de regels werken en wat jouw cijfers daarbij doen; jij beslist of je ermee aan de slag gaat.

6. Wat Bram niet doet

  • Belastingadvies met juridische weegwaarde
  • Aangifte verzenden naar de Belastingdienst (overtypen op MijnBelastingdienst blijft een bewuste stap)
  • Rubrieken 1c, 1d, 2a, 4a en 4b berekenen
  • Verlegd, EU of buiten-EU bepalen uit scan
  • Categorie of grootboekcode uit scan zetten; die kies jij zelf

7. Opslag

  • Bij OpenAI: niets. store: false staat op elke call.
  • Bij BTW Vriend: je chat-gesprekken komen terecht in bram_conversations en bram_messages in onze eigen database (binnen de EU). Een token-teller zonder inhoud leeft in ai_chat_log. Een scan-antwoord landt in de uitgave-rij; losse categorie-voorstellen bewaren we niet apart.
  • Verwijderen: via Instellingen → Gegevens vraag je een AVG-export of accountverwijdering aan. Bij verwijdering gaan ook je Bram-gesprekken mee.

8. Limieten en veiligheid

  • De client praat nooit rechtstreeks met OpenAI; het gaat altijd via onze edge. Dat is afgedwongen in de Content-Security-Policy, zie /beveiliging.
  • Als de dag-limiet is bereikt, zie je dat in de app via een stille banner; je kunt dan verder zonder Bram.
  • Faal-paden landen in een wachtrij; verloren gesprekken komen daar terug.