Accie Extract Webhooks & Real-Time Events

Accie Extract delivers asynchronous events via HTTP POST webhooks as soon as document pipelines complete extraction, run multi-way arithmetic reconciliation, or report validation failures.

Supported Extract Event Types

Event Type Trigger Description
extract.job.completed Fired when document vision OCR and table parsing have completed successfully. Contains structured key-value pairs and line items.
extract.job.verified Fired when all 5 verification engines pass: GSTIN validity, QR/IRN checksum, tax reconciliation, total reconciliation, and document kind categorization.
extract.job.failed Fired when a document is unreadable, password-protected without key, corrupted, or exceeds size limits.
extract.reconciliation.mismatch Fired when arithmetic differences are detected between extracted line items, GST rate slabs, and invoice grand totals.

Extract Webhook Payload Schema

Each webhook payload is sent with Content-Type application/json and includes the job ID, workspace ID, status, verified badges, and structured extracted fields:

{
  "id": "evt_ext_9281a8c0f7e4",
  "event": "extract.job.completed",
  "created_at": "2026-09-09T18:00:00Z",
  "data": {
    "job_id": "job_01h9x8y7z6w5v4u3",
    "workspace_id": "ws_accie_prod",
    "filename": "tax_invoice_2026_0891.pdf",
    "status": "completed",
    "verification": {
      "gstin_checked": "verified",
      "qr_irn": "verified",
      "tax_reconciliation": "verified",
      "total_reconciliation": "verified",
      "document_kind": "verified"
    },
    "extracted_fields": {
      "document_kind": "Tax Invoice",
      "supplier_name": "GLOBAL TECH SOLUTIONS",
      "gstin_supplier": "36AACCM4684P1ZS",
      "recipient_name": "ACCIE TECHNOLOGIES PVT LTD",
      "gstin_recipient": "36AABCA1234F1Z5",
      "invoice_number": "INV-2026-0891",
      "invoice_date": "2026-10-15",
      "taxable_amount": "12500.00",
      "cgst": "1125.00",
      "sgst": "1125.00",
      "total_amount": "14750.00"
    },
    "reconciliation": {
      "status": "reconciled",
      "line_items_sum": "12500.00",
      "tax_sum": "2250.00",
      "grand_total": "14750.00",
      "discrepancy": "0.00"
    }
  }
}

HMAC-SHA256 Signature Verification

Verify the X-Accie-Signature header to confirm that the webhook originated from Accie's servers and was not altered in transit.

import hmac
import hashlib

def verify_extract_webhook(payload_bytes, signature_header, secret):
    expected = hmac.new(secret.encode('utf-8'), payload_bytes, hashlib.sha256).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature_header)

Configuring Webhooks

You can register webhook endpoints through the Extract Workspace Settings or programmatically using the Extract REST API:

POST /api/v1/workspaces/{workspace_id}/webhooks
Host: ocr.accie.ai
Authorization: Bearer accie_live_...
Content-Type: application/json

{
  "url": "https://api.yourcompany.com/webhooks/accie-extract",
  "events": ["extract.job.completed", "extract.job.verified", "extract.reconciliation.mismatch"],
  "secret": "whsec_..."
}