ImpexDocs Webhooks

What are webhooks?

Webhooks allow you to subscribe to events that occur in ImpexDocs. When one of these events is triggered, ImpexDocs sends an HTTP POST request to your configured webhook URL with a JSON payload describing the event.

Webhooks are configured per company. When configured, ImpexDocs sends events for each enabled module.

Authentication

You can secure your webhook endpoint using either of the following optional methods:

  • Basic Authentication
    Provide a Username and Password which ImpexDocs will use to authenticate via Basic Auth: User and Password.

  • Header Key-Based Authentication
    You may also configure custom HTTP headers, such as:

    • X-Api-Key: your-secret-key
    • Authorization: Bearer your-token

These headers will be included with every webhook request.

Action and Triggers

The Action and Triggers section allows users to configure when a webhook should be triggered. This ensures external systems receive real-time updates when important information changes.

Booking

  • How It Works:
  1. The user selects one or more Events in the Booking webhook configuration.
  2. The system displays all related booking fields in the Additional Payload section.
  3. The user can select any of these fields.
  4. When the webhook is triggered, the selected fields and their current values will be included in the webhook request body sent to the external system.
  • Purpose

    This feature provides flexibility by allowing external systems to receive only the specific data fields they require, without sending the entire booking object.

Note: Bookings without a Booking Number will not trigger webhooks.

Actions: Actions define which type of booking operation will trigger the webhook.

  • Create: Enable this option to trigger the webhook when a new booking is created in ImpexDocs.
    • Trigger On: This dropdown allows you to define when the webhook should be fired during the create process, and it is optional. Typical options include.
      • When Shipment Linked: A webhook will be triggered when a new booking is created and linked to an Export Shipment.
  • Modify: Enable this option to trigger the webhook when an existing booking is modified.
    • Trigger On: This dropdown allows you to define when the webhook should be fired during the modify process, and it is optional. Typical options include.
      • When Shipment Linked: A webhook will be triggered when an existing booking is modified and linked to an Export Shipment.

Events : Events specify which booking fields or attributes must change to trigger the webhook when Modify is enabled.

You can select one or more events.

  • Location Changed: Triggers when routing, vessel/voyage, shipping line, port, terminal, depot, or destination details are modified. This includes the following booking fields.
    • Departure Vessel
    • Departure Voyage
    • Departure Empty Depot
    • Name Of Shipping Line/Airline Code
    • Shipping Line/Airline Desc
    • Port Of Loading Code
    • Port Of Loading Desc
    • Terminal Code
    • Terminal Desc
    • First Discharge Port Code
    • First Discharge Port Desc
    • Final Port Of Discharge Code
    • Final Port Of Discharge Desc
    • Final Destination Code
    • Final Destination Name
  • Header Changed: Triggers when general booking information is updated. This includes the following booking fields.
    • Booking Number
    • Booking Status
    • No. Of Containers
    • Container Description
    • Container Type
    • Temperature
    • Temperature Unit
    • Air Flow/Vent
    • Air Flow/Vent Unit
    • Humidity (%)
  • Date Changed: Triggers when shipment-related dates are modified.
    • Cargo Cutoff Date
    • Reefer Cutoff Date
    • Terminal Receiving Date Time
    • Estimated Arrival Date (ETA)
    • Transhipment ETD
    • Estimated Departure Date (ETD)
    • Actual Departure Date (ATD)
    • Actual Arrival Date (ATA)
    • Transhipment ETA
    • Transhipment ATA
    • Transhipment ATD
  • Shipment Changed: Triggers when shipment details are modified.
    • Shipment Number
  • Rate Changed: Triggers when freight or pricing information changes
    • Quote Reference
    • Currency
    • Quoted Rate Per Container
    • Total
    • Tons Per FCL
    • Quantity MT
    • Exchange Rate
    • Freight Local
    • Freight USD
    • Total Freight USD
    • Freight Per Ton
    • Comments

Additional Payload: The Additional Payload section allows users to include extra Booking fields in the webhook request body when the webhook is triggered.

When events are selected in the Events section (such as Location Changed, Date Changed, Shipment Changed, etc.), the system automatically identifies the related booking fields associated with those events. These fields will be displayed in the Additional Payload list.

Payload Structure

{
  "resourceUri": "https://coreapi.impexdocs.com/api/v1/bookings/{booking id}",
  "resourceId": "a8183986-8495-4347-8b14-06039ae15185",
  "resourceCode": "6444760682",
  "eventDateUtc": "2026-05-20T05:23:26.32Z",
  "eventType": "Update",
  "eventCategory": "Booking",
  "subEventType": "HeaderChanged",
  "companyId": XXXX,
  "companyName": "ImpexDocs Company",
  "userId": 0000,
  "userName": "User Impex",
  "additionalInfo": [
    {
      "vessel": "ALS CLIVIA1",
      "voyage": "006N",
      "emptyDepot": "ACFS BRISBANE",
      "shippingLineCode": "COS",
      "shippingLineCodeDesc": "COSCO SHIPPING LINES (OCEANIA) PTY LTD",
      "placeofCarrierReceipt": "AUBNE",
      "placeofCarrierReceiptDesc": "BRISBANE",
      "terminalCode": "DPBNE",
      "terminalDesc": "DP WORLD, QL, BRISBANE",
      "firstDischargePortCode": "JPOSA",
      "firstDischargePortDesc": "OSAKA",
      "finalPortOfDischargeCode": "JPOSA",
      "finalPortOfDischargeDesc": "OSAKA",
      "finalDestinationCode": "JPOSA",
      "finalDestinationName": "OSAKA",
      "bookingNumber": "6444760682",
      "bookingStatus": "CREATED",
      "noofContainers": "1",
      "containerDescription": "X 40FT REEFER",
      "containerType": "REEFER REFERIGERATED HIGH CUBE (9,6)",
      "temperature": "-1",
      "temperatureUnit": "CEL",
      "airFlow": "0",
      "airFlowUnit": "CBM",
      "humidity": "1",
      "cargoCutoffDate": "04/15/2026 19:00:00",
      "reeferCutoffDate": "04/15/2026 19:00:00",
      "terminalReceivingDate": "04/11/2026 05:00:00",
      "estimatedArrivalDate": "05/19/2026 00:00:00",
      "transhipmentDepartureDate": "05/18/2026 00:00:00",
      "estimatedDepartureDate": "05/02/2026 00:00:00",
      "actualDepartureDate": "05/02/2026 00:00:00",
      "actualArrivalDate": "05/20/2026 00:00:00",
      "transhipmentETADate": "05/15/2026 00:00:00",
      "transhipmentATADate": "05/16/2026 00:00:00",
      "transhipmentATDDate": "05/18/2026 00:00:00",
      "shipmentNumber": [
        {
          "shipmentNumber": "4000928"
        },
        {
          "shipmentNumber": "4000930"
        }
      ],
      "quotetReference": "",
      "currency": "AUD",
      "quotedFreightRate": "1000",
      "totalQuotedFreightRate": "1000.00",
      "tonsPerFCL": "24",
      "quantityMT": "24.000",
      "exchangeRate": "0.65",
      "freightLocal": "50",
      "freightUSD": "500",
      "totalFreightUSD": "532.500",
      "freightPerTon": "22.188",
      "comments": "TEAM WORK"
    }
  ]
}

EDN

  • How It Works:
  1. The user selects events in the EDN webhook configuration.
  2. The system displays all related EDN fields in the Additional Payload section.
  3. The user can select any of these fields.
  4. When the webhook is triggered, the selected fields and their current values will be included in the webhook request body sent to the external system.
  • Purpose

    This feature provides flexibility by allowing external systems to receive only the specific data fields they require, without sending the entire EDN object.

Note: EDNs without a EDN Number will not trigger webhooks.

Actions: Actions define which type of EDN operation will trigger the webhook.

  • Create: Enable this option to trigger the webhook when a new EDN is created in ImpexDocs.
  • Modify: Enable this option to trigger the webhook when an existing EDN is modified.

Events : Events specify which EDN fields or attributes must be changed to trigger the webhook when Modify is enabled.

You can select one or more events.

  • Header Changed: Triggers when general EDN information is updated. This includes the following EDN fields.
    • EDN Number
    • Shipment Number
    • Exporter Reference
    • EDN Status
    • EDN Status DateTime

Additional Payload: The Additional Payload section allows users to include extra EDN fields in the webhook request body when the webhook is triggered.

When events are selected in the Events section (such as Header Changed.), the system automatically identifies the related EDN fields associated with those events. These fields will be displayed in the Additional Payload list.

Payload Structure

{
  "resourceUri": "https://coreapiau.impexdocs.com/api/v1/shipment/{shipmentdocsid}/edn",
  "resourceId": "029bccd5-c837-41e3-bb09-b447d2866069",
  "resourceCode": "AFHYPKWXP",
  "eventDateUtc": "2026-05-07T04:25:46.28Z",
  "eventType": "Update",
  "eventCategory": "Edn",
  "subEventType": "HeaderChanged",
  "companyId": XXXX,
  "companyName": "IMPEX COMPANY",
  "userId": 0000,
  "userName": "ImpexDocs",
  "additionalInfo": [
    {
      "ednNumber": "AFHYPKWXP",
      "shipmentNumber": "276470",
      "exporterReference": "XXXX_276470",
      "ednStatus": "CLEAR",
      "ednStatusUpdateTimeStamp": "05/07/2026 04:25:00"
    }
  ]
}

Shipment

  • How It Works:
  1. The user selects one or more Events in the Shipment webhook configuration.
  2. The system displays all related shipment fields in the Additional Payload section.
  3. The user can select any of these fields.
  4. When the webhook is triggered, the selected fields and their current values will be included in the webhook request body sent to the external system.
  • Purpose

    This feature provides flexibility by allowing external systems to receive only the specific data fields they require, without sending the entire shipment object.

Note: Shipments without Shipment Number will not trigger webhooks.

Actions: Actions define which type of shipment operation will trigger the webhook.

  • Create: Enable this option to trigger the webhook when a new shipment is created in ImpexDocs.
    • Trigger On: This dropdown allows you to define when the webhook should be fired during the create process, and it is optional. Typical options include.
      • Shipment Status: A webhook will be triggered whenever a new shipment is created and its status matches the specified value(s).
      • Trigger Values: Enter one or more status values separated by || (for example: 1 || 2)
  • Modify: Enable this option to trigger the webhook when an existing shipment is modified.
    • Trigger On: This dropdown allows you to define when the webhook should be fired during the modify process, and it is optional. Typical options include.
      • Shipment Status: A webhook will be triggered whenever existing shipment is modified and its status matches the specified value(s)
      • Trigger Values: Enter one or more status values separated by || (for example: 1 || 2)

Events : Events specify which shipment fields or attributes must change to trigger the webhook when Modify is enabled.

You can select an event type.

Additional Payload: The Additional Payload section allows users to include extra Shipment fields in the webhook request body when the webhook is triggered.

When events are selected in the Events section. The system automatically identifies the related shipment fields associated with those events. These fields will be displayed in the Additional Payload list.

RFP

  • How It Works:
  1. The user selects one or more Events in the RFP webhook configuration.
  2. The system displays all related RFP fields in the Additional Payload section.
  3. The user can select any of these fields.
  4. When the webhook is triggered, the selected fields and their current values will be included in the webhook request body sent to the external system.
  • Purpose

    This feature provides flexibility by allowing external systems to receive only the specific data fields they require, without sending the entire RFP object.

Note: RFPs without RFP Number will not trigger webhooks.

Actions: Actions define which type of RFP operation will trigger the webhook.

  • Create: Enable this option to trigger the webhook when a new RFP is created in ImpexDocs.
  • Modify: Enable this option to trigger the webhook when an existing RFP is modified.

Events : Events specify which RFP fields or attributes must be changed to trigger the webhook when Modify is enabled.

You can select one or more events.

  • Summary Changed: Triggers when general RFP information is updated. This includes the following RFP fields.
    • RFP Number
    • Shipment Number
    • EDN
    • EPN
    • Exporter Number
    • ExporterNumberDesc
    • Exporter Reference
    • Customer Reference
    • RFP Status
    • RFP Status DateTime
    • Primary Certificate
    • Secondary Certificate

Additional Payload: The Additional Payload section allows users to include extra RFP fields in the webhook request body when the webhook is triggered.

When events are selected in the Events section (such as Summary Changed.), the system automatically identifies the related RFP fields associated with those events. These fields will be displayed in the Additional Payload list.

Payload Structure

{
  "resourceUri": "https://coreapi.impexdocs.com/api//shipment/{shipmentdocsid}/rfp",
  "resourceId": "7db7745d-0d26-438f-a069-8be4f66a616f",
  "resourceCode": "REX6000371135",
  "eventDateUtc": "2026-05-20T06:16:42.52Z",
  "eventType": "Update",
  "eventCategory": "Rfp",
  "subEventType": "SummaryChanged",
  "companyId": XX,
  "companyName": "Test Company",
  "userId": 0000,
  "userName": "Impex User",
  "additionalInfo": [
    {
      "rfpNumber": "REX6000371135",
      "shipmentNumber": "VPQA 4FEB_1",
      "edn": "AAAAABVPC",
      "epn": "PIF0037113",
      "exporterNumber": "AA0014",
      "exporterNumberDesc": "test exporter for wool",
      "exporterReference": "FEB5",
      "customerReference": "Customer Ref",
      "rfpStatus": "COMP",
      "rfpStatusUpdateTimeStamp": "",
      "primaryCertificate": "",
      "secondaryCertificate": ""
    }
  ]
}

CRN

  • How It Works:
  1. The user selects Events in the CRN webhook configuration.
  2. The system displays all related CRN fields in the Additional Payload section.
  3. The user can select any of these fields.
  4. When the webhook is triggered, the selected fields and their current values will be included in the webhook request body sent to the external system.
  • Purpose

    This feature provides flexibility by allowing external systems to receive only the specific data fields they require, without sending the entire CRN object.

Note: CRNs without CRN Number will not trigger webhooks.

Actions: Actions define which type of CRN operation will trigger the webhook.

  • Create: Enable this option to trigger the webhook when a new CRN is created in ImpexDocs.
  • Modify: Enable this option to trigger the webhook when an existing CRN is modified.

Events : Events specify which CRN fields or attributes must be changed to trigger the webhook when Modify is enabled.

You can select one or more events.

  • Header Changed: Triggers when general CRN information is updated. This includes the following CRN fields.
    • CRN Number
    • Shipment Number
    • EDN Number
    • Internal CRN ID
    • Exporter Reference
    • Customer Reference
    • ModeOfTransport
    • Date Of Departure
    • Status
    • Status DateTime

Additional Payload: The Additional Payload section allows users to include extra CRN fields in the webhook request body when the webhook is triggered.

When events are selected in the Events section (such as Header Changed.), the system automatically identifies the related CRN fields associated with those events. These fields will be displayed in the Additional Payload list.

Payload Structure

{
    "resourceUri": "https://coreapi.impexdocs.com/api//crn/{crnheaderid}",
    "resourceId": "3ea5a563-938e-403a-9881-52f5d98d0e94",
    "resourceCode": "AEW7ACEHY",
    "eventDateUtc": "2026-05-20T06:40:42.747Z",
    "eventType": "Update",
    "eventCategory": "Crn",
    "subEventType": "HeaderChanged",
    "companyId": XXXX,
    "companyName": "Impex Test",
    "userId": 0,
    "userName": "Support AU",
    "additionalInfo": [
        {
            "crnNumber": "AEW7ACEHY",
            "shipmentNumber": "Webhook Shipment,CRNWS1",
            "ednNumber": "AE4WFMYJM,AE5BEZWD",
            "internalCRNID": "10239",
            "exporterReference": "CRN ALEX 2_NK",
            "customerReference": "Customer test123QA",
            "modeOfTransport": "Sea",
            "dateOfDeparture": "02-07-2026 00:00:00",
            "crnStatus": "REJECTED",
            "statusDateTime": "27-01-2026 12:34:08"
        }
    ]
}

Notification Payloads

Webhook notifications use a consistent JSON format across all modules and actions. Each notification includes the following fields:

  • ResourceUri: The API URI you can use to retrieve full details of the record via the REST API (if required).
  • ResourceId: The internal ImpexDocs identifier for the record (store this for reliable linkage).
  • ResourceCode: The business-facing code/number for the record (for example, Shipment Number, Booking Number, RFP Number).
  • EventDateUtc: The UTC date/time when the record was created or modified.
  • EventType: The event action that occurred (for example, Add for Create, or Update for Modify).
  • EventCategory: The module name for the event (for example, SHIPMENT, BOOKING, EDN, RFP, CRN). You will only receive categories your webhook is subscribed to.
  • SubEventType: The selected event name that triggered the webhook (for example, Header Changed).
  • CompanyId: The ID of the company where the event occurred.
  • CompanyName: The name of the company where the event occurred.
  • UserId: The ID of the user who triggered the event.
  • Username: The name of the user who triggered the event.
  • AdditionalInfo: Additional data configured during webhook setup.

Note: Field availability may vary by module and configuration (for example, SubEventType is populated only when Events are selected).