Monitor verpakkingsverplichtingen · ONTWIKKELAARSTOEGANG
API en webhooks
Gebruik de URL van je product in de onderstaande voorbeelden. Bewaar API-sleutels op je server. Interactieve API-documentatie openen ↗
Openbare records lezen
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' Openbare antwoorden bevatten alleen de drie meest recente records per register. Voor oudere recordinhoud is PRO nodig; directe URL's bieden een beperkt voorbeeld. Volg next_offset totdat deze null is, ook wanneer een gefilterde pagina geen records bevat. Vermeld elke oorspronkelijke source_url. De publicatiedatum en waarnemingsdatum verwijzen naar verschillende gebeurtenissen.
PRO-records lezen
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Een sleutel in je account maken of roteren. Een sleutel werkt alleen voor dit product en zolang betaalde toegang actief is.
Exportindelingen
PRO omvat CSV, Excel (.xlsx), XML, RSS en Atom. Gebruik de API-sleutel van je product en dezelfde filters voor elke indeling. Je kunt bijvoorbeeld maximaal 100 records als Excel-werkmap downloaden:
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 Vervang xlsx door csv, xml, rss of atom. Voeg filters toe zoals document_type=adopted of facility_id=YOUR_FACILITY_ID. Volg de Link-header van het antwoord met rel="next" totdat die ontbreekt en behoud de Authorization-header bij elk verzoek. Elke pagina is beperkt tot 100 records; een gefilterde pagina kan leeg zijn terwijl er later nog een pagina bestaat.
Stel voor RSS en Atom een lezer in die de Authorization-header ondersteunt. Reader-URL's bevatten geen sleutel. Items hebben stabiele record-ID's; lezers die paginering niet volgen ontvangen de nieuwste pagina. Gebruik de gepagineerde API wanneer je elk record nodig hebt.
De geschiedenis van een record lezen
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Vervang RECORD_ID door een ontvangen record-ID. De geschiedenis geeft een array terug van nieuw naar oud. Verhoog offset steeds met de lengte van de pagina, totdat een pagina korter is dan de gevraagde limiet. Versies kunnen bronwijzigingen of correcties in de extractie zijn.
Verbinden via 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"}}}' Voeg dezelfde Authorization-header toe voor PRO-velden. Het eindpunt ondersteunt ook initialize, tools/list en notifications/initialized. Gebruik de REST-paginering hierboven wanneer je een volledig register leest.
Webhookhandtekeningen verifiëren
De handtekeningheader is X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Controleer de onbewerkte body voordat je JSON parseert. Bewaar duurzaam welke X-Register-Event-ID's succesvol zijn verwerkt, zodat nieuwe pogingen geen bijwerkingen herhalen.
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);
} Geef pas een succesvolle respons nadat je de gebeurtenis duurzaam hebt opgeslagen. Nieuwe afleverpogingen zijn begrensd; je account toont de laatst vastgelegde uitkomst. Een afleverbevestiging bewijst niet dat je toepassing de verwerking heeft voltooid.