Extracta.ai
DashboardJoin Discord
  • extracta.ai
    • Introduction
    • Overview
  • API Reference
    • 🔓Authentication
    • 📁Supported File Types
  • Data Extraction - API
    • đŸ’ģAPI Endpoints - Data Extraction
      • 1. Create extraction
      • 2. View extraction
      • 3. Update extraction
      • 4. Delete extraction
      • 5. Upload Files
      • 6. Get results
    • Extraction Details
      • 🌎Supported Languages
      • âš™ī¸Options
      • 📋Fields
    • Receiving Batch Results
      • Polling vs Webhook
      • How to use the Webhook
    • đŸ•šī¸Postman Integration
  • Document Classification - API
    • đŸ’ģAPI Endpoints - Document Classification
      • 1. Create classification
      • 2. View classification
      • 3. Update classification
      • 4. Delete data
        • 4.1 Delete classification
        • 4.2 Delete batch
        • 4.3 Delete files
      • 5. Upload Files
      • 6. Get results
    • Classification Details
      • 📄Document Types
  • Documents
    • Custom Document
    • Resume / CV
    • Contract
    • Business Card
    • Email
    • Invoice
    • Receipt
    • Bank Statement
  • Support
    • 💁Tutorials
    • đŸŸĸAPI Status
  • Contact
    • 📧Contact Us
    • ❓FAQ
Powered by GitBook
On this page
  • Prerequisites
  • Step 1: Set Up Your Server
  • Step 2: Implement Webhook Endpoint
  • Step 3: Test Your Webhook Listener

Was this helpful?

  1. Data Extraction - API
  2. Receiving Batch Results

How to use the Webhook

Webhooks allow you to receive real-time notifications of events happening within your Extracta.ai extractions. This section will guide you through setting up a Node.js server with Express to listen for and handle webhook events securely.


Prerequisites

  • Node.js installed on your server

  • An Express.js application

  • A secret key obtained from the Extracta.ai dashboard


Step 1: Set Up Your Server

First, ensure you have Express and the necessary packages installed in your project. If not, you can install them using npm:

npm install express body-parser crypto --save

Step 2: Implement Webhook Endpoint

Create a basic HTTP server with Express to listen for webhook POST requests. Use the following code snippet as a starting point:

server.js
const express = require('express');
const crypto = require('crypto');
const bodyParser = require('body-parser');

const app = express();
const port = 4000;

app.use(bodyParser.json());

// Your webhook secret key from the dashboard
const secret = 'secretKey';

// Middleware to validate the webhook signature
function validateSignature(req, res, next) {
  const sigHeader = req.headers["x-webhook-signature"];

  const signature = crypto.createHmac('sha256', secret.replace('E_AI_K_', '')).update(req.body.result).digest('base64');

  if (signature !== sigHeader) {
    return res.status(401).send({ message: "Webhook is not properly signed" })
  }

  next()
}

// Webhook endpoint
app.post('/webhook', validateSignature, (req, res) => {
  console.log('Webhook received:', req.body);
  
  // Process the webhook payload as needed
  // ...

  res.send({ message: "Webhook received" })
})

app.listen(port, () => console.log(`Server listening on port ${port}!`))

Step 3: Test Your Webhook Listener

After setting up your webhook listener, test it by sending a simulated files. Ensure your server validates the signature and processes the event correctly.


By following these steps, you can securely set up your application to receive and process webhook events from Extracta.ai, enabling real-time updates and actions based on the events transmitted to your endpoint.

PreviousPolling vs WebhookNextPostman Integration

Last updated 1 month ago

Was this helpful?