Export & Webhook Schema

Every analysis produces structured JSON you can feed into any system: Business Central, SAP, Odoo, NetSuite, Power Automate, or your own tools. Two delivery paths share the same field vocabulary: the download export (Export button in the app: JSON / CSV / Excel) and the webhook (we POST results to your URL automatically).

Schema version: 1. Within a major version we only make additive changes (new fields, new keys). Removals or renames would ship as version 2 with notice, so your integrations won't silently break.

1. Download export (JSON)

Click Export → JSON after an analysis. Shape:

{
  "schemaVersion": 1,
  "generatedAt": "2026-08-05T14:31:22.000Z",
  "source": "Ceyltech Document Checker",
  "fields": {
    "Container Number": {
      "bcSuggestedField": "containerNumber",
      "extractions": [
        { "value": "CRSU6119884", "page": 3, "docType": "Bill of Lading" }
      ]
    },
    "Net Weight": {
      "bcSuggestedField": "netWeight",
      "extractions": [
        { "value": "25.259,68", "page": 1, "docType": "Invoice" }
      ]
    }
  }
}

Each extracted field carries every occurrence found: the value exactly as printed, the page it was found on, and the document type of that page. bcSuggestedField is a suggested ERP field key (camelCase, Business Central REST v2 vocabulary where one exists).

Field name → suggested ERP key

FieldSuggested keyFieldSuggested key
Container NumbercontainerNumberSeal NumbersealNumber
Net WeightnetWeightGross WeightgrossWeight
Number of CartonsunitsOfMeasureQuantityHS CodetariffNoCode
PlantsplantNumberProduct Namedescription
Production DateproductionDateExpiry DateexpirationDate
Exporter NamevendorNameExporter AddressvendorAddress
Importer NameshipToNameImporter AddressshipToAddressLine1
Final DestinationsshipToCityLot NumberslotNo

Custom fields you define keep their own names (non-alphanumeric characters stripped in the key). CSV and Excel exports flatten the same data into one row per extraction.

2. Webhook (push)

Configure a URL in Settings → Business Central Integration → Webhook. Every completed analysis is POSTed to it within seconds. No polling, no manual export.

Request

Payload

{
  "schemaVersion": 1,
  "event": "analysis.completed",
  "generatedAt": "2026-08-05T14:31:22.000000+00:00",
  "source": "Ceyltech Document Checker",
  "document": {
    "id": "95435df0626642edad5152b293ca271c",
    "analysisId": "a1b2c3…",
    "documentType": "Page 1: Invoice\nPage 2: Invoice\nPage 3: Bill of Lading"
  },
  "fields": {
    "Container Number": [ { "value": "CRSU6119884", "page": 3 } ],
    "Net Weight":       [ { "value": "25.259,68",  "page": 1 } ]
  }
}

Verifying the signature

# Python
import hmac, hashlib
expected = "sha256=" + hmac.new(SECRET.encode(), raw_body, hashlib.sha256).hexdigest()
valid = hmac.compare_digest(expected, request.headers["X-Ceyltech-Signature"])

Always compare against the raw request body bytes, before any JSON parsing. Use the Send test button in Settings to receive a sample payload while building.

3. Using it with Power Automate (SAP, Dynamics, Teams, email…)

  1. In Power Automate, create a flow starting with the trigger “When an HTTP request is received.”
  2. Paste the webhook payload above into “Use sample payload to generate schema.”
  3. Save the flow and copy the generated HTTP URL.
  4. Paste that URL into Settings → Webhook in Ceyltech and click Send test.
  5. Add whatever actions you need: create a record in Dynamics, post to Teams, write to SharePoint, forward to your SAP middleware. Power Automate has connectors for hundreds of systems.

The same webhook works with Zapier, Make, n8n, Mulesoft, SAP CPI, or a 20-line script on your own server.

Questions?

We're happy to help you wire this into your systems: contact@ceyltech.com.