पैकेजिंग दायित्व निगरानी · डेवलपर एक्सेस
API और वेबहुक
नीचे दिए उदाहरणों में अपने उत्पाद का URL इस्तेमाल करें। API कुंजियाँ अपने सर्वर पर रखें। इंटरैक्टिव API दस्तावेज़ खोलें ↗
सार्वजनिक रिकॉर्ड पढ़ें
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' सार्वजनिक जवाबों में हर रजिस्टर के केवल नवीनतम तीन रिकॉर्ड होते हैं। पुराने रिकॉर्ड की सामग्री के लिए 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 जैसे फ़िल्टर जोड़ें। हर अनुरोध में Authorization हेडर रखते हुए, जवाब के Link हेडर में rel="next" का अनुसरण करें, जब तक वह न रहे। हर पेज पर अधिकतम 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);
} घटना को स्थायी रूप से दर्ज करने के बाद ही सफलता का जवाब दें। डिलीवरी की दोबारा कोशिशों की सीमा है; आपके खाते में पिछला दर्ज परिणाम दिखता है। डिलीवरी की स्वीकृति का अर्थ यह नहीं कि आपके ऐप्लिकेशन ने घटना संसाधित कर ली है।