מעקב אחר חובות אריזה · גישת מפתחים
API ו-webhooks
יש להשתמש בכתובת ה-URL של המוצר שלך בדוגמאות להלן. שמרו מפתחות API בשרת שלכם. פתיחת תיעוד API אינטראקטיבי ↗
קריאת רשומות ציבוריות
curl 'https://verpackung.getregisters.com/api/v1/feeds/de-packaging-compliance/records?limit=50&offset=0' תשובות ציבוריות מכילות רק את שלוש הרשומות האחרונות בכל מרשם. תוכן של רשומות ישנות דורש PRO; כתובות ישירות מציגות תצוגה מקדימה מוגבלת. יש לעקוב אחר 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. כתובות הקורא אינן כוללות מפתח. לרשומות יש מזהים קבועים, וקוראים שאינם עוברים בין דפים יקבלו רק את הדף החדש ביותר. אם נדרשות כל הרשומות, יש להשתמש ב-API עם חלוקה לדפים.
קריאת ההיסטוריה של רשומה
curl 'https://verpackung.getregisters.com/api/v1/records/RECORD_ID/history?limit=50&offset=0' \
-H 'Authorization: Bearer YOUR_SCOPED_KEY' יש להחליף את RECORD_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"}}}' יש להוסיף את אותה כותרת Authorization עבור שדות PRO. נקודת הקצה תומכת גם ב-initialize, tools/list ו-notifications/initialized. כדי לקרוא מרשם שלם, השתמשו בחלוקה לדפים של REST שתוארה למעלה.
אימות חתימות webhook
פורמט כותרת החתימה הוא X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST. יש לאמת את גוף הבקשה הגולמי לפני פענוח JSON. שמרו תיעוד עמיד של מזהי X-Register-Event שטופלו בהצלחה, כדי שניסיונות חוזרים לא יגרמו לתופעות לוואי כפולות.
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);
} יש להחזיר תשובת הצלחה רק לאחר שמירת האירוע באופן עמיד. ניסיונות השליחה החוזרים מוגבלים; בחשבון מוצגת התוצאה האחרונה שתועדה. אישור קבלת השליחה אינו מאשר שהיישום השלים את הטיפול באירוע.