Ambalaj Yükümlülükleri Takibi
Dil: Türkçe

Ambalaj Yükümlülükleri Takibi · GELİŞTİRİCİ ERİŞİMİ

API ve webhook'lar

Aşağıdaki örneklerde ürününüzün URL'sini kullanın. API anahtarlarını kendi sunucunuzda saklayın. Etkileşimli API belgelerini açın ↗

Herkese açık kayıtları okuyun

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

Herkese açık yanıtlar, kayıt başına yalnızca en son üç kaydı içerir. Eski kayıtların içeriği için PRO gerekir; doğrudan URL'ler sınırlı ön izleme sağlar. Filtrelenmiş sayfada kayıt olmasa bile next_offset null olana kadar izleyin. Her özgün source_url değerini belirtin. Yayımlanma ve gözlemlenme tarihleri farklı olaylardır.

PRO kayıtlarını okuyun

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

Anahtarınızı hesabınızda oluşturun veya yenileyin. Anahtar yalnızca bu ürün için ve ücretli erişim etkin olduğu sürece çalışır.

Dışa aktarma biçimleri

PRO; CSV, Excel (.xlsx), XML, RSS ve Atom içerir. Her biçim için ürününüzün API anahtarını ve aynı filtreleri kullanın. Örneğin en fazla 100 kaydı Excel çalışma kitabı olarak indirin:

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 yerine csv, xml, rss veya atom yazın. document_type=adopted veya facility_id=YOUR_FACILITY_ID gibi filtreler ekleyin. Yanıttaki rel="next" değerli Link başlığı kalmayana kadar devam edin; her istekte Authorization başlığını koruyun. Her sayfa en fazla 100 kayıt içerir; filtrelenmiş bir sayfa boş olsa da daha sonraki bir sayfa bulunabilir.

RSS ve Atom için Authorization başlığını destekleyen bir okuyucu ayarlayın. Okuyucu URL'leri anahtar içermez. Girdilerin sabit kayıt kimlikleri vardır; sayfalamayı izlemeyen okuyucular en yeni sayfayı alır. Tüm kayıtlar gerekiyorsa sayfalı API'yi kullanın.

Bir kaydın geçmişini okuyun

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

RECORD_ID yerine dönen kayıt kimliğini yazın. Geçmiş, en yeniden eskiye sıralı bir dizi döndürür. İstenen sınırdan daha kısa bir sayfa gelene kadar offset değerini sayfa uzunluğu kadar artırın. Sürümler, kaynak değişikliklerini veya veri çıkarımı düzeltmelerini yansıtabilir.

MCP ile bağlanın

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 alanları için aynı Authorization başlığını ekleyin. Uç nokta ayrıca initialize, tools/list ve notifications/initialized işlemlerini destekler. Tam bir kaydı okumak için yukarıdaki REST sayfalamasını kullanın.

Webhook imzalarını doğrulayın

İmza başlığı X-Register-Signature: t=TIMESTAMP,v1=HEX_DIGEST biçimindedir. JSON'u ayrıştırmadan önce ham gövdeyi doğrulayın. Yeniden denemelerin yan etkileri tekrarlamaması için başarıyla işlenen X-Register-Event kimliklerini kalıcı olarak saklayın.

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

Yalnızca olayı kalıcı olarak kaydettikten sonra başarılı yanıt döndürün. Teslim yeniden denemeleri sınırlıdır; hesabınız son kaydedilen sonucu gösterir. Teslim onayı, uygulamanızın olayı işlemeyi bitirdiğini doğrulamaz.