Håndter økonomihendelser som kommer i feil rekkefølge
Bruk objektversjon, hendelsesidentitet og statusoppslag når økonomihendelser kommer i en annen rekkefølge enn de oppstod.
En melding om betaling kan komme før meldingen om fakturaen den gjelder. Nettverkskøer, gjentakelser og parallelle leveranser gjør mottakstid til en svak kilde for forretningsrekkefølge. Integrasjonen må skille tidspunktet hendelsen oppstod fra tidspunktet den ankom.
Syntetisk eksempel med betaling først
En oppdiktet faktura F7 er på 6 000 kroner. Betalingen dekker 2 000 kroner, slik at restbeløpet skal være 4 000 kroner.
| Ankomst | Hendelse | Kontrollert behandling |
|---|---|---|
| Først | Delbetaling for F7 | Vent på eller slå opp fakturagrunnlaget |
| Deretter | Faktura F7 opprettet | Koble betaling til riktig faktura |
| Til slutt | Delbetalingen gjentas | Gjenkjenn samme hendelsesidentitet |
Dersom siste melding tolkes som en ny betaling, blir restbeløpet feilaktig 2 000 kroner. Hvis første melding avvises og glemmes, blir restbeløpet 6 000 kroner. Begge feil kan oppstå selv om meldingene er gyldige hver for seg.
Velg kilde for gjeldende tilstand
Stripes webhook-dokumentasjon beskriver at deres hendelser ikke er garantert levert i opprettelsesrekkefølge. Kontroller leverandørens egen garanti før samme antakelse brukes i et annet API. Webhooks er heller ikke en dokumentert generell egenskap ved ethvert regnskapssystem.
Avtal om en melding inneholder hele objektet, en endring eller bare en referanse. Ved referansemeldinger må et statusoppslag være mulig dersom integrasjonen skal bruke kilden som fasit. Ved versjonerte objekter kan eldre versjoner avvises som foreldede, men hendelser med selvstendig økonomisk virkning må ikke forsvinne bare fordi en nyere objektstatus finnes.
Bevar årsakssammenhengen. En kreditnota bør kunne kobles til fakturaen selv om fakturaens opprettelsesmelding kommer senere. En midlertidig ventekø er mer etterprøvbar enn å opprette en erstatningsfaktura på grunnlag av en ufullstendig melding.
Prøver som bør bestås
- Lever betalingsmeldingen før fakturameldingen.
- Lever samme hendelse tre ganger.
- Lever en eldre objektversjon etter en nyere.
- La nødvendig statusoppslag feile midlertidig.
- Kontroller at ventende hendelser varsles før avstemmingsfristen.
Godkjenn automatisk behandling når sluttilstanden blir lik uansett ankomstorden i de avtalte testene. Dersom avhengigheten ikke kan løses, må saken få en synlig avklaringsstatus med kildeidentitet og ansvarlig.
Ikke bruk ankomsttid som sekundær forretningsnøkkel. To mottak av samme hendelse kan ha ulike ankomsttider. Bevar original hendelsesidentitet og eventuelt kildeversjon, slik at den samme betalingen gjenkjennes også etter forsinket eller gjentatt levering.
Ordnet mottak erstatter ikke økonomisk avstemming. Sammenlign fortsatt fakturabeløp, betalinger og restbeløp etter kjøringen. Se avstemming av hendelser og feilkø.