वेबहूक्स वास्तविक समय की घटनाएँ
सभी घटनाओं के लिए वास्तविक समय की सूचनाएं प्राप्त करें। दस्तावेज़ संसाधित, ओसीआर पूर्ण, वर्गीकरण किया गया।
{
"event_type": "document.processed",
"event_id": "a3b7f9c1d4e8b2a6",
"timestamp": "2026-04-17T14:23:11Z",
"subscription_id": 42,
"data": { "pofid": "doc_01HZY8K3…" }
} दुनिया भर की अग्रणी कंपनियों का भरोसा
OEM PARTNERSHIP
Sole official DMS partner for QNAP and ASUSTOR.
Dedicated landing pages, direct integration, data stays on your NAS.
QNAP
Sole official DMS partner for QNAP NAS — documents stay on your device, AI runs through PaperOffice.
MoreASUSTOR
Listed by ASUSTOR as “the DMS for ASUSTOR NAS” — sole official partner.
More22 घटना प्रकार, इकाई द्वारा समूहीकृत
व्यक्तिगत घटनाओं की सदस्यता लें या सब कुछ के लिए वाइल्डकार्ड * का उपयोग करें।
दस्तावेज़
14-
दस्तावेज़ अपलोड किया गयानया दस्तावेज़ वर्कस्पेस में अपलोड किया गया -
दस्तावेज़ बनाया गयाdocument.uploaded के लिए उपनाम (संगतता) -
दस्तावेज़ संसाधितOCR/AI-IDP-Pipeline erfolgreich abgeschlossen -
दस्तावेज़ संपादितमेटाडेटा, टैग या सामग्री अपडेट की गई -
दस्तावेज़ हटाया गयादस्तावेज़ कचरे में ले जाया गया -
दस्तावेज़ पुनर्स्थापितदस्तावेज़ कचरे से पुनर्प्राप्त किया गया -
document.movedदस्तावेज़ को वर्कस्पेस के बीच ले जाया गया -
दस्तावेज़ संस्करण बनाया गयामौजूदा दस्तावेज़ में नया संस्करण जोड़ा गया -
दस्तावेज़.जीवनचक्र_बदला गयाधारण / अभिलेखागार स्थिति बदली गई -
दस्तावेज़.टिप्पणी_जोड़ी गईदस्तावेज़ पर टिप्पणी पोस्ट की गई -
दस्तावेज़.नोट_जोड़ी गईआंतरिक नोट संलग्न किया गया -
दस्तावेज़.टैग_जोड़ा गयादस्तावेज़ को टैग सौंपा गया -
दस्तावेज़.कानूनी_होल्ड_लगाया गयाकानूनी होल्ड सक्रिय किया गया (अपरिवर्तनीय) -
दस्तावेज़.कानूनी_होल्ड_हटाया गयाकानूनी होल्ड जारी किया गया
नौकरियां
3-
कार्य.पूर्णअतुल्यकालिक नौकरी सफलतापूर्वक समाप्त हुई -
कार्य.असफलअतुल्यकालिक नौकरी अंततः विफल रही -
कार्य.प्रगतिलंबे समय तक चलने वाली नौकरियों के दौरान प्रगति अपडेट
Workspaces
2-
कार्यस्थान.साझा किया गयाWorkspace को किसी उपयोगकर्ता या टीम के साथ साझा किया गया -
कार्यस्थान.असाझा किया गयाWorkspace की पहुँच रद्द कर दी गई
कार्य
3-
कार्य.बनाया गयानया कार्य बनाया गया -
कार्य.पूर्णकार्य पूर्ण के रूप में चिह्नित किया गया -
कार्य.अतिदेयकार्य अपनी नियत तारीख से आगे निकल गया
वेबहुक्स का कार्यान्वयन में प्रदर्शन
देखें कि PaperOffice Webhooks व्यावहारिक रूप से कैसे काम करता है — वीडियो में।
प्रत्येक डिलीवरी एक ही स्कीमा का पालन करती है
पूर्वानुमेय JSON बॉडी, पांच हस्ताक्षरित HTTP हेडर, ISO-8601 UTC टाइमस्टैम्प।
{
"event_type": "document.processed",
"event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
"timestamp": "2026-04-17T14:23:11Z",
"subscription_id": 42,
"data": {
"pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
"workspace_id": 17,
"filename": "invoice-2026-04-17.pdf",
"mime_type": "application/pdf",
"size_bytes": 284521,
"processing_result": {
"ocr_done": true,
"classification": "invoice",
"confidence": 0.98
}
}
} Content-Type application/json हमेशा JSON, UTF-8 एन्कोडेड User-Agent PaperOffice-Webhook/1.0 फ़ायरवॉल अनुमति सूचियों के लिए निश्चित पहचानकर्ता X-PaperOffice-Event document.processed वितरित की जा रही घटना का प्रकार X-PaperOffice-Event-ID a3b7f9c1… 128-बिट अद्वितीय ID। इडेमपोटेंसी के लिए उपयोग करें। X-PaperOffice-Subscription-ID 42 घटना प्राप्त करने वाली सदस्यता का ID X-PaperOffice-Signature sha256=… कच्चे बॉडी का HMAC-SHA256, हेक्स-एन्कोडेड प्रत्येक डिलीवरी को HMAC-SHA256 के साथ सत्यापित करें
अपने साझा गुप्त का उपयोग करके कच्चे अनुरोध बॉडी पर HMAC-SHA256 की गणना करें, फिर स्थिर-समय तुलना (hash_equals, crypto.timingSafeEqual) का उपयोग करके X-PaperOffice-Signature के खिलाफ तुलना करें।
import crypto from 'crypto';
const app = express();
const WEBHOOK_SECRET = process.env.PAPEROFFICE_WEBHOOK_SECRET;
app.post('/webhooks/paperoffice', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.header('X-PaperOffice-Signature'); // "sha256=..."
const eventId = req.header('X-PaperOffice-Event-ID');
const eventType = req.header('X-PaperOffice-Event');
const expected = 'sha256=' + crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (!signature || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
return res.status(401).send('invalid signature');
}
const event = JSON.parse(req.body.toString());
// eventId als Idempotency-Key speichern -> gleiche ID nicht zweimal verarbeiten
console.log(eventType, event.data);
res.status(200).send('ok');
}); तीन पुनः प्रयास रणनीतियां, 10 प्रयासों तक
प्रति सदस्यता एक नीति चुनें। प्रत्येक प्रयास स्थिति कोड, प्रतिक्रिया बॉडी और समय के साथ लॉग किया जाता है।
exponential घातांक (डिफ़ॉल्ट)
प्रत्येक प्रयास के बाद बैक-ऑफ दोगुना हो जाता है: 30s, 60s, 120s, 240s, 480s…
linear रैखिक
निश्चित वृद्धि: 30s, 60s, 90s, 120s, 150s…
none कोई नहीं
फायर-एंड-फॉरगेट। 5xx त्रुटियों पर भी कोई पुनः प्रयास नहीं। परीक्षण हुक के लिए उपयोगी।
/latest/webhooks/ के तहत 9 एंडपॉइंट
सदस्यताओं, डिलीवरी लॉग, वन-टाइम जॉब सदस्यताओं और एक परीक्षण एंडपॉइंट के लिए पूर्ण CRUD — सभी OAuth2 बेयरर, सभी MCP-तैयार।
/webhooks/subscribe एक नई सदस्यता बनाएं (प्रति खाता असीमित) po_webhooks_subscribe /webhooks/list खाते की सभी सदस्यताओं की सूची देखें po_webhooks_list /webhooks/update मौजूदा सदस्यता अपडेट करें po_webhooks_update /webhooks/delete सदस्यता को सॉफ्ट-डिलीट करें (डिलीवरी लॉग संरक्षित) po_webhooks_delete /webhooks/deliveries फ़िल्टर के साथ डिलीवरी लॉग पुनः प्राप्त करें (event_type, success_only) po_webhooks_deliveries /webhooks/test डिलीवरी सत्यापित करने के लिए एक test.ping इवेंट भेजें po_webhooks_test /webhooks/subscribe-job विशिष्ट job_id के लिए वन-टाइम वेबहुक po_webhooks_subscribe_job /webhooks/job-subscriptions जॉब-स्कोप्ड सदस्यताओं की सूची देखें po_webhooks_job_subscriptions /webhooks/info उपलब्ध इवेंट, एंडपॉइंट, पुनः प्रयास नीतियां, हस्ताक्षर जानकारी po_webhooks_info डिज़ाइन द्वारा सुरक्षित
एचएमएसी-एसएचए256
प्रत्येक पेडलोड आपके सीक्रेट के साथ हस्ताक्षरित। स्थिर-समय तुलना अनिवार्य है।
SSRF सुरक्षा
निजी/आंतरिक IP, localhost और क्लाउड मेटाडेटा एंडपॉइंट सदस्यता और डिस्पैच पर अवरुद्ध।
DNS रीबाइंडिंग सुरक्षित
डिस्पैच समय पर IP पुनः सत्यापित, CURLOPT_RESOLVE के माध्यम से पिन किया गया।
HTTPS दृढ़ता से предпочित
http और https स्वीकार्य। उत्पादन के लिए HTTPS अनुशंसित।
इवेंट-ID इडेमपोटेंसी
प्रत्येक डिलीवरी एक अद्वितीय X-PaperOffice-Event-ID ले जाती है। अपने पक्ष पर डेडुप्लिकेशन करें।
पूर्ण ऑडिट ट्रेल
सभी प्रयास लॉग किए गए: स्थिति कोड, प्रतिक्रिया बॉडी, समय, त्रुटि संदेश।
असीमित सदस्यताएं, डिलीवरी व्यवहार पूरी तरह से कॉन्फ़िगर करने योग्य
सभी योजनाओं पर उपलब्ध। पे-पर-यूज: प्रति सफल डिलीवरी 1 क्रेडिट (HTTP 2xx)। पुनः प्रयास, परीक्षण इवेंट और विफल डिलीवरी मुफ्त हैं।
घटनाएँ प्राप्त करें?
अपने वेबहूक्स को कॉन्फ़िगर करें।