Monitor de obrigações relativas a embalagens
Idioma: Português

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.