Hopp til innhold
Oversikt Oversikt Nyheter Nyheter
Del

Webhooker og hendelser

Sanntidsbegivenheter. Leverert med HMAC-signatur.

PaperOffice ringer til endepunktet ditt så snart et dokument, jobb, arbeidsområde eller oppgave endres. Ingen polling.

22 hendelsestyper, HMAC-SHA256-signatur, tre retry-strategier og en leveringslogg per forsøk.

HMAC-SHA256 ved hver levering Opptil 10 gjentakelser (standard 5) Idempotent per hendelses-ID

Tilgjengelige hendelser

22 hendelsestyper, gruppert etter enhet

Abonner på enkeltbegivenheter eller bruk plassholderen * for alle.

Dokumenter

14
  • document.uploaded Nytt dokument lastet opp til en arbeidsområde
  • document.created Alias for document.uploaded (kompatibilitet)
  • document.processed OCR-/AI-IDP-pipeline fullført med hell
  • document.edited Dokument redigert: metadata, tagger eller innhold oppdatert
  • document.deleted Dokument flyttet til papirkurven
  • document.restored Dokument gjenopprettet fra papirkurven
  • document.moved Dokument flyttet mellom arbeidsområder
  • document.version_created Ny versjon av et eksisterende dokument
  • document.lifecycle_changed Oppbevarings-/arkiveringsstatus endret
  • document.comment_added Kommentar til et dokument opprettet
  • document.note_added Intern notat lagt ved
  • document.tag_added Tag tildelt et dokument
  • document.legal_hold_placed Legal hold aktivert (uforanderlig)
  • document.legal_hold_released Legal hold opphevet

Jobber

3
  • job.completed Asynkron jobb fullført med suksess
  • job.failed Asynkron jobb feilet definitivt
  • job.progress Fremdriftsoppdatering for lengre jobber

Workspaces

2
  • workspace.shared Arbeidsområde delt med bruker eller team
  • workspace.unshared Tilgang til arbeidsområde trukket tilbake

Oppgaver

3
  • task.created Ny opprettet oppgave
  • task.completed Oppgave markert som fullført
  • task.overdue Oppgaven har overskredet sin forfallsdato

Payload og header

Hver levering følger samme skjema

Forutsigbar JSON-body, faste HTTP-header, ISO-8601-UTC-tidsstempel.

Request-body

{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": {
    "pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
    "workspace_id": 17,
    "filename": "invoice-2026-04-17.pdf",
    "mime_type": "application/pdf",
    "size_bytes": 284521,
    "processing_result": {
      "ocr_done": true,
      "classification": "invoice",
      "confidence": 0.98
    }
  }
}

HTTP-request-header

Overskrift Eksempelverdi Betydning
Content-Type application/json Alltid JSON, UTF-8-kodet
User-Agent PaperOffice-Webhook/1.0 Fast identifikator for firewall-allowlister
X-PaperOffice-Event document.processed Leveringshendelsestype
X-PaperOffice-Event-ID a3b7f9c1… 128-bit unik ID. Bruk den som idempotensnøkkel.
X-PaperOffice-Subscription-ID 42 Abonnements-ID som mottar hendelsen
X-PaperOffice-Signature sha256=… HMAC-SHA256 av rå body, hex-kodet
cURL
curl -X POST "https://api.paperoffice.ai/latest/webhooks/subscribe" \  -H "Authorization: Bearer po_ut_YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "My Production Webhook",    "url": "https://yourdomain.com/webhooks/paperoffice",    "events": ["document.processed", "job.completed", "job.failed"],    "retry_policy": "exponential",    "max_retries": 5,    "timeout_ms": 10000  }'

Signaturverifisering

Verifiser hver levering med HMAC-SHA256

Beregn HMAC-SHA256 over den rå forespørselsbodyen med felles hemmelighet og sammenlign resultatet med X-PaperOffice-Signature — påkrevd med konstant kjøretid.

  • Sammenligning i konstant kjøretid

    hash_equals, hmac.compare_digest eller crypto.timingSafeEqual: Sammenligningen må ikke avsløre kjøringstidsforskjeller.

  • Signer den opprinnelige kropp

    Signaturen gjelder for den uendrede forespørselskroppen. Pars JSON først etter verifisering, ellers vil hashen avvike.

  • Abonner via API

    POST /latest/webhooks/subscribe med name, url og events. Hvis secret er tomt, genererer PaperOffice det og returnerer det én gang.

Gjentakelse og levering

Tre gjentakelsesstrategier, opptil 10 forsøk

Velg policy per abonnement. Hvert forsøk logges med statuskode, responskropp og tidmåling.

  • Default exponential

    Eksponentiell (standard)

    Avstanden mellom forsøkene dobles etter hvert mislykket forsøk.

  • linear

    Lineær

    Avstanden mellom forsøkene øker med et fast steg.

  • none

    Ingen

    Ingen gjentakelse, selv ikke ved 5xx (send og glem). Nyttig for test-hooks.

  • Suksess HTTP 2xx innenfor timeout-vinduet
  • Maks. gjentakelser Opptil 10 gjentakelser (standard 5)
  • Tidsavbrudd 1.000–30.000 ms per forsøk (standard 10.000)
  • Leveringslogg Hvert forsøk loggføres; loggen beholdes selv etter at abonnementet slettes.

Ledelse-API

Fem sluttpunkter under /latest/webhooks/

Opprett, vis, oppdater og slett abonnementer — inkludert et test-sluttpunkt. Hvert kall bruker et Bearer-token.

  • POST /webhooks/subscribe Opprett abonnement; payloads signeres med HMAC-SHA256 MCP-verktøypo-webhooks-subscribe
  • GET /webhooks/list Vis alle webhook-abonnementer for kontoen MCP-verktøypo-webhooks-list
  • POST /webhooks/update Oppdater URL, hendelser, overskrifter, retry-policy eller aktiv status MCP-verktøypo-webhooks-update
  • POST /webhooks/delete Slett abonnement; leveringsprotokoll beholdes MCP-verktøypo-webhooks-delete
  • POST /webhooks/test Send testhendelse til et abonnement og sjekk levering MCP-verktøypo-webhooks-test

Sikkerhet

Hærdet fra bunnen av

Seks mekanismer som aktiveres ved hver levering — på PaperOffice-siden og på din side.

  • HMAC-SHA256

    Hver levering signeres med ditt hemmelige nøkkel. Sammenligningen må nødvendigvis skje i konstant kjøretid.

  • SSRF-beskyttelse

    Private og interne IP-adresser, localhost og cloud-metadata-endepunkter blokkeres ved abonnement og dispatch.

  • DNS-rebinding-sikker

    IP-adressen valideres på nytt ved dispatch og låses med CURLOPT_RESOLVE.

  • HTTPS anbefales

    Både http og https aksepteres. For produksjonsdrift anbefaler vi HTTPS.

  • Idempotens via hendelses-ID

    Hver levering inneholder en unik X-PaperOffice-hendelses-ID. Dedupliser på din side.

  • Fullstendig leveringslogg

    Alle forsøk logges: statuskode, respons-tekst, tidtaking, feilmelding.

Grenser

Leveringsatferd kan konfigureres per abonnement

Alle verdier settes ved opprettelse eller senere via /webhooks/update — per abonnement, ikke per konto.

  • 0–10 Gjentakelser per levering (standard 5)
  • 1 000–30 000 ms Tidsavbrudd per forsøk (standard 10.000)
  • 3 Retry-policies: none, linear, exponential
  • HMAC-SHA256 Signatur ved hver levering

Webhooks er tilgjengelig fra planen Professional. Hvilken plan som passer til ditt oppsett, vises i prisoversikten.

Video

Webhooks i aksjon

Se hvordan PaperOffice-webhooks fungerer i praksis — i videoen.

Webhooks i aksjon

Spørsmål

Ofte stilte spørsmål om webhooks

Hvordan verifiserer jeg en levering?

Beregn HMAC-SHA256 over den rå forespørselsbodyen med hemmeligheten fra abonnementet ditt, og sammenlign resultatet i konstant kjøretid med headeren X-PaperOffice-Signature (format sha256=<hex>). Hvis signaturen ikke stemmer, svar med HTTP 401 og behandle ikke bodyen.

Hvor kommer hemmeligheten fra?

Ved opprettelse av abonnementet via POST /latest/webhooks/subscribe. La feltet secret være tomt, så genererer PaperOffice en hemmelighet og returnerer den engang i svaret. Over POST /latest/webhooks/update kan du erstatte den når som helst.

Hva skjer hvis endepunktet mitt ikke svarer?

Hvert svar utenfor HTTP 2xx eller en tidsavbrudd teller som et mislykket forsøk. Avhengig av gjentakelsespolicy (eksponentiell, lineær, ingen) vil PaperOffice gjenta leveringen opptil det innstilte antallet gjentakelser (0–10, standard 5). Hvert forsøk vises med statuskode, svar og tidmåling i leveringsloggen.

Kan samme levering ankomme to ganger?

Ja, ved gjentakelser etter et tidsavbrudd er dette mulig. Dedupliser derfor via X-PaperOffice-Event-ID: ID-en er unik per hendelse og egner seg som idempotensnøkkel i databasen din.

Hvilke hendelser kan jeg abonnere på?

22 hendelsetyper fra fire grupper: dokumenter, jobber, arbeidsområder og oppgaver. Du kan abonnere på enkeltstående hendelser eller bruke plassholderen * for å abonnere på alle. Ved hjelp av filtre (f.eks. workspace_id eller pofid) kan du ytterligere begrense et abonnement.

I hvilken plan er webhooks inkludert?

Webhooks er tilgjengelig fra planen Professional. Hvilken plan som passer til ditt oppsett, vises i prisoversikten.

Hvor vil dere prøve PaperOffice?

Datamaskin og smarttelefon er koblet: Arbeidsområde på PC, registrering på telefon.

Din prøveversjon er klar

Hvor vil du starte?

Den fulle arbeidsområdet er optimalisert for datamaskin. Mobilversjonen egner seg til å registrere, kontrollere og godkjenne dokumenter.

app.paperoffice.ai

Start på datamaskinen

Vi sender din personlige tilgangskode til e-postadressen din.

Åpne PaperOffice Mobile

Registrer og behandle dokumenter direkte med smarttelefonen.

Åpne mobilversjon
Registrere gratis Åpne appen PaperOffice-appen Hele produktet: nett, skrivebord og mobil. Registrer, organiser, søk og arbeid med dokumenter sammen med teamet. Gratis konto kreves Åpne Playground Playground Prøv utvalgte funksjoner med en gang — uten registrering, med en begrenset demo-API-nøkkel. En begrenset demo-API-nøkkel