Webhooks i regnskap
Hva webhooks er, hvordan de brukes mellom regnskapssystem, nettbutikk og andre systemer, og hvilke tekniske grep som hindrer dobbeltføring og tapte hendelser.
En webhook er et varsel som et system sender automatisk til et annet system når noe skjer, for eksempel når en faktura er betalt, en ordre er opprettet eller et bilag er bokført. I stedet for at mottakeren spør regnskapssystemet hvert minutt om noe er nytt, får den beskjed med én gang.
Typiske bruksområder
| Hendelse | Hva mottakeren gjør |
|---|---|
| Ordre betalt i nettbutikken | Oppretter salg og betaling i regnskapet |
| Faktura betalt | Oppdaterer status i CRM eller åpner tilgang for kunden |
| Ny leverandørfaktura mottatt | Sender den til godkjenning |
| Kunde opprettet eller endret | Oppdaterer kunderegisteret i et annet system |
Fire tekniske grep som hindrer feil i regnskapet
1. Kontroller signaturen. Seriøse webhook-tjenester signerer hver melding med en hemmelig nøkkel, for eksempel med HMAC. Mottakeren skal beregne signaturen på nytt og avvise meldinger som ikke stemmer. Ellers kan hvem som helst sende falske «betalt»-varsler.
2. Tål at samme varsel kommer flere ganger. Sender avsenderen ikke kvittering i tide, sender den varselet på nytt. Mottakeren må derfor kjenne igjen hendelsen på en unik ID og ikke bokføre den to ganger. Dette kalles idempotens.
3. Ikke stol på rekkefølgen. Varsler kan komme i en annen rekkefølge enn hendelsene skjedde. Et «refundert»-varsel kan komme før «betalt». Hent gjerne gjeldende status fra kilden før du bokfører.
4. Svar raskt, behandle etterpå. Kvitter for mottatt melding med en gang, og legg selve behandlingen i en kø. Da unngår du tidsavbrudd og nye forsøk fra avsenderen.
Eksempel: dobbelt betalingsvarsel
En nettbutikk sender varselet «ordre 1045 betalt, 1 250 kr» to ganger fordi regnskapssystemet brukte for lang tid på å svare første gang. Uten kontroll av hendelses-ID blir salget bokført to ganger, og kundefordringen blir negativ med 1 250 kr. Med kontroll av ID blir det andre varselet gjenkjent og ignorert.
Logging og kontrollspor
Lagre alle mottatte varsler med tidspunkt, hendelses-ID og resultat. Loggen er nyttig når noe må feilsøkes, og den er en del av sporbarheten i regnskapet. Se kontrollspor i regnskapssystemet og importlogg.
Når varsler uteblir
Webhooks kan gå tapt, for eksempel når mottakeren er nede. Kjør derfor en jevnlig kontroll som sammenligner data i begge systemer, for eksempel antall ordrer og sum betalinger per dag. Differanser tas inn manuelt eller hentes på nytt.
Sjekkliste
- Signaturen kontrolleres på hver melding
- Hver hendelse har unik ID som lagres
- Mottakeren svarer raskt og behandler i kø
- Feilede varsler logges og varsles
- Det finnes en daglig eller ukentlig avstemming mellom systemene
- Integrasjonen er testet i et testmiljø
Les også om API-sikkerhet i regnskap og integrasjoner i ReAI.
Les videre
Mer fra Teknisk
Altinn-roller for regnskap
Oversikt over de viktigste Altinn-rollene i regnskapsarbeidet, hvem som får dem automatisk, hvordan de delegeres, og hva som endres med Altinns nye …
API-sikkerhet i regnskap
Praktiske sikkerhetstiltak når nettbutikk, bank, lønn eller egne systemer kobles til regnskapet via API, og hvilke krav bokføringsreglene stiller.
Avvikslogg for bankavstemming
En avvikslogg gjør bankavstemming mer sporbar og lettere å følge opp.
Bankfeed-feilsøking
Feilsøking når bankintegrasjonen mot regnskapssystemet stopper, gir dobbelttransaksjoner eller feil saldo, med sjekkliste og vanlige årsaker.