Webhook Payload Template Generator for ERP Events
Webhooks let an ERP tell other systems or AI agents that something changed instead of being polled. A good payload is small, versioned, identifiable and verifiable. This generator produces one with matching headers and receiver rules.
Fill in
Payload (HTTP POST body)
{
"id": "evt_01JB8Q2X9K",
"type": "sales_order.shipped",
"version": "2026-10-01",
"occurredAt": "2026-10-20T09:15:30Z",
"source": "erp-prod-us",
"data": {
"id": "SO-100245",
"status": "shipped",
"previousStatus": "picked",
"trackingNumber": "1Z999AA10123456784",
"url": "https://erp.example.com/api/v1/sales-orders/SO-100245"
}
}Headers to send
Content-Type: application/json X-Webhook-Id: evt_01JB8Q2X9K X-Webhook-Timestamp: 2026-10-20T09:15:30Z X-Webhook-Signature: sha256=<hex HMAC of timestamp + "." + raw body using the shared secret>
Receiver rules
1. Verify the signature against the raw body before parsing. 2. Reject timestamps older than five minutes. 3. Store the event id and ignore duplicates. 4. Return 2xx quickly and process asynchronously. 5. Fetch the full record from data.url if you need more fields.
The header names and signature scheme here are a design pattern, not a standard. Match whatever your platform defines if you are consuming someone else's webhooks. Keep payloads small and put sensitive detail behind an authenticated fetch.
Design my ERP event flow
Optional: we can review webhook contracts and build the receivers and agents behind them.
Optional. The tool and every export work without this. No spam.
How to use it
Name the event in noun.verb form, supply the record id and the fields that changed, and generate the body and headers. Use the output as the contract between the sender and every receiver. Share it with downstream teams, and have them implement the five receiver rules. Export it to Word or PDF to attach to an integration design document.
- Use a stable, unique event id
- Include a schema version in every payload
- Send the new and previous status for state changes
Design reasoning
The event id supports idempotency, because delivery is usually at least once and receivers must tolerate duplicates. The occurredAt field and a signed timestamp defend against replay. An HMAC signature over the raw body proves the sender knows the secret. A version field lets you evolve fields without breaking consumers. A url to the record keeps the payload thin, since ERP records can be large and sensitive.
Using webhooks with AI agents
An agent can subscribe to events such as a purchase order approval or a quality hold and then decide what to do, rather than polling every few minutes. Keep the action behind the same permission and approval rules as any other tool. The payload should carry ids and states, not free text from users, so that injected instructions in data fields cannot steer the model.
Common mistakes
Frequent errors include missing event ids, parsing the body before checking the signature, doing long work before replying so the sender retries, ordering assumptions between events, and putting full records with personal or controlled data in the payload. Document retry behavior and what a receiver should do on repeated failure.
Frequently Asked Questions
Should the payload carry the full record?
Usually no. Send ids, the changed fields and a url. Receivers can fetch the full record with their own credentials, which keeps payloads small and avoids leaking data to endpoints that do not need it.
How do I handle duplicate deliveries?
Store the event id when you process it and skip any event you have already seen. Most webhook systems guarantee at least once delivery, so duplicates are normal.
What is the signature for?
It lets the receiver confirm the request came from the sender and was not changed. Compute an HMAC with a shared secret over the raw body and timestamp, then compare in constant time.
Is the header format a standard?
No. Names and schemes differ between vendors. This template is a sensible pattern; follow the documented format of any platform whose webhooks you consume.
Netray builds event driven integrations and agents on ERP data. If you want a design review of your webhook contract, get in touch.
Related Tools
Webhook Event Test Case Worksheet
A test plan grid for messaging webhooks: inbound text, status receipts, duplicates, bad signatures and ERP failures. Exports to Excel.
Developer ToolsOpenAPI Spec Skeleton Generator for ERP Endpoints
Create an OpenAPI 3.0 YAML starting point for an ERP resource with list and get operations, paging and a record schema.
Developer ToolsERP API Rate Limit Calculator for AI Agents
Check whether your AI agents will exceed an ERP API rate limit at peak, and how many agents the limit can support.
Developer ToolsERP Record JSON Schema Generator
Define an item, order or supplier record as JSON Schema with types, patterns, enums and required fields for validation and AI tool input.
More Developer Tools tools
See all- SAP Sales Order ABAP SELECT Generator (VBAK, VBAP, VBFA)
- SAP Sales Order Create BAPI ABAP Generator (BAPI_SALESORDER_CREATEFROMDAT2)
- SAP ABAP Open Items SELECT Generator
- SAP ACDOCA SQL Query Generator
- SAP QM Inspection Lot ABAP SELECT Generator
- SAP Quality Notification Pareto SQL Query Generator
- SAP QM Usage Decision BAPI Skeleton
- ABAP Custom Exception Class Generator
- ABAP Unit Test Class Generator
Keep exploring
Free tools
- CAPA Record JSON Payload GeneratorBuild a clean JSON payload for a corrective and preventive action record to test an API, seed a sandbox or define an integration contract.
- GST E-Invoice JSON Payload GeneratorBuilds a sample e-invoice JSON with the main IRP blocks so developers can map ERP fields and test in the sandbox.
- Webhook Signature Verification Code GeneratorGenerates an Express.js webhook endpoint with the Meta GET verification handshake and constant time HMAC SHA256 signature checks.
ERP fixes and how-tos
- Infor OS Service Limits: Payload, File Size and Rate, and How to Design Around ThemInfor OS service limits for ION API and ION messaging: payload, file size and request rate, how to find the real values for your tenant and how to design around them.
- How to Set Up Business Events and Actions in IFSConfigure IFS Business Events and Actions step by step: define triggers on an entity, enable the event, and bind an email, workflow, or webhook action.
Guides
- How to Configure SyteLine Webhook NotificationsLearn how to configure webhook notifications in SyteLine CloudSuite Industrial. Set up event-driven HTTP callbacks for order changes, inventory alerts, and workflow triggers.
- SyteLine REST API Integration GuideIntegrate SyteLine via REST APIs. IDO web services, authentication, payload design, and integration patterns for CloudSuite Industrial.
- Setting Up Webhooks and Event Notifications in SyteLineConfigure SyteLine webhooks and event notifications using ION Connect and BOD triggers. Build event-driven integrations for CloudSuite Industrial workflows.
Integrations
- How to add Microsoft Teams to OdooHow to connect Odoo to Microsoft Teams: webhook alerts, adaptive card approvals, a Teams bot over the external API, and Entra ID sign-in. Cloud and on-prem notes.
- How to add WhatsApp to AcumaticaHow to add WhatsApp to Acumatica: Business Events, the contract-based REST API, template messages, opt-in rules and two-way replies for orders and approvals.