Monitor de obrigações relativas a embalagens · ACESSO PARA PROGRAMADORES
API e webhooks
Utilize o URL do seu produto nos exemplos abaixo. Guarde as chaves de API no seu servidor. Abrir a documentação interativa da API ↗
Consultar registos públicos
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' As respostas públicas contêm apenas os três registos mais recentes por registo. O conteúdo mais antigo requer PRO; os URL diretos mostram uma pré-visualização limitada. Siga next_offset até ser null, mesmo quando uma página filtrada não contém registos. Cite cada source_url original. As datas de publicação e de observação correspondem a acontecimentos diferentes.
Consultar registos PRO
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Criar ou renovar a chave na sua conta. A chave só funciona para este produto enquanto o acesso pago estiver ativo.
Formatos de exportação
O PRO inclui CSV, Excel (.xlsx), XML, RSS e Atom. Utilize a chave de API do seu produto e os mesmos filtros para cada formato. Por exemplo, descarregue até 100 registos num livro de Excel:
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 Substitua xlsx por csv, xml, rss ou atom. Acrescente filtros como document_type=adopted ou facility_id=YOUR_FACILITY_ID. Siga o cabeçalho Link da resposta com rel="next" até deixar de existir e mantenha o cabeçalho Authorization em cada pedido. Cada página está limitada a 100 registos; uma página filtrada pode estar vazia apesar de existirem páginas seguintes.
Para RSS e Atom, configure um leitor que suporte o cabeçalho Authorization. Os URL do leitor não contêm chaves. As entradas têm identificadores de registo estáveis; os leitores que não seguem a paginação recebem a página mais recente. Utilize a API paginada se precisar de todos os registos.
Consultar o histórico de um registo
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' Substitua RECORD_ID por um identificador de registo devolvido. O histórico devolve uma lista da versão mais recente para a mais antiga. Aumente offset pelo comprimento da página até receber uma página mais curta do que o limite pedido. As versões podem refletir alterações na fonte ou correções da extração.
Ligar através de 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"}}}' Adicione o mesmo cabeçalho Authorization para os campos PRO. O ponto de acesso também suporta initialize, tools/list e notifications/initialized. Utilize a paginação REST acima para consultar um registo completo.
Verificar assinaturas de webhooks
O cabeçalho da assinatura é X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. Verifique o corpo original antes de analisar o JSON. Guarde de forma duradoura os identificadores X-Register-Event processados com êxito para que as novas tentativas não repitam os seus efeitos.
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);
} Devolva uma resposta de sucesso apenas depois de guardar o evento de forma duradoura. As novas tentativas de entrega são limitadas; a sua conta mostra o último resultado registado. Uma confirmação de entrega não prova que a sua aplicação tenha terminado de processar o evento.