Overvåking av emballasjeforpliktelser
Språk: Norsk bokmål

Overvåking av emballasjeforpliktelser · UTVIKLERTILGANG

API og webhooks

Bruk produktets adresse i eksemplene nedenfor. Oppbevar API-nøkler på serveren din. Åpne interaktiv API-dokumentasjon ↗

Les offentlige oppføringer

curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0'

Offentlige svar inneholder bare de tre nyeste oppføringene per register. Innhold i eldre oppføringer krever PRO; direkte adresser gir en begrenset forhåndsvisning. Følg next_offset til verdien er null, også når en filtrert side ikke har oppføringer. Henvis til hver original source_url. Publiserings- og observasjonsdatoer gjelder ulike hendelser.

Les PRO-oppføringer

curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
  -H 'Authorization: Bearer YOUR_SCOPED_KEY'

Opprett eller bytt nøkkel i kontoen din. En nøkkel virker bare for dette produktet og mens betalt tilgang er aktiv.

Eksportformater

PRO inkluderer CSV, Excel (.xlsx), XML, RSS og Atom. Bruk produktets API-nøkkel og de samme filtrene for hvert format. Du kan for eksempel laste ned opptil 100 oppføringer som en Excel-arbeidsbok:

curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records/export.xlsx?limit=100&offset=0' \
  -H 'Authorization: Bearer YOUR_SCOPED_KEY' \
  -D export-headers.txt -o records.xlsx

Erstatt xlsx med csv, xml, rss eller atom. Legg til filtre som document_type=adopted eller facility_id=YOUR_FACILITY_ID. Følg Link-headeren i svaret med rel="next" til den ikke finnes lenger, og behold Authorization-headeren i hver forespørsel. Hver side er begrenset til 100 oppføringer; en filtrert side kan være tom selv om det finnes flere sider.

For RSS og Atom må du konfigurere en leser som støtter Authorization-headeren. Lesernes adresser inneholder ingen nøkkel. Elementene har stabile oppførings-ID-er, og lesere som ikke følger sideinndelingen, får den nyeste siden. Bruk det sideinndelte API-et når du trenger alle oppføringer.

Les historikken til en oppføring

curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
  -H 'Authorization: Bearer YOUR_SCOPED_KEY'

Erstatt RECORD_ID med en returnert oppførings-ID. Historikken returnerer en liste med de nyeste først. Fortsett med å øke offset med sidelengden til en side er kortere enn den forespurte limit-verdien. Versjoner kan være kildeendringer eller korrigeringer av datauttrekket.

Koble til med MCP

curl 'https://verpackung.getregisters.com/api/v1/mcp' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"read_register","arguments":{"feed_id":"de-packaging-compliance"}}}'

Legg til den samme Authorization-headeren for PRO-felt. Endepunktet støtter også initialize, tools/list og notifications/initialized. Bruk REST-sideinndelingen over når du leser hele registeret.

Verifiser webhook-signaturer

Signaturheaderen er X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Verifiser den rå meldingskroppen før du tolker JSON. Lagre ID-ene til X-Register-Event-hendelser som er behandlet, så nye leveringsforsøk ikke gjentar sidevirkninger.

import { createHmac, timingSafeEqual } from 'node:crypto';

export function verify(rawBody, header, secret) {
  const fields = Object.fromEntries(header.split(',').map(x => x.split('=')));
  const timestamp = Number(fields.t);
  if (!Number.isFinite(timestamp) || Math.abs(Date.now()/1000 - timestamp) > 300) return false;
  if (!/^[a-f0-9]{64}$/.test(fields.v1 || '')) return false;
  const expected = createHmac('sha256', secret).update(fields.t + '.').update(rawBody).digest();
  const supplied = Buffer.from(fields.v1, 'hex');
  return supplied.length === expected.length && timingSafeEqual(supplied, expected);
}

Returner et vellykket svar først etter at hendelsen er lagret varig. Antall nye leveringsforsøk er begrenset; den siste registrerte statusen vises i kontoen din. En leveringsbekreftelse betyr ikke at applikasjonen din er ferdig med å behandle hendelsen.