포장 의무 모니터
언어: 한국어

포장 의무 모니터 · 개발자 이용 안내

API 및 웹훅

아래 예시에는 이용 중인 상품의 URL을 사용하세요. API 키는 서버에 보관하세요. 대화형 API 문서 열기 ↗

공개 기록 조회

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

공개 응답에는 등록부당 최근 기록 3개만 포함됩니다. 이전 기록의 본문은 PRO가 필요하며, 기록 URL로 직접 접속하면 제한된 미리보기만 제공됩니다. 필터링한 페이지에 기록이 없더라도 next_offset이 null이 될 때까지 계속 조회하세요. 각 원본 source_url을 인용하세요. 발행일과 관측일은 서로 다른 사건을 나타냅니다.

PRO 기록 조회

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

계정에서 키 만들기 또는 교체하기. 키는 해당 상품에서만, 유료 이용 권한이 활성 상태인 동안에만 작동합니다.

내보내기 형식

PRO에서는 CSV, Excel(.xlsx), XML, RSS 및 Atom을 사용할 수 있습니다. 모든 형식에 상품의 API 키와 동일한 필터를 사용하세요. 예를 들어 최대 100개의 기록을 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

xlsx를 csv, xml, rss 또는 atom으로 바꿀 수 있습니다. document_type=adopted 또는 facility_id=YOUR_FACILITY_ID 같은 필터를 추가하세요. 응답의 Link 헤더에서 rel="next"를 따라 더 이상 없을 때까지 조회하고, 요청마다 Authorization 헤더를 유지하세요. 페이지당 최대 기록 수는 100개이며, 필터링한 페이지가 비어 있어도 이후 페이지가 있을 수 있습니다.

RSS와 Atom을 사용하려면 Authorization 헤더를 지원하는 리더를 설정하세요. 리더 URL에는 키가 들어 있지 않습니다. 항목에는 안정적인 기록 ID가 있으며, 페이지를 넘기지 않는 리더는 최신 페이지만 받습니다. 모든 기록이 필요하면 페이지가 나뉘는 API를 사용하세요.

기록 이력 조회

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

RECORD_ID를 반환된 기록 ID로 바꾸세요. 이력은 최신 항목부터 배열로 반환됩니다. 페이지 길이만큼 offset을 늘려 요청한 limit보다 짧은 페이지가 나올 때까지 조회하세요. 버전은 출처 변경이나 추출 내용 수정으로 생성될 수 있습니다.

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"}}}'

PRO 필드를 이용하려면 동일한 Authorization 헤더를 추가하세요. 이 엔드포인트는 initialize, tools/list 및 notifications/initialized도 지원합니다. 전체 등록부를 읽을 때에는 위의 REST 페이지 나누기 방식을 사용하세요.

웹훅 서명 검증

서명 헤더 형식은 X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST입니다. JSON을 파싱하기 전에 원본 본문을 검증하세요. 재시도로 같은 작업이 반복되지 않도록 정상 처리한 X-Register-Event ID를 영구적으로 기록하세요.

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);
}

이벤트를 영구적으로 기록한 뒤에만 성공 응답을 반환하세요. 전송 재시도 횟수에는 상한이 있으며, 계정에서 최근 기록된 결과를 확인할 수 있습니다. 전송 수신 확인만으로 애플리케이션의 이벤트 처리가 완료되었다고 볼 수는 없습니다.