Webhooks
Webhooks allow Eclipse Pro to push production data to your systems in real time. When a configured event occurs, Eclipse Pro sends an HTTP POST request with the event data as JSON to a URL you specify.
Webhooks use the same reliable delivery infrastructure as other Eclipse Pro exports (NetSuite, D365, etc.), providing:
- Guaranteed delivery - Failed deliveries are automatically retried every 10 minutes
- Audit trail - Every webhook delivery attempt is tracked in the Export Events list
- Recovery - If your endpoint goes down, Eclipse Pro queues events and delivers them when it comes back
Prerequisites
- Eclipse Pro license with the
pro.integrationfeature - A bundle completions source must be configured (for Bundle Complete events)
Setup
1. Create an API Connection
Navigate to Settings > Integration > External Connections and create a new connection:
- Connection Type: API Connection
- API Base URL: The full URL that Eclipse Pro will POST to (e.g.,
https://yourserver.com/api/eclipse/bundle-complete) - Bearer Token (optional): If your endpoint requires authentication, enter the token here. Eclipse Pro will include it as an
Authorization: Bearer <token>header.
2. Create an Export Configuration
Navigate to Settings > Integration > Export and add a new configuration:
- Implementation: Bundle Complete Webhook
- Connection: Select the API Connection you created above
3. Verify
You can test with a service like webhook.site to inspect the requests Eclipse Pro sends. Complete a bundle on a machine and check the Export Events list to confirm delivery.
Available Webhooks
Bundle Complete
Fires when a production bundle is completed. The full BundleResult is sent as the POST body.
HTTP Request:
POST <your API Base URL>
Content-Type: application/json
Authorization: Bearer <token> (if configured)
Payload:
{
"JobId": "Jobs/12345",
"OrdId": 12345,
"OrderCode": "WO-1001",
"MaterialCode": "26GA-FG",
"ToolingCode": "CLASSIC RIB",
"WorkOrder": "WO-1001",
"BundleNumber": 1,
"BundleCode": "12345-01",
"ExpectedBundleCount": 3,
"BundleSequence": 1,
"ProducedLengthIn": 14400.0,
"ConsumedLengthIn": 14520.0,
"GoodIn": 14400.0,
"ScrapIn": 120.0,
"ReclaimedIn": 0.0,
"TotalQty": 50,
"TotalLbs": 3924.0,
"StartTime": "2026-02-17T08:00:00",
"Complete": true,
"EndTime": "2026-02-17T09:30:00",
"RunMinutes": 72.5,
"DelayMinutes": 17.5,
"ShortestLengthIn": 120.0,
"LongestLengthIn": 360.0,
"FinalMachineNumber": 1,
"Items": [
{
"ItmId": 67890,
"Quantity": 25,
"QuantityDone": 25,
"LengthIn": 240.0,
"PatternName": "PATTERN-1",
"PatternNumber": 1,
"PieceMark": "A1",
"Sequence": 1
}
],
"CoilsUsed": [
{
"CoilSerialNumber": "COIL-001",
"CoilMaterialCode": "26GA-FG",
"ProducedLengthIn": 14400.0,
"ConsumedLengthIn": 14520.0,
"GoodIn": 14400.0,
"ScrapIn": 120.0,
"ReclaimedIn": 0.0,
"CoilHeatNumber": "H12345"
}
],
"ScrapInByReason": { "1": 80.0, "3": 40.0 },
"DelayMinByReason": { "2": 10.0, "5": 7.5 },
"Job": {
"SalesOrder": "SO-12345",
"CustomerName": "Acme Roofing",
"CustomerNumber": "CUST-100",
"CustomerPO": "PO-9876",
"RequiredDate": "2026-02-20T00:00:00",
"TruckNumber": "T-42",
"StagingBay": "Bay 3"
},
"Material": {
"MaterialCode": "26GA-FG",
"Description": "26GA FOREST GREEN",
"Gauge": 26,
"Color": "FOREST GREEN",
"WidthIn": 36.0,
"LbsPerFt": 2.616,
"ThicknessIn": 0.018
},
"Tooling": {
"ToolingCode": "CLASSIC RIB",
"Description": "CLASSIC RIB 36\"",
"FinishedWidthIn": 36.0,
"ToolingGroup": "Classic Rib"
}
}
The example above shows representative fields. Some fields (User1-User5, addresses, etc.) are omitted for brevity. The actual payload includes all fields from the BundleResult model.
Expected Response:
Return any HTTP 2xx status code to indicate successful receipt. Eclipse Pro does not inspect the response body.
Error Handling:
| Your endpoint returns | Eclipse Pro behavior |
|---|---|
| HTTP 2xx | Marked as complete. No further action. |
| HTTP 4xx or 5xx | Retried on the next retry cycle (every 10 minutes). |
| Connection refused / timeout | Endpoint marked as down. Retried when connectivity is restored. |
Bundles older than 30 days are automatically expired and will not be delivered.
Monitoring
All webhook delivery attempts appear in Settings > Integration > Export Events. Each event shows:
- The bundle that triggered the webhook
- Whether delivery succeeded or failed
- The number of delivery attempts
- An activity log with details (HTTP status codes, error messages, etc.)
From the Export Events list you can also manually retry or cancel individual events.