Webhooks

Receive real-time notifications when warehouse operations complete.

Overview

Instead of polling the API for status changes, LogisticsWMS can call your system automatically when key events occur. Webhooks deliver a POST request to your configured endpoint with the event payload.

Webhook Types

Webhook Trigger Use Case
Close Reception A reception is completed in the WMS Update your ERP with received quantities, confirm purchase orders, trigger invoicing
Close Shipping Order A shipping order is fully packed and dispatched Generate shipping labels, update order status, notify customers
Stock Regularization Stock is adjusted (inventory count, damage, etc.) Sync stock levels with your e-commerce platform or ERP

Configuration

Webhook URLs and credentials are configured directly in the WMS application under Plugins → REST API → Webhooks:

Self-service setup You can configure webhooks yourself in the WMS application. No need to contact the LogisticsWMS team.

Close Reception Webhook

Trigger

Fired when a reception is closed in the WMS. Documents of type PURCHASE_ORDER and WAREHOUSE_TRANSFER_IN are sent to the reception close URL; documents of type CLIENT_RETURN are sent to the separate client return close URL, with the same payload. Other reception types are not sent.

Payload

POST to your endpoint
{
  "closingDocumentCode": "REC-2026-0042",
  "documentNumber": ["PO-2026-0001"],
  "documentExternalCode": "PO-2026-0001",
  "documentType": "PURCHASE_ORDER",
  "company": "ACME Corp",
  "originCode": "SUPPLIER-ACME",
  "receptionDate": "2026-04-16",
  "observations": "All goods received in good condition",
  "lines": [
    {
      "externalCode": "ERP-SKU-001",
      "quantity": 500,
      "lotCode": "LOT-2026-A",
      "expirationDate": "2028-12-31",
      "serialNumbers": []
    }
  ]
}

Payload Fields

Field Type Description
closingDocumentCode string WMS internal code for the closing document
documentNumber string[] List of document numbers associated with this reception
documentExternalCode string Your external code for the original document
documentType string The document type (see Enum Reference)
company string Company name
originCode string Supplier or origin identifier
receptionDate date Date the reception was completed (ISO 8601)
observations string Operator notes from the reception
lines array Received product lines with actual quantities
lines[].externalCode string Product external code
lines[].quantity number Actual quantity received
lines[].lotCode string Lot code (if lot-tracked)
lines[].expirationDate date Lot expiration date (if applicable)
lines[].serialNumbers string[] Serial numbers registered (if serial-tracked)

Expected Response

Your endpoint must return a 2xx status code (e.g., 200 OK) to acknowledge receipt. The body is optional. To reject the document, return {"success": false, "message": "..."}: the WMS then marks the integration as failed and shows your message to the operator. Any non-2xx response is also treated as a failure.

Close Shipping Order Webhook

Trigger

Fired when a shipping order is fully dispatched. Documents of type CLIENT_EXPEDITION are sent to the shipping order close URL; documents of type SUPPLIER_RETURN are sent to the separate supplier return close URL, with the same payload. Other shipping types are not sent.

Payload

POST to your endpoint
{
  "closingDocumentCode": "EXP-2026-0015",
  "documentNumber": ["SO-2026-0003"],
  "documentExternalCode": "SO-2026-0003",
  "documentType": "CLIENT_EXPEDITION",
  "company": "Customer XYZ",
  "destinationCode": "CUST-XYZ",
  "deliveryPointExternalCode": "DP-LISBON-01",
  "carrier": "DHL Express",
  "deliveryPlace": "Lisbon, Portugal",
  "observations": "",
  "lines": [
    {
      "externalCode": "ERP-SKU-001",
      "quantity": 30,
      "lotCode": "LOT-2026-A",
      "expirationDate": "2028-12-31",
      "serialNumbers": []
    }
  ],
  "packingList": [
    {
      "packingCode": "PKG-001",
      "weight": 10.5,
      "lines": [
        {
          "externalCode": "ERP-SKU-001",
          "quantity": 30
        }
      ]
    }
  ]
}

The packingList array provides details about how items were physically packed, including the package code, weight, and which products are in each package. This is useful for generating shipping labels and customs documentation.

Stock Regularization Webhook

Trigger

Fired when stock is adjusted outside normal reception/shipping flows (a positive or negative stock regularization). One request is sent per adjusted product and lot, and only for products that have an API external code.

Payload

POST to your endpoint
{
  "productExternalCode": "ERP-SKU-001",
  "lotCode": "LOT-2026-A",
  "quantity": -5,
  "movementTime": "2026-04-16T10:30:00+01:00",
  "warehouse": "WAREHOUSE-A"
}

Payload Fields

Field Type Description
productExternalCode string Product external code
lotCode string Lot code (null if the product is not lot-tracked)
quantity number Adjusted quantity (see below for the sign)
movementTime date-time When the adjustment was made (ISO 8601)
warehouse string External code of the warehouse (null if the warehouse has none)

Unlike the close webhooks, a failed stock regularization delivery is not shown to the operator and cannot be re-sent, so reconcile stock periodically with POST /api/external/v1/product/stock.

Negative quantities In stock regularization webhooks, a negative quantity indicates stock was removed (e.g., damaged or missing). A positive quantity indicates stock was added (e.g., found during count).

Security

Your Endpoint Requirements

Checklist for your webhook endpoint
  • Accepts POST requests with Content-Type: application/json
  • Validates the Basic Auth credentials in the Authorization header
  • Returns a 2xx status code to acknowledge receipt
  • Processes the payload asynchronously (respond quickly, process later)
  • Handles duplicate deliveries idempotently (use closingDocumentCode as key)
  • Available over HTTPS with a valid SSL certificate
  • Responds well within 45 seconds
Next steps
  • Configure your webhook URLs in the WMS under Plugins → REST API → Webhooks
  • Review the Error Catalog for handling API errors
  • Explore the Enum Reference for all document types and statuses